html {
    height: 100%;
    width: 100%;
    min-width: 0;
    overflow: hidden;
}

:root,
html[data-theme="dark"] {
    --color-bg: #0b0f14;
    --color-bg-muted: #0e141b;
    --color-surface: #121a23;
    --color-surface-elevated: #17212b;
    --color-surface-subtle: #111922;
    --color-sidebar: #0e141b;
    --color-sidebar-panel: rgba(255, 255, 255, 0.025);
    --color-text-primary: #e6edf3;
    --color-text-muted: #a7b3bf;
    --color-text-subtle: #6f7d8a;
    --color-text-link: #7dd3c7;
    --color-text-sidebar: #e6edf3;
    --color-text-sidebar-muted: #6f7d8a;
    --color-border: #24313d;
    --color-border-strong: #2a3844;
    --color-border-input: #1b2630;
    --color-border-sidebar: #1b2630;
    --color-accent: #2a9d8f;
    --color-accent-hover: #1f766d;
    --color-accent-soft: rgba(42, 157, 143, 0.14);
    --color-accent-text: #7dd3c7;
    --color-danger: #9b3b3b;
    --color-danger-text: #ffbec6;
    --color-danger-surface: rgba(155, 59, 59, 0.15);
    --color-danger-surface-text: #ffd2d8;
    --color-warning-bg: rgba(102, 81, 16, 0.24);
    --color-warning-border: rgba(233, 211, 145, 0.28);
    --color-warning-text: #f1db90;
    --color-success-bg: rgba(42, 157, 143, 0.12);
    --color-success-text: #7dd3c7;
    --color-code-bg: #0a0f16;
    --color-code-text: #c5d0da;
    --color-action-bg: #17212b;
    --color-action-bg-hover: #1b2630;
    --color-action-text: #e6edf3;
    --color-secondary-bg: #121a23;
    --color-hover-bg: rgba(255, 255, 255, 0.04);
    --color-input-bg: rgba(255, 255, 255, 0.04);
    --color-overlay-chrome: rgba(18, 26, 35, 0.9);
    --color-user-bubble: #1a2b31;
    --color-user-bubble-border: rgba(42, 157, 143, 0.16);
    --color-composer-bg: rgba(17, 25, 34, 0.96);
    --color-composer-card: #111922;
    --color-scrim: rgba(0, 0, 0, 0.72);
    --color-badge-dev: #7dd3c7;
    --shadow-panel: 0 20px 46px rgba(0, 0, 0, 0.36);
    --shadow-floating: 0 16px 36px rgba(0, 0, 0, 0.4);
    --shadow-focus: 0 0 0 3px rgba(42, 157, 143, 0.18);
    --scrollbar-thumb: #2a3844;
    --scrollbar-thumb-hover: #364956;
    --scrollbar-track: transparent;
}

html[data-theme="light"] {
    --color-bg: #eef2f7;
    --color-bg-muted: #e7edf5;
    --color-surface: #ffffff;
    --color-surface-elevated: #f7faff;
    --color-surface-subtle: #eef3f9;
    --color-sidebar: #0d1725;
    --color-sidebar-panel: rgba(255, 255, 255, 0.045);
    --color-text-primary: #172233;
    --color-text-muted: #607086;
    --color-text-subtle: #7c8898;
    --color-text-link: #3659be;
    --color-text-sidebar: #edf3fb;
    --color-text-sidebar-muted: #93a0b4;
    --color-border: rgba(36, 48, 68, 0.12);
    --color-border-strong: rgba(36, 48, 68, 0.18);
    --color-border-input: #cad3e0;
    --color-accent: #365fbf;
    --color-accent-hover: #2d4ea2;
    --color-accent-soft: rgba(54, 95, 191, 0.12);
    --color-danger: #b84857;
    --color-danger-text: #9e3141;
    --color-danger-surface: #fff0f2;
    --color-danger-surface-text: #8f2233;
    --color-warning-bg: #fff7dd;
    --color-warning-border: #e8d391;
    --color-warning-text: #7c6000;
    --color-success-bg: rgba(54, 95, 191, 0.09);
    --color-success-text: #35519f;
    --color-code-bg: #0a1321;
    --color-code-text: #e8eef8;
    --color-action-bg: #edf2f8;
    --color-action-bg-hover: #e1e9f3;
    --color-action-text: #35435b;
    --color-secondary-bg: #ebf0f8;
    --color-hover-bg: rgba(36, 48, 68, 0.06);
    --color-input-bg: #ffffff;
    --color-overlay-chrome: rgba(255, 255, 255, 0.92);
    --color-border-sidebar: rgba(36, 48, 68, 0.12);
    --color-user-bubble: #dfe7f7;
    --color-user-bubble-border: rgba(54, 95, 191, 0.14);
    --color-composer-bg: rgba(238, 242, 247, 0.9);
    --color-composer-card: #ffffff;
    --color-scrim: rgba(9, 14, 24, 0.44);
    --color-badge-dev: #b9ccff;
    --shadow-panel: 0 18px 42px rgba(20, 32, 58, 0.1);
    --shadow-floating: 0 14px 32px rgba(20, 32, 58, 0.12);
    --shadow-focus: 0 0 0 3px rgba(54, 95, 191, 0.16);
    --scrollbar-thumb: rgba(124, 142, 174, 0.44);
    --scrollbar-thumb-hover: rgba(140, 157, 188, 0.5);
    --scrollbar-track: rgba(255, 255, 255, 0.03);
}

:root {
    --radius-sm: 0.5rem;
    --radius-md: 0.8rem;
    --radius-lg: 1rem;
    --radius-xl: 1.25rem;
    --radius-pill: 999px;
    --chat-column-max: 50rem;
    --chat-column-gutter: 1rem;
    --sidebar-width: 15.75rem;
    --line-height-body: 1.72;
    --line-height-ui: 1.5;
}

@media (min-width: 901px) {
    :root,
    html[data-theme="light"],
    html[data-theme="dark"] {
        --chat-column-max: 56rem;
    }
}

body {
    background: linear-gradient(180deg, var(--color-bg), var(--color-bg-muted));
    color: var(--color-text-primary);
    font-family: Inter, Vazirmatn, Tahoma, "Segoe UI", Arial, sans-serif;
    height: 100%;
    margin: 0;
    min-width: 0;
    overflow: hidden;
    width: 100%;
    max-width: none;
}

* {
    box-sizing: border-box;
}

button,
input,
select,
textarea {
    font: inherit;
}

button {
    cursor: pointer;
}

button:disabled,
select:disabled,
textarea:disabled,
input:disabled {
    cursor: default;
    opacity: 0.56;
}

a {
    color: inherit;
    text-decoration: none;
}

.visually-hidden {
    border: 0;
    clip: rect(0, 0, 0, 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

.layout-surface {
    height: 100dvh;
    max-width: none;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
    width: 100%;
}

/* Full-viewport shell: sidebar column + flex-growing main chat surface. */
.workspace-shell,
.workspace-shell--guest {
    display: grid;
    grid-template-columns: var(--sidebar-width) minmax(0, 1fr);
    height: 100dvh;
    max-width: none;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
    width: 100%;
}

.workspace-shell.is-sidebar-collapsed {
    grid-template-columns: 0 minmax(0, 1fr);
}

.workspace-sidebar {
    background: var(--color-sidebar);
    border-inline-end: 1px solid var(--color-border-sidebar);
    color: var(--color-text-sidebar);
    display: grid;
    gap: 0.55rem;
    grid-template-rows: auto auto auto auto minmax(0, 1fr);
    min-height: 0;
    overflow: hidden;
    padding: 0.72rem 0.68rem;
    position: relative;
    transition: opacity 0.18s ease, transform 0.18s ease;
    z-index: 3;
}

.workspace-shell.is-sidebar-collapsed .workspace-sidebar {
    opacity: 0;
    overflow: hidden;
    padding: 0;
    pointer-events: none;
}

/* Main chat column: header + scrollable messages + pinned composer (not page scroll). */
.workspace-main {
    background: var(--color-bg);
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    height: 100dvh;
    max-width: none;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
    width: 100%;
}

.workspace-main > .workspace-topbar,
.workspace-main > .conversation-header,
.workspace-main > .error-strip,
.workspace-main > .composer {
    flex-shrink: 0;
}

.workspace-main > .message-panel,
.workspace-main > .empty-state {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

.chat-column {
    margin-inline: auto;
    max-width: var(--chat-column-max);
    min-width: 0;
    padding-inline: var(--chat-column-gutter);
    width: 100%;
}

.workspace-topbar {
    align-items: center;
    background: var(--color-overlay-chrome);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid var(--color-border);
    display: flex;
    gap: 0.55rem;
    min-height: 2.65rem;
    padding: 0.4rem 0.8rem;
    position: relative;
    z-index: 5;
}

.topbar-summary {
    display: grid;
    gap: 0.08rem;
    min-width: 0;
}

.topbar-summary strong {
    font-size: 0.82rem;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.topbar-summary span {
    color: var(--color-text-muted);
    font-size: 0.68rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.topbar-icon-button,
.icon-button {
    align-items: center;
    background: var(--color-action-bg);
    border: 1px solid var(--color-border);
    border-radius: 0.72rem;
    color: var(--color-action-text);
    display: inline-flex;
    flex: 0 0 auto;
    height: 2rem;
    justify-content: center;
    padding: 0;
    transition: background 0.14s ease, border-color 0.14s ease, color 0.14s ease, transform 0.14s ease;
    width: 2rem;
}

.topbar-icon-button:hover,
.icon-button:hover:not(:disabled),
.sidebar-action:hover:not(:disabled),
.secondary-button:hover:not(:disabled),
.profile-card button:hover:not(:disabled),
.danger-button:hover:not(:disabled) {
    background: var(--color-action-bg-hover);
    border-color: var(--color-border-strong);
}

.topbar-icon-button:focus-visible,
.icon-button:focus-visible,
.sidebar-action:focus-visible,
.secondary-button:focus-visible,
.conversation-link:focus-visible,
.header-menu-item:focus-visible,
.profile-link:focus-visible,
.secondary-link:focus-visible {
    box-shadow: var(--shadow-focus);
    outline: none;
}

.icon-button--ghost {
    background: transparent;
}

.icon-button--primary {
    background: var(--color-accent);
    border-color: transparent;
    color: #ffffff;
}

.icon-button--primary:hover:not(:disabled) {
    background: var(--color-accent-hover);
    border-color: transparent;
}

.icon {
    display: block;
    height: 1rem;
    width: 1rem;
}

.sidebar-backdrop {
    background: var(--color-scrim);
    border: 0;
    display: none;
    inset: 0;
    padding: 0;
    position: fixed;
    z-index: 25;
}

.sidebar-backdrop.is-visible {
    display: block;
}

.sidebar-header {
    align-items: start;
    display: grid;
    gap: 0.55rem;
    grid-template-columns: minmax(0, 1fr) auto;
}

.sidebar-header__copy {
    display: grid;
    gap: 0.24rem;
}

.section-caption {
    display: grid;
    gap: 0.2rem;
}

.sidebar-header h1 {
    font-size: 0.9rem;
    font-weight: 700;
    line-height: var(--line-height-ui);
    margin: 0;
}

.sidebar-header__tagline,
.section-caption span,
.sidebar-state,
.conversation-link span {
    color: var(--color-text-sidebar-muted);
    font-size: 0.74rem;
    line-height: 1.45;
    margin: 0;
}

.sidebar-collapse-button {
    display: none;
}

.user-panel {
    background: transparent;
    border: 0;
    border-radius: 0;
    display: grid;
    gap: 0.2rem;
    padding: 0.15rem 0.2rem 0.25rem;
}

.sidebar-empty-card {
    background: var(--color-sidebar-panel);
    border: 1px solid var(--color-border-input);
    border-radius: var(--radius-md);
    display: grid;
    gap: 0.35rem;
    padding: 0.55rem;
}

.user-panel__summary {
    align-items: start;
    display: grid;
    gap: 0.5rem;
    grid-template-columns: minmax(0, 1fr) auto;
}

.user-panel__actions {
    align-items: center;
    display: inline-flex;
    gap: 0.15rem;
}

.sidebar-profile-button,
.sidebar-settings-button {
    color: var(--color-text-sidebar);
}

.sidebar-profile-button:hover,
.sidebar-profile-button:focus-visible,
.sidebar-settings-button:hover:not(:disabled),
.sidebar-settings-button:focus-visible:not(:disabled) {
    background: var(--color-surface-subtle);
    color: var(--color-text-primary);
}

.user-summary {
    display: grid;
    gap: 0.28rem;
    min-width: 0;
}

.user-summary strong {
    font-size: 0.78rem;
    font-weight: 600;
    line-height: var(--line-height-ui);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sidebar-credit {
    color: var(--color-text-sidebar-muted);
    font-size: 0.68rem;
    line-height: var(--line-height-ui);
}

.user-summary__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
}

.sidebar-plan-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.05rem 0.45rem;
    border-radius: 999px;
    border: 1px solid var(--color-border-subtle);
    color: var(--color-text-sidebar-muted);
    font-size: 0.62rem;
    font-weight: 600;
    line-height: 1.2;
}

.plan-pro-badge,
.composer-select__pro-badge {
    display: inline-flex;
    margin-inline-start: 0.35rem;
    padding: 0.05rem 0.35rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--color-accent) 16%, transparent);
    color: var(--color-accent);
    font-size: 0.62rem;
    font-weight: 700;
    line-height: 1.2;
    vertical-align: middle;
}

.plan-upgrade-prompt {
    display: grid;
    gap: 0.5rem;
    padding: 0.75rem;
    border: 1px solid var(--color-border-subtle);
    border-radius: var(--radius-md);
    background: var(--color-surface-muted);
}

.plan-upgrade-prompt--inline {
    margin-block: 0.5rem 0.75rem;
}

.plan-upgrade-prompt__title {
    font-size: 0.82rem;
}

.plan-upgrade-prompt__body,
.plan-upgrade-prompt__unavailable {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 0.75rem;
    line-height: 1.45;
}

.settings-billing__card {
    display: grid;
    gap: 0.85rem;
}

.settings-billing__card-title {
    margin: 0;
    font-size: 0.95rem;
}

.settings-billing__notes {
    display: grid;
    gap: 0.35rem;
    color: var(--color-text-muted);
    font-size: 0.75rem;
    line-height: 1.45;
}

.settings-billing__notes p {
    margin: 0;
}

.settings-file-storage__message {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 0.78rem;
    line-height: 1.45;
}

.settings-file-storage__grid {
    margin: 0;
}

.settings-file-storage__notes {
    margin-top: 0.15rem;
}

.composer-attachments__quota-note,
.conversation-attachments__quota-note,
.project-files-panel__quota-note {
    margin: 0.35rem 0 0;
    color: var(--color-text-muted);
    font-size: 0.72rem;
    line-height: 1.4;
}

.memory-status-card--locked {
    opacity: 0.92;
}

.project-tree__plan-hint {
    margin: 0 0 0.5rem;
    color: var(--color-text-muted);
    font-size: 0.72rem;
    line-height: 1.4;
}

.sidebar-profile-button {
    color: var(--color-text-sidebar);
}

.sidebar-settings-button:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.section-caption,
.sidebar-toolbar {
    display: grid;
}

.section-caption strong {
    font-size: 0.78rem;
    font-weight: 700;
}

.conversation-search__input:focus,
.conversation-search__input:focus,
.title-input:focus,
.composer__textarea:focus,
.profile-form input:focus,
.profile-form select:focus {
    border-color: var(--color-accent);
    box-shadow: var(--shadow-focus);
    outline: none;
}

.mode-badge {
    background: var(--color-accent-soft);
    border: 1px solid rgba(42, 157, 143, 0.22);
    border-radius: var(--radius-pill);
    color: var(--color-accent-text, var(--color-accent));
    display: inline-flex;
    font-size: 0.62rem;
    font-weight: 600;
    line-height: var(--line-height-ui);
    max-width: 7.5rem;
    min-width: 0;
    overflow: hidden;
    padding: 0.12rem 0.42rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sidebar-action,
.profile-card button {
    align-items: center;
    background: var(--color-secondary-bg);
    border: 1px solid var(--color-border-input);
    border-radius: 0.72rem;
    color: var(--color-text-sidebar);
    display: inline-flex;
    font-size: 0.74rem;
    font-weight: 600;
    justify-content: center;
    line-height: var(--line-height-ui);
    min-height: 1.82rem;
    padding: 0.28rem 0.62rem;
    transition: background 0.14s ease, border-color 0.14s ease, color 0.14s ease;
}

.sidebar-action--primary {
    background: var(--color-accent);
    border-color: transparent;
    color: #ffffff;
}

.sidebar-action--primary:hover:not(:disabled) {
    background: var(--color-accent-hover);
    border-color: transparent;
}

.sidebar-action--compact {
    min-height: 1.78rem;
}

.sidebar-action--with-icon {
    align-items: center;
    display: inline-flex;
    gap: 0.35rem;
    justify-content: center;
}

.sidebar-action__icon {
    flex-shrink: 0;
    height: 0.92rem;
    width: 0.92rem;
}

.sidebar-nav-item {
    align-items: center;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 0.72rem;
    color: var(--color-text-sidebar);
    display: inline-flex;
    font-size: 0.74rem;
    font-weight: 600;
    gap: 0.38rem;
    justify-content: flex-start;
    line-height: var(--line-height-ui);
    min-height: 1.78rem;
    padding: 0.28rem 0.45rem;
    transition: background 0.14s ease, border-color 0.14s ease;
    width: 100%;
}

.sidebar-nav-item:hover:not(:disabled) {
    background: var(--color-hover-bg);
}

.sidebar-nav-item__icon {
    color: var(--color-accent-text);
    flex-shrink: 0;
    height: 0.92rem;
    width: 0.92rem;
}

.sidebar-nav-item__label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sidebar-quick-actions {
    display: grid;
    gap: 0.28rem;
    min-width: 0;
}

.sidebar-action__label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.profile-link,
.secondary-link {
    color: var(--color-text-link);
    font-weight: 700;
}

.secondary-button {
    background: var(--color-secondary-bg);
    border: 1px solid var(--color-border);
    border-radius: 0.72rem;
    color: var(--color-text-primary);
    font-size: 0.74rem;
    font-weight: 600;
    line-height: var(--line-height-ui);
    min-height: 1.82rem;
    padding: 0.28rem 0.58rem;
}

.conversation-nav {
    align-content: start;
    display: grid;
    gap: 0.48rem;
    min-height: 0;
    overflow: hidden;
}

.conversation-search {
    align-items: center;
    display: grid;
    gap: 0.28rem;
    grid-template-columns: minmax(0, 1fr) auto;
}

.conversation-search__field {
    min-width: 0;
}

.conversation-search__input {
    background: var(--color-input-bg);
    border: 1px solid var(--color-border-input);
    border-radius: 0.72rem;
    color: var(--color-text-sidebar);
    font-size: 0.73rem;
    height: 1.85rem;
    padding: 0.24rem 0.58rem;
    width: 100%;
}

.conversation-search__input::placeholder {
    color: var(--color-text-sidebar-muted);
}

.conversation-search__clear {
    color: var(--color-text-sidebar);
}

.conversation-list {
    align-content: start;
    display: grid;
    gap: 0.18rem;
    grid-auto-rows: max-content;
    min-height: 0;
    overflow: auto;
    padding-inline-end: 0.15rem;
}

.conversation-link {
    align-self: start;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 0.72rem;
    color: var(--color-text-sidebar);
    display: grid;
    gap: 0.1rem;
    height: auto;
    padding: 0.38rem 0.5rem;
    text-align: start;
    transition: background 0.14s ease, border-color 0.14s ease, transform 0.14s ease;
    width: 100%;
}

.conversation-link strong {
    font-size: 0.74rem;
    font-weight: 600;
    line-height: var(--line-height-ui);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.conversation-link:hover:not(:disabled),
.conversation-link.active {
    background: var(--color-hover-bg);
    border-color: var(--color-border-input);
}

.conversation-link.active {
    background: rgba(255, 255, 255, 0.05);
    border-color: transparent;
    box-shadow: inset 2px 0 0 var(--color-accent);
}

html[dir="rtl"] .conversation-link.active {
    box-shadow: inset -2px 0 0 var(--color-accent);
}

.conversation-header {
    background: var(--color-overlay-chrome);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid var(--color-border);
    max-width: 100%;
    min-width: 0;
    overflow: visible;
    position: relative;
    z-index: 4;
}

.conversation-header__inner {
    display: grid;
    gap: 0.32rem;
    max-width: 100%;
    min-width: 0;
    padding-block: 0.42rem;
}

.conversation-header__bar {
    align-items: center;
    display: grid;
    gap: 0.5rem;
    grid-template-columns: auto minmax(0, 1fr) auto;
    min-width: 0;
}

.conversation-header__title-row {
    align-items: center;
    display: grid;
    gap: 0.4rem;
    grid-template-columns: minmax(0, 1fr) auto auto;
    max-width: 100%;
    min-width: 0;
}

.conversation-header__content {
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
}

.conversation-header__content--rename {
    display: grid;
    gap: 0.2rem;
}

.conversation-header__title-group {
    display: grid;
    gap: 0.02rem;
    min-width: 0;
}

.conversation-header__eyebrow {
    color: var(--color-text-subtle);
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.conversation-header__title {
    flex: 1 1 auto;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: var(--line-height-ui);
    margin: 0;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.conversation-header__updated {
    color: var(--color-text-subtle);
    display: flex;
    flex: 0 0 auto;
    font-size: 0.64rem;
    gap: 0.26rem;
    margin: 0;
    white-space: nowrap;
}

.header-actions-menu {
    flex: 0 0 auto;
    min-width: 0;
    position: relative;
}

.header-menu-panel {
    background: var(--color-surface-elevated);
    border: 1px solid var(--color-border);
    border-radius: 0.78rem;
    box-shadow: var(--shadow-floating);
    display: grid;
    gap: 0.14rem;
    inset-inline-end: 0;
    min-width: 8.9rem;
    padding: 0.24rem;
    position: absolute;
    top: calc(100% + 0.35rem);
    z-index: 40;
}

.header-menu-panel--inline {
    inset-inline-end: auto;
    justify-self: end;
    margin-inline-start: auto;
    max-width: min(100%, 12rem);
    position: static;
    top: auto;
    width: min(100%, 12rem);
}

.header-menu-item {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 0.62rem;
    color: var(--color-text-primary);
    display: flex;
    gap: 0.42rem;
    font-size: 0.73rem;
    font-weight: 700;
    min-height: 1.82rem;
    padding: 0.26rem 0.46rem;
    text-align: start;
}

.header-menu-item:hover:not(:disabled) {
    background: var(--color-action-bg);
}

.header-menu-item--danger {
    color: var(--color-danger-text);
}

.conversation-rename-panel,
.header-dialog {
    background: var(--color-surface-elevated);
    border: 1px solid var(--color-border);
    border-radius: 0.86rem;
    box-shadow: var(--shadow-floating);
    display: grid;
    gap: 0.38rem;
    padding: 0.48rem;
}

.conversation-actions__field,
.composer-field {
    display: block;
    min-width: 0;
}

.conversation-actions__field--inline {
    align-items: center;
    display: grid;
    gap: 0.38rem;
    grid-template-columns: minmax(0, 1fr) auto;
}

.title-input,
.profile-form input,
.profile-form select {
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border-input);
    border-radius: 0.75rem;
    color: var(--color-text-primary);
    min-height: 1.95rem;
    padding: 0.28rem 0.58rem;
    width: 100%;
}

.delete-confirm__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.header-action,
.danger-button {
    border-radius: 0.72rem;
    font-size: 0.72rem;
    font-weight: 700;
    min-height: 1.82rem;
    padding: 0.26rem 0.56rem;
}

.danger-button {
    background: var(--color-danger);
    border: 1px solid transparent;
    color: #ffffff;
}

.delete-confirm__title {
    color: var(--color-danger-surface-text);
    font-size: 0.8rem;
}

.delete-confirm__body {
    color: var(--color-text-muted);
    font-size: 0.73rem;
    line-height: 1.55;
    margin: 0;
}

.message-panel {
    background: transparent;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    max-width: 100%;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
    width: 100%;
}

.message-list,
.message-empty-state {
    flex: 1 1 auto;
}

.message-empty-state {
    align-content: center;
    color: var(--color-text-muted);
    display: grid;
    gap: 0.35rem;
    justify-items: center;
    min-height: 100%;
    padding: 2rem var(--chat-column-gutter);
    text-align: center;
}

.message-list {
    background: transparent;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.42rem;
    justify-content: flex-start;
    margin: 0 auto;
    max-width: var(--chat-column-max);
    min-width: 0;
    overflow: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    padding: clamp(0.65rem, 3.5vh, 1.75rem) var(--chat-column-gutter) 0.55rem;
    width: 100%;
}

.message-list__load-older {
    display: flex;
    justify-content: center;
    padding: 0.15rem 0 0.35rem;
    position: sticky;
    top: 0;
    z-index: 2;
    background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--color-surface) 96%, transparent) 0%,
        color-mix(in srgb, var(--color-surface) 72%, transparent) 72%,
        transparent 100%
    );
}

.message-list__load-older-button {
    backdrop-filter: blur(6px);
}

.message-bubble {
    display: grid;
    gap: 0.22rem;
    max-width: 100%;
    min-width: 0;
    overflow-wrap: break-word;
    position: relative;
    word-break: break-word;
}

.message-bubble.assistant {
    align-self: stretch;
    background: transparent;
    max-width: 100%;
    padding: 0;
    width: 100%;
}

.message-bubble.assistant > * {
    background: transparent;
    border: 0;
    border-radius: 0;
    max-width: 100%;
    min-width: 0;
    padding-inline: 0;
}

.message-bubble.assistant > .message-code-block {
    background: transparent;
    border: 1px solid var(--color-border);
    border-radius: 0.9rem;
    margin-bottom: 0.32rem;
    overflow: hidden;
}

.message-bubble.assistant > .message-actions,
.message-bubble.assistant > .message-progress,
.message-bubble.assistant > .message-feedback,
.message-bubble.assistant > .message-meta {
    background: transparent;
    border: 0;
    padding-inline: 0;
}

.message-bubble.user {
    align-self: flex-start;
    background: var(--color-user-bubble);
    border: 1px solid var(--color-user-bubble-border);
    border-radius: 0.9rem;
    max-width: min(76%, 34rem);
    padding: 0.42rem 0.6rem;
    width: auto;
}

.message-bubble.loading {
    opacity: 0.88;
}

.message-meta {
    align-items: center;
    color: var(--color-text-subtle);
    display: flex;
    font-size: 0.6rem;
    gap: 0.5rem;
    justify-content: flex-end;
    margin: 0;
    padding-top: 0.18rem;
}

.message-bubble.user .message-meta,
.message-bubble.assistant .message-meta {
    justify-content: flex-start;
}

.message-bubble.user .message-meta {
    padding-top: 0.14rem;
}

.message-bubble.assistant .message-meta {
    padding-top: 0.12rem;
}

.message-meta__time {
    color: var(--color-text-subtle);
}

.message-bubble p,
.message-bubble small {
    font-size: 0.92rem;
    font-weight: 400;
    line-height: var(--line-height-body);
    margin: 0;
    overflow-wrap: break-word;
    unicode-bidi: plaintext;
    white-space: pre-wrap;
    word-break: break-word;
}

.message__text {
    unicode-bidi: plaintext;
}

.bidi-isolate {
    unicode-bidi: isolate;
}

.conversation-link strong,
.conversation-header__title,
.sidebar-credit,
.composer-select__label,
.composer-select__value,
.composer__settings-note,
.topbar-summary strong {
    unicode-bidi: plaintext;
}

.message-bubble.assistant p {
    padding-bottom: 0;
}

.message-bubble.user p:last-of-type {
    padding-bottom: 0;
}

.message-feedback {
    color: var(--color-danger-text);
}

.message-actions,
.message-code-toolbar {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.28rem;
}

.message-actions {
    opacity: 0;
    padding-top: 0.02rem;
    transition: opacity 0.14s ease;
}

.message-bubble:hover .message-actions,
.message-bubble:focus-within .message-actions {
    opacity: 1;
}

.message-action-button {
    height: 1.68rem;
    width: 1.68rem;
}

.message-action-button--readaloud-active {
    color: var(--color-danger, #dc2626);
}

.message-readaloud__unsupported,
.message-readaloud__status,
.message-readaloud__note {
    font-size: 0.82rem;
    line-height: 1.45;
    margin: 0 0 0.65rem;
}

.message-readaloud__unsupported {
    color: var(--color-warning-text, #92400e);
}

.message-readaloud__status {
    color: var(--color-text-muted);
}

.message-readaloud__note {
    color: var(--color-text-muted);
}

.message-list--long-thread .message-actions {
    gap: 0.16rem;
    opacity: 1;
}

.message-list--long-thread .message-action-button {
    height: 1.48rem;
    width: 1.48rem;
}

.message-code-block {
    border: 1px solid var(--color-border);
    border-radius: 0.9rem;
    display: grid;
    margin-bottom: 0.54rem;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
}

.message-code-toolbar {
    align-items: center;
    background: var(--color-action-bg);
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    justify-content: space-between;
    min-height: 1.8rem;
    padding: 0.2rem 0.3rem;
}

.message-code-toolbar__actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-inline-start: auto;
}

.message-code-language {
    color: var(--color-text-muted);
    direction: ltr;
    font-size: 0.62rem;
}

.message-code {
    background: var(--color-code-bg);
    color: var(--color-code-text);
    direction: ltr;
    font-size: 13px;
    margin: 0;
    max-height: 17.5rem;
    max-width: 100%;
    min-width: 0;
    overflow: auto;
    padding: 0.5rem 0.58rem;
    text-align: left;
    unicode-bidi: normal;
    white-space: pre;
    width: 100%;
}

.message-code code {
    color: inherit;
    direction: ltr;
    display: block;
    font-family: Consolas, "Courier New", monospace;
    line-height: 1.55;
    min-width: max-content;
    unicode-bidi: isolate;
}

.message-progress {
    align-items: center;
    color: var(--color-text-muted);
    display: flex;
    gap: 0.32rem;
}

.typing-dot {
    animation: pulse 1.15s infinite ease-in-out;
    background: var(--color-accent);
    border-radius: var(--radius-pill);
    display: inline-block;
    height: 0.34rem;
    width: 0.34rem;
}

.typing-dot:nth-child(2) {
    animation-delay: 0.15s;
}

.typing-dot:nth-child(3) {
    animation-delay: 0.3s;
}

.composer {
    background: linear-gradient(180deg, transparent 0%, var(--color-bg) 28%);
    backdrop-filter: blur(12px);
    border-top: 0;
    flex-shrink: 0;
    max-width: 100%;
    min-width: 0;
    padding-block: 0.12rem 0.42rem;
    width: 100%;
    z-index: 6;
}

.composer--disabled {
    opacity: 0.72;
}

.composer--pending .composer__card {
    border-color: rgba(42, 157, 143, 0.32);
}

.composer__surface {
    display: grid;
    gap: 0.18rem;
    max-width: 100%;
    min-width: 0;
}

.composer__card {
    background: var(--color-composer-card, var(--color-surface-subtle));
    border: 1px solid var(--color-border-input);
    border-radius: 1rem;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.14);
    display: grid;
    gap: 0;
    max-width: 100%;
    min-width: 0;
    overflow: visible;
}

.composer__surface--pending .composer__card {
    border-color: rgba(42, 157, 143, 0.32);
}

.composer__controls {
    align-items: center;
    border-bottom: 1px solid var(--color-border-input);
    display: flex;
    flex-wrap: wrap;
    gap: 0.38rem;
    overflow: visible;
    padding: 0.32rem 0.42rem;
}

.composer__controls::-webkit-scrollbar {
    height: 4px;
}

.composer-select,
.composer-tools {
    flex-shrink: 0;
    position: relative;
}

.composer-select > summary,
.composer-tools > summary {
    cursor: pointer;
    list-style: none;
}

.composer-select > summary::-webkit-details-marker,
.composer-tools > summary::-webkit-details-marker {
    display: none;
}

.composer-select__trigger,
.composer-tools__trigger {
    align-items: center;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    color: var(--color-text-muted);
    display: inline-flex;
    font-size: 0.72rem;
    gap: 0.32rem;
    padding: 0.22rem 0.42rem;
    transition: background 0.14s ease, border-color 0.14s ease;
    white-space: nowrap;
}

.composer-select__trigger:hover,
.composer-tools__trigger:hover,
.composer-select[open] .composer-select__trigger,
.composer-tools[open] .composer-tools__trigger {
    background: rgba(255, 255, 255, 0.04);
    border-color: var(--color-border-strong);
}

.composer-select__label {
    color: var(--color-text-subtle);
    font-size: 0.66rem;
}

.composer-select__value {
    color: var(--color-text-primary);
    font-weight: 600;
}

.composer-select__chevron {
    height: 0.72rem;
    width: 0.72rem;
}

.composer-select[open] .composer-select__chevron {
    transform: rotate(180deg);
}

.composer-select__menu,
.composer-tools__menu {
    background: var(--color-surface-elevated);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-floating);
    inset-inline-start: 0;
    min-width: 9.25rem;
    padding: 0.24rem;
    position: absolute;
    top: calc(100% + 0.25rem);
    z-index: 60;
}

.composer-tools__menu {
    inset-inline-end: 0;
    inset-inline-start: auto;
    min-width: 10.5rem;
}

.composer-select__option,
.composer-tools__item {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: var(--radius-sm);
    color: var(--color-text-primary);
    display: flex;
    font-size: 0.72rem;
    gap: 0.42rem;
    justify-content: space-between;
    padding: 0.36rem 0.52rem;
    text-align: start;
    width: 100%;
}

.composer-select__option:disabled,
.composer-tools__item:disabled {
    cursor: not-allowed;
    opacity: 0.62;
}

.composer-select__option:hover:not(:disabled):not(.composer-select__option--active),
.composer-tools__item:hover:not(:disabled) {
    background: var(--color-hover-bg);
}

.composer-select__option:focus-visible,
.composer-tools__item:focus-visible {
    box-shadow: var(--shadow-focus);
    outline: none;
}

.composer-select__option--active:not(:disabled) {
    background: var(--color-accent-soft);
    color: var(--color-accent-text, var(--color-accent));
}

.composer-select--locked > summary {
    cursor: pointer;
}

.composer-select--locked .composer-select__chevron {
    opacity: 0.55;
}

.composer-select__menu-note {
    border-top: 1px solid var(--color-border);
    color: var(--color-text-subtle);
    font-size: 0.64rem;
    line-height: 1.35;
    margin: 0.12rem 0 0;
    padding: 0.34rem 0.52rem 0.22rem;
}

.composer-select__soon,
.composer-tools__soon {
    color: var(--color-text-subtle);
    font-size: 0.58rem;
    margin-inline-start: auto;
}

.composer-tools__trigger .icon {
    height: 0.82rem;
    width: 0.82rem;
}

.composer__input-row {
    align-items: flex-end;
    display: flex;
    gap: 0.42rem;
    max-width: 100%;
    min-width: 0;
    padding: 0.32rem 0.42rem 0.42rem;
}

.composer-field--inline {
    flex: 1 1 auto;
    min-width: 0;
}

.composer__textarea {
    background: transparent;
    border: 0;
    color: var(--color-text-primary);
    font-size: 0.86rem;
    line-height: var(--line-height-body);
    max-height: 40dvh;
    max-width: 100%;
    min-height: 1.5rem;
    min-width: 0;
    outline: none;
    overflow-x: hidden;
    overflow-y: hidden;
    padding: 0.12rem 0.08rem;
    resize: none;
    width: 100%;
}

.composer__textarea[dir="rtl"]::placeholder {
    text-align: right;
}

.composer__textarea[dir="ltr"]::placeholder {
    text-align: left;
}

.composer__textarea::placeholder {
    color: var(--color-text-subtle);
}

.composer-actions {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    gap: 0.3rem;
    min-width: 0;
}

.composer__attach-button {
    height: 2.12rem;
    min-width: 2.12rem;
    width: 2.12rem;
}

.composer__attach-button--disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.composer-attachment-input {
    display: none;
}

.composer-attachments {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
    padding: 0 0.42rem;
}

.composer-attachments__safety-note,
.composer-attachments__feedback {
    color: var(--color-text-subtle);
    font-size: 0.64rem;
    line-height: 1.35;
    margin: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    padding: 0 0.42rem 0.18rem;
}

.composer-attachments__feedback {
    color: var(--color-danger, #c0392b);
}

.composer-attachment-chip {
    align-items: center;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    border-radius: 0.55rem;
    display: flex;
    gap: 0.42rem;
    max-width: 100%;
    min-width: 0;
    padding: 0.34rem 0.42rem;
}

.composer-attachment-chip--uploading {
    opacity: 0.82;
}

.composer-attachment-chip--failed {
    border-color: var(--color-danger, #c0392b);
}

.composer-attachment-chip--removing {
    opacity: 0.65;
}

.composer-attachment-chip__type {
    align-items: center;
    background: var(--color-accent-soft);
    border-radius: 0.35rem;
    color: var(--color-accent-text, var(--color-accent));
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.58rem;
    font-weight: 600;
    justify-content: center;
    min-width: 2rem;
    padding: 0.18rem 0.28rem;
}

.composer-attachment-chip__meta {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 0.08rem;
    min-width: 0;
}

.composer-attachment-chip__name {
    font-size: 0.72rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.composer-attachment-chip__size,
.composer-attachment-chip__status,
.composer-attachment-chip__error {
    color: var(--color-text-subtle);
    font-size: 0.62rem;
}

.composer-attachment-chip__error {
    color: var(--color-danger, #c0392b);
}

.composer-attachment-chip__remove {
    flex: 0 0 auto;
}

.conversation-attachments {
    border-top: 1px solid var(--color-border);
    margin-top: 0.35rem;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
    padding: 0.55rem 0.75rem 0.35rem;
}

.conversation-attachments__header {
    margin-bottom: 0.35rem;
}

.conversation-attachments__title-row {
    align-items: center;
    display: flex;
    gap: 0.28rem;
    min-width: 0;
}

.conversation-attachments__title {
    font-size: 0.72rem;
    font-weight: 600;
    margin: 0;
}

.conversation-attachments__info {
    flex: 0 0 auto;
    height: 1.45rem;
    width: 1.45rem;
}

.conversation-attachments__selection-note {
    color: var(--color-text-subtle);
    font-size: 0.62rem;
    line-height: 1.35;
    margin: 0.18rem 0 0;
}

.conversation-attachments__note {
    color: var(--color-text-subtle);
    font-size: 0.62rem;
    line-height: 1.35;
    margin: 0.18rem 0 0;
}

.conversation-attachments__selection-count {
    color: var(--color-text);
    font-size: 0.64rem;
    font-weight: 600;
    margin: 0.2rem 0 0;
}

.conversation-file-card__actions,
.project-file-card__actions.file-action-row {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    gap: 0.2rem;
    justify-content: flex-end;
    min-width: 0;
}

.file-action-button {
    flex: 0 0 auto;
    height: 1.68rem;
    width: 1.68rem;
}

.file-action-button--locked {
    opacity: 0.72;
}

.file-action-button--danger {
    color: var(--color-danger-text, #b91c1c);
}

.file-action-row {
    align-items: center;
    display: flex;
    gap: 0.2rem;
    min-width: 0;
}

.file-action-row__primary {
    align-items: center;
    display: flex;
    flex-wrap: nowrap;
    gap: 0.2rem;
    min-width: 0;
}

.file-action-overflow {
    display: none;
    position: relative;
}

.file-action-overflow__trigger {
    list-style: none;
}

.file-action-overflow__trigger::-webkit-details-marker {
    display: none;
}

.file-action-overflow__menu {
    background: var(--color-surface-elevated, #fff);
    border: 1px solid var(--color-border);
    border-radius: 0.55rem;
    box-shadow: 0 8px 24px rgb(15 23 42 / 0.12);
    display: grid;
    gap: 0.1rem;
    min-width: 8.5rem;
    padding: 0.28rem;
    position: absolute;
    inset-inline-end: 0;
    top: calc(100% + 0.2rem);
    z-index: 12;
}

.file-action-overflow__item {
    background: transparent;
    border: 0;
    border-radius: 0.4rem;
    color: var(--color-text);
    cursor: pointer;
    font: inherit;
    font-size: 0.68rem;
    padding: 0.35rem 0.45rem;
    text-align: start;
}

.file-action-overflow__item:hover,
.file-action-overflow__item:focus-visible {
    background: var(--color-surface-muted);
    outline: none;
}

.composer-attach-anchor,
.composer-web-search-anchor {
    align-items: center;
    display: flex;
    gap: 0.18rem;
    position: relative;
}

.composer__web-search-button--active {
    background: var(--color-surface-muted);
    color: var(--color-accent, #2563eb);
}

.composer__web-search-button--locked {
    opacity: 0.72;
}

.composer-web-search-active {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    margin: 0.2rem 0 0;
    max-width: 100%;
    min-width: 0;
}

.composer-web-search-active__chip {
    background: var(--color-surface-muted);
    border: 1px solid var(--color-border);
    border-radius: 999px;
    color: var(--color-accent, #2563eb);
    display: inline-block;
    font-size: 0.62rem;
    font-weight: 600;
    max-width: 100%;
    padding: 0.12rem 0.55rem;
    width: fit-content;
}

.composer-web-search-active__note {
    color: var(--color-text-subtle);
    font-size: 0.6rem;
    line-height: 1.35;
    margin: 0;
}

.composer-web-search-hint {
    background: transparent;
    border: 0;
    color: var(--color-accent, #2563eb);
    cursor: pointer;
    font-size: 0.62rem;
    margin: 0.15rem 0 0;
    padding: 0;
    text-align: start;
    text-decoration: underline;
    text-underline-offset: 0.12rem;
}

.contextual-gate-callout--web-search {
    inset-inline-end: 0;
    bottom: calc(100% + 0.35rem);
}

.composer__attach-info {
    height: 1.68rem;
    width: 1.68rem;
}

.contextual-gate-callout {
    background: var(--color-surface-elevated, #fff);
    border: 1px solid var(--color-border);
    border-radius: 0.65rem;
    box-shadow: 0 10px 28px rgb(15 23 42 / 0.14);
    display: grid;
    gap: 0.35rem;
    max-width: min(18rem, calc(100vw - 2rem));
    padding: 0.55rem 0.65rem 0.45rem;
    position: absolute;
    z-index: 20;
}

.contextual-gate-callout--attach {
    inset-inline-end: 0;
    bottom: calc(100% + 0.35rem);
}

.contextual-gate-callout--attachments,
.contextual-gate-callout--project-upload {
    margin-top: 0.35rem;
    position: relative;
}

.contextual-gate-callout__close {
    justify-self: end;
    height: 1.45rem;
    width: 1.45rem;
}

.contextual-gate-callout .plan-upgrade-prompt--inline {
    margin: 0;
}

.conversation-file-card__warning,
.conversation-file-card__processing,
.conversation-file-card__worker-hint,
.conversation-file-card__ready,
.conversation-file-card__pending,
.project-file-card__warning,
.project-file-card__processing {
    color: var(--color-text-subtle);
    display: block;
    font-size: 0.58rem;
    line-height: 1.35;
}

.doc-chat-status--processing {
    color: var(--color-warning, #b45309);
}

.doc-chat-status--ready {
    color: var(--color-success, #15803d);
}

.doc-chat-status--failed,
.doc-chat-status--unsupported {
    color: var(--color-danger, #b91c1c);
}

.composer-selected-files {
    border-top: 1px dashed var(--color-border);
    margin-top: 0.35rem;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
    padding: 0.35rem 0.75rem 0.15rem;
}

.composer-selected-files__note,
.composer-selected-files__count {
    color: var(--color-text-subtle);
    font-size: 0.62rem;
    line-height: 1.35;
    margin: 0.15rem 0;
}

.composer-selected-files__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    max-width: 100%;
    min-width: 0;
}

.composer-selected-file-chip {
    align-items: center;
    background: var(--color-surface-muted);
    border: 1px solid var(--color-border);
    border-radius: 999px;
    display: inline-flex;
    gap: 0.2rem;
    max-width: 100%;
    min-width: 0;
    padding: 0.12rem 0.2rem 0.12rem 0.45rem;
}

.composer-selected-file-chip__name {
    font-size: 0.62rem;
    max-width: 9rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.composer-selected-file-chip__warning {
    color: var(--color-warning, #b45309);
    font-size: 0.62rem;
    font-weight: 700;
}

.composer-selected-file-chip__remove {
    flex: 0 0 auto;
}

.message-heavy-content__toggle {
    font-size: 0.62rem;
    margin-top: 0.25rem;
    max-width: 100%;
}

.message-text-block--collapsed .message__text {
    margin-bottom: 0.25rem;
}

.message-code-block--collapsed .message-code {
    max-height: 11rem;
}

.message-file-context,
.message-web-sources {
    border-top: 1px dashed var(--color-border);
    margin-top: 0.35rem;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
    padding-top: 0.35rem;
}

.message-web-sources__title {
    color: var(--color-text-subtle);
    display: block;
    font-size: 0.62rem;
    font-weight: 600;
}

.message-web-sources__used {
    color: var(--color-text-subtle);
    display: block;
    font-size: 0.62rem;
    margin-top: 0.1rem;
}

.message-web-sources__list {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    list-style: none;
    margin: 0.35rem 0 0;
    padding: 0;
}

.message-web-sources__item {
    background: var(--color-surface-muted, rgba(0, 0, 0, 0.03));
    border: 1px solid var(--color-border);
    border-radius: 0.45rem;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    max-width: 100%;
    min-width: 0;
    padding: 0.3rem 0.45rem;
}

.message-web-sources__link,
.message-web-sources__text {
    color: var(--color-text);
    font-size: 0.62rem;
    font-weight: 600;
    line-height: 1.35;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.message-web-sources__link {
    text-decoration: underline;
    text-underline-offset: 0.12rem;
}

.message-web-sources__snippet {
    color: var(--color-text-subtle);
    font-size: 0.58rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.message-web-sources__note {
    color: var(--color-text-subtle);
    display: block;
    font-size: 0.58rem;
    line-height: 1.35;
    margin-top: 0.3rem;
    overflow-wrap: anywhere;
}

.message-file-context__title {
    color: var(--color-text-subtle);
    display: block;
    font-size: 0.62rem;
    font-weight: 600;
}

.message-file-context__summary,
.message-file-context__note,
.message-file-context__warning {
    color: var(--color-text-subtle);
    font-size: 0.62rem;
    line-height: 1.35;
    margin: 0.15rem 0 0;
}

.message-file-context__files {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    list-style: none;
    margin: 0.2rem 0 0;
    max-width: 100%;
    min-width: 0;
    padding: 0;
}

.message-file-context__file {
    background: var(--color-surface-muted);
    border: 1px solid var(--color-border);
    border-radius: 999px;
    font-size: 0.6rem;
    max-width: 100%;
    overflow: hidden;
    padding: 0.1rem 0.45rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.conversation-attachments__list {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    list-style: none;
    margin: 0;
    max-width: 100%;
    min-width: 0;
    padding: 0;
}

.conversation-file-card {
    align-items: center;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    border-radius: 0.55rem;
    display: flex;
    gap: 0.42rem;
    max-width: 100%;
    min-width: 0;
    padding: 0.34rem 0.42rem;
}

.conversation-file-card--deleted {
    opacity: 0.62;
}

.conversation-file-card__type {
    align-items: center;
    background: var(--color-accent-soft);
    border-radius: 0.35rem;
    color: var(--color-accent-text, var(--color-accent));
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.58rem;
    font-weight: 600;
    justify-content: center;
    min-width: 2rem;
    padding: 0.18rem 0.28rem;
}

.conversation-file-card__meta {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 0.08rem;
    min-width: 0;
}

.conversation-file-card__name {
    font-size: 0.72rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.conversation-file-card__size,
.conversation-file-card__status {
    color: var(--color-text-subtle);
    font-size: 0.62rem;
}

.conversation-file-card__download {
    flex: 0 0 auto;
    font-size: 0.64rem;
    padding: 0.22rem 0.45rem;
}

.composer__send-button,
.composer__stop-button {
    height: 2.12rem;
    width: 2.12rem;
}

.composer__settings-note {
    color: var(--color-text-subtle);
    font-size: 0.66rem;
    line-height: 1.35;
    margin: 0.18rem 0 0;
    text-align: center;
}

.composer-hint {
    color: var(--color-text-subtle);
    display: block;
    font-size: 0.58rem;
    line-height: var(--line-height-ui);
    padding-inline: 0.2rem;
}

.composer-hint--desktop {
    display: block;
}

.composer-hint--mobile {
    display: none;
}

.composer-hint--pending {
    color: var(--color-accent);
}

.composer-pending {
    align-items: center;
    display: flex;
    gap: 0.32rem;
    justify-content: center;
    margin-top: 0.18rem;
    padding-inline: 0.2rem;
}

.composer-pending .composer-hint {
    display: inline;
    font-size: 0.62rem;
    margin: 0;
    padding: 0;
}

.scrollable {
    scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
    scrollbar-width: thin;
}

.error-strip {
    background: var(--color-warning-bg);
    border-top: 1px solid var(--color-warning-border);
    color: var(--color-warning-text);
    font-size: 0.76rem;
    padding: 0.46rem 0.9rem;
}

.conversation-list,
.message-list,
.message-code,
.composer__controls {
    scrollbar-width: thin;
    scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
}

.conversation-list::-webkit-scrollbar,
.message-list::-webkit-scrollbar,
.message-code::-webkit-scrollbar,
.composer__controls::-webkit-scrollbar {
    height: 9px;
    width: 9px;
}

.conversation-list::-webkit-scrollbar-track,
.message-list::-webkit-scrollbar-track,
.message-code::-webkit-scrollbar-track {
    background: var(--scrollbar-track);
    border-radius: 999px;
}

.conversation-list::-webkit-scrollbar-thumb,
.message-list::-webkit-scrollbar-thumb,
.message-code::-webkit-scrollbar-thumb {
    background: var(--scrollbar-thumb);
    border: 2px solid transparent;
    border-radius: 999px;
    background-clip: padding-box;
}

.conversation-list::-webkit-scrollbar-thumb:hover,
.message-list::-webkit-scrollbar-thumb:hover,
.message-code::-webkit-scrollbar-thumb:hover {
    background: var(--scrollbar-thumb-hover);
    background-clip: padding-box;
}

.empty-state {
    align-content: center;
    display: grid;
    justify-items: center;
    min-height: 0;
    overflow: auto;
    padding: 1.5rem var(--chat-column-gutter);
    text-align: center;
}

.empty-state--hero {
    justify-items: stretch;
}

.hero-panel {
    background: var(--color-surface-elevated);
    border: 1px solid var(--color-border);
    border-radius: 1.25rem;
    box-shadow: var(--shadow-panel);
    display: grid;
    gap: 0.8rem;
    justify-items: center;
    margin: 0 auto;
    max-width: 34rem;
    padding: 1.35rem;
}

.hero-panel h2,
.empty-state h2,
.profile-header h1,
.profile-card h2 {
    margin: 0;
}

.hero-panel p,
.empty-state p,
.profile-header p,
.profile-card p {
    color: var(--color-text-muted);
    line-height: 1.65;
    margin: 0;
}

.hero-badge {
    background: var(--color-accent-soft);
    border: 1px solid rgba(42, 157, 143, 0.22);
    border-radius: var(--radius-pill);
    color: var(--color-accent);
    display: inline-flex;
    font-size: 0.72rem;
    padding: 0.2rem 0.55rem;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    justify-content: center;
}

.profile-shell {
    display: grid;
    gap: 1rem;
    min-height: 0;
    overflow: auto;
    padding: 1rem;
}

.profile-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.profile-card {
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    border-radius: 1rem;
    padding: 1rem;
}

.profile-card dl {
    display: grid;
    gap: 0.5rem 1rem;
    grid-template-columns: auto 1fr;
    margin: 1rem 0 0;
}

.profile-card dt {
    color: var(--color-text-subtle);
}

.profile-form {
    display: grid;
    gap: 0.75rem;
    margin-top: 1rem;
}

.profile-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1rem;
}

.profile-tag {
    border-radius: var(--radius-pill);
    font-size: 0.78rem;
    padding: 0.35rem 0.7rem;
}

.profile-tag--enabled {
    background: var(--color-success-bg);
    color: var(--color-success-text);
}

.profile-tag--disabled {
    background: var(--color-danger-surface);
    color: var(--color-danger-surface-text);
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid var(--color-accent);
}

.invalid {
    outline: 1px solid #c23a4a;
}

.validation-message,
.error-page h1,
.error-page h2 {
    color: var(--color-danger-text);
}

.error-page {
    display: grid;
    gap: 0.8rem;
    margin: 0 auto;
    max-width: 40rem;
    padding: 1.4rem;
}

.error-page h1 {
    font-size: 1.75rem;
}

.error-page h2 {
    font-size: 1.08rem;
    font-weight: 600;
}

.error-page h3 {
    font-size: 1rem;
    margin: 1rem 0 0;
}

.error-page p {
    color: var(--color-text-muted);
    line-height: 1.8;
    margin: 0;
}

.error-page code {
    background: var(--color-action-bg);
    border-radius: var(--radius-sm);
    color: var(--color-action-text);
    font-family: Consolas, "Courier New", monospace;
    padding: 0.15rem 0.4rem;
}

.error-page__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-top: 0.4rem;
}

@keyframes pulse {
    0%,
    80%,
    100% {
        opacity: 0.32;
        transform: scale(0.88);
    }

    40% {
        opacity: 1;
        transform: scale(1);
    }
}

@media (min-width: 901px) {
    .sidebar-collapse-button {
        display: none;
    }

    .sidebar-backdrop.is-visible {
        display: none;
    }
}

@media (max-width: 900px) {
    :root,
    html[data-theme="light"],
    html[data-theme="dark"] {
        --chat-column-gutter: 0.85rem;
    }

    .workspace-shell,
    .workspace-shell--guest,
    .workspace-shell.is-sidebar-collapsed {
        grid-template-columns: 1fr;
        width: 100%;
        max-width: 100%;
    }

    .workspace-main {
        width: 100%;
        max-width: 100%;
    }

    .workspace-sidebar,
    .workspace-shell.is-sidebar-collapsed .workspace-sidebar {
        box-shadow: var(--shadow-floating);
        display: grid;
        inset-block: 0;
        inset-inline-start: 0;
        max-width: 86vw;
        opacity: 1;
        padding: 0.72rem 0.68rem;
        pointer-events: auto;
        position: fixed;
        transform: translateX(-105%);
        width: min(86vw, 16.5rem);
        z-index: 30;
    }

    html[dir="rtl"] .workspace-sidebar,
    html[dir="rtl"] .workspace-shell.is-sidebar-collapsed .workspace-sidebar {
        transform: translateX(105%);
    }

    .workspace-sidebar.is-open {
        transform: translateX(0);
    }

    .sidebar-collapse-button {
        display: none;
    }

    .workspace-topbar {
        min-height: 2.45rem;
        padding: 0.3rem 0.68rem;
    }

    .message-list {
        gap: 0.38rem;
        padding-block: 0.58rem 0.64rem;
    }

    .message-bubble.assistant {
        max-width: 100%;
    }

    .message-actions {
        opacity: 1;
    }

    .message-action-button {
        height: 1.72rem;
        width: 1.72rem;
    }

    .message-code {
        font-size: 12px;
        max-height: 11.5rem;
        padding: 0.46rem 0.54rem;
    }

    .conversation-header__inner {
        gap: 0.24rem;
        padding-block: 0.32rem;
    }

    .conversation-header__bar {
        gap: 0.38rem;
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    .conversation-header__title-row {
        gap: 0.24rem;
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .conversation-header__eyebrow {
        display: none;
    }

    .conversation-header__title {
        font-size: 0.9rem;
    }

    .header-menu-panel {
        min-width: 8.25rem;
    }

    .conversation-header__updated {
        display: none;
    }

    .composer {
        padding-block: 0.18rem 0.22rem;
    }

    .composer__card {
        border-radius: 0.88rem;
    }

    .composer__input-row {
        gap: 0.32rem;
        padding: 0.24rem 0.32rem 0.32rem;
    }

    .composer__controls {
        gap: 0.28rem;
        padding: 0.24rem 0.32rem;
    }

    .composer__send-button,
    .composer__stop-button,
    .topbar-icon-button,
    .icon-button {
        height: 1.8rem;
        width: 1.8rem;
    }

    .composer__textarea {
        font-size: 0.82rem;
        min-height: 1.6rem;
        padding: 0.1rem 0.05rem;
    }

    .composer-hint--desktop {
        display: none;
    }

    .composer-hint--mobile {
        display: block;
    }

    .composer__settings-note {
        font-size: 0.62rem;
    }

    .sidebar-header__tagline,
    .section-caption span,
    .sidebar-state,
    .conversation-link span {
        font-size: 0.68rem;
        line-height: 1.35;
    }

    .conversation-header__updated,
    .message-meta {
        font-size: 0.6rem;
    }

    .message-bubble p,
    .message-bubble small {
        font-size: 0.83rem;
        line-height: 1.45;
    }

    .message-bubble.assistant > *,
    .message-bubble.user {
        border-radius: 0.86rem;
    }

    .message-bubble.user {
        max-width: min(88%, 100%);
        padding: 0.44rem 0.56rem;
        width: auto;
    }

    .message-bubble.assistant > * {
        padding-inline: 0;
    }

    .message-bubble.assistant > .message-code-block {
        border-radius: 0.86rem;
    }

    .message-meta {
        padding-top: 0.1rem;
    }

    .message-code-toolbar {
        min-height: 1.68rem;
        padding: 0.14rem 0.2rem;
    }

    .message-code-language {
        font-size: 0.58rem;
    }

    .file-action-row--overflow .file-action-row__primary {
        display: none;
    }

    .file-action-row--overflow .file-action-overflow {
        display: block;
    }

    .conversation-file-card__actions,
    .project-file-card__actions.file-action-row {
        flex-wrap: nowrap;
        max-width: 100%;
        overflow: hidden;
    }

    .contextual-gate-callout {
        max-width: min(16rem, calc(100vw - 1.5rem));
    }

    .mode-badge {
        max-width: 5.4rem;
        padding-inline: 0.34rem;
    }
}

@media (max-width: 640px) {
    .profile-grid {
        grid-template-columns: 1fr;
    }

    .hero-panel {
        padding: 1rem;
    }

    .hero-actions {
        align-items: stretch;
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .conversation-search {
        grid-template-columns: minmax(0, 1fr) auto;
    }
}

.project-tree-section {
    display: grid;
    gap: 0.48rem;
    min-height: 0;
    overflow: hidden;
}

.project-tree__header {
    align-items: center;
    display: flex;
    gap: 0.35rem;
    justify-content: space-between;
    min-width: 0;
}

.project-tree__title {
    color: var(--color-text-sidebar-muted);
    font-size: 0.68rem;
    font-weight: 600;
    line-height: var(--line-height-ui);
}

.project-tree__header-actions {
    align-items: center;
    display: inline-flex;
    gap: 0.15rem;
    min-width: 0;
}

.project-tree__manage {
    color: var(--color-text-sidebar);
}

.project-tree__manage:hover:not(:disabled),
.project-tree__manage:focus-visible:not(:disabled) {
    background: var(--color-surface-subtle);
    color: var(--color-text-primary);
}

.project-tree__new {
    background: transparent;
    border: 0;
    color: var(--color-text-link);
    cursor: pointer;
    font: inherit;
    font-size: 0.68rem;
    font-weight: 600;
    line-height: var(--line-height-ui);
    padding: 0.1rem 0.2rem;
    white-space: nowrap;
}

.project-tree__new:hover:not(:disabled),
.project-tree__new:focus-visible:not(:disabled) {
    text-decoration: underline;
}

.project-tree {
    align-content: start;
    display: grid;
    gap: 0.22rem;
    grid-auto-rows: max-content;
    min-height: 0;
    overflow: auto;
    padding-inline-end: 0.15rem;
}

.project-tree__node {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
}

.project-tree__node-row {
    align-items: center;
    display: grid;
    gap: 0.18rem;
    grid-template-columns: auto minmax(0, 1fr);
    min-width: 0;
}

.project-tree__chevron {
    align-items: center;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 0.55rem;
    color: var(--color-text-sidebar-muted);
    cursor: pointer;
    display: inline-flex;
    height: 1.65rem;
    justify-content: center;
    padding: 0;
    transition: background 0.14s ease, transform 0.14s ease;
    width: 1.65rem;
}

.project-tree__chevron:hover:not(:disabled),
.project-tree__chevron:focus-visible:not(:disabled) {
    background: var(--color-hover-bg);
    color: var(--color-text-sidebar);
}

.project-tree__chevron--expanded {
    transform: rotate(180deg);
}

.project-tree__chevron--rtl:not(.project-tree__chevron--expanded) {
    transform: rotate(90deg);
}

.project-tree__chevron--rtl.project-tree__chevron--expanded {
    transform: rotate(-90deg);
}

.project-tree__node-label {
    background: transparent;
    border: 1px solid transparent;
    border-radius: 0.68rem;
    color: var(--color-text-sidebar);
    cursor: pointer;
    font: inherit;
    font-size: 0.76rem;
    font-weight: 600;
    line-height: var(--line-height-ui);
    min-width: 0;
    overflow: hidden;
    padding: 0.32rem 0.45rem;
    text-align: start;
    text-overflow: ellipsis;
    transition: background 0.14s ease, border-color 0.14s ease;
    white-space: nowrap;
    width: 100%;
}

.project-tree__node-label:hover:not(:disabled),
.project-tree__node-label:focus-visible:not(:disabled) {
    background: var(--color-hover-bg);
    border-color: var(--color-border-input);
}

.project-tree__node-label--selected {
    background: rgba(255, 255, 255, 0.04);
    border-color: var(--color-border-input);
}

.project-tree__node-label--general {
    background: var(--color-accent-soft);
    border-color: rgba(42, 157, 143, 0.22);
    color: var(--color-accent-text);
}

.project-tree__node-label--general:hover:not(:disabled),
.project-tree__node-label--general:focus-visible:not(:disabled) {
    background: rgba(42, 157, 143, 0.2);
    border-color: rgba(42, 157, 143, 0.32);
}

.project-tree__node-label--general.project-tree__node-label--selected {
    background: rgba(42, 157, 143, 0.24);
    border-color: rgba(42, 157, 143, 0.36);
}

.project-tree__children {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
    padding-inline-start: 1.35rem;
}

.project-tree__children--search {
    padding-inline-start: 0.35rem;
}

.project-tree__empty {
    color: var(--color-text-sidebar-muted);
    font-size: 0.68rem;
    line-height: var(--line-height-ui);
    margin: 0;
    padding: 0.15rem 0.45rem;
}

.project-tree__conversation--child {
    min-height: 1.85rem;
    padding: 0.28rem 0.42rem;
}

.project-tree__conversation--child strong {
    font-size: 0.72rem;
    font-weight: 500;
}

.project-tree__group {
    display: grid;
    gap: 0.15rem;
    min-width: 0;
}

.project-tree__group-label {
    color: var(--color-text-sidebar-muted);
    font-size: 0.68rem;
    font-weight: 600;
    line-height: var(--line-height-ui);
    padding: 0.15rem 0.35rem;
}

.project-switcher {
    display: grid;
    gap: 0.32rem;
    margin: 0;
    min-width: 0;
}

.project-switcher__label {
    color: var(--color-text-sidebar-muted);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: normal;
    line-height: var(--line-height-ui);
    text-transform: none;
}

.project-switcher__row {
    align-items: center;
    display: grid;
    gap: 0.35rem;
    grid-template-columns: minmax(0, 1fr) auto;
}

.project-switcher__select {
    background: var(--color-input-bg);
    border: 1px solid var(--color-border-input);
    border-radius: 0.68rem;
    color: var(--color-text-sidebar);
    font: inherit;
    font-size: 0.74rem;
    min-width: 0;
    padding: 0.36rem 0.52rem;
    width: 100%;
}

.project-switcher__new {
    align-self: start;
    background: transparent;
    border: 0;
    color: var(--color-text-link);
    font-size: 0.72rem;
    font-weight: 600;
    justify-self: start;
    line-height: var(--line-height-ui);
    min-height: auto;
    padding: 0.12rem 0.05rem;
    text-align: start;
}

.project-switcher__new:hover:not(:disabled) {
    color: var(--color-accent-text);
    text-decoration: underline;
}

.mode-badge--project {
    max-width: 7.5rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mode-badge--archived {
    border-color: rgba(148, 163, 184, 0.35);
    color: var(--color-text-muted);
}

.mode-badge--project-active {
    border-color: rgba(59, 130, 246, 0.35);
    background: rgba(59, 130, 246, 0.08);
}

.mode-badge--project-muted {
    opacity: 0.85;
}

.project-panel-backdrop {
    align-items: center;
    background: rgba(3, 8, 14, 0.62);
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 1rem;
    position: fixed;
    z-index: 40;
}

.project-panel {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 1rem;
    box-shadow: var(--shadow-panel);
    display: grid;
    gap: 0.75rem;
    max-height: min(92vh, 44rem);
    max-width: 32rem;
    overflow: auto;
    padding: 0.9rem;
    width: min(100%, 32rem);
}

.project-panel--manage,
.project-panel--confirm {
    max-width: 28rem;
}

.project-panel__header {
    align-items: center;
    display: flex;
    gap: 0.5rem;
    justify-content: space-between;
}

.project-panel__title {
    font-size: 0.98rem;
    font-weight: 700;
    line-height: var(--line-height-ui);
    margin: 0;
}

.project-panel__body {
    display: grid;
    gap: 0.65rem;
}

.project-panel__body--list {
    gap: 0.9rem;
}

.project-panel__field {
    display: grid;
    gap: 0.35rem;
}

.project-panel__input,
.project-panel__select,
.project-panel__textarea {
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border-input);
    border-radius: 0.72rem;
    color: var(--color-text-primary);
    font: inherit;
    font-size: 0.84rem;
    line-height: var(--line-height-body);
    padding: 0.48rem 0.62rem;
    width: 100%;
}

.project-panel__textarea {
    min-height: 6.5rem;
    resize: vertical;
}

.project-panel__field > span:first-child {
    color: var(--color-text-muted);
    font-size: 0.76rem;
    font-weight: 600;
}

.project-panel__hint,
.project-panel__counter {
    color: var(--color-text-subtle);
    font-size: 0.74rem;
    line-height: var(--line-height-ui);
}

.project-panel__footer {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    justify-content: space-between;
}

.project-panel__footer-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-inline-start: auto;
}

.project-panel__section-title {
    color: var(--color-text-muted);
    font-size: 0.82rem;
    margin: 0;
}

.project-manage-list {
    display: grid;
    gap: 0.55rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.project-manage-list__item {
    align-items: center;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    border-radius: 0.72rem;
    display: flex;
    gap: 0.55rem;
    justify-content: space-between;
    min-width: 0;
    padding: 0.52rem 0.62rem;
    transition: background 0.14s ease, border-color 0.14s ease;
}

.project-manage-list__item:hover,
.project-manage-list__item:focus-within {
    background: var(--color-hover-bg);
    border-color: var(--color-border-input);
}

.project-manage-list__copy {
    display: grid;
    gap: 0.15rem;
    min-width: 0;
}

.project-manage-list__copy strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.project-manage-list__copy span {
    color: var(--color-text-muted);
    font-size: 0.82rem;
}

.project-manage-list__actions {
    display: flex;
    flex: 0 0 auto;
    flex-wrap: wrap;
    gap: 0.35rem;
    justify-content: flex-end;
    max-width: 100%;
    min-width: 0;
}

.project-panel--files {
    max-width: 36rem;
    width: min(100%, 36rem);
}

.project-files-panel__body {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
}

.project-files-panel__heading {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
}

.project-files-panel__subtitle {
    color: var(--color-text-muted);
    font-size: 0.78rem;
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.project-files-panel__safety-note,
.project-files-panel__ai-note {
    color: var(--color-text-subtle);
    font-size: 0.68rem;
    line-height: 1.4;
    margin: 0;
}

.project-files-panel__warning {
    color: var(--color-warning-text, #9a6700);
    font-size: 0.72rem;
    margin: 0;
}

.project-files-panel__feedback {
    color: var(--color-text-muted);
    font-size: 0.72rem;
    margin: 0;
}

.project-files-panel__upload-row {
    display: flex;
    max-width: 100%;
    min-width: 0;
}

.project-files-panel__upload-button {
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.project-files-quota {
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    border-radius: 0.65rem;
    display: grid;
    gap: 0.28rem;
    max-width: 100%;
    min-width: 0;
    padding: 0.45rem 0.55rem;
}

.project-files-quota__row {
    align-items: baseline;
    display: flex;
    font-size: 0.68rem;
    gap: 0.45rem;
    justify-content: space-between;
    min-width: 0;
}

.project-files-quota__label {
    color: var(--color-text-muted);
    flex: 0 0 auto;
}

.project-files-quota__value {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-align: end;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.project-files-list {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    list-style: none;
    margin: 0;
    max-width: 100%;
    min-width: 0;
    padding: 0;
}

.project-file-card {
    align-items: flex-start;
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    border-radius: 0.55rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.42rem;
    max-width: 100%;
    min-width: 0;
    padding: 0.42rem 0.48rem;
}

.project-file-card--deleted {
    opacity: 0.62;
}

.project-file-card__type {
    align-items: center;
    background: var(--color-accent-soft);
    border-radius: 0.35rem;
    color: var(--color-accent-text, var(--color-accent));
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.58rem;
    font-weight: 600;
    justify-content: center;
    min-width: 2rem;
    padding: 0.18rem 0.28rem;
}

.project-file-card__meta {
    display: flex;
    flex: 1 1 8rem;
    flex-direction: column;
    gap: 0.08rem;
    min-width: 0;
}

.project-file-card__name {
    font-size: 0.74rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.project-file-card__detail,
.project-file-card__status {
    color: var(--color-text-subtle);
    font-size: 0.62rem;
}

.project-file-card__actions {
    display: flex;
    flex: 0 0 auto;
    flex-wrap: wrap;
    gap: 0.3rem;
    max-width: 100%;
    min-width: 0;
}

.project-file-card__action {
    font-size: 0.64rem;
    padding: 0.22rem 0.45rem;
}

.move-project-dialog {
    margin-top: 0.45rem;
}

.move-project-dialog__title {
    display: block;
    margin-bottom: 0.45rem;
}

.move-project-dialog__body {
    color: var(--color-text-muted);
    margin: 0 0 0.65rem;
}

.move-project-dialog__options {
    display: grid;
    gap: 0.25rem;
    margin-bottom: 0.55rem;
}

.memory-panel {
    max-width: 34rem;
    width: min(100%, 34rem);
}

.memory-panel__header {
    align-items: flex-start;
}

.memory-panel__heading {
    display: grid;
    gap: 0.18rem;
    min-width: 0;
}

.memory-panel__subtitle {
    color: var(--color-text-subtle);
    font-size: 0.74rem;
    line-height: var(--line-height-ui);
    margin: 0;
}

.memory-panel__body {
    gap: 0.72rem;
}

.memory-status-card {
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    border-radius: 0.78rem;
    display: grid;
    gap: 0.38rem;
    padding: 0.62rem 0.68rem;
}

.memory-status-card__row {
    align-items: flex-start;
    display: flex;
    gap: 0.65rem;
    justify-content: space-between;
}

.memory-status-card__copy {
    display: grid;
    gap: 0.35rem;
}

.memory-status-card__label {
    color: var(--color-text-primary);
    font-size: 0.8rem;
    font-weight: 600;
    line-height: var(--line-height-ui);
}

.memory-status-card__hint,
.memory-status-card__policy {
    color: var(--color-text-subtle);
    font-size: 0.74rem;
    line-height: var(--line-height-ui);
    margin: 0;
}

.memory-toggle {
    align-items: center;
    color: var(--color-text-muted);
    display: inline-flex;
    font-size: 0.76rem;
    gap: 0.4rem;
    line-height: var(--line-height-ui);
}

.memory-panel__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.38rem;
}

.memory-panel__action {
    min-width: 0;
}

.memory-tabs {
    display: grid;
    gap: 0.35rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.memory-tabs__tab {
    background: transparent;
    border: 1px solid var(--color-border);
    border-radius: 0.68rem;
    color: var(--color-text-muted);
    cursor: pointer;
    font: inherit;
    font-size: 0.76rem;
    font-weight: 600;
    line-height: var(--line-height-ui);
    padding: 0.38rem 0.48rem;
    transition: background 0.14s ease, border-color 0.14s ease, color 0.14s ease;
}

.memory-tabs__tab:hover:not(.memory-tabs__tab--active) {
    background: var(--color-hover-bg);
    border-color: var(--color-border-input);
}

.memory-tabs__tab:focus-visible {
    box-shadow: var(--shadow-focus);
    outline: none;
}

.memory-tabs__tab--active {
    background: var(--color-accent-soft);
    border-color: rgba(42, 157, 143, 0.35);
    color: var(--color-accent-text);
}

.memory-card-list {
    display: grid;
    gap: 0.55rem;
}

.memory-card {
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    border-radius: 0.72rem;
    display: grid;
    gap: 0.32rem;
    min-width: 0;
    padding: 0.52rem 0.58rem;
}

.memory-card--disabled {
    opacity: 0.58;
}

.memory-card__header {
    align-items: flex-start;
    display: flex;
    gap: 0.5rem;
    justify-content: space-between;
    min-width: 0;
}

.memory-card__copy {
    display: grid;
    gap: 0.2rem;
    min-width: 0;
}

.memory-card__title {
    font-size: 0.8rem;
    font-weight: 600;
    line-height: var(--line-height-ui);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.memory-card__meta {
    color: var(--color-text-subtle);
    display: flex;
    flex-wrap: wrap;
    font-size: 0.7rem;
    gap: 0.3rem;
    line-height: var(--line-height-ui);
}

.memory-card__badge {
    color: var(--color-accent-text);
    font-weight: 600;
}

.memory-card__actions {
    display: flex;
    flex-shrink: 0;
    gap: 0.15rem;
}

.memory-card__preview {
    color: var(--color-text-muted);
    font-size: 0.8rem;
    line-height: var(--line-height-body);
    margin: 0;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}

.memory-editor-panel {
    max-width: 30rem;
}

.settings-panel {
    display: grid;
    gap: 0.75rem;
    max-height: min(92vh, 44rem);
    max-width: min(100%, 52rem);
    overflow: hidden;
    padding: 0.9rem;
    width: min(100%, 52rem);
}

.settings-panel__header {
    flex-shrink: 0;
}

.settings-panel__layout {
    display: grid;
    gap: 0.85rem;
    grid-template-columns: 10.5rem minmax(0, 1fr);
    min-height: 0;
    overflow: hidden;
}

.settings-panel__tabs {
    display: grid;
    gap: 0.22rem;
    min-width: 0;
}

.settings-panel__tab {
    align-items: center;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 0.72rem;
    color: var(--color-text-muted);
    cursor: pointer;
    display: flex;
    font: inherit;
    font-size: 0.78rem;
    font-weight: 600;
    gap: 0.35rem;
    justify-content: space-between;
    line-height: var(--line-height-ui);
    min-height: 2rem;
    padding: 0.38rem 0.55rem;
    text-align: inherit;
    width: 100%;
}

.settings-panel__tab:hover:not(:disabled),
.settings-panel__tab:focus-visible:not(:disabled) {
    background: var(--color-surface-subtle);
    border-color: var(--color-border);
    color: var(--color-text-primary);
}

.settings-panel__tab--active {
    background: var(--color-surface-subtle);
    border-color: var(--color-border);
    color: var(--color-text-primary);
}

.settings-panel__tab--coming-soon {
    cursor: not-allowed;
    opacity: 0.72;
}

.settings-panel__tab-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.settings-panel__tab-badge {
    color: var(--color-text-muted);
    flex-shrink: 0;
    font-size: 0.64rem;
    font-weight: 600;
}

.settings-panel__content {
    display: grid;
    gap: 0.65rem;
    min-height: 0;
    min-width: 0;
    overflow: auto;
}

.settings-panel__placeholder {
    background: var(--color-surface-subtle);
    border: 1px dashed var(--color-border);
    border-radius: 0.85rem;
    display: grid;
    gap: 0.35rem;
    padding: 1rem;
    text-align: center;
}

.settings-panel__placeholder strong {
    font-size: 0.88rem;
}

.settings-panel__placeholder p {
    color: var(--color-text-muted);
    font-size: 0.78rem;
    margin: 0;
}

.memory-panel__embedded {
    display: grid;
    gap: 0.55rem;
}

.memory-panel__subtitle--embedded {
    margin: 0;
}

.memory-panel__body--embedded {
    display: grid;
    gap: 0.65rem;
    padding: 0;
}

@media (max-width: 900px) {
    .project-panel-backdrop {
        align-items: stretch;
        padding: 0;
    }

    .project-panel {
        border-radius: 0;
        max-height: none;
        max-width: none;
        min-height: 100%;
        width: 100%;
    }

    .memory-card__actions {
        flex-wrap: wrap;
    }

    .project-manage-list__item {
        align-items: flex-start;
        flex-direction: column;
    }

    .project-manage-list__actions {
        justify-content: flex-start;
        width: 100%;
    }

    .project-file-card {
        align-items: stretch;
    }

    .project-file-card__actions {
        width: 100%;
    }

    .mode-badge--project {
        max-width: 5.5rem;
    }

    .settings-panel__layout {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto minmax(0, 1fr);
    }

    .settings-panel__tabs {
        grid-auto-flow: column;
        grid-auto-columns: minmax(6.5rem, 1fr);
        overflow-x: auto;
        overscroll-behavior-x: contain;
        padding-bottom: 0.15rem;
    }

    .settings-panel__tab {
        justify-content: center;
        min-width: 6.5rem;
    }

    .settings-panel__tab-badge {
        display: none;
    }

    .settings-panel.settings-panel,
    .project-panel.settings-panel {
        border-radius: 0;
        max-height: none;
        max-width: none;
        min-height: 100dvh;
        width: 100%;
    }
}

.conversation-link--locked {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
}

.conversation-link--locked .conversation-link__title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.conversation-link__lock {
    display: inline-flex;
    flex: 0 0 auto;
    color: var(--muted-foreground, #64748b);
}

.conversation-lock-panel {
    display: flex;
    justify-content: center;
    padding: 1.25rem 1rem 0.5rem;
    min-width: 0;
}

.conversation-lock-panel__card {
    width: min(100%, 34rem);
    border: 1px solid var(--border, #e2e8f0);
    border-radius: 1rem;
    padding: 1.25rem 1.1rem;
    background: var(--card, #fff);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}

.conversation-lock-panel__icon {
    display: flex;
    justify-content: center;
    margin-bottom: 0.75rem;
}

.conversation-lock-panel__lock-icon {
    width: 1.6rem;
    height: 1.6rem;
}

.conversation-lock-panel__title {
    margin: 0 0 0.65rem;
    text-align: center;
    font-size: 1.15rem;
}

.conversation-lock-panel__lead,
.conversation-lock-panel__unavailable,
.conversation-lock-panel__dev-note,
.conversation-lock-panel__status {
    margin: 0.65rem 0 0;
    color: var(--muted-foreground, #475569);
    line-height: 1.55;
}

.conversation-lock-panel__notes {
    margin: 0.85rem 0 0;
    padding-inline-start: 1.1rem;
    color: var(--muted-foreground, #475569);
    line-height: 1.55;
}

.conversation-lock-panel__action {
    width: 100%;
    margin-top: 1rem;
}

.privacy-settings {
    display: grid;
    gap: 0.85rem;
    min-width: 0;
}

.privacy-settings__intro,
.privacy-settings__footer {
    margin: 0;
    color: var(--muted-foreground, #475569);
    line-height: 1.55;
}

.privacy-settings__card {
    border: 1px solid var(--border, #e2e8f0);
    border-radius: 0.85rem;
    padding: 0.85rem 0.95rem;
    background: var(--card, #fff);
}

.privacy-settings__heading {
    margin: 0 0 0.35rem;
    font-size: 0.98rem;
}

.privacy-settings__card p {
    margin: 0;
    color: var(--muted-foreground, #475569);
    line-height: 1.55;
}

.sidebar-scope-hint {
    margin: 0.35rem 0 0;
    padding: 0 0.15rem;
    font-size: 0.78rem;
    line-height: 1.4;
    color: var(--color-text-muted, #64748b);
}

.conversation-context-status {
    margin: 0.35rem 0 0.5rem;
    padding: 0.65rem 0.95rem;
    border: 1px solid var(--border, #e2e8f0);
    border-radius: 0.85rem;
    background: var(--card, #fff);
    min-width: 0;
    overflow-x: hidden;
}

.conversation-context-status__title {
    display: block;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--color-text-muted, #64748b);
    margin-bottom: 0.4rem;
}

.conversation-context-status__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.conversation-context-status__chip {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.78rem;
    line-height: 1.35;
    border: 1px solid var(--border, #e2e8f0);
    background: var(--muted, #f8fafc);
    max-width: 100%;
}

.conversation-context-status__chip--active {
    border-color: rgba(59, 130, 246, 0.35);
    background: rgba(59, 130, 246, 0.08);
    color: var(--color-accent-text, #1d4ed8);
}

.conversation-context-status__chip--suppressed {
    border-color: rgba(234, 179, 8, 0.35);
    background: rgba(234, 179, 8, 0.1);
}

.conversation-context-status__chip--inactive,
.conversation-context-status__chip--muted {
    color: var(--color-text-muted, #64748b);
}

.conversation-context-status__hint {
    margin: 0.45rem 0 0;
    font-size: 0.78rem;
    line-height: 1.45;
    color: var(--color-text-muted, #64748b);
}

.memory-status-card__policy--emphasis {
    font-weight: 600;
}

.project-tree__empty-projects {
    margin: 0.35rem 0;
}

.conversation-privacy-controls {
    margin: 0.35rem 0 0.5rem;
    padding: 0.75rem 0.95rem;
    border: 1px solid var(--border, #e2e8f0);
    border-radius: 0.85rem;
    background: var(--card, #fff);
    min-width: 0;
    overflow-x: hidden;
}

.conversation-privacy-controls__status-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.65rem;
    min-width: 0;
}

.conversation-privacy-controls__status-label {
    color: var(--muted-foreground, #475569);
    font-size: 0.9rem;
}

.conversation-privacy-controls__status-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0.15rem 0.55rem;
    font-size: 0.82rem;
    font-weight: 600;
    border: 1px solid transparent;
}

.conversation-privacy-controls__status-badge--normal {
    background: #f1f5f9;
    color: #334155;
}

.conversation-privacy-controls__status-badge--private {
    background: #ecfeff;
    color: #0f766e;
    border-color: #99f6e4;
}

.conversation-privacy-controls__status-badge--locked {
    background: #fff7ed;
    color: #c2410c;
    border-color: #fdba74;
}

.conversation-privacy-controls__status-badge--private-locked {
    background: #eef2ff;
    color: #4338ca;
    border-color: #c7d2fe;
}

.conversation-privacy-controls__private-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    color: #0f766e;
    font-size: 0.82rem;
}

.conversation-privacy-controls__private-icon {
    width: 0.95rem;
    height: 0.95rem;
}

.conversation-privacy-controls__note {
    margin: 0.55rem 0 0;
    color: var(--muted-foreground, #475569);
    line-height: 1.5;
    font-size: 0.88rem;
}

.conversation-privacy-controls__note--project {
    color: #0f766e;
}

.conversation-privacy-controls__note--muted {
    font-size: 0.84rem;
}

.conversation-privacy-controls__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.65rem;
}

.conversation-privacy-controls__action {
    min-width: 0;
}

.conversation-link--private .conversation-link__private-icon {
    width: 0.9rem;
    height: 0.9rem;
    color: #0f766e;
}

.conversation-link__private {
    display: inline-flex;
    align-items: center;
    margin-inline-end: 0.25rem;
}

.conversation-tone-controls {
    margin: 0 auto;
    max-width: var(--chat-column-max, 48rem);
    padding: 0.35rem 1rem 0;
    width: 100%;
}

.conversation-tone-controls__row {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 0.65rem;
    min-width: 0;
}

.conversation-tone-controls__select {
    flex: 1 1 12rem;
    max-width: 100%;
    min-width: 0;
}

.conversation-tone-controls__trigger {
    min-height: 2rem;
}

.conversation-tone-controls__menu {
    max-height: 18rem;
    overflow-y: auto;
}

.conversation-tone-controls__option {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.15rem;
    text-align: start;
}

.conversation-tone-controls__option-label {
    font-weight: 600;
}

.conversation-tone-controls__option-description {
    color: var(--muted-foreground, #64748b);
    font-size: 0.78rem;
    font-weight: 400;
    line-height: 1.35;
}

.conversation-tone-controls__help,
.conversation-tone-controls__note,
.conversation-tone-controls__status {
    color: var(--muted-foreground, #64748b);
    font-size: 0.78rem;
    line-height: 1.45;
    margin: 0.35rem 0 0;
}

.conversation-tone-controls__status {
    color: var(--color-accent-text, var(--color-accent));
}

.mode-badge--tone {
    background: #f8fafc;
    border-color: #cbd5e1;
    color: #334155;
    max-width: 9rem;
}

.conversation-route-preview {
    margin: 0 auto;
    max-width: var(--chat-column-max, 48rem);
    padding: 0.35rem 1rem 0;
    width: 100%;
}

.conversation-route-preview__status,
.conversation-route-preview__panel {
    margin-bottom: 0.45rem;
}

.conversation-route-preview__heading {
    color: var(--muted-foreground, #64748b);
    font-size: 0.78rem;
    font-weight: 600;
    margin-bottom: 0.35rem;
}

.conversation-route-preview__grid {
    display: grid;
    gap: 0.35rem 0.75rem;
    grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
    margin: 0;
}

.conversation-route-preview__item {
    min-width: 0;
}

.conversation-route-preview__item dt {
    color: var(--muted-foreground, #64748b);
    font-size: 0.72rem;
    margin: 0;
}

.conversation-route-preview__item dd {
    font-size: 0.84rem;
    margin: 0.1rem 0 0;
    overflow-wrap: anywhere;
}

.conversation-route-preview__item--wide {
    grid-column: 1 / -1;
}

.conversation-route-preview__trigger,
.conversation-route-preview__menu {
    width: 100%;
}

.conversation-route-preview__option {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.15rem;
}

.conversation-route-preview__option-label {
    font-weight: 600;
}

.conversation-route-preview__option-status,
.conversation-route-preview__note,
.conversation-route-preview__capability {
    color: var(--muted-foreground, #64748b);
    font-size: 0.78rem;
    line-height: 1.45;
    margin: 0.35rem 0 0;
}

.conversation-route-preview__note--private {
    color: #92400e;
}

.conversation-route-preview__model-picker {
    border-top: 1px solid var(--border-subtle);
    margin-top: 0.35rem;
    padding-top: 0.35rem;
}

.conversation-route-preview__model-picker-label {
    display: block;
    font-size: 0.72rem;
    color: var(--muted-foreground, #64748b);
    margin-bottom: 0.25rem;
}

.conversation-route-preview__capability--unavailable {
    color: #b45309;
}

.conversation-route-preview__preview-tag {
    display: inline-block;
    margin-inline-start: 0.35rem;
    padding: 0.05rem 0.35rem;
    border-radius: 999px;
    background: #f1f5f9;
    font-size: 0.68rem;
}

.conversation-route-preview__hints,
.conversation-route-preview__cost {
    margin-bottom: 0.45rem;
}

.conversation-route-preview__cost-tier {
    font-size: 0.84rem;
    line-height: 1.45;
    margin: 0.15rem 0 0.35rem;
}

.message-route-badge {
    color: var(--muted-foreground, #64748b);
    font-size: 0.72rem;
    line-height: 1.4;
    margin: 0.35rem 0 0;
}

.composer-dictation {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    padding: 0.65rem 0.85rem 0.75rem;
    border-top: 1px solid var(--border-subtle);
}

.composer-dictation__unsupported {
    margin: 0;
    padding: 0.55rem 0.85rem;
    color: var(--text-muted);
    font-size: 0.82rem;
}

.composer-dictation__status {
    margin: 0;
    color: var(--text-secondary);
    font-size: 0.84rem;
}

.composer-dictation__recording {
    display: flex;
    align-items: center;
    gap: 0.55rem;
}

.composer-dictation__pulse {
    width: 0.65rem;
    height: 0.65rem;
    border-radius: 999px;
    background: var(--accent-danger, #d64545);
    animation: composer-dictation-pulse 1.2s ease-in-out infinite;
}

.composer-dictation__timer {
    font-variant-numeric: tabular-nums;
    color: var(--text-secondary);
    font-size: 0.82rem;
}

.composer-dictation__label {
    color: var(--text-primary);
    font-size: 0.84rem;
}

.composer-dictation__preview-label {
    margin: 0;
    color: var(--text-secondary);
    font-size: 0.82rem;
}

.composer-dictation__preview {
    width: 100%;
    min-height: 3.2rem;
    resize: vertical;
    border: 1px solid var(--border-subtle);
    border-radius: 0.65rem;
    background: var(--surface-elevated);
    color: var(--text-primary);
    padding: 0.55rem 0.65rem;
    font: inherit;
}

.composer-dictation__controls,
.composer-dictation__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.composer-dictation__action {
    border: 1px solid var(--border-subtle);
    border-radius: 999px;
    background: transparent;
    color: var(--text-primary);
    padding: 0.35rem 0.75rem;
    font-size: 0.82rem;
    cursor: pointer;
}

.composer-dictation__action--primary {
    background: var(--accent-primary);
    border-color: transparent;
    color: var(--text-on-accent, #fff);
}

.composer-dictation__note {
    margin: 0;
    color: var(--text-muted);
    font-size: 0.78rem;
    line-height: 1.45;
}

.composer-dictation__note--secondary {
    opacity: 0.92;
}

.composer__dictation-button--active {
    color: var(--accent-danger, #d64545);
}

@keyframes composer-dictation-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.45; transform: scale(0.92); }
}

@media (max-width: 640px) {
    .composer-dictation {
        padding-inline: 0.65rem;
    }

    .composer-dictation__actions,
    .composer-dictation__controls {
        flex-direction: column;
        align-items: stretch;
    }

    .composer-dictation__action {
        width: 100%;
        text-align: center;
    }
}
