/* Atlas Steel — My Mail design system */
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=Source+Sans+3:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap');

:root {
    --color-bg-0: #e8eef4;
    --color-bg-1: #f4f7fa;
    --color-surface: #ffffff;
    --color-ink: #142033;
    --color-muted: #5a6b7d;
    --color-line: #c5d0dc;
    --color-accent: #1f5f8b;
    --color-accent-hover: #184a6c;
    --color-success: #1f6b4a;
    --color-success-bg: #e8f5ef;
    --color-warning: #9a6b12;
    --color-warning-bg: #fbf3e0;
    --color-pending: #3d6f8f;
    --color-pending-bg: #e4eef4;
    --color-danger: #a33b32;
    --color-danger-bg: #f8eaea;
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --elev-1: 0 1px 2px rgba(20, 32, 51, 0.06);
    --motion-fast: 120ms;
    --motion-med: 200ms;
    --ease: cubic-bezier(0.2, 0.8, 0.2, 1);
    --rail-width: 220px;
    --rail-narrow: 220px;
    --list-width: 420px;
    --list-width-min: 340px;
    --reading-content-max: 960px;
    --font-brand: "Space Grotesk", "Segoe UI", sans-serif;
    --font-body: "Source Sans 3", "Segoe UI", sans-serif;
    --font-mono: "IBM Plex Mono", Consolas, monospace;
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 24px;
    --space-6: 32px;
    --space-7: 48px;
}

@media (prefers-reduced-motion: reduce) {
    :root {
        --motion-fast: 0ms;
        --motion-med: 0ms;
    }
}

/* Author display:* rules beat the UA [hidden] stylesheet without !important */
[hidden] {
    display: none !important;
}

*, *::before, *::after { box-sizing: border-box; }

body {
    margin: 0;
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.5;
    color: var(--color-ink);
    background:
        linear-gradient(rgba(20, 32, 51, 0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(20, 32, 51, 0.04) 1px, transparent 1px),
        linear-gradient(165deg, #d9e4ef 0%, #f4f7fa 42%, #eef2f6 100%);
    background-size: 24px 24px, 24px 24px, auto;
    min-height: 100vh;
}

a { color: var(--color-accent); text-decoration: none; }
a:hover { text-decoration: underline; color: var(--color-accent-hover); }

:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

h1, h2, h3, .brand-name {
    font-family: var(--font-brand);
    font-weight: 600;
    letter-spacing: -0.02em;
    margin: 0 0 var(--space-3);
}

h1 { font-size: 1.5rem; font-weight: 700; }
h2 { font-size: 1.25rem; }

.muted { color: var(--color-muted); font-size: 0.875rem; }
.mono { font-family: var(--font-mono); font-size: 0.8125rem; }
.caption {
    font-size: 0.75rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-muted);
}

/* —— App shell —— */
.app-shell {
    display: grid;
    grid-template-columns: var(--rail-width) 1fr;
    min-height: 100vh;
}

.app-shell.is-guest {
    display: block;
}

.rail {
    position: sticky;
    top: 0;
    height: 100vh;
    width: var(--rail-width);
    min-width: var(--rail-width);
    max-width: var(--rail-width);
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 0;
    background: var(--color-surface);
    border-right: 1px solid var(--color-line);
    z-index: 40;
    animation: rail-in var(--motion-med) var(--ease);
    overflow: hidden;
}

@keyframes rail-in {
    from { opacity: 0; transform: translateX(-8px); }
    to { opacity: 1; transform: none; }
}

.rail-header {
    flex-shrink: 0;
    padding: var(--space-3) 12px 10px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.brand-block {
    padding: 2px 4px 4px;
}
.brand-name {
    display: block;
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--color-ink);
    text-decoration: none;
    margin: 0;
}
.brand-name:hover { text-decoration: none; color: var(--color-ink); }
.brand-tag {
    display: block;
    margin-top: 2px;
    font-size: 0.6875rem;
    line-height: 1.3;
    color: var(--color-muted);
    opacity: 0.85;
}

.rail-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 2px 10px 10px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    scrollbar-width: thin;
    scrollbar-color: rgba(90, 107, 125, 0.35) transparent;
}
.rail-scroll::-webkit-scrollbar {
    width: 6px;
}
.rail-scroll::-webkit-scrollbar-thumb {
    background: rgba(90, 107, 125, 0.28);
    border-radius: 999px;
}
.rail-scroll::-webkit-scrollbar-track {
    background: transparent;
}

.rail-section {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.rail-section-label {
    padding: 0 8px 5px;
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-muted);
    line-height: 1.2;
}

.rail-link {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 34px;
    padding: 0 8px;
    border-radius: 7px;
    color: var(--color-ink);
    text-decoration: none;
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.25;
    border: 0;
    transition: background var(--motion-fast) var(--ease), color var(--motion-fast) var(--ease);
}
.rail-link:hover {
    background: rgba(20, 32, 51, 0.045);
    text-decoration: none;
    color: var(--color-ink);
}
.rail-link.is-active {
    background: rgba(31, 95, 139, 0.11);
    color: var(--color-ink);
    font-weight: 600;
    box-shadow: none;
}
.rail-link.is-active .rail-link-icon {
    color: var(--color-accent);
}
.rail-link.is-active .rail-link-label {
    color: var(--color-ink);
}
.rail-link.is-module.is-expanded {
    background: rgba(20, 32, 51, 0.04);
    font-weight: 600;
}
.rail-link.is-module.is-expanded .rail-link-icon {
    color: var(--color-accent);
}
.rail-link.is-nested {
    min-height: 32px;
    margin-left: 10px;
    padding-left: 12px;
    font-size: 0.75rem;
    font-weight: 400;
    font-family: var(--font-body);
    color: var(--color-muted);
}
.rail-link.is-nested:hover {
    color: var(--color-ink);
}
.rail-link.is-nested.is-active {
    color: var(--color-ink);
    font-weight: 600;
    background: rgba(31, 95, 139, 0.1);
}

.rail-section-accounts {
    opacity: 0.92;
}
.rail-section-accounts .rail-section-label {
    color: rgba(90, 107, 125, 0.9);
}
.rail-section-accounts .rail-collapse-trigger {
    min-height: 32px;
    color: var(--color-muted);
    font-weight: 500;
}
.rail-section-accounts .rail-collapse-body .rail-link.is-nested {
    color: var(--color-muted);
    font-weight: 400;
}
.rail-section-accounts .rail-collapse-body .rail-link.is-nested.is-active {
    color: var(--color-ink);
    font-weight: 600;
}

.rail-link-icon {
    display: inline-flex;
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    align-items: center;
    justify-content: center;
    color: var(--color-muted);
}
.rail-link:hover .rail-link-icon {
    color: var(--color-ink);
}
.rail-link-label {
    flex: 1 1 auto;
    min-width: 0;
}
.rail-link-label.is-truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rail-badge {
    flex-shrink: 0;
    margin-left: auto;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(154, 107, 18, 0.12);
    color: var(--color-warning);
    font-size: 0.6875rem;
    font-weight: 600;
    line-height: 1;
}

.rail-chevron {
    display: inline-flex;
    flex-shrink: 0;
    margin-left: auto;
    color: var(--color-muted);
    opacity: 0.75;
}
.rail-link .rail-badge + .rail-chevron {
    margin-left: 4px;
}

.rail-nested-group {
    display: flex;
    flex-direction: column;
    gap: 1px;
    margin-top: 2px;
    padding-left: 6px;
    border-left: 1px solid rgba(197, 208, 220, 0.9);
    margin-left: 15px;
}

.rail-collapse {
    border: 0;
    margin: 0;
}
.rail-collapse-trigger {
    list-style: none;
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 0 8px;
    border-radius: 7px;
    cursor: pointer;
    color: var(--color-ink);
    font-size: 0.8125rem;
    font-weight: 500;
    user-select: none;
}
.rail-collapse-trigger::-webkit-details-marker { display: none; }
.rail-collapse-trigger::marker { content: ""; }
.rail-collapse-trigger:hover {
    background: rgba(20, 32, 51, 0.045);
}
.rail-collapse-trigger:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}
.rail-collapse-label { flex: 1 1 auto; min-width: 0; }
.rail-collapse-count {
    flex-shrink: 0;
    font-size: 0.6875rem;
    font-weight: 600;
    color: var(--color-muted);
    background: rgba(20, 32, 51, 0.05);
    border-radius: 999px;
    min-width: 1.25rem;
    height: 1.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 0.3rem;
}
.rail-collapse-trigger .rail-chevron {
    transition: transform var(--motion-fast) var(--ease);
}
.rail-collapse[open] > .rail-collapse-trigger .rail-chevron {
    transform: rotate(180deg);
}
.rail-collapse-body {
    display: flex;
    flex-direction: column;
    gap: 1px;
    margin-top: 2px;
    padding-left: 6px;
    border-left: 1px solid rgba(197, 208, 220, 0.9);
    margin-left: 15px;
}
.rail-collapse-body .rail-link.is-nested {
    margin-left: 0;
    padding-left: 10px;
    font-family: var(--font-mono);
    font-size: 0.6875rem;
}

.compose-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 34px;
    height: 34px;
    padding: 0 var(--space-3);
    border-radius: 8px;
    background: var(--color-accent);
    color: #fff !important;
    font-size: 0.8125rem;
    font-weight: 600;
    border: 0;
    cursor: pointer;
    text-decoration: none !important;
    width: 100%;
    transition: background var(--motion-fast) var(--ease);
}
.compose-btn:hover { background: var(--color-accent-hover); color: #fff !important; }
.compose-btn-icon {
    display: inline-flex;
    width: 16px;
    height: 16px;
    align-items: center;
    justify-content: center;
}

.rail-footer {
    flex-shrink: 0;
    margin-top: auto;
    padding: 10px 10px 12px;
    border-top: 1px solid var(--color-line);
    background: var(--color-surface);
}
.rail-close-btn {
    display: none;
    width: 100%;
    margin-bottom: 8px;
    min-height: 36px;
    border: 1px solid var(--color-line);
    border-radius: 7px;
    background: var(--color-bg-1);
    color: var(--color-ink);
    font: inherit;
    font-size: 0.8125rem;
    font-weight: 500;
    cursor: pointer;
}
.rail-close-btn:hover {
    background: rgba(20, 32, 51, 0.06);
}
.rail-user {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    padding: 4px 2px;
}
.rail-user-avatar {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(31, 95, 139, 0.12);
    color: var(--color-accent);
    font-size: 0.75rem;
    font-weight: 700;
    font-family: var(--font-brand);
}
.rail-user-meta {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}
.rail-user-name,
.rail-user-email {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.rail-user-name {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-ink);
    line-height: 1.2;
}
.rail-user-email {
    font-size: 0.6875rem;
    color: var(--color-muted);
    line-height: 1.2;
}
.rail-logout-form {
    flex-shrink: 0;
    margin: 0;
}
.rail-logout-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--color-muted);
    cursor: pointer;
}
.rail-logout-btn:hover {
    background: rgba(20, 32, 51, 0.06);
    color: var(--color-ink);
}

.main-area {
    min-width: 0;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.mobile-bar {
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--color-line);
    background: rgba(255, 255, 255, 0.9);
    position: sticky;
    top: 0;
    z-index: 30;
}

.icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    color: var(--color-ink);
    cursor: pointer;
}
.icon-btn:hover { background: var(--color-bg-1); }

.rail-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(20, 32, 51, 0.35);
    z-index: 35;
}
.rail-backdrop.is-open { display: block; }

.content-pane {
    flex: 1;
    padding: var(--space-5);
    min-width: 0;
    scroll-padding-bottom: 6rem;
    animation: pane-in var(--motion-med) var(--ease);
}

@keyframes pane-in {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: none; }
}

/* —— Mail panes —— */
.mail-layout {
    display: grid;
    grid-template-columns: minmax(var(--list-width-min), var(--list-width)) minmax(0, 1fr);
    gap: 0;
    min-height: calc(100vh - 2px);
    margin: calc(var(--space-5) * -1);
    background: var(--color-surface);
}

.mail-layout.is-list-only {
    grid-template-columns: minmax(var(--list-width-min), var(--list-width)) minmax(0, 1fr);
    max-width: none;
    margin: calc(var(--space-5) * -1);
    width: auto;
}
.mail-layout.is-list-only .mail-list-pane {
    border-right: 1px solid var(--color-line);
}

.mail-list-pane {
    border-right: 1px solid color-mix(in srgb, var(--color-line) 85%, var(--color-ink));
    background: var(--color-surface);
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 2px);
    width: 100%;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}

.mail-list-header {
    padding: var(--space-3) var(--space-4) var(--space-3);
    border-bottom: 1px solid var(--color-line);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    position: sticky;
    top: 0;
    background: var(--color-surface);
    z-index: 5;
}
.mail-list-header-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-2);
    min-height: 32px;
}
.mail-list-header-actions {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: var(--space-2);
    flex-shrink: 0;
}
.mail-list-header h1 {
    margin: 0;
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.25;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mail-search-form {
    margin: 0;
}
.mail-search-field {
    position: relative;
    display: block;
}
.mail-search-icon {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    color: var(--color-muted);
    pointer-events: none;
}
.mail-search-field input[type="search"] {
    min-height: 36px;
    padding: 0.45rem 0.7rem 0.45rem 2.1rem;
    font-size: 0.875rem;
    border-color: color-mix(in srgb, var(--color-line) 90%, transparent);
}

.mail-filter-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-2);
    margin: 0;
}
.mail-filter-row.has-since {
    grid-template-columns: 1fr 1fr;
}
.mail-filter-field select {
    min-height: 36px;
    padding: 0.35rem 0.6rem;
    font-size: 0.875rem;
}

.mail-reading-pane {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: calc(100vh - 2px);
    max-height: calc(100vh - 2px);
    overflow: auto;
    background: var(--color-surface);
}

.mail-reading-content {
    flex: 1 1 auto;
    padding: var(--space-4) var(--space-5) var(--space-6);
    display: flex;
    justify-content: center;
}

.mail-reading-column {
    max-width: var(--reading-content-max);
    width: 100%;
    margin: 0 auto;
}

.mail-reading-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - 2px);
    max-height: calc(100vh - 2px);
    color: var(--color-muted);
    text-align: center;
    padding: var(--space-5);
    background: var(--color-bg-1);
}
.mail-reading-empty-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
    max-width: 20rem;
}
.mail-reading-empty-icon {
    display: inline-flex;
    color: color-mix(in srgb, var(--color-muted) 55%, transparent);
    margin-bottom: var(--space-1);
}
.mail-reading-empty-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-ink);
}
.mail-reading-empty-text {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.45;
    color: var(--color-muted);
}

.btn-compact {
    min-height: 34px;
    padding: 0.35rem 0.75rem;
    font-size: 0.8125rem;
}

/* —— Forms & controls —— */
label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    margin-bottom: var(--space-1);
    color: var(--color-muted);
}

input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="date"],
input[type="time"],
input:not([type]),
select,
textarea {
    font: inherit;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 0.65rem 0.75rem;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-line);
    background: var(--color-surface);
    color: var(--color-ink);
    min-height: 44px;
}
textarea { min-height: 180px; resize: vertical; }
input:disabled, select:disabled, textarea:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.field { margin-bottom: var(--space-4); }
.field-hint { margin-top: var(--space-1); font-size: 0.8125rem; color: var(--color-muted); }
.field-error {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    margin-top: var(--space-1);
    font-size: 0.8125rem;
    color: var(--color-danger);
}
.field-error-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 1.1rem;
    height: 1.1rem;
    margin-top: 0.1rem;
    border-radius: 50%;
    border: 1.5px solid var(--color-danger);
    font-size: 0.65rem;
    font-weight: 700;
    line-height: 1;
}

.form-row {
    display: grid;
    gap: var(--space-3);
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    align-items: end;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    min-height: 44px;
    padding: 0.55rem 1rem;
    border-radius: var(--radius-md);
    border: 1px solid transparent;
    background: var(--color-accent);
    color: #fff;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    width: auto;
}
.btn:hover { background: var(--color-accent-hover); color: #fff; text-decoration: none; }
.btn:disabled { opacity: 0.5; cursor: not-allowed; }
.btn-secondary {
    background: var(--color-surface);
    color: var(--color-ink);
    border-color: var(--color-line);
}
.btn-secondary:hover { background: var(--color-bg-1); color: var(--color-ink); }
.btn-danger {
    background: var(--color-danger);
    color: #fff;
}
.btn-danger:hover { filter: brightness(0.95); color: #fff; }
.btn-ghost {
    background: transparent;
    color: var(--color-ink);
    border-color: transparent;
}
.btn-ghost:hover { background: var(--color-bg-1); color: var(--color-ink); }

.checkbox-row {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-height: 44px;
}
.checkbox-row input { width: auto; min-height: auto; }

/* —— Status badges —— */
.status {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 0.2rem 0.5rem;
    border-radius: var(--radius-sm);
    font-size: 0.75rem;
    font-weight: 600;
    border: 1px solid var(--color-line);
    background: var(--color-bg-1);
    color: var(--color-ink);
    white-space: nowrap;
}
.status-ok { background: var(--color-success-bg); border-color: #a7d4bf; color: var(--color-success); }
.status-warn { background: var(--color-warning-bg); border-color: #e6d4a4; color: var(--color-warning); }
.status-pending { background: var(--color-pending-bg); border-color: #a8c5d6; color: var(--color-pending); }
.status-danger { background: var(--color-danger-bg); border-color: #e0b4b0; color: var(--color-danger); }

.project-label {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.45rem;
    border-radius: var(--radius-sm);
    font-size: 0.72rem;
    font-weight: 600;
    border: 1px solid #c9b8e8;
    background: #f3eefb;
    color: #5b3f91;
    white-space: nowrap;
}


.dir-indicator {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-muted);
}
.dir-indicator svg { flex-shrink: 0; }

/* —— Message list —— */
.message-list {
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1 1 auto;
    overflow-y: auto;
    overflow-x: hidden;
}
.message-row {
    display: grid;
    grid-template-columns: 10px minmax(0, 1fr);
    gap: var(--space-2);
    align-items: stretch;
    min-height: 76px;
    padding: 0.7rem var(--space-4);
    border-bottom: 1px solid color-mix(in srgb, var(--color-line) 80%, transparent);
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    transition: background var(--motion-fast) var(--ease);
    min-width: 0;
    overflow: hidden;
    position: relative;
}
.message-unread-dot {
    width: 8px;
    height: 8px;
    margin-top: 0.45rem;
    border-radius: 50%;
    flex-shrink: 0;
    visibility: hidden;
}
.message-unread-dot.is-visible {
    visibility: visible;
    background: var(--color-accent);
}
.message-row-group {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: stretch;
    border-bottom: 1px solid color-mix(in srgb, var(--color-line) 80%, transparent);
}
.message-row-group .message-row {
    border-bottom: none;
}
.message-row-actions {
    display: flex;
    align-items: center;
    padding: 0 var(--space-3);
    border-left: 1px solid var(--color-line);
}
.message-row-group:hover {
    background: var(--color-bg-1);
}
.message-row:hover {
    background: var(--color-bg-1);
    text-decoration: none;
    color: inherit;
}
.message-row.is-selected {
    background: color-mix(in srgb, var(--color-accent) 9%, var(--color-surface));
    box-shadow: inset 3px 0 0 var(--color-accent);
}
.message-row.is-keyboard-focus,
.message-row:focus {
    background: color-mix(in srgb, var(--color-accent) 7%, var(--color-surface));
    outline: 2px solid var(--color-accent);
    outline-offset: -2px;
}
.message-row.is-unread .message-subject {
    font-weight: 700;
}
.message-row.is-unread .message-sender {
    font-weight: 600;
    color: var(--color-ink);
}
.message-row-main {
    min-width: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.message-row-top {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-2);
    min-width: 0;
}
.message-sender {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-ink);
}
.message-subject {
    display: block;
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--color-ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.message-preview {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.875rem;
    line-height: 1.35;
    color: var(--color-muted);
}
.message-row-labels {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    margin-top: 0.1rem;
    min-width: 0;
}
.message-state-label,
.message-alias {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--color-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}
.message-row-labels .status {
    font-size: 0.6875rem;
    padding: 0.1rem 0.35rem;
}
.message-time {
    flex-shrink: 0;
    font-size: 0.8125rem;
    line-height: 1.2;
    color: var(--color-muted);
    white-space: nowrap;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.list-pagination {
    display: flex;
    gap: var(--space-3);
    padding: var(--space-3);
    border-top: 1px solid var(--color-line);
    flex-shrink: 0;
}

/* —— Reading —— */
.message-header {
    position: sticky;
    top: 0;
    z-index: 6;
    padding: var(--space-3) var(--space-5);
    border-bottom: 1px solid var(--color-line);
    margin-bottom: 0;
    background: var(--color-surface);
}
.message-header-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    flex-wrap: wrap;
    margin-bottom: var(--space-2);
}
.message-breadcrumb {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-width: 0;
    font-size: 0.8125rem;
}
.message-back {
    font-weight: 500;
    white-space: nowrap;
}
.message-nav-links {
    display: inline-flex;
    gap: var(--space-2);
    color: var(--color-muted);
}
.message-nav-links a {
    color: var(--color-muted);
}
.message-nav-links a:hover {
    color: var(--color-accent);
}
.message-header h1 {
    margin: 0 0 var(--space-2);
    font-size: 1.25rem;
    line-height: 1.3;
    overflow-wrap: anywhere;
    word-break: break-word;
}
.message-header-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-4);
    margin: 0;
    font-size: 0.8125rem;
    min-width: 0;
}
.message-meta-item {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    min-width: 0;
    max-width: 100%;
}
.message-meta-item dt {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-muted);
    flex-shrink: 0;
}
.message-meta-item dd {
    margin: 0;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.message-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    margin-top: 0;
}
.message-overflow {
    position: relative;
}
.message-overflow-trigger {
    width: 34px;
    padding: 0;
    color: var(--color-muted);
}
.message-overflow-trigger::-webkit-details-marker { display: none; }
.message-overflow-trigger::marker { content: ""; }
.message-overflow-menu {
    position: absolute;
    right: 0;
    top: calc(100% + 4px);
    min-width: 220px;
    padding: var(--space-2);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    box-shadow: var(--elev-1);
    z-index: 10;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}
.message-overflow-meta {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--space-2);
    font-size: 0.75rem;
    color: var(--color-muted);
}
.message-overflow-meta strong {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-ink);
    overflow-wrap: anywhere;
}
.message-overflow-link {
    display: block;
    padding: var(--space-2);
    border-radius: var(--radius-sm);
    color: var(--color-ink);
    font-size: 0.8125rem;
    font-weight: 500;
    text-decoration: none;
}
.message-overflow-link:hover {
    background: var(--color-bg-1);
    text-decoration: none;
}
.mail-body {
    white-space: pre-wrap;
    line-height: 1.55;
    font-size: 0.96875rem;
}
.mail-body-html {
    line-height: 1.55;
    font-size: 0.96875rem;
    overflow-wrap: anywhere;
}
.mail-body-html a {
    word-break: break-all;
    text-decoration: underline;
}
.mail-body-html p { margin: 0 0 1em; }
.mail-body-html p:last-child { margin-bottom: 0; }
.mail-body-html h1,
.mail-body-html h2,
.mail-body-html h3,
.mail-body-html h4,
.mail-body-html h5,
.mail-body-html h6 {
    font-family: var(--font-display, inherit);
    line-height: 1.3;
    margin: 1.25em 0 0.5em;
    color: var(--color-ink);
}
.mail-body-html h1 { font-size: 1.5rem; }
.mail-body-html h2 { font-size: 1.3rem; }
.mail-body-html h3 { font-size: 1.15rem; }
.mail-body-html ul,
.mail-body-html ol {
    margin: 0 0 1em;
    padding-left: 1.5em;
}
.mail-body-html li { margin: 0.25em 0; }
.mail-body-html blockquote {
    margin: 0 0 1em;
    padding: 0.25em 0 0.25em 1em;
    border-left: 3px solid var(--color-line);
    color: var(--color-muted);
}
.mail-body-html code {
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 0.9em;
    background: var(--color-bg-1);
    padding: 0.1em 0.35em;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-sm, 2px);
}
.mail-body-html pre {
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 0.875rem;
    background: var(--color-bg-1);
    border: 1px solid var(--color-line);
    padding: 0.75em 1em;
    overflow-x: auto;
    white-space: pre-wrap;
    word-break: break-word;
    margin: 0 0 1em;
    border-radius: var(--radius-sm, 2px);
}
.mail-body-html pre code {
    background: transparent;
    border: 0;
    padding: 0;
}
.mail-body-html hr {
    border: 0;
    border-top: 1px solid var(--color-line);
    margin: 1.5em 0;
}

.markdown-composer {
    margin-bottom: var(--space-4, 1rem);
}
.markdown-composer-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.35rem;
}
.markdown-composer-header label {
    margin: 0;
}
.markdown-mode-toggle {
    display: inline-flex;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-sm, 4px);
    overflow: hidden;
}
.markdown-mode-btn {
    appearance: none;
    border: 0;
    background: var(--color-bg-0, #fff);
    color: var(--color-muted);
    padding: 0.35rem 0.75rem;
    font: inherit;
    font-size: 0.875rem;
    cursor: pointer;
}
.markdown-mode-btn + .markdown-mode-btn {
    border-left: 1px solid var(--color-line);
}
.markdown-mode-btn.is-active {
    background: var(--color-bg-1);
    color: var(--color-ink);
    font-weight: 600;
}
.markdown-mode-btn:focus-visible,
.markdown-tool-btn:focus-visible,
.markdown-help-btn:focus-visible {
    outline: 2px solid var(--color-accent, #0b57d0);
    outline-offset: 2px;
}
.markdown-composer-hint {
    margin: 0 0 0.5rem;
}
.markdown-help-btn {
    appearance: none;
    border: 0;
    background: none;
    color: var(--color-accent, #0b57d0);
    font: inherit;
    font-size: inherit;
    text-decoration: underline;
    cursor: pointer;
    padding: 0;
}
.markdown-help {
    margin: 0 0 0.75rem;
    padding: 0.75rem 1rem;
    background: var(--color-bg-1);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md, 6px);
    font-size: 0.875rem;
}
.markdown-help-list {
    margin: 0;
    padding-left: 1.1rem;
}
.markdown-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.5rem;
}
.markdown-tool-btn {
    appearance: none;
    border: 1px solid var(--color-line);
    background: var(--color-bg-0, #fff);
    color: var(--color-ink);
    border-radius: var(--radius-sm, 4px);
    padding: 0.35rem 0.55rem;
    font: inherit;
    font-size: 0.8125rem;
    line-height: 1;
    cursor: pointer;
    min-height: 2rem;
}
.markdown-tool-btn:hover {
    background: var(--color-bg-1);
}
.markdown-editor {
    min-height: 280px;
    width: 100%;
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 0.9375rem;
    line-height: 1.5;
    resize: vertical;
}
.markdown-preview-pane {
    min-height: 280px;
    padding: 0.85rem 1rem;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md, 6px);
    background: var(--color-bg-0, #fff);
}
.markdown-preview-empty {
    margin: 0;
}
.markdown-status {
    min-height: 1.25em;
    margin: 0.35rem 0 0;
}
.markdown-errors .field-error {
    color: var(--color-danger, #b42318);
    margin: 0.35rem 0 0;
    font-size: 0.875rem;
}
.bulk-body-preview.mail-body-html {
    white-space: normal;
}

@media (max-width: 640px) {
    .markdown-toolbar {
        gap: 0.25rem;
    }
    .markdown-tool-btn {
        flex: 1 1 auto;
        min-width: calc(25% - 0.25rem);
        justify-content: center;
    }
    .markdown-composer-header {
        align-items: flex-start;
    }
    .markdown-editor,
    .markdown-preview-pane {
        min-height: 240px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .markdown-mode-btn,
    .markdown-tool-btn {
        transition: none;
    }
}

.attachment-list {
    list-style: none;
    margin: var(--space-4) 0 0;
    padding: var(--space-3) 0 0;
    border-top: 1px solid var(--color-line);
}
.attachment-list li,
.attachment-row {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-height: 44px;
    padding: 6px 0;
    border-bottom: 1px solid var(--color-line);
}
.attachment-icon {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: var(--radius-sm);
    background: var(--color-bg-1);
    color: var(--color-muted);
    border: 1px solid var(--color-line);
}
.attachment-meta {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}
.attachment-name {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.attachment-sub {
    font-size: 0.75rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.attachment-row .btn {
    flex-shrink: 0;
}

.quoted-message {
    margin-top: var(--space-5);
    padding: var(--space-4);
    border-left: 3px solid var(--color-line);
    background: var(--color-bg-1);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
}
.quoted-message summary {
    cursor: pointer;
    font-weight: 600;
    color: var(--color-muted);
}
.quoted-message-body {
    margin-top: var(--space-3);
    max-height: 240px;
    overflow: auto;
    font-size: 0.875rem;
    color: var(--color-muted);
}

.thread-list {
    margin-top: var(--space-4);
    padding-top: var(--space-3);
    border-top: 1px solid var(--color-line);
}
.thread-list h2 { font-size: 0.9375rem; margin-bottom: var(--space-2); }
.thread-item {
    display: flex;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-2) 0;
    border-bottom: 1px solid var(--color-line);
    font-size: 0.8125rem;
}
.thread-item.is-current { font-weight: 700; }

/* —— Panels / lists (settings) —— */
.page-header {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-end;
    gap: var(--space-4);
    margin-bottom: var(--space-5);
}
.page-header h1 { margin: 0; }

.panel {
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    padding: var(--space-5);
    box-shadow: var(--elev-1);
    margin-bottom: var(--space-4);
}

.structured-list { list-style: none; margin: 0; padding: 0; }
.structured-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-4);
    border-bottom: 1px solid var(--color-line);
    background: var(--color-surface);
}
.structured-item:first-child {
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}
.structured-item:last-child {
    border-bottom: 0;
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}
.structured-list-wrap {
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--color-surface);
    box-shadow: var(--elev-1);
    margin-bottom: var(--space-4);
}
.structured-item-main { min-width: 0; flex: 1; }
.structured-item-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.35rem;
    align-items: center;
}
.structured-item-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    align-items: center;
}

/* —— Display name edit —— */
.display-name-create {
    margin-top: var(--space-3);
    max-width: 28rem;
}
.display-name-edit {
    margin-top: var(--space-3);
}
.display-name-edit > summary {
    cursor: pointer;
    color: var(--color-muted);
    font-size: 0.875rem;
    user-select: none;
    list-style: none;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}
.display-name-edit > summary::-webkit-details-marker { display: none; }
.display-name-edit > summary::before {
    content: '';
    width: 0;
    height: 0;
    border-left: 5px solid currentColor;
    border-top: 4px solid transparent;
    border-bottom: 4px solid transparent;
    opacity: 0.7;
    transition: transform 0.12s ease;
}
.display-name-edit[open] > summary::before {
    transform: rotate(90deg);
}
.display-name-edit > summary:hover {
    color: var(--color-fg);
}
.display-name-edit-form {
    margin-top: var(--space-2);
    max-width: 28rem;
}
.display-name-edit-fields {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    align-items: center;
}
.display-name-edit-fields input {
    flex: 1;
    min-width: 10rem;
}

/* —— DNS —— */
.dns-checklist { display: flex; flex-direction: column; gap: var(--space-3); }
.dns-group-title {
    margin: var(--space-4) 0 var(--space-2);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-muted);
}
.dns-row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: var(--space-3);
    align-items: start;
    padding: var(--space-3);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
    background: var(--color-bg-1);
    transition: background var(--motion-med) var(--ease), border-color var(--motion-med) var(--ease);
}
.dns-row-label { font-weight: 600; font-size: 0.875rem; }
.dns-row-host {
    margin-top: 0.15rem;
    font-size: 0.8125rem;
}
.dns-row-value {
    font-family: var(--font-mono);
    font-size: 0.8125rem;
    word-break: break-all;
    margin-top: var(--space-1);
}
.dns-observed {
    margin-top: var(--space-2);
    font-size: 0.75rem;
    color: var(--color-muted);
}

/* —— Notices / toast —— */
.notice {
    display: flex;
    gap: var(--space-3);
    align-items: flex-start;
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-line);
    margin-bottom: var(--space-4);
    font-size: 0.9375rem;
}
.notice[hidden] {
    display: none !important;
}
.notice-success { background: var(--color-success-bg); border-color: #a7d4bf; }
.notice-warning { background: var(--color-warning-bg); border-color: #e6d4a4; }
.notice-danger { background: var(--color-danger-bg); border-color: #e0b4b0; }
.notice-info { background: var(--color-pending-bg); border-color: #a8c5d6; }

.flash-stack {
    position: fixed;
    right: var(--space-4);
    bottom: var(--space-4);
    z-index: 80;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    max-width: min(360px, calc(100vw - 2rem));
}
.toast {
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    background: var(--color-ink);
    color: #fff;
    box-shadow: var(--elev-1);
    animation: toast-in var(--motion-fast) var(--ease);
    font-size: 0.875rem;
}
.toast-success { background: var(--color-success); }
.toast-warning { background: var(--color-warning); color: #fff; }
.toast-danger { background: var(--color-danger); }
@keyframes toast-in {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: none; }
}

.empty-state {
    text-align: center;
    padding: var(--space-7) var(--space-5);
    color: var(--color-muted);
}
.empty-state h2 {
    color: var(--color-ink);
    margin-bottom: var(--space-2);
}
.empty-state p { margin: 0 0 var(--space-4); }

.login-wrap {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-5);
}
.login-panel {
    width: 100%;
    max-width: 420px;
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    padding: var(--space-6);
    box-shadow: var(--elev-1);
}
.login-brand {
    font-family: var(--font-brand);
    font-size: 1.75rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    margin-bottom: var(--space-1);
}

.kbd-hint {
    font-size: 0.75rem;
    color: var(--color-muted);
}
.kbd {
    display: inline-block;
    padding: 0.05rem 0.35rem;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-sm);
    background: var(--color-bg-1);
    font-family: var(--font-mono);
    font-size: 0.6875rem;
}

.composer-panel {
    max-width: 920px;
    width: 100%;
    min-width: 0;
}
.composer-page-header {
    align-items: flex-start;
}
.composer-page-intro {
    min-width: 0;
    flex: 1 1 16rem;
}
.composer-lede {
    margin: var(--space-2) 0 0;
    max-width: 36rem;
    font-size: 0.9375rem;
    color: var(--color-muted);
    line-height: 1.45;
}
.composer-surface {
    background: rgba(255, 255, 255, 0.55);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    padding: var(--space-5);
    margin-bottom: var(--space-4);
}
.composer-form {
    min-width: 0;
}
.composer-fields {
    padding-bottom: var(--space-4);
}
.composer-panel label {
    color: var(--color-ink);
    font-weight: 600;
}
.compose-mode-switch {
    display: inline-flex;
    flex: 0 1 auto;
    max-width: 100%;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-sm);
    overflow: hidden;
    background: var(--color-surface);
}
.compose-mode-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0.4rem 0.85rem;
    font-size: 0.875rem;
    font-weight: 500;
    font-family: inherit;
    color: var(--color-muted);
    text-decoration: none;
    white-space: nowrap;
    border: 0;
    background: transparent;
    cursor: pointer;
}
.compose-mode-link + .compose-mode-link {
    border-left: 1px solid var(--color-line);
}
.compose-mode-link:hover {
    background: var(--color-bg-1);
    color: var(--color-ink);
    text-decoration: none;
}
.compose-mode-link.is-active {
    background: var(--color-bg-1);
    color: var(--color-ink);
    font-weight: 700;
    box-shadow: inset 0 -2px 0 var(--color-accent);
}
.compose-mode-link:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: -2px;
    z-index: 1;
}
.bulk-recipients {
    min-height: 128px;
    resize: vertical;
}
.bulk-batches {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}
.bulk-batches-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
}
.bulk-batches-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}
.bulk-batch-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}
.bulk-batch-tab {
    min-height: 36px;
    padding: 0.35rem 0.75rem;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-sm);
    background: var(--color-surface);
    color: var(--color-muted);
    font: inherit;
    font-size: 0.875rem;
    cursor: pointer;
}
.bulk-batch-tab.is-active,
.bulk-batch-tab[aria-selected="true"] {
    border-color: var(--color-accent);
    color: var(--color-ink);
    font-weight: 600;
}
.bulk-batch {
    padding-top: var(--space-3);
    border-top: 1px solid var(--color-line);
}
.bulk-batch-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    margin-bottom: var(--space-3);
}
.bulk-batch-title {
    margin: 0;
    font-size: 1.05rem;
}
.bulk-existing-attachments {
    margin: 0;
    padding-left: 1.1rem;
}
.bulk-existing-attachment {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 500;
}
.bulk-confirm-batch + .bulk-confirm-batch {
    margin-top: var(--space-4);
}
.bulk-confirm-batch-title {
    margin: 0 0 var(--space-3);
    font-size: 1.1rem;
}
.bulk-confirm-actions {
    position: sticky;
    bottom: 0;
    z-index: 5;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin: var(--space-5) calc(var(--space-5) * -1) calc(var(--space-5) * -1);
    padding: var(--space-4) var(--space-5);
    padding-bottom: calc(var(--space-4) + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--color-line);
    background: color-mix(in srgb, var(--color-bg-1) 88%, var(--color-surface));
    backdrop-filter: blur(6px);
}
.bulk-confirm-actions .btn[type="submit"] {
    align-self: flex-start;
    min-width: min(100%, 18rem);
}
.bulk-schedule {
    margin: var(--space-4) 0;
    padding: var(--space-4);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--color-accent) 4%, transparent);
}
.bulk-schedule-legend {
    padding: 0;
    font-size: 1rem;
    font-weight: 600;
}
.bulk-schedule-modes {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3);
    margin-top: var(--space-3);
}
.bulk-schedule-mode {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    margin: 0;
    padding: var(--space-3);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
    cursor: pointer;
}
.bulk-schedule-mode:has(input:checked) {
    border-color: var(--color-accent);
    box-shadow: inset 0 0 0 1px var(--color-accent);
}
.bulk-schedule-mode input {
    margin-top: 0.2rem;
}
.bulk-schedule-mode span {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.bulk-schedule-fields {
    margin: var(--space-4) 0 0;
    padding-top: var(--space-4);
    border-top: 1px dashed var(--color-line);
}
.bulk-schedule-when-label {
    margin: 0 0 var(--space-3);
    font-size: 0.875rem;
    font-weight: 600;
}
.bulk-schedule-presets {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: var(--space-3);
}
.bulk-schedule-preset {
    appearance: none;
    margin: 0;
    padding: 0.4rem 0.75rem;
    min-height: 2.25rem;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    color: var(--color-ink);
    font: inherit;
    font-size: 0.8125rem;
    font-weight: 500;
    cursor: pointer;
}
.bulk-schedule-preset:hover {
    border-color: var(--color-accent);
    color: var(--color-accent);
}
.bulk-schedule-preset.is-active {
    border-color: var(--color-accent);
    background: color-mix(in srgb, var(--color-accent) 12%, var(--color-surface));
    color: var(--color-accent);
    box-shadow: inset 0 0 0 1px var(--color-accent);
}
.bulk-schedule-preset:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
.bulk-schedule-inputs {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    gap: var(--space-3);
}
.bulk-schedule-inputs .field {
    margin-bottom: 0;
}
.bulk-schedule-inputs input[type="date"],
.bulk-schedule-inputs input[type="time"] {
    font-variant-numeric: tabular-nums;
}
.bulk-schedule-preview {
    margin-top: var(--space-3);
    padding: var(--space-3);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    border: 1px solid var(--color-line);
}
.bulk-schedule-preview-relative {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--color-ink);
}
.bulk-schedule-preview-absolute {
    margin: 0.25rem 0 0;
    font-size: 0.8125rem;
}
.bulk-schedule-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: var(--space-4);
}
.bulk-queue-header-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
}
/* —— Bulk campaign workspace —— */
.bulk-workspace {
    margin: calc(var(--space-5) * -1);
    padding: var(--space-5);
    min-height: calc(100vh - 2px);
    background: var(--color-bg-1);
}
.bulk-workspace-inner {
    max-width: 1400px;
    margin: 0 auto;
    width: 100%;
}
.bulk-workspace-header {
    align-items: center;
    margin-bottom: var(--space-4);
}
.bulk-workspace-heading h1 {
    margin: 0;
}
.bulk-workspace-summary {
    margin: var(--space-1) 0 0;
    font-size: 0.9375rem;
}
.bulk-workspace-toolbar {
    margin-bottom: var(--space-4);
}
.bulk-workspace-toolbar .field {
    margin: 0;
    min-width: 0;
    flex: 0 1 auto;
    max-width: 220px;
}
.bulk-workspace-toolbar select {
    min-width: 10rem;
    max-width: 100%;
}
.bulk-workspace-tabs {
    margin: 0 0 var(--space-4);
    width: 100%;
    max-width: 28rem;
}
.bulk-workspace-tabs .compose-mode-link {
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    flex: 1 1 0;
}
.bulk-tab-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.125rem;
    height: 1.125rem;
    padding: 0 0.3rem;
    border-radius: 999px;
    font-size: 0.6875rem;
    font-weight: 700;
    line-height: 1;
    background: color-mix(in srgb, var(--color-ink) 7%, transparent);
    color: var(--color-muted);
}
.compose-mode-link.is-active .bulk-tab-count {
    background: color-mix(in srgb, var(--color-accent) 14%, transparent);
    color: var(--color-accent);
}
.bulk-workspace-empty {
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
}
.bulk-campaign-list-wrap {
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    overflow: hidden;
}
.bulk-queue-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.bulk-queue-row {
    display: grid;
    grid-template-columns: minmax(0, 48%) minmax(0, 1fr) 13.5rem;
    gap: var(--space-4);
    align-items: center;
    min-height: 76px;
    padding: 0.8rem 1rem;
    border-bottom: 1px solid var(--color-line);
    transition: background var(--motion-fast) var(--ease);
}
.bulk-queue-row:last-child {
    border-bottom: 0;
}
.bulk-queue-row:hover {
    background: var(--color-bg-1);
}
.bulk-queue-campaign {
    min-width: 0;
}
.bulk-campaign-subject {
    display: block;
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-ink);
    text-decoration: none;
    line-height: 1.35;
}
.bulk-campaign-subject:hover {
    color: var(--color-accent);
    text-decoration: none;
}
.bulk-campaign-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem;
    margin-top: 0.25rem;
    font-size: 0.875rem;
    color: var(--color-muted);
    line-height: 1.4;
}
.bulk-campaign-alias {
    color: var(--color-ink);
    font-weight: 500;
}
.bulk-campaign-meta-sep {
    opacity: 0.55;
}
.bulk-queue-progress-label {
    font-variant-numeric: tabular-nums;
}
.bulk-campaign-progress {
    margin-top: 0.4rem;
    height: 0.25rem;
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--color-line) 70%, transparent);
    overflow: hidden;
    max-width: 14rem;
}
.bulk-campaign-progress .bulk-progress-bar {
    height: 100%;
    background: var(--color-accent);
}
.bulk-queue-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    min-width: 0;
    font-size: 0.875rem;
}
.bulk-queue-meta-count {
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    color: var(--color-ink);
    white-space: nowrap;
}
.bulk-queue-meta-time {
    display: inline-flex;
    flex-direction: column;
    gap: 0.05rem;
    font-size: 0.875rem;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    color: var(--color-ink);
    white-space: nowrap;
}
.bulk-queue-meta-time-prefix {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--color-muted);
}
.bulk-campaign-actions {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-2);
    width: 13.5rem;
    flex-shrink: 0;
}
.bulk-queue-details-link {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 0.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-accent);
    text-decoration: none;
    white-space: nowrap;
}
.bulk-queue-details-link:hover {
    color: var(--color-accent-hover);
    text-decoration: underline;
}
.bulk-campaign-menu-trigger {
    width: 34px;
    height: 34px;
    min-height: 34px;
    font-size: 1.1rem;
    line-height: 1;
}
.bulk-campaign-mobile-list {
    display: none;
    list-style: none;
    margin: 0;
    padding: 0;
}
.bulk-campaign-card {
    padding: var(--space-4);
    border-bottom: 1px solid var(--color-line);
}
.bulk-campaign-card:last-child {
    border-bottom: 0;
}
.bulk-campaign-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-3);
}
.bulk-campaign-card-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    margin-top: var(--space-2);
    font-size: 0.875rem;
}
.bulk-campaign-card-count,
.bulk-campaign-card-progress {
    color: var(--color-muted);
}
.bulk-campaign-card .bulk-campaign-actions {
    width: auto;
    margin-top: var(--space-3);
    justify-content: flex-start;
    flex-wrap: wrap;
}
.bulk-campaign-card .bulk-campaign-progress {
    max-width: none;
    margin-top: var(--space-2);
}
@media (max-width: 1200px) {
    .bulk-queue-row {
        grid-template-columns: minmax(0, 46%) minmax(0, 1fr) 12rem;
        gap: var(--space-3);
    }
    .bulk-campaign-actions {
        width: 12rem;
    }
    .bulk-queue-meta {
        gap: 0.4rem 0.55rem;
    }
}
@media (max-width: 900px) {
    .bulk-queue-row {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-rows: auto auto;
        min-height: 72px;
        padding: 0.75rem 1rem;
    }
    .bulk-queue-campaign {
        grid-column: 1;
        grid-row: 1;
    }
    .bulk-campaign-actions {
        grid-column: 2;
        grid-row: 1 / span 2;
        align-self: center;
        width: auto;
        min-width: 7.5rem;
    }
    .bulk-queue-meta {
        grid-column: 1;
        grid-row: 2;
        margin-top: 0.15rem;
    }
    .bulk-queue-meta-time {
        display: none;
    }
    .bulk-campaign-progress {
        max-width: 10rem;
    }
}
@media (max-width: 768px) {
    .bulk-workspace {
        margin: calc(var(--space-4) * -1);
        padding: var(--space-4);
    }
    .bulk-workspace-toolbar .field {
        max-width: none;
        flex: 1 1 140px;
    }
    .bulk-workspace-tabs {
        max-width: none;
    }
    .bulk-queue-list {
        display: none;
    }
    .bulk-campaign-mobile-list {
        display: block;
    }
}
@media (max-width: 480px) {
    .bulk-workspace-header {
        flex-direction: column;
        align-items: stretch;
    }
    .bulk-workspace-header .btn {
        width: 100%;
    }
    .bulk-workspace-toolbar {
        flex-direction: column;
        align-items: stretch;
    }
    .bulk-workspace-toolbar .field {
        flex: 1 1 auto;
        max-width: none;
    }
    .bulk-campaign-card .bulk-campaign-actions {
        width: 100%;
    }
}
@media (max-width: 640px) {
    .bulk-schedule-modes {
        grid-template-columns: 1fr;
    }
    .bulk-schedule-inputs {
        grid-template-columns: 1fr;
    }
}
.bulk-warning-heading {
    margin: 0.75rem 0 0.25rem;
}
.bulk-warning-list {
    margin: 0;
    padding-left: 1.1rem;
}
.bulk-follow-ups {
    margin-top: var(--space-5);
    padding-top: var(--space-4);
    border-top: 1px dashed var(--color-line);
}
.bulk-follow-ups-header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-3);
    margin-bottom: var(--space-3);
}
.bulk-follow-ups-heading {
    margin: 0 0 0.25rem;
    font-size: 1rem;
}
.bulk-follow-up {
    padding: var(--space-3) 0;
    border-top: 1px solid var(--color-line);
}
.bulk-follow-up:first-child {
    border-top: 0;
    padding-top: 0;
}
.bulk-follow-up-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    margin-bottom: var(--space-3);
}
.bulk-follow-up-title {
    margin: 0;
    font-size: 0.95rem;
}
.bulk-follow-up-timing {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem 1rem;
    margin-bottom: var(--space-3);
    padding: 0.7rem 0.85rem;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
    background: var(--color-bg-1);
}
.bulk-follow-up-timing-copy {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}
.bulk-follow-up-timing-label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-ink);
}
.bulk-follow-up-timing-hint {
    font-size: 0.8125rem;
    color: var(--color-muted);
}
.bulk-follow-up-timing-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
}
.bulk-follow-up-presets {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem;
    border-radius: 999px;
    background: var(--color-surface);
    border: 1px solid var(--color-line);
}
.bulk-follow-up-preset {
    min-width: 2.35rem;
    min-height: 2rem;
    padding: 0 0.55rem;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--color-muted);
    font: inherit;
    font-size: 0.8125rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    line-height: 1;
    cursor: pointer;
}
.bulk-follow-up-preset:hover {
    color: var(--color-ink);
    background: var(--color-bg-0);
}
.bulk-follow-up-preset.is-active {
    color: #fff;
    background: var(--color-accent);
}
.bulk-follow-up-preset:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}
.bulk-follow-up-custom {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0;
    padding: 0.2rem 0.55rem 0.2rem 0.2rem;
    border: 1px solid var(--color-line);
    border-radius: 999px;
    background: var(--color-surface);
    cursor: text;
}
.bulk-follow-up-custom:focus-within {
    border-color: var(--color-accent);
    box-shadow: 0 0 0 3px rgba(31, 95, 139, 0.12);
}
input.bulk-follow-up-days {
    width: 2.75rem;
    min-width: 2.75rem;
    max-width: 2.75rem;
    min-height: 1.85rem;
    margin: 0;
    padding: 0.15rem 0.2rem;
    border: 0;
    border-radius: 999px;
    background: transparent;
    text-align: center;
    font-family: var(--font-mono);
    font-size: 0.8125rem;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    appearance: textfield;
    -moz-appearance: textfield;
}
input.bulk-follow-up-days:focus {
    outline: none;
}
input.bulk-follow-up-days::-webkit-outer-spin-button,
input.bulk-follow-up-days::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.bulk-follow-up-custom-unit {
    font-size: 0.8125rem;
    color: var(--color-muted);
    white-space: nowrap;
}
.bulk-follow-up-preview-list,
.bulk-follow-up-status-list {
    margin: 0;
    padding-left: 1.2rem;
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}
.bulk-follow-up-preview-meta {
    margin: 0 0 0.5rem;
}
.bulk-warning-more {
    margin-top: 0.35rem;
}
.bulk-warning-more summary {
    cursor: pointer;
    color: var(--color-muted);
    font-size: 0.875rem;
}
.bulk-warning-more[open] summary {
    margin-bottom: 0.15rem;
}
.bulk-warning-more .bulk-warning-list {
    margin-top: 0.35rem;
}
.composer-actions {
    position: sticky;
    bottom: 0;
    z-index: 5;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    margin: var(--space-5) calc(var(--space-5) * -1) calc(var(--space-5) * -1);
    padding: var(--space-4) var(--space-5);
    padding-bottom: calc(var(--space-4) + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--color-line);
    background: color-mix(in srgb, var(--color-bg-1) 88%, var(--color-surface));
    backdrop-filter: blur(6px);
}
.composer-actions-note {
    margin: 0;
    flex: 1 1 14rem;
    max-width: 28rem;
    font-size: 0.8125rem;
    color: var(--color-muted);
    line-height: 1.45;
}
.composer-actions-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    align-items: center;
    justify-content: flex-end;
    margin-left: auto;
}
.composer-actions-buttons .btn {
    min-width: 7.5rem;
}
.cc-bcc-toggle { margin-bottom: var(--space-3); }

/* Bulk import dialog */
.bulk-import-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(20, 32, 51, 0.4);
    z-index: 90;
    align-items: flex-start;
    justify-content: center;
    padding: 8vh var(--space-4) var(--space-4);
    overflow: auto;
}
.bulk-import-backdrop.is-open {
    display: flex;
}
.bulk-import-dialog {
    width: min(640px, calc(100vw - 2rem));
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    box-shadow: var(--elev-1);
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}
.bulk-import-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
}
.bulk-import-title {
    margin: 0;
    font-size: 1.1rem;
}
.bulk-import-lede {
    margin: 0;
}
.bulk-import-help {
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
    padding: var(--space-2) var(--space-3);
}
.bulk-import-help summary {
    cursor: pointer;
    font-size: 0.875rem;
    color: var(--color-muted);
}
.bulk-import-example {
    margin: var(--space-2) 0 0;
    padding: var(--space-3);
    max-height: 220px;
    overflow: auto;
    background: var(--color-bg-1);
    border-radius: var(--radius-sm);
    font-size: 0.8rem;
    line-height: 1.45;
    white-space: pre-wrap;
}
.bulk-import-text {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.85rem;
    line-height: 1.45;
    resize: vertical;
    min-height: 12rem;
}
.bulk-import-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--space-2);
}

/* Command palette */
.palette-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(20, 32, 51, 0.4);
    z-index: 90;
    align-items: flex-start;
    justify-content: center;
    padding-top: 12vh;
}
.palette-backdrop.is-open { display: flex; }
.palette {
    width: min(520px, calc(100vw - 2rem));
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    box-shadow: var(--elev-1);
    overflow: hidden;
}
.palette input {
    border: 0;
    border-bottom: 1px solid var(--color-line);
    border-radius: 0;
    min-height: 52px;
}
.palette-list { list-style: none; margin: 0; padding: var(--space-2); max-height: 320px; overflow: auto; }
.palette-item {
    display: block;
    width: 100%;
    text-align: left;
    padding: var(--space-3);
    border: 0;
    background: transparent;
    border-radius: var(--radius-md);
    cursor: pointer;
    font: inherit;
    color: var(--color-ink);
}
.palette-item:hover,
.palette-item.is-active { background: var(--color-bg-1); }
.palette-item small { display: block; color: var(--color-muted); font-size: 0.75rem; }

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

.live-region {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

.fab-compose {
    display: none;
    position: fixed;
    right: var(--space-4);
    bottom: var(--space-4);
    z-index: 25;
    width: auto;
    border-radius: var(--radius-md);
    box-shadow: var(--elev-1);
}

dialog.confirm-dialog {
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    padding: var(--space-5);
    max-width: 420px;
    box-shadow: var(--elev-1);
}
dialog.confirm-dialog::backdrop { background: rgba(20, 32, 51, 0.4); }
.dialog-actions {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-2);
    margin-top: var(--space-5);
}

/* —— Responsive —— */
@media (max-width: 1280px) {
    .mail-layout,
    .mail-layout.is-list-only {
        grid-template-columns: minmax(var(--list-width-min), 380px) minmax(0, 1fr);
    }
}

@media (max-width: 1180px) {
    .app-shell { grid-template-columns: var(--rail-narrow) 1fr; }
    .mail-layout,
    .mail-layout.is-list-only {
        grid-template-columns: minmax(var(--list-width-min), 340px) minmax(0, 1fr);
    }
    .rail {
        width: var(--rail-narrow);
        min-width: var(--rail-narrow);
        max-width: var(--rail-narrow);
    }
    .mail-reading-content {
        padding-left: var(--space-4);
        padding-right: var(--space-4);
    }
    .message-header {
        padding-left: var(--space-4);
        padding-right: var(--space-4);
    }
}

@media (max-width: 980px) {
    .mail-layout.has-reading {
        grid-template-columns: 1fr;
    }
    .mail-layout.has-reading .mail-list-pane { display: none; }
    .mail-layout.is-list-only {
        grid-template-columns: 1fr;
    }
    .mail-layout.is-list-only .mail-reading-empty { display: none; }
    .mail-reading-pane {
        min-height: auto;
        max-height: none;
    }
}

@media (max-width: 860px) {
    .app-shell { grid-template-columns: 1fr; }
    .rail {
        position: fixed;
        left: 0;
        top: 0;
        transform: translateX(-105%);
        transition: transform var(--motion-med) var(--ease);
        width: min(280px, 86vw);
        min-width: 0;
        max-width: min(280px, 86vw);
    }
    .rail.is-open { transform: none; }
    .rail-close-btn { display: block; }
    .mobile-bar { display: flex; }
    .mail-layout {
        grid-template-columns: 1fr;
        margin: 0;
        min-height: auto;
    }
    .mail-layout.is-list-only {
        grid-template-columns: 1fr;
        margin: 0;
    }
    .mail-layout.is-list-only .mail-reading-empty { display: none; }
    .mail-list-pane {
        min-height: auto;
        border-right: 0;
    }
    .mail-layout.has-reading .mail-list-pane { display: none; }
    .mail-layout:not(.has-reading) .mail-reading-pane { display: none; }
    .mail-reading-pane {
        min-height: auto;
        max-height: none;
    }
    .message-header {
        position: static;
        padding: var(--space-3) var(--space-4);
    }
    .mail-reading-content {
        padding: var(--space-4);
    }
    .message-header-toolbar {
        align-items: stretch;
    }
    .message-actions {
        width: 100%;
    }
    .fab-compose { display: inline-flex; }
    .content-pane { padding: var(--space-4); }
    .dns-row { grid-template-columns: 1fr; }
    .composer-page-header {
        flex-direction: column;
        align-items: stretch;
    }
    .compose-mode-switch {
        width: 100%;
    }
    .compose-mode-link {
        flex: 1 1 0;
        white-space: normal;
        text-align: center;
        padding: 0.5rem 0.65rem;
    }
    .bulk-recipients {
        min-height: 118px;
    }
    .composer-surface {
        padding: var(--space-4);
    }
    .composer-actions {
        margin-left: calc(var(--space-4) * -1);
        margin-right: calc(var(--space-4) * -1);
        margin-bottom: calc(var(--space-4) * -1);
        padding-left: var(--space-4);
        padding-right: var(--space-4);
        flex-direction: column;
        align-items: stretch;
    }
    .composer-actions-buttons {
        width: 100%;
        margin-left: 0;
    }
    .composer-actions-buttons .btn {
        flex: 1 1 auto;
        min-width: 0;
    }
    .composer-actions-buttons .btn[type="submit"] {
        flex: 1 1 100%;
    }
    .attachment-picker-item {
        flex-direction: column;
        align-items: stretch;
    }
    .attachment-picker-remove {
        align-self: flex-start;
    }
}

@media (max-width: 719px) {
    .structured-item {
        flex-direction: column;
        align-items: stretch;
    }
    .message-row {
        grid-template-columns: 10px minmax(0, 1fr);
        padding-left: var(--space-3);
        padding-right: var(--space-3);
    }
    .mail-filter-row,
    .mail-filter-row.has-since {
        grid-template-columns: 1fr;
    }
    .message-meta-item dd {
        white-space: normal;
        overflow-wrap: anywhere;
    }
}

/* Bulk send */
.bulk-parse-summary {
    margin: var(--space-3) 0 0;
    padding: var(--space-3);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
    background: var(--color-bg-1);
}
.bulk-parse-summary.has-invalid {
    border-color: color-mix(in srgb, var(--color-danger) 45%, var(--color-line));
}
.bulk-parse-stats {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}
.bulk-stat {
    display: inline-flex;
    align-items: baseline;
    gap: 0.35rem;
    min-height: 2rem;
    padding: 0.25rem 0.65rem;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-sm);
    background: var(--color-surface);
    font-size: 0.8125rem;
    color: var(--color-muted);
}
.bulk-stat-value {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--color-ink);
}
.bulk-stat-valid {
    border-left: 3px solid var(--color-success);
}
.bulk-stat-dup {
    border-left: 3px solid var(--color-pending);
}
.bulk-stat-invalid {
    border-left: 3px solid var(--color-danger);
}
.bulk-parse-action {
    margin: var(--space-2) 0 0;
    color: var(--color-danger);
}
.bulk-problems {
    margin-top: var(--space-3);
}
.bulk-problems summary {
    cursor: pointer;
    font-weight: 600;
    color: var(--color-ink);
}
.bulk-problems-heading {
    margin: 0.5rem 0 0.25rem;
    font-size: 0.8125rem;
}
.bulk-problems-list {
    margin: 0;
    padding-left: 1.1rem;
    font-size: 0.8125rem;
}
.attachment-picker-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-2);
}
.attachment-picker-hint {
    margin: 0;
}
.attachment-picker-input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}
.attachment-picker {
    position: relative;
}
.attachment-picker-list {
    list-style: none;
    margin: var(--space-2) 0 0;
    padding: 0;
    border-top: 1px solid var(--color-line);
}
.attachment-picker-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--color-line);
    min-width: 0;
}
.attachment-picker-meta {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.attachment-picker-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 500;
    color: var(--color-ink);
}
.attachment-picker-size {
    font-size: 0.8125rem;
    color: var(--color-muted);
}
.attachment-picker-remove {
    flex: 0 0 auto;
    min-height: 44px;
}
.bulk-confirm-meta {
    display: grid;
    gap: var(--space-3);
    margin: 0;
}
.bulk-confirm-meta dt {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-muted);
    margin: 0 0 0.15rem;
}
.bulk-confirm-meta dd {
    margin: 0;
}
.bulk-body-preview {
    white-space: pre-wrap;
    max-height: 220px;
    overflow: auto;
    padding: var(--space-3);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-sm);
    background: var(--color-bg-1);
    font-size: 0.9375rem;
}
.bulk-progress {
    height: 8px;
    background: var(--color-bg-1);
    border: 1px solid var(--color-line);
    border-radius: 999px;
    overflow: hidden;
}
.bulk-progress-bar {
    height: 100%;
    background: var(--color-accent, #2a5a8c);
    transition: width 0.35s ease;
}
@media (prefers-reduced-motion: reduce) {
    .bulk-progress-bar { transition: none; }
}
.bulk-recipients-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}
.bulk-recipients-table th,
.bulk-recipients-table td {
    text-align: left;
    padding: 0.5rem 0.4rem;
    border-bottom: 1px solid var(--color-line);
    vertical-align: top;
}
.bulk-recipients-table th {
    color: var(--color-muted);
    font-weight: 600;
}

/* Contacts & follow-ups */
.contacts-page-header,
.followups-page .page-header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-4);
    margin-bottom: var(--space-4);
}
.contacts-filters {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    align-items: flex-end;
    margin-bottom: var(--space-4);
}
.contacts-filters .field { margin: 0; min-width: 160px; }
.contacts-filters .field-grow { flex: 1 1 220px; }
.contacts-filters-actions { padding-bottom: 2px; }
.contacts-table-wrap { overflow-x: auto; }
.contacts-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9375rem;
}
.contacts-table th,
.contacts-table td {
    text-align: left;
    padding: 0.65rem 0.5rem;
    border-bottom: 1px solid var(--color-line);
    vertical-align: top;
}
.contacts-table th {
    color: var(--color-muted);
    font-weight: 600;
    font-size: 0.8125rem;
}
.contact-name { font-weight: 600; color: var(--color-ink); }
.contact-name:hover { color: var(--color-accent); }
.contact-email, .contact-domain, .contact-suggestion {
    font-size: 0.8125rem;
    margin-top: 0.15rem;
}
.contact-card {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: var(--space-3);
    border-bottom: 1px solid var(--color-line);
    color: inherit;
    text-decoration: none;
    min-height: 44px;
}
.contact-card:hover { background: var(--color-bg-1); text-decoration: none; }
.contact-detail .page-header {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: var(--space-4);
}
.contact-detail-meta { text-align: right; }
.contact-actions-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    align-items: center;
}
.contact-actions-row .btn,
.contact-actions-row summary.btn,
.followup-actions .btn {
    min-height: 44px;
}
.contact-history { list-style: none; margin: 0; padding: 0; }
.contact-history-item {
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--color-line);
}
.contact-history-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    align-items: center;
    margin-bottom: 0.35rem;
}
.contact-history-subject { font-weight: 600; }
.contact-history-preview { margin: 0.35rem 0 0; font-size: 0.875rem; }
.action-menu { position: relative; }
.action-menu > summary {
    list-style: none;
    cursor: pointer;
}
.action-menu > summary::-webkit-details-marker { display: none; }
.action-menu-panel {
    position: absolute;
    right: 0;
    top: calc(100% + 4px);
    z-index: 20;
    min-width: 220px;
    padding: var(--space-2);
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
    box-shadow: var(--elev-1);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
.followup-group { margin-bottom: var(--space-5); }
.followup-group-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-bottom: var(--space-2);
}
.followup-group-heading {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
}
.followup-group-header h2 { margin: 0; font-size: 1.05rem; }
.followup-group-bulk { margin: 0; }
.followup-list { list-style: none; margin: 0; padding: 0; }
.followup-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--color-line);
}
.followup-main { flex: 1 1 220px; min-width: 0; }
.followup-reason { margin-top: 0.25rem; }
.followup-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    align-items: flex-start;
}
.empty-state {
    padding: var(--space-6) var(--space-4);
    text-align: center;
    color: var(--color-muted);
}
/* —— Contacts workspace —— */
.contacts-workspace {
    margin: calc(var(--space-5) * -1);
    padding: var(--space-5);
    min-height: calc(100vh - 2px);
    background: var(--color-bg-1);
}
.contacts-workspace-inner {
    max-width: 1400px;
    margin: 0 auto;
    width: 100%;
}
.contacts-workspace-header {
    align-items: center;
    margin-bottom: var(--space-4);
}
.contacts-workspace-heading h1 {
    margin: 0;
}
.contacts-workspace-summary {
    margin: var(--space-1) 0 0;
    font-size: 0.9375rem;
}
.contacts-workspace-toolbar .field {
    min-width: 0;
    flex: 0 1 auto;
    max-width: 220px;
}
.contacts-workspace-toolbar .field-grow {
    flex: 1 1 220px;
    max-width: none;
}
.contacts-workspace-empty {
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
}
.contacts-list-wrap,
.contacts-title-list {
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    overflow: hidden;
}
.contacts-table-row {
    transition: background var(--motion-fast) var(--ease);
}
.contacts-table-row:hover {
    background: var(--color-bg-1);
}
.contacts-table th,
.contacts-table td {
    padding: 0.75rem 1rem;
}
.contacts-table-main .contact-name {
    font-size: 1rem;
}
.contact-activity-dir {
    font-size: 0.8125rem;
    margin-top: 0.1rem;
}
.contacts-col-count {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.contacts-mobile-list {
    display: none;
    list-style: none;
    margin: 0;
    padding: 0;
}
.contact-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-3);
}
.contacts-view-switch { flex: 0 0 auto; }
.contacts-view-switch .compose-mode-link { text-decoration: none; }

/* By-title grouped view */
.title-group {
    border-bottom: 1px solid var(--color-line);
}
.title-group:last-child {
    border-bottom: 0;
}
.title-group-header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    gap: var(--space-3) var(--space-4);
    align-items: center;
    padding: 0.85rem 1rem;
    cursor: pointer;
    list-style: none;
    background: color-mix(in srgb, var(--color-bg-1) 45%, var(--color-surface));
    transition: background var(--motion-fast) var(--ease);
}
.title-group-header::-webkit-details-marker { display: none; }
.title-group-header:hover {
    background: var(--color-bg-1);
}
.title-group-chevron {
    width: 0.45rem;
    height: 0.45rem;
    border-right: 2px solid var(--color-muted);
    border-bottom: 2px solid var(--color-muted);
    transform: rotate(-45deg);
    transition: transform var(--motion-fast) var(--ease);
    flex-shrink: 0;
}
.title-group[open] .title-group-chevron {
    transform: rotate(45deg);
}
.title-group-main {
    min-width: 0;
}
.title-group-subject {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--color-ink);
}
.title-group-alias {
    margin: 0.15rem 0 0;
    font-size: 0.875rem;
    color: var(--color-muted);
}
.title-group-stats {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    font-size: 0.875rem;
    color: var(--color-muted);
}
.title-group-stat {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.title-group-time {
    text-align: right;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-ink);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.title-group-time-label {
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--color-muted);
}
.title-wave-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.title-wave-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-3);
    align-items: center;
    min-height: 60px;
    padding: 0.45rem 1rem 0.45rem 1.75rem;
    border-top: 1px solid color-mix(in srgb, var(--color-line) 80%, transparent);
    transition: background var(--motion-fast) var(--ease);
}
.title-wave-row:hover {
    background: color-mix(in srgb, var(--color-bg-1) 65%, transparent);
}
.title-wave-details {
    min-width: 0;
}
.title-wave-summary {
    cursor: pointer;
    display: grid;
    grid-template-columns: auto minmax(0, 1.1fr) minmax(0, 1fr);
    gap: var(--space-3);
    align-items: center;
    list-style: none;
    min-height: 44px;
}
.title-wave-summary::-webkit-details-marker { display: none; }
.title-wave-chevron {
    width: 0.4rem;
    height: 0.4rem;
    border-right: 2px solid var(--color-muted);
    border-bottom: 2px solid var(--color-muted);
    transform: rotate(-45deg);
    transition: transform var(--motion-fast) var(--ease);
    flex-shrink: 0;
    align-self: center;
}
.title-wave-details[open] .title-wave-chevron {
    transform: rotate(45deg);
}
.title-wave-leading {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.75rem;
    min-width: 0;
}
.title-wave-time {
    font-weight: 600;
    font-size: 0.9375rem;
    font-variant-numeric: tabular-nums;
    color: var(--color-ink);
    white-space: nowrap;
}
.title-wave-middle {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.75rem;
    font-size: 0.875rem;
    color: var(--color-muted);
}
.title-wave-count {
    color: var(--color-ink);
    font-weight: 500;
    font-variant-numeric: tabular-nums;
}
.title-wave-meta {
    font-size: 0.8125rem;
}
.title-wave-recipients {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--color-line);
    background: color-mix(in srgb, var(--color-bg-1) 40%, transparent);
}
.title-wave-recipients li {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.35rem 0.75rem;
    align-items: center;
    padding: 0.55rem 1rem 0.55rem 2rem;
    border-bottom: 1px solid color-mix(in srgb, var(--color-line) 75%, transparent);
}
.title-wave-recipients li:last-child {
    border-bottom: 0;
}
.title-wave-recipient-main {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}
a.title-wave-compose {
    flex: 0 0 auto;
    white-space: nowrap;
}

.pagination-wrap { margin-top: var(--space-4); }

.panel-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
}
.panel-pagination-meta {
    margin: 0;
    font-size: 0.875rem;
}
.panel-pagination-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-1);
    margin: 0;
    padding: 0;
    list-style: none;
}
.panel-pagination-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 2rem;
    padding: 0 var(--space-2);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-sm);
    background: var(--color-surface);
    color: var(--color-ink);
    font-size: 0.875rem;
    line-height: 1;
    text-decoration: none;
}
a.panel-pagination-btn:hover {
    background: var(--color-bg-1);
    border-color: var(--color-accent);
    color: var(--color-accent);
    text-decoration: none;
}
.panel-pagination-btn.is-current {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: #fff;
    font-weight: 600;
}
.panel-pagination-btn.is-disabled {
    color: var(--color-muted);
    opacity: 0.55;
    cursor: default;
}
.panel-pagination-simple .panel-pagination-list {
    width: 100%;
    justify-content: space-between;
}
.panel-pagination-simple .panel-pagination-btn {
    min-width: auto;
    padding: 0 var(--space-3);
}
@media (max-width: 1024px) {
    .contacts-col-activity,
    .contacts-col-count {
        display: none;
    }
    .title-group-header {
        grid-template-columns: auto minmax(0, 1fr);
        grid-template-rows: auto auto;
    }
    .title-group-stats,
    .title-group-time {
        grid-column: 2;
    }
    .title-group-time {
        text-align: left;
    }
    .title-wave-middle .title-wave-meta {
        display: none;
    }
}
@media (max-width: 860px) {
    .contacts-table-wrap { display: none; }
    .contacts-mobile-list { display: block; }
    .contact-detail-meta { text-align: left; }
    .contacts-col-alias { display: none; }
    .title-group-header {
        grid-template-columns: auto minmax(0, 1fr);
    }
    .title-group-stats {
        grid-column: 1 / -1;
        padding-left: 1.1rem;
    }
    .title-group-time {
        grid-column: 1 / -1;
        padding-left: 1.1rem;
        text-align: left;
    }
    .title-wave-row {
        grid-template-columns: 1fr;
        padding-left: 1rem;
    }
    .title-wave-actions,
    a.title-wave-compose {
        width: 100%;
    }
    .title-wave-row > a.title-wave-compose {
        margin-top: var(--space-2);
    }
}
@media (max-width: 480px) {
    .contacts-workspace {
        margin: calc(var(--space-4) * -1);
        padding: var(--space-4);
    }
    .contacts-workspace-header {
        flex-direction: column;
        align-items: stretch;
    }
    .contacts-view-switch {
        width: 100%;
    }
    .contacts-workspace-toolbar .field {
        max-width: none;
        flex: 1 1 auto;
    }
    .title-wave-summary {
        grid-template-columns: auto 1fr;
    }
    .title-wave-middle {
        grid-column: 1 / -1;
        padding-left: 1.1rem;
    }
}
@media (max-width: 390px) {
    .contacts-filters { flex-direction: column; align-items: stretch; }
    .followup-row { flex-direction: column; }
}

/* Opportunity Research */
.data-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.data-table th,
.data-table td { text-align: left; padding: 0.5rem 0.6rem; border-bottom: 1px solid var(--color-border, #ddd); vertical-align: top; }
.data-table th { color: var(--color-muted); font-weight: 600; }
.stack-form > div { margin-bottom: 0.85rem; }
.stack-form label { display: block; margin-bottom: 0.25rem; }
.stack-form input,
.stack-form textarea,
.stack-form select { width: 100%; max-width: 40rem; }
.kv-list { display: grid; grid-template-columns: 10rem 1fr; gap: 0.35rem 1rem; }
.kv-list dt { color: var(--color-muted); }
.kv-list dd { margin: 0; }

/* Research run create — launch workspace */
.research-create-workspace {
    margin: calc(var(--space-5) * -1);
    padding: var(--space-5);
    min-height: calc(100vh - 2px);
    background: var(--color-bg-1);
}
.research-create-inner {
    max-width: 1120px;
    margin: 0 auto;
    width: 100%;
}
.research-create-header {
    align-items: flex-start;
    margin-bottom: 1.35rem;
}
.research-create-heading h1 {
    margin: 0;
}
.research-create-lede {
    margin: 0.4rem 0 0;
    max-width: 40rem;
    font-size: 0.95rem;
    line-height: 1.45;
}
.research-create-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 300px);
    gap: 1.5rem;
    align-items: start;
}
.research-create-main {
    display: flex;
    flex-direction: column;
    gap: 1.35rem;
    max-width: 760px;
    min-width: 0;
}
.research-create-main .stack-form input,
.research-create-main .stack-form textarea,
.research-create-main .stack-form select,
.research-assistant-input,
.research-focus-textarea {
    max-width: none;
}
.research-create-section {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}
.research-create-section-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: -0.01em;
}
.research-mode-selector {
    margin: 0;
    padding: 0;
    border: 0;
}
.research-mode-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
}
.research-mode-option {
    display: flex;
    gap: 0.45rem;
    align-items: flex-start;
    margin: 0;
    padding: 0.55rem 0.65rem;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    cursor: pointer;
    transition: border-color var(--motion-fast) var(--ease), background var(--motion-fast) var(--ease);
}
.research-mode-option.is-selected {
    border-color: rgba(31, 95, 139, 0.45);
    background: rgba(31, 95, 139, 0.07);
    box-shadow: inset 0 0 0 1px rgba(31, 95, 139, 0.16);
}
.research-mode-option input {
    margin-top: 0.15rem;
    flex-shrink: 0;
}
.research-mode-option-body {
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
    min-width: 0;
}
.research-mode-option-title {
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--color-ink);
    line-height: 1.3;
}
.research-mode-option-hint {
    font-size: 0.75rem;
    line-height: 1.35;
}
.research-sources-only-note {
    margin: 0;
    padding: 0.55rem 0.75rem;
    border-radius: var(--radius-md);
    border: 1px solid rgba(31, 95, 139, 0.2);
    background: rgba(31, 95, 139, 0.06);
    font-size: 0.85rem;
    line-height: 1.4;
}
.research-focus-head {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}
.research-focus-block .research-create-section-title {
    display: block;
}
.research-focus-textarea {
    width: 100%;
    min-height: 7.5rem;
    max-height: 9.5rem;
    height: 8.25rem;
    resize: vertical;
    font: inherit;
    font-size: 0.9375rem;
    line-height: 1.45;
    padding: 0.7rem 0.8rem;
}
.research-assistant-inline {
    margin-top: 0.15rem;
}
.research-assistant-trigger {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}
.research-assistant-icon {
    flex-shrink: 0;
    opacity: 0.85;
}
.research-create-sidebar {
    min-width: 0;
}
.research-create-summary-panel {
    position: sticky;
    top: 1rem;
    padding: 1rem 1.05rem;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
    background: var(--color-surface);
}
.research-create-summary-title {
    margin: 0 0 0.85rem;
    font-size: 0.95rem;
    font-weight: 600;
}
.research-create-summary {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.7rem;
    margin: 0;
}
.research-create-summary > div {
    min-width: 0;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid color-mix(in srgb, var(--color-line) 85%, transparent);
}
.research-create-summary > div:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}
.research-create-summary dt {
    margin: 0;
    color: var(--color-muted);
    font-size: 0.75rem;
    font-weight: 500;
}
.research-create-summary dd {
    margin: 0.2rem 0 0;
    font-weight: 600;
    font-size: 0.9rem;
    line-height: 1.35;
    color: var(--color-ink);
}
.research-setup-status {
    margin-top: 0.35rem;
    padding: 0.55rem 0.75rem;
    border-radius: var(--radius-md);
    border: 1px solid rgba(31, 95, 139, 0.22);
    background: rgba(31, 95, 139, 0.08);
    color: var(--color-ink);
    font-size: 0.875rem;
    font-weight: 600;
}
.research-advanced {
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    margin: 0;
}
.research-advanced-summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.85rem 1rem;
    font-weight: 600;
    color: var(--color-ink);
}
.research-advanced-summary::-webkit-details-marker { display: none; }
.research-advanced-summary::marker { content: ""; }
.research-advanced-summary-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}
.research-advanced-chevron {
    flex-shrink: 0;
    color: var(--color-muted);
    transition: transform var(--motion-fast) var(--ease);
}
.research-advanced[open] .research-advanced-chevron {
    transform: rotate(180deg);
}
.research-advanced-hint {
    font-weight: 400;
    font-size: 0.8125rem;
}
.research-advanced-body {
    padding: 0 1rem 1rem;
    border-top: 1px solid var(--color-line);
    padding-top: 0.85rem;
}
.research-advanced-policy-note {
    margin: 0 0 0.75rem;
    font-size: 0.8125rem;
    line-height: 1.4;
}
.research-ignore-learning {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 0.35rem 0 0;
    font-size: 0.9rem;
}
.field-help {
    margin: 0 0 0.4rem;
    color: var(--color-muted);
    font-size: 0.8125rem;
    line-height: 1.4;
}
.research-budget-row {
    align-items: start;
}
.research-create-main textarea.is-ai-filled,
.research-create-main input.is-ai-filled {
    border-color: rgba(31, 95, 139, 0.35);
    background: rgba(31, 95, 139, 0.04);
}
.research-start-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.45rem;
    padding-top: 0.25rem;
}
.research-assistant-input {
    width: 100%;
    min-height: 6rem;
    resize: vertical;
    font: inherit;
    line-height: 1.45;
}
.research-assistant-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: var(--space-3);
}
.research-generate-error {
    margin: 0.65rem 0 0;
    color: var(--color-danger);
    font-size: 0.875rem;
}
.research-assistant-modal {
    position: fixed;
    inset: 0;
    z-index: 80;
    display: flex;
    justify-content: flex-end;
}
.research-assistant-modal[hidden] {
    display: none !important;
}
.research-assistant-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(20, 32, 51, 0.35);
}
.research-assistant-modal-panel {
    position: relative;
    z-index: 1;
    width: min(420px, 100%);
    height: 100%;
    overflow: auto;
    background: var(--color-surface);
    border-left: 1px solid var(--color-line);
    box-shadow: -12px 0 40px rgba(20, 32, 51, 0.12);
    display: flex;
    flex-direction: column;
}
.research-assistant-modal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1.1rem 1.15rem 0.85rem;
    border-bottom: 1px solid var(--color-line);
}
.research-assistant-modal-header h2 {
    margin: 0 0 0.35rem;
    font-size: 1.05rem;
}
.research-assistant-modal-header .muted {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.4;
}
.research-assistant-modal-body {
    padding: 1rem 1.15rem 1.35rem;
}
.research-setup-preview {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-line);
}
.research-setup-preview-title {
    margin: 0 0 0.35rem;
    font-size: 0.95rem;
}
.research-setup-preview-note {
    margin: 0 0 0.85rem;
    font-size: 0.8125rem;
}
.research-setup-preview-list {
    display: grid;
    gap: 0.7rem;
    margin: 0 0 1rem;
}
.research-setup-preview-list dt {
    margin: 0;
    color: var(--color-muted);
    font-size: 0.75rem;
}
.research-setup-preview-list dd {
    margin: 0.15rem 0 0;
    font-size: 0.875rem;
    line-height: 1.4;
    white-space: pre-wrap;
    word-break: break-word;
}
.research-setup-preview-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
body.research-assistant-open {
    overflow: hidden;
}
.btn-sm {
    padding: 0.35rem 0.7rem;
    font-size: 0.8125rem;
}

@media (max-width: 980px) {
    .research-create-layout {
        grid-template-columns: 1fr;
    }
    .research-create-summary-panel {
        position: static;
    }
    .research-create-main {
        max-width: none;
    }
}

@media (max-width: 900px) {
    .research-mode-options {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .research-create-workspace {
        padding: var(--space-4);
    }
    .research-assistant-modal-panel {
        width: 100%;
    }
}

/* Research run detail */
.research-run-workspace {
    margin: calc(var(--space-5) * -1);
    padding: var(--space-5);
    min-height: calc(100vh - 2px);
    background: var(--color-bg-1);
}
.research-run-inner {
    max-width: 72rem;
    margin: 0 auto;
    width: 100%;
}
.research-run-header-sticky {
    position: sticky;
    top: 0;
    z-index: 20;
    margin-bottom: var(--space-5);
    padding: var(--space-3) 0 var(--space-4);
    background: color-mix(in srgb, var(--color-bg-1) 92%, transparent);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid color-mix(in srgb, var(--color-line) 65%, transparent);
}
.research-run-live-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
}
.research-run-activity {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: #2f8f5b;
    box-shadow: 0 0 0 0 rgba(47, 143, 91, 0.45);
    animation: research-run-pulse 1.8s ease-in-out infinite;
}
@keyframes research-run-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(47, 143, 91, 0.35); }
    50% { box-shadow: 0 0 0 0.45rem rgba(47, 143, 91, 0); }
}
.research-run-heading h1 {
    margin: 0;
    font-size: 1.5rem;
}
.research-run-meta {
    margin: var(--space-1) 0 0;
    font-size: 0.875rem;
}
.research-run-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-2);
}
.research-run-error {
    margin-bottom: var(--space-4);
    padding: var(--space-4);
    border: 1px solid color-mix(in srgb, var(--color-danger) 35%, var(--color-line));
    border-radius: var(--radius-lg);
    background: color-mix(in srgb, var(--color-danger-bg) 70%, var(--color-surface));
}
.research-run-error h2 {
    margin: 0 0 var(--space-2);
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-ink);
}
.research-run-error p {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.45;
    color: var(--color-ink);
}
.research-run-error-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    margin-top: var(--space-3);
}
.research-run-sections {
    display: flex;
    flex-direction: column;
    gap: 1.375rem;
}
.research-run-panel {
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: 11px;
    overflow: hidden;
}
.research-run-panel-muted {
    background: color-mix(in srgb, var(--color-bg-1) 55%, var(--color-surface));
}
.research-run-panel-head {
    padding: 1.125rem 1.375rem 0.5rem;
    border-bottom: 1px solid color-mix(in srgb, var(--color-line) 70%, transparent);
}
.research-run-panel-body {
    padding: 1rem 1.375rem 1.25rem;
}
.research-run-section-title {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0;
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--color-ink);
    text-transform: none;
}
.research-run-section-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    padding: 0.05rem 0.35rem;
    border-radius: var(--radius-sm);
    font-size: 0.6875rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    background: color-mix(in srgb, var(--color-bg-1) 80%, var(--color-surface));
    border: 1px solid color-mix(in srgb, var(--color-line) 80%, transparent);
    color: var(--color-muted);
}
.research-run-section-help {
    margin: 0.35rem 0 0;
    font-size: 0.8125rem;
    line-height: 1.4;
}
.research-run-objective {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--color-ink);
}
.research-run-empty {
    padding: 0.75rem 0;
    font-size: 0.9375rem;
    color: var(--color-muted);
}
.research-run-waiting {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    min-height: 3.25rem;
    padding: 0.65rem 0.85rem;
    border: 1px dashed color-mix(in srgb, var(--color-line) 85%, transparent);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--color-bg-1) 65%, var(--color-surface));
}
.research-run-waiting p {
    margin: 0.15rem 0 0;
}
.research-run-activity-sm {
    width: 0.45rem;
    height: 0.45rem;
    margin-top: 0.35rem;
    flex-shrink: 0;
}
.research-run-empty p {
    margin: 0;
}
.research-run-table-wrap {
    overflow-x: auto;
}
.research-run-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9375rem;
}
.research-run-table th,
.research-run-table td {
    text-align: left;
    padding: 0.65rem 0.5rem;
    border-bottom: 1px solid var(--color-line);
    vertical-align: middle;
}
.research-run-table th {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-muted);
}
.research-run-table tbody tr:hover {
    background: color-mix(in srgb, var(--color-bg-1) 80%, transparent);
}
.research-run-table-name {
    font-weight: 600;
    color: var(--color-ink);
}
.research-run-table-score {
    font-variant-numeric: tabular-nums;
}
.research-run-table-actions {
    text-align: right;
    white-space: nowrap;
}
.research-run-observations {
    list-style: none;
    margin: 0;
    padding: 0;
}
.research-run-observation {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid color-mix(in srgb, var(--color-line) 75%, transparent);
    transition: background 0.8s ease;
}
.research-run-observation:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}
.research-run-observation:first-child {
    padding-top: 0;
}
.research-run-observation.is-new-highlight {
    background: color-mix(in srgb, #e6f4ec 55%, transparent);
    margin-inline: -0.5rem;
    padding-inline: 0.5rem;
    border-radius: var(--radius-sm);
}
.research-run-observation-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-ink);
    line-height: 1.35;
}
.research-run-observation-meta {
    display: block;
    font-size: 0.8125rem;
    line-height: 1.4;
}
.research-run-observation-head {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.research-run-observation-new {
    display: inline-flex;
    align-items: center;
    padding: 0.05rem 0.35rem;
    border-radius: var(--radius-sm);
    font-size: 0.6875rem;
    font-weight: 600;
    background: #e6f4ec;
    color: #1f6b45;
}
.research-run-observation-new.is-visible,
.research-run-observation-new:not([hidden]) {
    animation: research-run-new-fade 2.5s ease-out forwards;
}
@keyframes research-run-new-fade {
    0% { opacity: 1; }
    70% { opacity: 1; }
    100% { opacity: 0.35; }
}
.research-run-header {
    align-items: flex-start;
}
.research-run-title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}
.research-run-history {
    opacity: 1;
}
.research-run-events-older {
    margin-bottom: var(--space-3);
    border: 1px solid color-mix(in srgb, var(--color-line) 75%, transparent);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--color-bg-1) 50%, transparent);
}
.research-run-events-older > summary {
    cursor: pointer;
    padding: 0.55rem 0.75rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-accent);
    list-style: none;
}
.research-run-events-older > summary::-webkit-details-marker {
    display: none;
}
.research-run-events-older .research-run-events {
    padding: 0 0.75rem 0.75rem;
}
.research-run-events {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}
.research-run-event {
    padding: 0.65rem 0;
    border-bottom: 1px solid color-mix(in srgb, var(--color-line) 70%, transparent);
}
.research-run-event:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}
.research-run-event-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--space-2);
    font-size: 0.875rem;
}
.research-run-event-head time {
    font-variant-numeric: tabular-nums;
    color: var(--color-muted);
    font-size: 0.8125rem;
}
.research-run-event-label {
    font-weight: 600;
    color: var(--color-ink);
}
.research-run-event-desc {
    margin: 0.2rem 0 0;
    font-size: 0.875rem;
    color: var(--color-muted);
    line-height: 1.4;
}
.research-run-tech-details {
    margin-top: var(--space-2);
}
.research-run-tech-details > summary {
    cursor: pointer;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-accent);
    list-style: none;
}
.research-run-tech-details > summary::-webkit-details-marker {
    display: none;
}
.research-run-tech-pre {
    margin: var(--space-2) 0 0;
    padding: var(--space-3);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    font-family: var(--font-mono);
    font-size: 0.75rem;
    line-height: 1.45;
    overflow-x: auto;
    white-space: pre-wrap;
    word-break: break-word;
    max-height: 16rem;
}
.research-run-event-tech > summary {
    font-size: 0.75rem;
    font-weight: 500;
}
.status-stopping {
    background: #fff4e6;
    border-color: #e8c88a;
    color: #9a5b00;
}
.research-run-header-stopping {
    border-bottom-color: color-mix(in srgb, #e8c88a 45%, var(--color-line));
}
.research-run-stopping-banner {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-3);
    width: 100%;
    padding: var(--space-3);
    border: 1px solid color-mix(in srgb, #e8c88a 55%, var(--color-line));
    border-radius: var(--radius-lg);
    background: linear-gradient(
        180deg,
        color-mix(in srgb, #fff8ed 85%, var(--color-surface)) 0%,
        var(--color-surface) 100%
    );
}
.research-run-stopping-banner-main {
    flex: 1 1 28rem;
    min-width: 0;
}
.research-run-stopping-banner-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}
.research-run-stopping-title {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 650;
    color: var(--color-ink);
}
.research-run-stopping-subtitle {
    margin: 0.45rem 0 0;
    font-size: 0.875rem;
    line-height: 1.45;
    max-width: 42rem;
}
.research-run-stopping-stale-note {
    margin: 0.45rem 0 0;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-warning);
}
.research-run-stopping-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
    margin: 0.85rem 0 0;
    padding: 0;
}
.research-run-stopping-stats > div {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
    font-size: 0.8125rem;
}
.research-run-stopping-stats dt {
    margin: 0;
    color: var(--color-muted);
    font-weight: 500;
}
.research-run-stopping-stats dd {
    margin: 0;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
    color: var(--color-ink);
}
.research-run-stopping-diagnostics {
    margin-top: 0.65rem;
}
.research-run-stopping-diagnostics p {
    margin: 0.15rem 0 0;
    font-size: 0.8125rem;
}
.research-run-stopping-actions {
    flex-direction: column;
    align-items: stretch;
    min-width: 11rem;
}
.research-run-cancel-destructive {
    padding-top: 0.55rem;
    margin-top: 0.15rem;
    border-top: 1px solid color-mix(in srgb, var(--color-danger) 25%, var(--color-line));
}
.research-run-panel-stopping-work {
    border-color: color-mix(in srgb, #e8c88a 40%, var(--color-line));
}
.research-run-remaining-work-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}
.research-run-remaining-work-item {
    padding: 0.65rem 0.75rem;
    border: 1px solid color-mix(in srgb, var(--color-line) 80%, transparent);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--color-bg-1) 55%, var(--color-surface));
}
.research-run-remaining-work-name {
    font-weight: 650;
    font-size: 0.9375rem;
    color: var(--color-ink);
}
.research-run-remaining-work-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.65rem;
    margin-top: 0.25rem;
    font-size: 0.8125rem;
}
.research-run-remaining-work-stage {
    font-weight: 600;
    color: var(--color-ink);
}
.research-run-candidate-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.75rem;
}
.research-run-candidate-filter {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.55rem;
    border: 1px solid color-mix(in srgb, var(--color-line) 85%, transparent);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    color: var(--color-muted);
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
}
.research-run-candidate-filter.is-active {
    border-color: color-mix(in srgb, var(--color-accent) 45%, var(--color-line));
    background: color-mix(in srgb, var(--color-accent) 8%, var(--color-surface));
    color: var(--color-ink);
}
.research-run-filter-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.1rem;
    padding: 0 0.25rem;
    border-radius: var(--radius-sm);
    font-size: 0.6875rem;
    font-variant-numeric: tabular-nums;
    background: color-mix(in srgb, var(--color-bg-1) 70%, var(--color-surface));
    color: var(--color-muted);
}
.research-run-candidate-filter.is-active .research-run-filter-count {
    color: var(--color-ink);
}
.research-run-candidate-name {
    display: block;
    font-weight: 650;
}
.research-run-candidate-decision,
.research-run-candidate-tech-status,
.research-run-candidate-activity {
    display: block;
    font-size: 0.75rem;
    line-height: 1.35;
    margin-top: 0.15rem;
}
.research-run-candidate-semantic-status {
    font-size: 0.8125rem;
}
.research-run-candidate-stage {
    display: block;
    font-size: 0.8125rem;
    font-weight: 600;
}
.research-run-candidate-score {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}
.research-run-candidate-score-finalist {
    color: #1f6b45;
    font-weight: 700;
}
.research-run-panel-secondary .research-run-panel-head {
    opacity: 0.92;
}
.research-run-panel-secondary .research-run-section-title {
    font-size: 0.8125rem;
    color: var(--color-muted);
}
.research-run-events-collapsible > summary {
    cursor: pointer;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-accent);
    list-style: none;
}
.research-run-events-collapsible > summary::-webkit-details-marker {
    display: none;
}
.research-run-stale-warning {
    margin: 0.45rem 0 0;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-warning);
}
@media (max-width: 720px) {
    .research-run-workspace {
        margin: calc(var(--space-4) * -1);
        padding: var(--space-4);
    }
    .research-run-header {
        flex-direction: column;
    }
    .research-run-actions {
        width: 100%;
        justify-content: flex-start;
    }
}

/* Research dashboard */
.research-dashboard-workspace {
    margin: calc(var(--space-5) * -1);
    padding: var(--space-5);
    min-height: calc(100vh - 2px);
    background: var(--color-bg-1);
}
.research-dashboard-inner {
    max-width: 1360px;
    margin: 0 auto;
    width: 100%;
}
.research-dashboard-header {
    align-items: center;
    margin-bottom: var(--space-4);
}
.research-dashboard-heading h1 {
    margin: 0;
}
.research-dashboard-subtitle {
    margin: var(--space-1) 0 0;
    font-size: 0.9375rem;
}
.research-kpi-strip {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0;
    margin-bottom: var(--space-5);
    padding: var(--space-3) 0;
    border-top: 1px solid var(--color-line);
    border-bottom: 1px solid var(--color-line);
}
.research-kpi-item {
    flex: 1 1 0;
    min-width: 7rem;
    padding: 0.35rem var(--space-4);
    border-right: 1px solid color-mix(in srgb, var(--color-line) 80%, transparent);
}
.research-kpi-item:first-child {
    padding-left: 0;
}
.research-kpi-item:last-child {
    border-right: 0;
    padding-right: 0;
}
.research-kpi-label {
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--color-muted);
    margin-bottom: 0.15rem;
}
.research-kpi-value {
    display: block;
    font-size: 1.25rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--color-ink);
    line-height: 1.2;
}
.research-kpi-item-highlight .research-kpi-value {
    color: var(--color-accent);
}
.research-kpi-item-usage .research-kpi-label,
.research-kpi-item-usage .research-kpi-value {
    color: var(--color-muted);
}
.research-kpi-item-usage .research-kpi-value {
    font-size: 1.0625rem;
    font-weight: 600;
}
.research-dashboard-section {
    padding-top: var(--space-1);
}
.research-dashboard-section-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-3);
    margin-bottom: var(--space-3);
}
.research-dashboard-section-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-ink);
}
.research-dashboard-section-link {
    font-size: 0.875rem;
    font-weight: 600;
    white-space: nowrap;
}
.research-dashboard-empty {
    padding: var(--space-6) var(--space-4);
    text-align: center;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
}
.research-dashboard-empty-title {
    margin: 0 0 var(--space-2);
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-ink);
}
.research-dashboard-empty-text {
    margin: 0 0 var(--space-4);
    max-width: 32rem;
    margin-left: auto;
    margin-right: auto;
    font-size: 0.9375rem;
    color: var(--color-muted);
    line-height: 1.45;
}
.research-dashboard-table-wrap {
    overflow-x: auto;
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
}
.research-dashboard-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9375rem;
}
.research-dashboard-table th,
.research-dashboard-table td {
    text-align: left;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--color-line);
    vertical-align: top;
}
.research-dashboard-table th {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-muted);
    background: color-mix(in srgb, var(--color-bg-1) 60%, var(--color-surface));
}
.research-dashboard-table tbody tr:last-child td {
    border-bottom: 0;
}
.research-dashboard-row {
    cursor: pointer;
    transition: background var(--motion-fast) var(--ease);
}
.research-dashboard-row:hover,
.research-dashboard-row:focus {
    background: var(--color-bg-1);
    outline: none;
}
.research-dashboard-row:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: -2px;
}
.research-dashboard-id {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.research-dashboard-status {
    min-width: 9rem;
}
.research-dashboard-failure-hint {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.8125rem;
    color: var(--color-muted);
    line-height: 1.35;
}
.research-dashboard-objective {
    min-width: 12rem;
    max-width: 28rem;
    color: var(--color-ink);
}
.research-dashboard-count,
.research-dashboard-cost {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.research-dashboard-action {
    text-align: right;
    white-space: nowrap;
}
@media (max-width: 1024px) {
    .research-kpi-item {
        flex: 1 1 calc(25% - 1px);
        min-width: 6.5rem;
        padding: var(--space-2) var(--space-3);
        border-right: 0;
        border-bottom: 1px solid color-mix(in srgb, var(--color-line) 75%, transparent);
    }
    .research-kpi-item:nth-child(4n) {
        border-right: 0;
    }
}
@media (max-width: 720px) {
    .research-dashboard-workspace {
        margin: calc(var(--space-4) * -1);
        padding: var(--space-4);
    }
    .research-dashboard-header {
        flex-direction: column;
        align-items: stretch;
    }
    .research-dashboard-header .btn {
        width: 100%;
    }
    .research-kpi-item {
        flex: 1 1 calc(50% - 1px);
    }
    .research-dashboard-section-head {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* Research runs list */
.research-runs-table-wrap {
    margin-top: 0;
}
.research-runs-table th,
.research-runs-table td {
    padding-top: 0.65rem;
    padding-bottom: 0.65rem;
}
.research-runs-row {
    min-height: 60px;
}
.research-runs-col-num,
.research-runs-table th.research-runs-col-num {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.research-runs-col-muted,
.research-runs-table th.research-runs-col-muted {
    text-align: right;
    font-variant-numeric: tabular-nums;
    color: var(--color-muted);
    font-size: 0.875rem;
}
.research-runs-col-time,
.research-runs-table th.research-runs-col-time {
    white-space: nowrap;
    font-size: 0.875rem;
    color: var(--color-muted);
}
.research-runs-col-chevron {
    width: 2rem;
    padding-right: 0.75rem;
    text-align: right;
}
.research-runs-chevron {
    display: inline-block;
    width: 0.45rem;
    height: 0.45rem;
    border-right: 2px solid var(--color-muted);
    border-bottom: 2px solid var(--color-muted);
    transform: rotate(-45deg);
    opacity: 0.65;
}
.research-runs-row:hover .research-runs-chevron,
.research-runs-row:focus .research-runs-chevron {
    border-color: var(--color-accent);
    opacity: 1;
}
@media (max-width: 1100px) {
    .research-runs-col-time,
    .research-runs-table th.research-runs-col-time {
        display: none;
    }
    .research-runs-row td.research-runs-col-time {
        display: none;
    }
}
@media (max-width: 900px) {
    .research-runs-col-muted,
    .research-runs-table th.research-runs-col-muted,
    .research-runs-row td.research-runs-col-muted {
        display: none;
    }
}

/* Research observations */
.research-observations-toolbar {
    margin-bottom: var(--space-4);
}
.research-observations-toolbar .field {
    margin: 0;
    min-width: 0;
    flex: 0 1 auto;
    max-width: 260px;
}
.research-observations-toolbar select {
    min-width: 12rem;
    max-width: 100%;
}
.research-observations-list {
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    overflow: hidden;
}
.research-observation-item {
    border-bottom: 1px solid color-mix(in srgb, var(--color-line) 80%, transparent);
}
.research-observation-item:last-child {
    border-bottom: 0;
}
.research-observation-summary {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: var(--space-3);
    align-items: center;
    min-height: 72px;
    padding: 0.75rem 1rem;
    cursor: pointer;
    list-style: none;
    transition: background var(--motion-fast) var(--ease);
}
.research-observation-summary::-webkit-details-marker {
    display: none;
}
.research-observation-summary:hover {
    background: var(--color-bg-1);
}
.research-observation-item[open] .research-observation-summary {
    background: color-mix(in srgb, var(--color-bg-1) 70%, var(--color-surface));
}
.research-observation-chevron {
    width: 0.45rem;
    height: 0.45rem;
    border-right: 2px solid var(--color-muted);
    border-bottom: 2px solid var(--color-muted);
    transform: rotate(-45deg);
    transition: transform var(--motion-fast) var(--ease);
    flex-shrink: 0;
}
.research-observation-item[open] .research-observation-chevron {
    transform: rotate(45deg);
}
.research-observation-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}
.research-observation-title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-ink);
    line-height: 1.35;
}
.research-observation-preview {
    display: block;
    font-size: 0.875rem;
    color: var(--color-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.research-observation-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.4rem 0.55rem;
    max-width: 42rem;
}
.research-observation-industry {
    display: inline-flex;
    align-items: center;
    padding: 0.12rem 0.45rem;
    border-radius: var(--radius-sm);
    font-size: 0.6875rem;
    font-weight: 600;
    border: 1px solid #c9b8e8;
    background: #f3eefb;
    color: #5b3f91;
    white-space: nowrap;
}
.research-observation-buyer {
    font-size: 0.8125rem;
    color: var(--color-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 12rem;
}
.research-observation-confidence {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.research-observation-body {
    padding: 0 var(--space-4) var(--space-4) 1.75rem;
    display: grid;
    gap: var(--space-4);
    border-top: 1px solid color-mix(in srgb, var(--color-line) 70%, transparent);
    background: color-mix(in srgb, var(--color-bg-1) 45%, var(--color-surface));
}
.research-observation-detail h3 {
    margin: 0 0 var(--space-2);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-muted);
}
.research-observation-detail p {
    margin: 0;
    max-width: 52rem;
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--color-ink);
}
@media (max-width: 900px) {
    .research-observation-summary {
        grid-template-columns: auto minmax(0, 1fr);
        grid-template-rows: auto auto;
    }
    .research-observation-meta {
        grid-column: 1 / -1;
        justify-content: flex-start;
        padding-left: 1.1rem;
        max-width: none;
    }
    .research-observations-toolbar .field {
        max-width: none;
        flex: 1 1 200px;
    }
}
@media (max-width: 720px) {
    .research-observation-buyer {
        display: none;
    }
}

/* Research candidates */
.research-candidates-toolbar {
    margin-bottom: var(--space-4);
}
.research-candidates-toolbar .field {
    margin: 0;
    min-width: 0;
    flex: 0 1 auto;
    max-width: 240px;
}
.research-candidates-toolbar select,
.research-candidates-toolbar input[type="search"] {
    min-width: 11rem;
    max-width: 100%;
}
.research-candidates-table-wrap {
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    overflow: hidden;
}
.research-candidates-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.research-candidates-head,
.research-candidate-summary {
    display: grid;
    grid-template-columns:
        minmax(120px, 160px)
        minmax(200px, 1.6fr)
        minmax(120px, 160px)
        minmax(140px, 180px)
        minmax(120px, 150px)
        72px
        88px
        minmax(100px, 120px)
        28px;
    gap: 0.65rem 0.85rem;
    align-items: center;
    min-width: 1080px;
    box-sizing: border-box;
}
.research-candidates-select-group {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
    max-width: 100%;
}
.research-candidates-selected-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
    color: var(--color-ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.research-candidates-check-cell {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    margin: 0;
    flex: 0 0 36px;
    position: relative;
    z-index: 2;
    cursor: default;
}
.research-candidates-check-cell input[type="checkbox"] {
    width: 1rem;
    height: 1rem;
    margin: 0;
    accent-color: var(--color-accent, #2563eb);
}
.research-candidates-check-cell input[type="checkbox"]:disabled {
    cursor: not-allowed;
    opacity: 0.45;
}
.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
.research-candidates-bulk-bar {
    position: sticky;
    bottom: 1rem;
    z-index: 30;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    margin: 1rem 0 0;
    padding: 0.85rem 1.1rem;
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    box-shadow: 0 8px 28px color-mix(in srgb, var(--color-ink) 12%, transparent);
}
.research-candidates-bulk-count {
    margin: 0;
}
.research-candidates-bulk-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.rr-budget-resume-modal.research-resume-run-modal {
    width: min(34.5rem, 100%); /* ~552px */
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1.15rem 1.25rem 1.2rem;
}
.research-resume-run-header {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}
.research-resume-run-modal h3 {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 650;
}
.research-resume-run-count {
    margin: 0;
    font-size: 0.875rem;
    color: var(--color-muted);
    font-weight: 600;
}
.research-resume-run-list-wrap {
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
    background: var(--color-surface);
}
.research-resume-run-list-wrap.is-scrollable {
    max-height: 13.5rem;
    overflow: auto;
}
.research-resume-run-list {
    list-style: none;
    margin: 0;
    padding: 0.25rem;
}
.research-resume-run-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.65rem;
    padding: 0.55rem 0.55rem;
    border-radius: var(--radius-sm);
}
.research-resume-run-row + .research-resume-run-row {
    border-top: 1px solid color-mix(in srgb, var(--color-line) 75%, transparent);
}
.research-resume-run-row-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.research-resume-run-row-name {
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.35;
    overflow-wrap: anywhere;
}
.research-resume-run-row-hold {
    font-size: 0.75rem;
    color: var(--color-muted);
    line-height: 1.35;
}
.research-resume-run-row-remove {
    flex: 0 0 auto;
    width: 1.75rem;
    height: 1.75rem;
    border: 0;
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--color-muted);
    font-size: 1.15rem;
    line-height: 1;
    cursor: pointer;
}
.research-resume-run-row-remove:hover {
    background: var(--color-bg-1);
    color: var(--color-ink);
}
.research-resume-run-info {
    margin: 0;
    padding: 0.75rem 0.85rem;
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, #1d4f7a 18%, var(--color-line));
    background: color-mix(in srgb, #e4eef4 55%, #fff);
}
.research-resume-run-info-title {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 650;
    color: #1d4f7a;
}
.research-resume-run-info-text {
    margin: 0.3rem 0 0;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: color-mix(in srgb, var(--color-ink) 88%, var(--color-muted));
}
.research-resume-run-budget label {
    display: block;
    margin: 0 0 0.4rem;
    font-size: 0.875rem;
    font-weight: 650;
}
.research-resume-run-currency {
    display: flex;
    align-items: stretch;
    max-width: 12rem;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-sm);
    background: #fff;
    overflow: hidden;
}
.research-resume-run-currency-prefix {
    display: inline-flex;
    align-items: center;
    padding: 0 0.65rem;
    background: var(--color-bg-1);
    border-right: 1px solid var(--color-line);
    color: var(--color-muted);
    font-weight: 650;
}
.research-resume-run-currency input {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    border: 0;
    margin: 0;
    padding: 0.5rem 0.65rem;
    font: inherit;
    background: transparent;
}
.research-resume-run-currency input:focus {
    outline: none;
}
.research-resume-run-currency:focus-within {
    border-color: var(--color-accent);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-accent) 22%, transparent);
}
.research-resume-run-quick {
    margin: 0.55rem 0 0.65rem;
}
.research-resume-run-cost {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.45;
    color: color-mix(in srgb, var(--color-ink) 90%, var(--color-muted));
}
.research-resume-run-cost strong {
    font-size: 0.95rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--color-ink);
}
.research-resume-run-spent,
.research-resume-run-helper {
    margin: 0.4rem 0 0;
    font-size: 0.8125rem;
    line-height: 1.4;
}
.research-resume-run-error {
    margin: 0;
    color: #b91c1c !important;
    font-size: 0.875rem;
}
.research-resume-run-actions {
    margin-top: 0.15rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--color-line);
}
.research-resume-run-toast {
    position: fixed;
    right: 1.25rem;
    bottom: 1.25rem;
    z-index: 90;
}
.rr-budget-resume-toast {
    position: fixed;
    right: 1.25rem;
    bottom: 1.25rem;
    z-index: 90;
}
.rr-mode {
    margin: 0.15rem 0 0;
    font-size: 0.875rem;
}
.rr-mode-hint {
    margin: 0.1rem 0 0;
    font-size: 0.8125rem;
}
.research-candidates-head {
    padding: 0.55rem 1rem;
    border-bottom: 1px solid var(--color-line);
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-muted);
    background: color-mix(in srgb, var(--color-bg-1) 55%, var(--color-surface));
}
.research-candidates-sort {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    border-radius: var(--radius-sm);
    padding: 0.15rem 0.2rem;
    transition: color var(--motion-fast) var(--ease), background var(--motion-fast) var(--ease);
}
.research-candidates-sort:hover {
    color: var(--color-ink);
    background: color-mix(in srgb, var(--color-bg-1) 80%, transparent);
}
.research-candidates-sort.is-active {
    color: var(--color-ink);
}
.research-candidates-sort-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.research-candidates-sort-icon {
    flex: 0 0 auto;
    font-size: 0.75rem;
    font-weight: 600;
    opacity: 0.35;
    line-height: 1;
    width: 0.85rem;
    text-align: center;
}
.research-candidates-sort.is-active .research-candidates-sort-icon {
    opacity: 1;
}
.research-candidates-sort.is-numeric,
.research-candidate-score-cell,
.research-candidate-confidence {
    justify-self: end;
    text-align: right;
}
.research-candidates-sort.is-numeric {
    justify-content: flex-end;
}
.research-candidates-sort-spacer {
    width: 36px;
    justify-self: center;
}
.research-candidate-score-cell {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 0.1rem;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}
.research-candidate-item {
    border-bottom: 1px solid color-mix(in srgb, var(--color-line) 80%, transparent);
}
.research-candidate-item:last-child {
    border-bottom: 0;
}
.research-candidate-item[open] {
    background: color-mix(in srgb, var(--color-bg-1) 35%, var(--color-surface));
}
.research-candidate-summary {
    min-height: 56px;
    height: auto;
    padding: 0.55rem 1rem;
    cursor: pointer;
    list-style: none;
    transition: background var(--motion-fast) var(--ease);
}
.research-candidate-summary::-webkit-details-marker {
    display: none;
}
.research-candidate-summary:hover {
    background: var(--color-bg-1);
}
.research-candidate-item[open] .research-candidate-summary {
    background: color-mix(in srgb, var(--color-bg-1) 70%, var(--color-surface));
}
.research-candidate-name-wrap {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
    max-width: 100%;
}
.research-candidate-name {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.9375rem;
    font-weight: 650;
    color: var(--color-ink);
    line-height: 1.35;
    min-width: 0;
    max-width: 100%;
}
.research-candidate-name-wrap .research-candidate-name {
    flex: 1 1 auto;
}
.rr-ext-src-badges {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    flex-shrink: 0;
    max-width: 6.5rem;
}
.rr-ext-src-badge {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.05rem;
    height: 1.05rem;
    padding: 0 0.28rem;
    border: 1px solid color-mix(in srgb, var(--color-line, #d1d5db) 85%, #9ca3af);
    border-radius: 999px;
    background: color-mix(in srgb, var(--color-bg-1, #f3f4f6) 80%, #fff);
    color: #6b7280;
    font-size: 0.5625rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1;
    cursor: default;
    vertical-align: middle;
}
.rr-ext-src-badge:focus {
    outline: none;
}
.rr-ext-src-badge:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--color-accent, #2563eb) 70%, transparent);
    outline-offset: 1px;
}
.rr-ext-src-code {
    display: block;
    font-size: 0.5625rem;
    font-weight: 700;
    line-height: 1;
    color: #6b7280;
}
.rr-ext-src-tooltip {
    position: absolute;
    left: 0;
    top: calc(100% + 0.3rem);
    z-index: 40;
    min-width: 12.5rem;
    max-width: 18rem;
    padding: 0.45rem 0.55rem;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #111827;
    color: #f9fafb;
    font-size: 0.6875rem;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.45;
    white-space: pre-line;
    text-align: left;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.18);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-2px);
}
.rr-ext-src-badge:hover .rr-ext-src-tooltip,
.rr-ext-src-badge:focus .rr-ext-src-tooltip,
.rr-ext-src-badge:focus-visible .rr-ext-src-tooltip {
    opacity: 1;
    visibility: visible;
    transform: none;
}
.rr-ext-src-legend {
    margin: 0.55rem 0 0;
    padding: 0.15rem 0.15rem 0;
    color: #9ca3af;
    font-size: 0.6875rem;
    line-height: 1.4;
}
.rr-ext-src-legend-prefix,
.rr-ext-src-legend-items {
    margin: 0;
}
.rr-ext-src-legend-prefix {
    margin-bottom: 0.12rem;
}
.rr-ext-src-legend-items {
    font-weight: 550;
    color: #6b7280;
}
.rr-candidates-table-shell .rr-ext-src-legend {
    padding: 0.35rem 1.15rem 0.55rem;
}
.research-candidates-table-wrap .rr-ext-src-legend {
    padding: 0.45rem 1rem 0.15rem;
}
.rr-candidate-name-block .rr-ext-src-badges {
    margin-left: 0.05rem;
}
.research-candidate-industry,
.research-candidate-buyer,
.research-candidate-status,
.research-candidate-competition,
.research-candidate-confidence {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}
.research-candidate-industry,
.research-candidate-buyer {
    font-size: 0.8125rem;
    color: var(--color-muted);
    white-space: nowrap;
    text-overflow: ellipsis;
}
.research-candidate-plain {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.8125rem;
    font-variant-numeric: tabular-nums;
    color: var(--color-ink);
}
.research-candidate-status .status {
    display: inline-flex;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 0.2rem 0.45rem;
    margin: 0;
    position: static;
}
.research-candidate-score {
    font-size: 0.8125rem;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
    color: var(--color-ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}
.research-candidate-score-stack {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.05rem;
    min-width: 0;
    max-width: 100%;
}
.research-candidate-score-finalist {
    color: #1f6b45;
}
.research-candidate-score-meta {
    font-size: 0.6875rem;
    color: var(--color-muted);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}
.research-candidate-score-note {
    font-size: 0.625rem;
    color: var(--color-muted);
    letter-spacing: 0.01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}
.research-candidate-detail-actions {
    margin: 0.65rem 0 0;
}
.research-candidate-chevron {
    width: 0.45rem;
    height: 0.45rem;
    border-right: 2px solid var(--color-muted);
    border-bottom: 2px solid var(--color-muted);
    transform: rotate(-45deg);
    transition: transform var(--motion-fast) var(--ease);
    justify-self: center;
    flex: 0 0 auto;
}
.research-candidate-item[open] .research-candidate-chevron {
    transform: rotate(45deg);
}
.research-candidate-detail {
    padding: 0 var(--space-4) var(--space-4);
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: var(--space-4);
    border-top: 1px solid color-mix(in srgb, var(--color-line) 70%, transparent);
    background: color-mix(in srgb, var(--color-bg-1) 45%, var(--color-surface));
    min-width: 0;
}
.research-candidate-detail-section h3 {
    margin: 0 0 var(--space-2);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-muted);
}
.research-candidate-detail-section p {
    margin: 0;
    max-width: 36rem;
    font-size: 0.9375rem;
    line-height: 1.5;
    color: var(--color-ink);
    overflow-wrap: anywhere;
}
.research-candidate-detail-rejection p {
    color: #8b2f2f;
}
.research-candidate-score-finalist-text {
    font-weight: 600;
    color: #1f6b45;
}
.research-candidate-finalist-tag {
    display: inline-flex;
    margin-left: 0.35rem;
    padding: 0.05rem 0.35rem;
    border-radius: var(--radius-sm);
    font-size: 0.6875rem;
    font-weight: 600;
    background: #e6f4ec;
    color: #1f6b45;
}
.research-candidate-detail-link {
    grid-column: 1 / -1;
    margin: 0;
    font-size: 0.875rem;
}
.research-dashboard-empty-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    justify-content: center;
}
@media (max-width: 1200px) {
    .research-candidates-head .is-col-competition,
    .research-candidate-summary .is-col-competition {
        display: none;
    }
    .research-candidates-head,
    .research-candidate-summary {
        grid-template-columns:
            minmax(120px, 160px)
            minmax(200px, 1.5fr)
            minmax(120px, 160px)
            minmax(140px, 180px)
            minmax(110px, 140px)
            72px
            88px
            28px;
        min-width: 980px;
    }
}
@media (max-width: 1100px) {
    .research-candidates-head {
        display: none;
    }
    .research-candidates-scroll {
        overflow-x: visible;
    }
    .research-candidate-summary {
        grid-template-columns: 36px minmax(0, 1fr) 28px;
        grid-template-rows: auto auto auto;
        gap: 0.35rem 0.75rem;
        min-width: 0;
    }
    .research-candidates-select-group,
    .research-candidates-check-cell {
        grid-column: 1;
        grid-row: 1;
    }
    .research-candidates-selected-label {
        display: none;
    }
    .research-candidate-name-wrap {
        grid-column: 2;
        grid-row: 1;
        min-width: 0;
    }
    .research-candidate-name {
        grid-column: 2;
        grid-row: 1;
    }
    .research-candidate-chevron {
        grid-column: 3;
        grid-row: 1;
    }
    .research-candidate-industry,
    .research-candidate-buyer,
    .research-candidate-competition {
        display: none;
    }
    .research-candidate-status,
    .research-candidate-score-cell,
    .research-candidate-confidence {
        grid-column: 2 / -1;
        display: inline-flex;
        align-items: center;
        justify-self: start;
        text-align: left;
    }
    .research-candidate-status::before,
    .research-candidate-score-cell::before,
    .research-candidate-confidence::before {
        font-size: 0.6875rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.04em;
        color: var(--color-muted);
        margin-right: 0.45rem;
    }
    .research-candidate-status::before { content: 'Status'; }
    .research-candidate-score-cell::before { content: 'Wynik'; }
    .research-candidate-confidence::before { content: 'Pewność'; }
}
@media (max-width: 720px) {
    .research-candidates-toolbar .field {
        max-width: none;
        flex: 1 1 200px;
    }
}

/* Research settings */
.research-settings-inner {
    max-width: 68rem;
}
.research-settings-form {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}
.research-settings-section {
    padding-bottom: var(--space-4);
    border-bottom: 1px solid color-mix(in srgb, var(--color-line) 75%, transparent);
}
.research-settings-section:last-of-type {
    border-bottom: 0;
}
.research-settings-section-title {
    margin: 0 0 var(--space-2);
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-ink);
}
.research-settings-section-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-3);
    margin: 0 0 var(--space-2);
}
.research-settings-section-heading .research-settings-section-title {
    margin: 0;
}
.research-settings-section-heading-actions {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}
.research-settings-section-heading-actions .btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}
.research-llm-export-icon {
    flex-shrink: 0;
}
.research-settings-section-intro {
    margin: 0 0 var(--space-4);
    max-width: 42rem;
    font-size: 0.875rem;
    line-height: 1.45;
    color: var(--color-muted);
}
.research-settings-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
    max-width: 68rem;
}
.research-settings-grid .field {
    margin: 0;
    min-width: 0;
}
.research-settings-grid label {
    display: block;
    margin-bottom: 0.25rem;
    font-weight: 600;
    font-size: 0.875rem;
}
.research-settings-grid input[type="number"],
.research-settings-grid input[type="search"],
.research-settings-grid input[type="text"] {
    width: 100%;
    max-width: 16rem;
}
.field-range {
    font-weight: 500;
    font-size: 0.75rem;
    color: var(--color-muted);
}
.field-error {
    margin: 0.35rem 0 0;
    font-size: 0.8125rem;
    color: var(--color-danger);
}
.research-settings-readonly {
    display: flex;
    align-items: center;
    min-height: 2.5rem;
    max-width: 16rem;
    padding: 0.45rem 0.65rem;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--color-bg-1) 80%, var(--color-surface));
    font-size: 0.875rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    color: var(--color-ink);
}
.research-settings-env-note {
    margin: var(--space-3) 0 0;
    max-width: 42rem;
    font-size: 0.8125rem;
    line-height: 1.45;
}
.research-settings-env-note code {
    font-size: 0.85em;
}
.research-discovery-sources-toolbar {
    display: flex;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}
.research-discovery-source-url {
    margin: 0.25rem 0 0.5rem;
    word-break: break-all;
}
.research-discovery-source-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
    gap: 0.35rem 1rem;
    margin: 0.5rem 0 0.75rem;
    font-size: 0.8125rem;
}
.research-discovery-source-metrics dt {
    color: var(--color-muted);
    font-weight: 500;
}
.research-discovery-source-metrics dd {
    margin: 0;
}
.research-discovery-source-edit {
    margin-top: 0.75rem;
}
.research-discovery-source-form {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin-top: var(--space-3);
}
.research-discovery-source-roles {
    border: 0;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
}
.research-discovery-source-roles legend {
    font-weight: 600;
    font-size: 0.875rem;
    margin-bottom: 0.35rem;
    width: 100%;
}
.research-discovery-source-form textarea {
    width: 100%;
    max-width: 42rem;
}
.research-discovery-source-create {
    margin-top: var(--space-5);
}
.status-muted {
    background: color-mix(in srgb, var(--color-line) 55%, transparent);
    color: var(--color-muted);
}
.research-settings-advanced {
    font-size: 0.75rem;
}
.research-settings-advanced {
    margin: 0;
}
.research-settings-actions {
    display: flex;
    justify-content: flex-end;
    padding-top: var(--space-2);
}
.research-settings-actions .btn[disabled] {
    opacity: 0.55;
    cursor: not-allowed;
}
@media (max-width: 720px) {
    .research-settings-grid {
        grid-template-columns: 1fr;
    }
    .research-settings-grid input[type="number"],
    .research-settings-grid input[type="search"],
    .research-settings-grid input[type="text"],
    .research-settings-readonly {
        max-width: none;
    }
    .research-settings-actions {
        justify-content: stretch;
    }
    .research-settings-actions .btn {
        width: 100%;
    }
    .research-settings-section-heading {
        flex-wrap: wrap;
    }
}

/* Research run workspace (rr-*) */
.rr-workspace {
    margin: calc(var(--space-5) * -1);
    padding: 1.5rem 1.5rem 2rem;
    min-height: calc(100vh - 2px);
    background: #f3f4f6;
    font-size: 0.9375rem;
    line-height: 1.5;
    color: #1a1d21;
}
.rr-shell {
    max-width: 82rem;
    margin: 0 auto;
    width: 100%;
}
.rr-workspace.is-failed .rr-shell {
    max-width: 81.25rem;
}
.rr-header {
    position: sticky;
    top: 0;
    z-index: 30;
    margin-bottom: 1.25rem; /* ~20px — content starts immediately below real header height */
    padding: 1.375rem 1.5rem 1.25rem;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
}
.rr-header-main {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
}
.rr-header-left { flex: 1 1 22rem; min-width: 0; }
.rr-header-title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}
.rr-title {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: -0.025em;
    line-height: 1.2;
}
.rr-phase {
    margin: 0.35rem 0 0;
    font-size: 1rem;
    font-weight: 600;
    color: #374151;
}
.rr-objective-wrap {
    margin: 0.5rem 0 0;
    max-width: 52rem;
}
.rr-objective-preview {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.5;
    color: #6b7280;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.rr-objective-expand {
    margin-top: 0.35rem;
    font-size: 0.875rem;
}
.rr-objective-expand > summary {
    cursor: pointer;
    color: #2563eb;
    font-weight: 500;
    list-style: none;
}
.rr-objective-expand > summary::-webkit-details-marker { display: none; }
.rr-objective-preview.is-full {
    display: block;
    -webkit-line-clamp: unset;
    overflow: visible;
}
    margin: 0.5rem 0 0;
    font-size: 0.9375rem;
    line-height: 1.55;
    color: #4b5563;
    white-space: pre-wrap;
}
.rr-objective-inline {
    margin: 0.3rem 0 0;
    font-size: 0.875rem;
    max-width: 52rem;
    color: #6b7280;
}
.rr-meta-strip {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1.25rem;
    margin-top: 1rem;
    font-size: 0.9375rem;
}
.rr-meta-item {
    display: inline-flex;
    align-items: baseline;
    gap: 0.35rem;
    color: #6b7280;
}
.rr-meta-item strong {
    color: #111827;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
}
.rr-meta-chip {
    display: inline-flex;
    align-items: baseline;
    gap: 0.4rem;
    padding: 0.4rem 0.75rem;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    font-size: 0.875rem;
    color: #6b7280;
}
.rr-meta-chip strong {
    color: #111827;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
}
.rr-meta-label {
    font-size: 0.8125rem;
    font-weight: 500;
    color: #6b7280;
}
.rr-header-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    flex-shrink: 0;
}
.rr-overflow-menu { position: relative; }
.rr-overflow-menu > summary { list-style: none; cursor: pointer; }
.rr-overflow-menu > summary::-webkit-details-marker { display: none; }
.rr-overflow-panel {
    position: absolute;
    right: 0;
    top: calc(100% + 0.35rem);
    z-index: 40;
    min-width: 12rem;
    padding: 0.5rem;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
}
.rr-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.65rem;
    border-radius: 8px;
    font-size: 0.875rem;
    font-weight: 650;
    border: 1px solid transparent;
    white-space: nowrap;
}
.rr-badge-live { padding-left: 0.5rem; }
.rr-badge-active { background: #dbeafe; border-color: #93c5fd; color: #1d4ed8; }
.rr-badge-stopping { background: #fef3c7; border-color: #fcd34d; color: #92400e; }
.rr-badge-ok { background: #d1fae5; border-color: #6ee7b7; color: #047857; }
.rr-badge-warn { background: #fef3c7; border-color: #fcd34d; color: #92400e; }
.rr-badge-danger { background: #fee2e2; border-color: #fca5a5; color: #b91c1c; }
.rr-badge-muted { background: #f3f4f6; border-color: #e5e7eb; color: #6b7280; }
.rr-badge-progress { background: #eff6ff; border-color: #bfdbfe; color: #1d4ed8; }
.rr-badge-incomplete { background: #fffbeb; border-color: #fcd34d; color: #b45309; }
.rr-badge-neutral { background: #f3f4f6; border-color: #e5e7eb; color: #6b7280; }
.rr-live-dot {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: #2563eb;
    box-shadow: 0 0 0 0 rgba(37, 99, 235, 0.45);
    animation: rr-pulse 1.8s ease-in-out infinite;
    flex-shrink: 0;
}
@keyframes rr-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(37, 99, 235, 0.4); }
    50% { box-shadow: 0 0 0 0.45rem rgba(37, 99, 235, 0); }
}
.rr-live-execution {
    margin: 0 0 1rem; /* gap after header comes from .rr-header margin-bottom */
    padding: 1rem 1.25rem;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
}
#research-run-live[data-is-active="1"]:not(.is-stopping) .rr-live-execution:not(.is-slot-collapsed) {
    min-height: 10.5rem;
}
/*
 * Collapsed live-execution must leave normal document flow (display:none).
 * visibility:hidden previously reserved the full panel height while data-is-active
 * stayed 1 during graceful-stop — pushing the stopping strip far down the viewport.
 */
.rr-live-execution.is-slot-collapsed {
    display: none;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 0;
}
.rr-status-panel.is-slot-collapsed,
.rr-stopping-strip.is-slot-collapsed {
    display: none;
    margin: 0;
    padding: 0;
    border: 0;
    min-height: 0;
}
.rr-stopping-strip {
    margin: 0 0 1rem; /* ~16px before Kandydaci / tabs */
    padding: 0.85rem 1.1rem;
    background: #fffbeb;
    border: 1px solid #fcd34d;
    border-radius: 10px;
}
.rr-stopping-strip.is-stale {
    background: #fff7ed;
    border-color: #fdba74;
}
.rr-stopping-strip-title {
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 650;
    color: #92400e;
    line-height: 1.35;
}
.rr-stopping-strip-copy {
    margin: 0.3rem 0 0;
    font-size: 0.875rem;
    line-height: 1.45;
    color: #78350f;
}
.rr-stopping-finishing {
    margin-top: 0.65rem;
}
.rr-stopping-finishing > summary {
    cursor: pointer;
    font-size: 0.875rem;
    font-weight: 600;
    color: #78350f;
    list-style: none;
}
.rr-stopping-finishing > summary::-webkit-details-marker {
    display: none;
}
.rr-stopping-finishing > summary::before {
    content: '▸';
    display: inline-block;
    margin-right: 0.35rem;
    transition: transform 0.12s ease;
}
.rr-stopping-finishing[open] > summary::before {
    transform: rotate(90deg);
}
.rr-stopping-finishing-list {
    list-style: none;
    margin: 0.55rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}
.rr-stopping-finishing-item {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.4rem 0.55rem;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.65);
    font-size: 0.875rem;
}
.rr-stopping-finishing-item.is-active {
    box-shadow: inset 3px 0 0 #f59e0b;
}
.rr-stopping-finishing-name {
    font-weight: 600;
    color: #1f2937;
    min-width: 0;
}
.rr-stopping-finishing-stage {
    flex-shrink: 0;
    font-size: 0.8125rem;
}
.rr-live-execution.is-stalled {
    background: #fffbeb;
    border-color: #fcd34d;
}
.rr-live-execution-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}
.rr-live-execution-main {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    min-width: 0;
}
.rr-live-execution-copy { min-width: 0; }
.rr-live-execution-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 650;
    color: #0f172a;
    line-height: 1.35;
}
.rr-live-execution-desc {
    margin: 0.25rem 0 0;
    font-size: 0.9375rem;
    line-height: 1.45;
    color: #475569;
}
.rr-live-execution-workers {
    margin: 0;
    font-size: 0.9375rem;
    color: #334155;
    white-space: nowrap;
    flex-shrink: 0;
}
.rr-live-execution-note {
    margin: 0.65rem 0 0;
    font-size: 0.875rem;
    line-height: 1.45;
}
.rr-live-execution-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
    margin: 0.85rem 0 0;
    padding: 0;
}
.rr-live-execution-meta-item {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    font-size: 0.875rem;
    color: #64748b;
}
.rr-live-execution-meta-item dt {
    margin: 0;
    font-weight: 500;
}
.rr-live-execution-meta-item dd {
    margin: 0;
    color: #0f172a;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.rr-live-execution-telemetry {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
    margin-top: 0.85rem;
    padding-top: 0.85rem;
    border-top: 1px solid #e2e8f0;
    font-size: 0.875rem;
    color: #475569;
}
.rr-live-execution-telemetry-group {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.45rem 0.65rem;
}
.rr-live-execution-telemetry-label {
    font-weight: 600;
    color: #334155;
}
.rr-live-execution-telemetry-value strong {
    font-weight: 650;
    color: #0f172a;
}
.rr-live-execution-stale {
    margin: 0.75rem 0 0;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-warning, #b45309);
}
.rr-live-activity-strip {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.75rem;
    padding: 0.875rem 1.125rem;
    background: linear-gradient(135deg, #ecfdf5 0%, #eff6ff 100%);
    border: 1px solid #bbf7d0;
    border-radius: 12px;
}
.rr-live-activity-strip.is-stalled {
    background: linear-gradient(135deg, #fffbeb 0%, #fef2f2 100%);
    border-color: #fcd34d;
}
.rr-live-activity-main {
    display: flex;
    align-items: flex-start;
    gap: 0.625rem;
    min-width: 0;
}
.rr-live-activity-copy {
    min-width: 0;
}
.rr-live-activity-headline {
    display: block;
    font-size: 0.9375rem;
    font-weight: 650;
    color: #065f46;
}
.rr-live-activity-strip.is-stalled .rr-live-activity-headline {
    color: #92400e;
}
.rr-live-activity-line {
    margin: 0.2rem 0 0;
    font-size: 0.875rem;
    color: #1e3a8a;
}
.rr-live-activity-workers {
    font-size: 0.8125rem;
    white-space: nowrap;
    flex-shrink: 0;
}
.rr-compact-run-summary {
    margin-bottom: 1rem;
    padding: 0.75rem 1.125rem;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
}
.rr-compact-run-summary-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 0.875rem;
    color: #334155;
}
.rr-compact-run-summary-primary {
    font-weight: 600;
    color: #1e40af;
}
.rr-compact-run-summary-heartbeat {
    width: 100%;
    margin-top: 0.15rem;
    font-size: 0.8125rem;
}
.rr-candidate-status-cell {
    min-width: 12rem;
    max-width: 22rem;
}
.rr-candidate-status-cell .rr-candidate-status-badge {
    display: inline-block;
    max-width: 100%;
    white-space: normal;
    text-align: left;
    line-height: 1.35;
}
.rr-badge-waiting {
    background: #f1f5f9;
    color: #475569;
    border: 1px solid #cbd5e1;
}
.rr-badge-budget-hold {
    background: #fff7ed;
    color: #9a3412;
    border: 1px solid #fdba74;
}
.rr-candidate-budget-resume-actions {
    margin: 0.75rem 0 0.5rem;
}
.rr-budget-resume-backdrop {
    position: fixed;
    inset: 0;
    z-index: 80;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(15, 23, 42, 0.45);
}
.rr-budget-resume-modal {
    width: min(32rem, 100%);
    max-height: 90vh;
    overflow: auto;
    background: #fff;
    border-radius: 12px;
    border: 1px solid #e2e8f0;
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.18);
    padding: 1.25rem 1.35rem;
}
.rr-budget-resume-modal h3 {
    margin: 0 0 0.75rem;
    font-size: 1.15rem;
}
.rr-budget-resume-meta {
    display: grid;
    gap: 0.35rem;
    margin: 0 0 1rem;
    font-size: 0.92rem;
}
.rr-budget-resume-meta dt {
    font-weight: 600;
    color: #334155;
}
.rr-budget-resume-meta dd {
    margin: 0 0 0.45rem;
    color: #475569;
}
.rr-budget-resume-quick {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0.5rem 0 1rem;
}
.rr-budget-resume-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: flex-end;
}
.rr-budget-hold-panel {
    border: 1px solid #fdba74;
    background: #fff7ed;
    border-radius: 10px;
    padding: 1rem 1.15rem;
    margin-bottom: 1rem;
}
.rr-budget-hold-panel h2 {
    margin: 0 0 0.4rem;
    font-size: 1.05rem;
    color: #9a3412;
}
.rr-live-summary {
    margin-bottom: 1rem;
    padding: 1rem 1.25rem;
    background: linear-gradient(135deg, #eff6ff 0%, #f0f9ff 100%);
    border: 1px solid #bfdbfe;
    border-radius: 12px;
}
.rr-live-summary-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 650;
    color: #1e40af;
}
.rr-live-summary-message {
    margin: 0.35rem 0 0;
    font-size: 0.9375rem;
    color: #1e3a8a;
}
.rr-live-summary-detail {
    margin: 0.25rem 0 0;
    font-size: 0.875rem;
    color: #3b82f6;
}
.rr-live-summary-stale {
    margin: 0.65rem 0 0;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-warning);
}
.rr-status-panel {
    margin-bottom: 1rem;
    padding: 1rem 1.25rem;
    background: #fffdf8;
    border: 1px solid #fde68a;
    border-radius: 12px;
}
.rr-status-panel.is-stale { border-color: #fcd34d; }
.rr-status-title { margin: 0; font-size: 1rem; font-weight: 650; }
.rr-status-subtitle { margin: 0.35rem 0 0; font-size: 0.875rem; }
.rr-status-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    margin-top: 0.875rem;
}
.rr-status-metric { display: flex; flex-direction: column; gap: 0.15rem; }
.rr-status-metric-label { font-size: 0.8125rem; color: #6b7280; }
.rr-status-metric-value {
    font-size: 1.25rem;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
}
.rr-status-stale { margin: 0.65rem 0 0; font-size: 0.875rem; font-weight: 600; color: var(--color-warning); }
.rr-failure-panel {
    margin-bottom: 1rem;
    padding: 1.125rem 1.375rem;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-left: 4px solid #dc2626;
    border-radius: 12px;
}
.rr-failure-title {
    margin: 0;
    font-size: 1.0625rem;
    font-weight: 650;
    color: #111827;
}
.rr-failure-summary {
    margin: 0.5rem 0 0;
    font-size: 0.9375rem;
    color: #374151;
    line-height: 1.55;
}
.rr-failure-stopped,
.rr-failure-activity,
.rr-failure-error {
    margin: 0.35rem 0 0;
    font-size: 0.875rem;
}
.rr-failure-partial {
    margin: 0.65rem 0 0;
    font-size: 0.9375rem;
    font-weight: 600;
    color: #047857;
}
.rr-failure-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1rem;
}
.rr-failure-tech {
    margin-top: 0.875rem;
}
.rr-execution-dashboard {
    margin-bottom: 1rem;
    padding: 1.125rem 1.375rem 1.25rem;
    background: #fff;
    border: 1px solid #dbeafe;
    border-radius: 12px;
}
.rr-exec-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
}
.rr-exec-metric {
    display: flex;
    align-items: baseline;
    gap: 0.45rem;
    font-size: 0.9375rem;
}
.rr-exec-metric-label {
    color: #6b7280;
    font-weight: 500;
}
.rr-exec-metric strong {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: #111827;
}
.rr-exec-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
    margin-top: 0.875rem;
    padding-top: 0.875rem;
    border-top: 1px solid #f3f4f6;
    font-size: 0.875rem;
}
.rr-exec-meta-item strong {
    font-weight: 650;
    color: #111827;
}
.rr-exec-status {
    margin-top: 0.75rem;
}
.rr-exec-healthy {
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 650;
    color: #047857;
}
.rr-exec-stall {
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 650;
    color: var(--color-warning);
}
.rr-exec-longest {
    margin: 0.35rem 0 0;
    font-size: 0.8125rem;
}
.rr-exec-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}
.rr-exec-panel {
    padding: 0.875rem 1rem;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
}
.rr-exec-panel-wide {
    margin-top: 1rem;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 0.875rem 1rem;
}
.rr-exec-panel-title {
    margin: 0 0 0.65rem;
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
}
.rr-exec-stage-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.rr-exec-stage-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.4rem 0;
    border-bottom: 1px solid #eceff3;
    font-size: 0.875rem;
}
.rr-exec-stage-row:last-child { border-bottom: 0; }
.rr-exec-stage-name { color: #374151; font-weight: 600; }
.rr-exec-stage-counts {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-variant-numeric: tabular-nums;
    font-weight: 650;
    color: #111827;
}
.rr-exec-stage-done { color: #047857; font-size: 0.8125rem; }
.rr-exec-stage-avg { font-size: 0.75rem; font-weight: 500; }
.rr-exec-queue-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.35rem 1rem;
    margin: 0;
    font-size: 0.875rem;
}
.rr-exec-queue-list div {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
}
.rr-exec-queue-list dt { color: #6b7280; font-weight: 500; }
.rr-exec-queue-list dd {
    margin: 0;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: #111827;
}
.rr-exec-queue-note {
    margin: 0.5rem 0 0;
    font-size: 0.75rem;
}
.rr-exec-active-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.rr-exec-active-item {
    padding: 0.65rem 0;
    border-bottom: 1px solid #eceff3;
}
.rr-exec-active-item:last-child { border-bottom: 0; }
.rr-exec-active-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}
.rr-exec-active-name {
    font-size: 0.9375rem;
    font-weight: 650;
    color: #111827;
}
.rr-exec-active-worker {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.rr-exec-worker-active { color: #047857; }
.rr-exec-worker-queued { color: #6b7280; }
.rr-exec-active-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.75rem;
    margin-top: 0.25rem;
    font-size: 0.8125rem;
    color: #4b5563;
}
.rr-exec-performance {
    margin-top: 0.875rem;
    font-size: 0.875rem;
}
.rr-exec-performance-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: 0.35rem 1rem;
    margin: 0.65rem 0 0;
    font-size: 0.875rem;
}
.rr-exec-performance-list div {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
}
.rr-exec-performance-list dt { color: #6b7280; }
.rr-exec-performance-list dd {
    margin: 0;
    font-weight: 650;
    color: #111827;
}
.status-muted { background: #f3f4f6; border-color: #e5e7eb; color: #6b7280; }
.rr-candidate-row-active {
    background: #eff6ff;
}
.rr-candidate-row-active:hover { background: #dbeafe; }
.rr-candidate-stage-duration,
.rr-candidate-processing-status {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #047857;
}
.rr-header-failed .rr-meta-strip {
    margin-top: 0.875rem;
}
.rr-error {
    margin-bottom: 1rem;
    padding: 1rem 1.25rem;
    background: #fff;
    border: 1px solid color-mix(in srgb, var(--color-danger) 30%, #e5e7eb);
    border-radius: 12px;
}
.rr-error h2 { margin: 0 0 0.5rem; font-size: 1rem; }
.rr-workspace-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    overflow: hidden;
    margin-top: 0.25rem;
}
.rr-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    padding: 0 0.5rem;
    background: #fff;
    border-bottom: 1px solid #e5e7eb;
}
.rr-tab {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.875rem 1.125rem;
    border: none;
    border-bottom: 3px solid transparent;
    margin-bottom: -1px;
    background: transparent;
    color: #6b7280;
    font-size: 0.9375rem;
    font-weight: 600;
    cursor: pointer;
    border-radius: 0;
    transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}
.rr-tab:hover {
    color: #374151;
    background: #f9fafb;
}
.rr-tab.is-active {
    color: #111827;
    border-bottom-color: #2563eb;
    background: #fff;
}
.rr-tab-label { line-height: 1.2; }
.rr-tab-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: #f3f4f6;
    font-size: 0.75rem;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
    color: #4b5563;
}
.rr-tab.is-active .rr-tab-count {
    background: #dbeafe;
    color: #1d4ed8;
}
.rr-tab-error-indicator {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: #dc2626;
    flex-shrink: 0;
}
.rr-tab-panels {
    background: #fff;
    padding: 0;
}
.rr-tab-panel {
    padding: 0 1.5rem 1.5rem;
}
.rr-tab-panel[hidden] { display: none !important; }
.rr-table-toolbar {
    padding: 1rem 0 0;
    border-bottom: 1px solid #f3f4f6;
    margin-bottom: 0;
}
.rr-candidate-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}
.rr-filter {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.8rem;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #fff;
    color: #4b5563;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.rr-filter:hover {
    background: #f9fafb;
    border-color: #d1d5db;
}
.rr-filter.is-active {
    background: #eff6ff;
    border-color: #93c5fd;
    color: #1d4ed8;
}
.rr-filter span {
    font-variant-numeric: tabular-nums;
    font-weight: 650;
}
.rr-empty {
    padding: 2.5rem 0;
    text-align: center;
    color: #6b7280;
    font-size: 0.9375rem;
}
.rr-table-wrap {
    overflow-x: auto;
    margin: 0 -0.25rem;
}
.rr-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9375rem;
}
.rr-table th {
    padding: 0.75rem 1rem;
    text-align: left;
    font-size: 0.8125rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #6b7280;
    border-bottom: 1px solid #e5e7eb;
    white-space: nowrap;
}
.rr-table td {
    padding: 0;
    vertical-align: middle;
    border-bottom: 1px solid #f3f4f6;
}
.rr-candidates-panel {
    padding-top: 0.25rem;
}
.rr-candidates-panel.is-discovery-phase .rr-candidates-toolbar {
    opacity: 0.55;
}
.rr-candidates-panel.is-discovery-phase .rr-candidates-workspace {
    min-height: 14rem;
}
.rr-discovery-empty {
    padding: 2rem 1rem 2.5rem;
    text-align: center;
}
.rr-discovery-empty-title {
    margin: 0 0 0.5rem;
    font-size: 1rem;
    font-weight: 650;
    color: #334155;
}
.rr-discovery-empty-copy {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.5;
    max-width: 28rem;
    margin-inline: auto;
}
.rr-candidates-toolbar {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem 0 0.85rem;
    border-bottom: 1px solid #f3f4f6;
}
.rr-candidates-toolbar-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    align-items: center;
}
.rr-candidates-search-wrap,
.rr-candidates-sort-wrap {
    display: flex;
    align-items: center;
}
.rr-candidates-search {
    min-width: 14rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #fff;
    font-size: 0.875rem;
    color: #111827;
}
.rr-candidates-sort {
    padding: 0.5rem 0.75rem;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #fff;
    font-size: 0.875rem;
    color: #374151;
}
.rr-candidates-workspace {
    display: flex;
    align-items: stretch;
    gap: 0;
    min-height: 20rem;
    overflow: hidden;
}
.rr-candidates-main {
    flex: 1 1 700px;
    min-width: min(100%, 680px);
}
.rr-candidates-table-shell {
    background: #fff;
    overflow: hidden;
}
.rr-candidates-table-scroll {
    max-height: calc(100vh - 16rem);
    overflow: auto;
    overflow-x: hidden;
}
.rr-candidates-table {
    width: 100%;
    table-layout: fixed;
}
.rr-candidates-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #fff;
    box-shadow: 0 1px 0 #e5e7eb;
}
.rr-candidate-stage-cell {
    font-size: 0.8125rem;
    color: #4b5563;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.rr-candidate-stage {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
}
.rr-candidate-drawer {
    position: relative;
    flex: 0 0 440px;
    width: 440px;
    max-width: 480px;
    min-width: 420px;
    border-left: 1px solid #e5e7eb;
    background: #fff;
}
.rr-workspace.has-candidate-drawer .rr-candidates-main {
    min-width: 0;
    flex: 1 1 650px;
}
.rr-workspace.has-candidate-drawer .rr-col-confidence {
    display: none;
}
.rr-candidate-drawer-inner {
    height: 100%;
    max-height: calc(100vh - 16rem);
    overflow: auto;
    padding: 1.25rem 1.5rem 1.5rem;
}
.rr-candidate-drawer-close {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    width: 2rem;
    height: 2rem;
    border: none;
    border-radius: 8px;
    background: #f3f4f6;
    color: #4b5563;
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
}
.rr-candidate-drawer-close:hover {
    background: #e5e7eb;
}
.rr-candidate-drawer-head {
    padding-right: 2rem;
    margin-bottom: 1rem;
}
.rr-candidate-drawer-title {
    margin: 0 0 0.35rem;
    font-size: 1.0625rem;
    font-weight: 650;
    line-height: 1.35;
    color: #111827;
}
.rr-candidate-drawer-score {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: #111827;
}
.rr-candidate-drawer-status {
    margin: 0.45rem 0 0;
    font-size: 0.875rem;
    font-weight: 600;
    color: #374151;
}
.rr-candidate-drawer-sections {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.rr-candidate-drawer-section-label {
    margin: 0 0 0.35rem;
    font-size: 0.75rem;
    font-weight: 650;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #6b7280;
}
.rr-candidate-drawer-section-content {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.55;
    color: #374151;
    white-space: pre-wrap;
}
.has-candidate-drawer .rr-candidates-main {
    min-width: 0;
}
.rr-candidate-row {
    height: 60px;
    cursor: pointer;
    transition: background 0.12s ease, box-shadow 0.12s ease;
}
.rr-candidate-row:hover {
    background: #f8fafc;
}
.rr-candidate-row.is-selected {
    background: #eff6ff;
    box-shadow: inset 3px 0 0 #2563eb;
}
.rr-candidate-row.is-selected:hover {
    background: #dbeafe;
}
.rr-candidate-row.is-changed {
    animation: rr-candidate-changed 1.8s ease;
}
@keyframes rr-candidate-changed {
    0% { background: #fef9c3; }
    100% { background: transparent; }
}
.rr-candidate-row td {
    padding: 0.85rem 1.15rem;
    font-size: 0.8125rem;
}
.rr-candidate-name-cell {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 15rem;
    overflow: visible;
}
.rr-candidate-expand {
    flex-shrink: 0;
    width: 1.875rem;
    height: 1.875rem;
    padding: 0;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
    transition: background 0.12s ease, border-color 0.12s ease;
}
.rr-candidate-expand:hover {
    background: #f3f4f6;
    border-color: #d1d5db;
}
.rr-candidate-expand-icon {
    display: block;
    width: 0.45rem;
    height: 0.45rem;
    margin: auto;
    border-right: 2px solid #6b7280;
    border-bottom: 2px solid #6b7280;
    transform: rotate(-45deg);
    transition: transform 0.15s ease;
}
.rr-candidate-expand.is-open .rr-candidate-expand-icon { transform: rotate(45deg); }
.rr-candidate-name-block {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
}
.rr-candidate-name {
    font-size: 0.9375rem;
    font-weight: 650;
    line-height: 1.35;
    color: #111827;
}
.rr-candidate-finalist-dot {
    flex-shrink: 0;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: #10b981;
    box-shadow: 0 0 0 2px #d1fae5;
}
.rr-candidate-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 7.5rem;
    min-height: 1.6rem;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    border: 1px solid transparent;
    font-size: 0.75rem;
    font-weight: 650;
    line-height: 1.3;
    white-space: nowrap;
}
.rr-candidate-score {
    font-size: 0.9375rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    min-width: 10rem;
    color: #111827;
}
.rr-candidate-score-stack {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.05rem;
    min-width: 0;
}
.rr-candidate-score-primary {
    white-space: nowrap;
}
.rr-candidate-score-secondary,
.rr-candidate-score-note,
.rr-candidate-drawer-score-secondary,
.rr-candidate-drawer-score-note {
    display: block;
    font-size: 0.6875rem;
    font-weight: 500;
    color: #6b7280;
    white-space: nowrap;
}
.rr-candidate-score-note,
.rr-candidate-drawer-score-note {
    font-size: 0.625rem;
    color: #9ca3af;
}
.rr-candidate-drawer-score-secondary,
.rr-candidate-drawer-score-note {
    margin-top: 0.15rem;
}
.rr-candidate-confidence {
    min-width: 4.5rem;
    white-space: nowrap;
}
.rr-candidate-stage {
    font-size: 0.8125rem;
    color: #374151;
}
.rr-candidate-confidence,
.rr-candidate-muted {
    font-size: 0.8125rem;
    color: #9ca3af;
    font-variant-numeric: tabular-nums;
}
.rr-candidate-activity {
    font-size: 0.8125rem;
    color: #6b7280;
    min-width: 11rem;
}
.rr-score-finalist { color: #047857; }
.rr-candidate-processing-state {
    font-weight: 600;
    line-height: 1.35;
}
.rr-processing-running { color: #2563eb; }
.rr-processing-queued { color: #d97706; }
.rr-processing-waiting { color: #b45309; }
.rr-competition-indicator {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.75rem;
    color: #6b7280;
}
.rr-competition-indicator-dot {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    flex-shrink: 0;
}
.rr-competition-low .rr-competition-indicator-dot { background: #10b981; }
.rr-competition-moderate .rr-competition-indicator-dot { background: #f59e0b; }
.rr-competition-high .rr-competition-indicator-dot { background: #ef4444; }
.rr-competition-unknown .rr-competition-indicator-dot { background: #d1d5db; }
.rr-competition-indicator-label {
    font-weight: 600;
}
.rr-candidate-detail-row td {
    padding: 0 !important;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
    cursor: default;
}
.rr-candidate-detail-mobile .rr-candidate-drawer-content {
    padding: 1rem 1.25rem 1.25rem 3rem;
}
@media (min-width: 1024px) {
    .rr-candidate-detail-mobile {
        display: none !important;
    }
}
@media (max-width: 1023px) {
    .rr-candidate-drawer {
        display: none !important;
    }
    .rr-candidates-table-scroll {
        max-height: none;
    }
}
.rr-detail-link {
    display: inline-block;
    margin-top: 1rem;
    font-size: 0.875rem;
    font-weight: 600;
}
.rr-obs-list { list-style: none; margin: 0; padding: 0; }
.rr-obs-panel {
    padding-top: 0.25rem;
}
.rr-obs-toolbar {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    margin-bottom: 0.85rem;
}
.rr-obs-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}
.rr-obs-filter {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.7rem;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    background: #fff;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #4b5563;
    cursor: pointer;
}
.rr-obs-filter.is-active {
    border-color: #c7d2fe;
    background: #eef2ff;
    color: #3730a3;
}
.rr-obs-filter span {
    font-variant-numeric: tabular-nums;
    color: #6b7280;
}
.rr-obs-toolbar-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}
.rr-obs-select-wrap,
.rr-obs-search-wrap {
    min-width: 0;
}
.rr-obs-select,
.rr-obs-search {
    max-width: 100%;
    padding: 0.4rem 0.65rem;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    font-size: 0.8125rem;
    color: #374151;
    background: #fff;
}
.rr-obs-search {
    min-width: 12rem;
}
.rr-obs-new-pill {
    display: inline-flex;
    margin: 0 0 0.65rem;
    padding: 0.35rem 0.75rem;
    border: 1px solid #c7d2fe;
    border-radius: 999px;
    background: #eef2ff;
    font-size: 0.8125rem;
    font-weight: 650;
    color: #3730a3;
    cursor: pointer;
}
.rr-obs-list-wrap {
    max-height: min(70vh, 42rem);
    overflow: auto;
}
.rr-obs-item {
    border-bottom: 1px solid #f3f4f6;
}
.rr-obs-item:last-child {
    border-bottom: 0;
}
.rr-obs-item.is-new {
    animation: rr-obs-new 2.4s ease-out;
}
@keyframes rr-obs-new {
    0% { background: #ecfdf5; }
    100% { background: transparent; }
}
.rr-obs-details > summary {
    list-style: none;
    cursor: pointer;
    padding: 0.75rem 0;
}
.rr-obs-details > summary::-webkit-details-marker {
    display: none;
}
.rr-obs-summary {
    display: grid;
    grid-template-columns: 0.85rem 1fr;
    gap: 0.65rem;
    align-items: start;
}
.rr-obs-chevron {
    width: 0.45rem;
    height: 0.45rem;
    margin-top: 0.45rem;
    border-right: 2px solid #9ca3af;
    border-bottom: 2px solid #9ca3af;
    transform: rotate(-45deg);
    transition: transform 0.15s ease;
}
.rr-obs-details[open] .rr-obs-chevron {
    transform: rotate(45deg);
    margin-top: 0.35rem;
}
.rr-obs-summary-main {
    min-width: 0;
}
.rr-obs-line-title {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.45rem 0.75rem;
}
.rr-obs-title {
    font-size: 1rem;
    font-weight: 650;
    color: #111827;
    line-height: 1.35;
}
.rr-obs-item.is-strong .rr-obs-title,
.rr-obs-item.is-promoted .rr-obs-title {
    font-size: 1.0625rem;
    font-weight: 700;
}
.rr-obs-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    justify-content: flex-end;
}
.rr-obs-chip {
    display: inline-flex;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    background: #f3f4f6;
    color: #4b5563;
}
.rr-obs-chip-confidence {
    background: #ecfdf5;
    color: #047857;
}
.rr-obs-chip-promoted {
    background: #eef2ff;
    color: #4338ca;
}
.rr-obs-badge {
    display: inline-flex;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    background: #f9fafb;
    color: #6b7280;
    border: 1px solid #e5e7eb;
}
.rr-obs-badge-converted {
    color: #047857;
    border-color: #bbf7d0;
    background: #f0fdf4;
}
.rr-obs-badge-discarded {
    color: #6b7280;
}
.rr-obs-line-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.65rem;
    margin-top: 0.3rem;
}
.rr-obs-meta-part {
    font-size: 0.8125rem;
    color: #6b7280;
}
.rr-obs-meta-part:not(:last-child)::after {
    content: '·';
    margin-left: 0.65rem;
    color: #d1d5db;
}
.rr-obs-line-preview {
    margin: 0.4rem 0 0;
    font-size: 0.875rem;
    line-height: 1.45;
    color: #4b5563;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.rr-obs-body {
    padding: 0 0 0.85rem 1.5rem;
}
.rr-obs-detail {
    margin-top: 0.75rem;
}
.rr-obs-detail:first-child {
    margin-top: 0.35rem;
}
.rr-obs-detail-label {
    margin: 0 0 0.2rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #6b7280;
}
.rr-obs-detail-content {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.5;
    color: #374151;
    white-space: pre-wrap;
}
.rr-obs-candidate-link-wrap {
    margin: 0.85rem 0 0;
}
.rr-obs-candidate-link {
    padding: 0;
    border: 0;
    background: none;
    font-size: 0.875rem;
    font-weight: 650;
    color: var(--color-accent);
    cursor: pointer;
}
.rr-obs-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}
.rr-obs-meta {
    display: block;
    margin-top: 0.3rem;
    font-size: 0.875rem;
    color: #6b7280;
}
.rr-obs-summary-old { margin: 0.4rem 0 0; font-size: 0.9375rem; color: #374151; }
.rr-obs-expand { margin-top: 0.4rem; font-size: 0.875rem; }
.rr-obs-expand > summary { cursor: pointer; color: var(--color-accent); font-weight: 600; }
.rr-timeline-list { list-style: none; margin: 0; padding: 1rem 0 0; }
.rr-history {
    padding-top: 0.25rem;
}
.rr-history-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.65rem 1rem;
    margin-bottom: 0.85rem;
}
.rr-history-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    flex: 1 1 auto;
    min-width: 0;
}
.rr-history-export {
    position: relative;
    flex: 0 0 auto;
    margin-left: auto;
}
.rr-history-export-split {
    display: inline-flex;
    align-items: stretch;
}
.rr-history-export-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    white-space: nowrap;
}
.rr-history-export-icon {
    flex: 0 0 auto;
}
.rr-history-export-menu {
    position: relative;
}
.rr-history-export-menu > summary {
    list-style: none;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    border-left: 0;
    min-width: 2.1rem;
    padding-left: 0.45rem;
    padding-right: 0.45rem;
    cursor: pointer;
}
.rr-history-export-menu > summary::-webkit-details-marker {
    display: none;
}
.rr-history-export-dropdown {
    position: absolute;
    right: 0;
    top: calc(100% + 0.3rem);
    z-index: 20;
    min-width: 14rem;
    padding: 0.35rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.55rem;
    background: #fff;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.1);
}
.rr-history-export-dropdown button {
    display: block;
    width: 100%;
    padding: 0.45rem 0.65rem;
    border: 0;
    border-radius: 0.4rem;
    background: transparent;
    color: #374151;
    font-size: 0.8125rem;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}
.rr-history-export-dropdown button:hover {
    background: #f3f4f6;
}
.rr-history-export-toast {
    position: absolute;
    right: 0;
    top: calc(100% + 0.45rem);
    z-index: 30;
    white-space: nowrap;
}
.rr-history-filter {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.7rem;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    background: #fff;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #4b5563;
    cursor: pointer;
}
.rr-history-filter.is-active {
    border-color: #c7d2fe;
    background: #eef2ff;
    color: #3730a3;
}
.rr-history-filter span {
    font-variant-numeric: tabular-nums;
    color: #6b7280;
}
.rr-history-new-pill {
    display: inline-flex;
    margin: 0 0 0.65rem;
    padding: 0.35rem 0.75rem;
    border: 1px solid #c7d2fe;
    border-radius: 999px;
    background: #eef2ff;
    font-size: 0.8125rem;
    font-weight: 650;
    color: #3730a3;
    cursor: pointer;
}
.rr-history-timeline-wrap {
    max-height: min(70vh, 42rem);
    overflow: auto;
    padding-right: 0.15rem;
}
.rr-history-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.rr-history-item {
    display: grid;
    grid-template-columns: 1.1rem 1fr;
    gap: 0.65rem 0.75rem;
    padding: 0.55rem 0;
    border-bottom: 1px solid #f3f4f6;
}
.rr-history-item:last-child {
    border-bottom: 0;
}
.rr-history-item.is-new {
    animation: rr-history-new 2.4s ease-out;
}
@keyframes rr-history-new {
    0% { background: #ecfdf5; }
    100% { background: transparent; }
}
.rr-history-marker {
    width: 0.55rem;
    height: 0.55rem;
    margin-top: 0.45rem;
    border-radius: 999px;
    background: #d1d5db;
}
.rr-history-icon-progress .rr-history-marker { background: #2563eb; }
.rr-history-icon-candidate .rr-history-marker { background: #7c3aed; }
.rr-history-icon-lifecycle .rr-history-marker { background: #0891b2; }
.rr-history-icon-success .rr-history-marker { background: #059669; }
.rr-history-icon-rejected .rr-history-marker { background: #9ca3af; }
.rr-history-icon-warning .rr-history-marker,
.rr-history-icon-error .rr-history-marker { background: #dc2626; }
.rr-history-icon-recovery .rr-history-marker,
.rr-history-icon-system .rr-history-marker { background: #d1d5db; }
.rr-history-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.45rem 0.65rem;
}
.rr-history-time {
    font-size: 0.8125rem;
    font-variant-numeric: tabular-nums;
    color: #6b7280;
    white-space: nowrap;
}
.rr-history-title {
    font-size: 0.9375rem;
    font-weight: 650;
    color: #111827;
    line-height: 1.35;
}
.rr-history-importance-high .rr-history-title {
    font-size: 1rem;
    font-weight: 750;
}
.rr-history-importance-emphasis .rr-history-title {
    font-weight: 700;
}
.rr-history-importance-error .rr-history-title {
    color: #b91c1c;
}
.rr-history-importance-muted .rr-history-title {
    font-weight: 600;
    color: #6b7280;
}
.rr-history-desc {
    margin: 0.2rem 0 0;
    font-size: 0.875rem;
    color: #6b7280;
    line-height: 1.45;
}
.rr-history-importance-muted .rr-history-desc {
    font-size: 0.8125rem;
}
.rr-history-group-details {
    margin-top: 0.35rem;
    font-size: 0.8125rem;
}
.rr-history-group-details > summary {
    cursor: pointer;
    color: var(--color-accent);
    font-weight: 600;
}
.rr-history-group-list {
    list-style: none;
    margin: 0.45rem 0 0;
    padding: 0 0 0 0.75rem;
    border-left: 2px solid #e5e7eb;
}
.rr-history-group-item {
    padding: 0.35rem 0;
}
.rr-history-group-item .rr-history-head {
    gap: 0.35rem 0.5rem;
}
.rr-history-group-item .rr-history-title {
    font-size: 0.875rem;
    font-weight: 600;
    color: #374151;
}
.rr-history-group-item .rr-history-desc {
    font-size: 0.8125rem;
}
.rr-history-tech {
    margin-top: 0.35rem;
}
.rr-history-load-more {
    display: block;
    width: 100%;
    margin-top: 0.75rem;
    padding: 0.55rem 0.75rem;
    border: 1px dashed #d1d5db;
    border-radius: 8px;
    background: #fafafa;
    font-size: 0.875rem;
    font-weight: 600;
    color: #374151;
    cursor: pointer;
}
.rr-history-load-more:hover {
    background: #f3f4f6;
}
.rr-timeline-item {
    display: grid;
    grid-template-columns: 4.75rem 1fr;
    gap: 1.125rem;
    padding: 0.875rem 0;
    border-bottom: 1px solid #f3f4f6;
}
.rr-timeline-item:last-child { border-bottom: 0; }
.rr-timeline-time {
    font-size: 0.8125rem;
    font-variant-numeric: tabular-nums;
    color: #6b7280;
}
.rr-timeline-title { font-size: 0.9375rem; font-weight: 650; color: #111827; }
.rr-timeline-desc {
    margin: 0.25rem 0 0;
    font-size: 0.875rem;
    color: #6b7280;
    line-height: 1.45;
}
.rr-timeline-older { margin-bottom: 0.75rem; }
.rr-timeline-older > summary {
    cursor: pointer;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-accent);
    list-style: none;
}
.rr-timeline-older > summary::-webkit-details-marker { display: none; }
.rr-tech-details > summary {
    cursor: pointer;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-accent);
    list-style: none;
}
.rr-tech-details > summary::-webkit-details-marker { display: none; }
.rr-tech-pre {
    margin: 0.5rem 0 0;
    padding: 0.75rem;
    background: #f3f4f6;
    border-radius: 8px;
    font-family: var(--font-mono);
    font-size: 0.75rem;
    overflow-x: auto;
    white-space: pre-wrap;
    max-height: 14rem;
}
.rr-diagnostics-list {
    display: grid;
    gap: 0.75rem;
    margin: 0;
    padding: 1rem 0 0;
}
.rr-diagnostics-list > div {
    display: grid;
    grid-template-columns: 12rem 1fr;
    gap: 1rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid #f3f4f6;
}
.rr-diagnostics-list dt {
    margin: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #6b7280;
}
.rr-diagnostics-list dd { margin: 0; font-size: 0.9375rem; color: #374151; }
.rr-diag-dashboard {
    max-width: 1280px;
    padding: 0.25rem 0 1.5rem;
}
.rr-diag-section {
    margin-bottom: 2rem;
}
.rr-diag-section-kicker {
    margin: 0 0 0.35rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #6b7280;
}
.rr-diag-section-title {
    margin: 0 0 1rem;
    font-size: 1.0625rem;
    font-weight: 750;
    color: #111827;
}
.rr-diag-section-panel {
    margin-bottom: 0;
}
.rr-diag-hero {
    margin-bottom: 1.75rem;
    padding: 1.35rem 1.5rem;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
}
.rr-diag-hero-title {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 750;
    line-height: 1.3;
    color: #111827;
}
.rr-diag-hero-summary {
    margin: 0.55rem 0 0;
    font-size: 1rem;
    line-height: 1.45;
    color: #374151;
}
.rr-diag-hero-warning {
    margin: 0.75rem 0 0;
    font-size: 0.95rem;
    color: #9a3412;
}
.rr-diag-state-healthy { border-left: 4px solid #059669; }
.rr-diag-state-waiting { border-left: 4px solid #d97706; }
.rr-diag-state-stopping { border-left: 4px solid #d97706; }
.rr-diag-state-stalled { border-left: 4px solid #dc2626; }
.rr-diag-state-error { border-left: 4px solid #dc2626; }
.rr-diag-state-idle { border-left: 4px solid #9ca3af; }
.rr-diag-metric-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
    gap: 1rem 1.35rem;
    margin-top: 1.25rem;
}
.rr-diag-metric-grid-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}
@media (max-width: 1100px) {
    .rr-diag-metric-grid-5 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 720px) {
    .rr-diag-metric-grid-5 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
.rr-diag-metric {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
.rr-diag-metric.is-alert .rr-diag-metric-value {
    color: #b45309;
}
.rr-diag-metric-label {
    font-size: 0.8125rem;
    font-weight: 650;
    color: #6b7280;
}
.rr-diag-metric-value {
    font-size: 1.2rem;
    font-weight: 750;
    font-variant-numeric: tabular-nums;
    color: #111827;
}
.rr-diag-health {
    padding: 1rem 1.125rem;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
}
.rr-diag-state-badge {
    display: inline-flex;
    padding: 0.25rem 0.65rem;
    border-radius: 999px;
    background: #fff;
    border: 1px solid #e5e7eb;
    font-size: 0.875rem;
    font-weight: 700;
    color: #111827;
}
.rr-diag-health-summary {
    margin: 0.65rem 0 0;
    font-size: 0.9375rem;
    color: #374151;
}
.rr-diag-health-meta {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
    gap: 0.5rem 1rem;
    margin: 0.875rem 0 0;
    font-size: 0.875rem;
}
.rr-diag-health-meta div {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.rr-diag-health-meta dt {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 600;
    color: #6b7280;
}
.rr-diag-health-meta dd {
    margin: 0;
    font-weight: 650;
    color: #111827;
}
.rr-diag-alert {
    margin-bottom: 1.25rem;
    padding: 0.95rem 1.1rem;
    background: #fff7ed;
    border: 1px solid #fdba74;
    border-radius: 10px;
}
.rr-diag-alert-title {
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 700;
    color: #9a3412;
}
.rr-diag-alert-message {
    margin: 0.35rem 0 0.75rem;
    font-size: 0.9375rem;
    color: #7c2d12;
}
.rr-diag-table {
    font-size: 0.9375rem;
}
.rr-diag-table tr.is-long-wait td {
    background: #fffbeb;
    color: #92400e;
}
.rr-diag-op-state {
    font-size: 0.8125rem;
    font-weight: 650;
}
.rr-diag-op-state-active { color: #047857; }
.rr-diag-op-state-queued { color: #6b7280; }
.rr-diag-empty {
    margin: 0 0 0.75rem;
    font-size: 0.95rem;
}
.rr-diag-now-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.rr-diag-now-row {
    display: flex;
    justify-content: space-between;
    gap: 1.25rem;
    align-items: flex-start;
    padding: 0.95rem 0;
    border-bottom: 1px solid #eef2f7;
}
.rr-diag-now-row:last-child { border-bottom: 0; }
.rr-diag-now-name {
    display: block;
    font-size: 1rem;
    color: #111827;
}
.rr-diag-now-stage {
    margin: 0.3rem 0 0;
    font-size: 0.95rem;
    color: #4b5563;
}
.rr-diag-now-meta {
    display: grid;
    grid-template-columns: repeat(3, auto);
    gap: 0.75rem 1.25rem;
    margin: 0;
    text-align: right;
}
.rr-diag-now-meta dt {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 650;
    color: #6b7280;
}
.rr-diag-now-meta dd {
    margin: 0.1rem 0 0;
    font-size: 0.9rem;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
    color: #111827;
}
@media (max-width: 800px) {
    .rr-diag-now-row { flex-direction: column; }
    .rr-diag-now-meta { text-align: left; }
}
.rr-diag-waiting-details { margin-top: 1rem; }
.rr-diag-waiting-details summary {
    cursor: pointer;
    font-size: 0.95rem;
    font-weight: 700;
    color: #374151;
}
.rr-diag-waiting-list { margin-top: 0.75rem; }
.rr-diag-waiting-row {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto;
    gap: 0.75rem;
    padding: 0.55rem 0;
    border-bottom: 1px solid #f3f4f6;
    font-size: 0.9rem;
}
.rr-diag-waiting-row.is-long-wait { color: #9a3412; }
.rr-diag-collapsible-summary {
    cursor: pointer;
    list-style: none;
}
.rr-diag-count-badge {
    display: inline-flex;
    min-width: 1.35rem;
    justify-content: center;
    margin-left: 0.35rem;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: #e5e7eb;
    font-size: 0.8125rem;
    font-weight: 700;
    color: #374151;
}
.rr-diag-worker-panel {
    margin: 0;
}
.rr-diag-worker-label {
    margin: 0 0 0.5rem;
}
.rr-diag-worker-slots {
    display: flex;
    gap: 0.35rem;
    margin: 0.85rem 0 0.5rem;
}
.rr-diag-worker-slot {
    width: 1rem;
    height: 0.55rem;
    border-radius: 999px;
    background: #e5e7eb;
}
.rr-diag-worker-slot.is-busy {
    background: #059669;
}
.rr-diag-worker-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem 1.25rem;
    font-size: 0.875rem;
    color: #4b5563;
}
.rr-diag-worker-stats strong {
    color: #111827;
    font-weight: 700;
}
.rr-diag-worker-hint {
    margin: 0.65rem 0 0;
    font-size: 0.85rem;
    line-height: 1.45;
}
.rr-diag-underutilized-warning {
    margin: 0.75rem 0 0;
    padding: 0.7rem 0.85rem;
    background: #fff7ed;
    border: 1px solid #fdba74;
    border-radius: 8px;
    color: #9a3412;
    font-size: 0.95rem;
    font-weight: 650;
}
.rr-diag-stage-grid {
    display: none;
}
.rr-diag-stage-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.rr-diag-stage-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: baseline;
    padding: 0.7rem 0;
    border-bottom: 1px solid #eef2f7;
}
.rr-diag-stage-row:last-child { border-bottom: 0; }
.rr-diag-stage-card {
    padding: 0.75rem 0.85rem;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}
.rr-diag-stage-name {
    font-size: 0.975rem;
    font-weight: 650;
    color: #111827;
}
.rr-diag-stage-counts {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem 1.15rem;
    font-size: 0.9rem;
    font-variant-numeric: tabular-nums;
    color: #4b5563;
}
.rr-diag-stage-active { color: #047857; font-weight: 700; }
.rr-diag-stage-waiting { color: #6b7280; }
.rr-diag-stage-completed { color: #374151; }
.rr-diag-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 1.75rem 2rem;
    margin-bottom: 2rem;
}
@media (max-width: 900px) {
    .rr-diag-split { grid-template-columns: 1fr; }
}
.rr-diag-queue-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem 1rem;
}
.rr-diag-queue-item {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}
.rr-diag-queue-item span {
    font-size: 0.8rem;
    font-weight: 650;
    color: #6b7280;
}
.rr-diag-queue-item strong {
    font-size: 1.1rem;
    font-weight: 750;
    font-variant-numeric: tabular-nums;
    color: #111827;
}
.rr-diag-perf-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem 1rem;
}
.rr-diag-perf-tile {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}
.rr-diag-perf-tile.is-alert {
    color: #b45309;
}
.rr-diag-perf-label {
    font-size: 0.8rem;
    font-weight: 650;
    color: #6b7280;
}
.rr-diag-perf-value {
    font-size: 1.05rem;
    font-weight: 750;
    font-variant-numeric: tabular-nums;
    color: #111827;
}
.rr-diag-bottleneck {
    margin-top: 1.15rem;
    padding-top: 1rem;
    border-top: 1px solid #eef2f7;
}
.rr-diag-bottleneck-title {
    margin: 0 0 0.35rem;
    font-size: 0.9rem;
    font-weight: 750;
    color: #111827;
}
.rr-discovery-flags {
    margin: 0.75rem 0 0;
    padding: 0;
    list-style: none;
}
.rr-discovery-flag {
    margin: 0.35rem 0;
    padding: 0.45rem 0.65rem;
    border-left: 3px solid #b45309;
    background: #fffbeb;
    color: #78350f;
    font-size: 0.875rem;
}
.rr-ai-usage-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
    margin: 0.5rem 0 1rem;
}
.rr-ai-usage-table th,
.rr-ai-usage-table td {
    text-align: left;
    padding: 0.35rem 0.5rem;
    border-bottom: 1px solid #eef2f7;
}
.rr-ai-usage-table th:not(:first-child),
.rr-ai-usage-table td:not(:first-child) {
    text-align: right;
}
.rr-diag-bottleneck p {
    margin: 0;
    font-size: 0.95rem;
    color: #374151;
}
.rr-diag-queue-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
}
.rr-diag-queue-metric {
    display: flex;
    align-items: baseline;
    gap: 0.45rem;
    font-size: 0.875rem;
}
.rr-diag-queue-metric strong {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: #111827;
}
.rr-diag-performance-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: 0.35rem 1rem;
    margin: 0;
    font-size: 0.875rem;
}
.rr-diag-performance-list div {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
}
.rr-diag-performance-list dt { color: #6b7280; margin: 0; }
.rr-diag-performance-list dd { margin: 0; font-weight: 650; color: #111827; }
.rr-diag-technical {
    margin-top: 0.5rem;
    border-top: 1px solid #e5e7eb;
    padding-top: 1rem;
    font-size: 0.9375rem;
}
.rr-diag-technical summary {
    cursor: pointer;
    font-size: 0.95rem;
    font-weight: 700;
    color: #4b5563;
}
.rr-diag-tech-raw {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.75rem;
    font-family: var(--font-mono);
}
.rr-diag-discovery-tech {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid #eef2f7;
}
.rr-diag-llm-summaries {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid #eef2f7;
}
.rr-diag-llm-summaries summary {
    cursor: pointer;
    font-weight: 700;
    color: #4b5563;
}
.rr-diag-llm-toolbar {
    display: flex;
    gap: 0.5rem;
    margin: 0.75rem 0;
}
.rr-diag-llm-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}
.rr-diag-llm-row {
    border: 1px solid #e5e7eb;
    border-radius: 0.5rem;
    padding: 0.75rem;
    background: #fafafa;
}
.rr-diag-llm-row-main {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    margin-bottom: 0.5rem;
}
.rr-diag-llm-name { font-size: 0.95rem; }
.rr-diag-llm-meta { font-size: 0.8125rem; color: #6b7280; }
.rr-diag-llm-row-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}
.rr-diag-llm-preview {
    margin-top: 0.75rem;
}
.rr-diag-llm-preview-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.4rem;
}
.rr-diag-llm-pre {
    margin: 0;
    max-height: 22rem;
    overflow: auto;
    padding: 0.75rem;
    border-radius: 0.4rem;
    background: #111827;
    color: #e5e7eb;
    font-size: 0.75rem;
    line-height: 1.45;
    white-space: pre-wrap;
}
@media (max-width: 720px) {
    .rr-workspace { margin: calc(var(--space-4) * -1); padding: 1rem; }
    .rr-header-main { flex-direction: column; }
    .rr-header-actions { width: 100%; justify-content: flex-start; }
    .rr-meta-strip { gap: 0.35rem; }
    .rr-tab-panel { padding: 0 1rem 1.25rem; }
    .rr-timeline-item { grid-template-columns: 1fr; gap: 0.25rem; }
    .rr-diagnostics-list > div { grid-template-columns: 1fr; }
}

/* Candidate dossier */
body:has(.cd-dossier-page) {
    background: #f3f2ef;
    background-image: none;
}
.cd-dossier-page {
    max-width: 76.25rem; /* ~1220px */
    margin: 0 auto;
    padding: 0 1.25rem 2.75rem;
    font-size: 0.9375rem; /* 15px */
    line-height: 1.5;
    color: var(--color-ink);
}
.cd-sticky-chrome {
    position: sticky;
    top: 0;
    z-index: 40;
    margin: 0 -1.25rem 1.35rem;
    padding: 0 1.25rem;
    background: #f3f2ef;
    border-bottom: 1px solid color-mix(in srgb, var(--color-line) 85%, transparent);
}
.cd-header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    padding: 0.85rem 0 0.65rem;
}
.cd-header-main { min-width: 0; flex: 1 1 22rem; }
.cd-header-top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
}
.cd-title {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 650;
    line-height: 1.3;
    letter-spacing: -0.01em;
}
.cd-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.5rem;
    border-radius: var(--radius-sm);
    font-size: 0.75rem;
    font-weight: 650;
    line-height: 1.3;
    border: 1px solid transparent;
}
.cd-badge-ok {
    color: #14603f;
    background: #e8f5ef;
    border-color: color-mix(in srgb, #14603f 18%, transparent);
}
.cd-badge-active {
    color: #1d4f7a;
    background: #e4eef4;
    border-color: color-mix(in srgb, #1d4f7a 18%, transparent);
}
.cd-badge-hold {
    color: #8a5a10;
    background: #fbf3e0;
    border-color: color-mix(in srgb, #8a5a10 22%, transparent);
}
.cd-badge-rejected {
    color: #8f3530;
    background: #f8eaea;
    border-color: color-mix(in srgb, #8f3530 20%, transparent);
}
.cd-badge-pending {
    color: var(--color-muted);
    background: color-mix(in srgb, #fff 55%, #f3f2ef);
    border-color: var(--color-line);
}
.cd-header-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1rem;
    margin: 0.45rem 0 0;
    font-size: 0.875rem;
    color: color-mix(in srgb, var(--color-ink) 88%, var(--color-muted));
}
.cd-header-metrics strong {
    font-size: 0.9375rem;
    font-variant-numeric: tabular-nums;
}
.cd-callout {
    margin: 0.7rem 0 0;
    padding: 0.7rem 0.85rem;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-line);
    background: #fff;
    max-width: 42rem;
}
.cd-callout-hold {
    border-color: color-mix(in srgb, #8a5a10 28%, var(--color-line));
    background: color-mix(in srgb, #fbf3e0 70%, #fff);
}
.cd-callout-rejected {
    border-color: color-mix(in srgb, #8f3530 28%, var(--color-line));
    background: color-mix(in srgb, #f8eaea 70%, #fff);
}
.cd-callout-title {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 650;
}
.cd-callout-text {
    margin: 0.3rem 0 0;
    font-size: 0.875rem;
    color: color-mix(in srgb, var(--color-ink) 90%, var(--color-muted));
}
.cd-header-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.45rem;
}
.cd-back-link {
    margin-left: 0.15rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-muted);
    text-decoration: none;
}
.cd-back-link:hover { color: var(--color-ink); }
.cd-overflow { position: relative; }
.cd-overflow > summary {
    list-style: none;
    cursor: pointer;
    min-width: 2.35rem;
    text-align: center;
}
.cd-overflow > summary::-webkit-details-marker { display: none; }
.cd-overflow-menu {
    position: absolute;
    right: 0;
    top: calc(100% + 0.35rem);
    z-index: 50;
    min-width: 14rem;
    padding: 0.35rem;
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
}
.cd-overflow-menu a,
.cd-overflow-menu button {
    display: block;
    width: 100%;
    padding: 0.5rem 0.65rem;
    border: 0;
    background: transparent;
    text-align: left;
    color: var(--color-ink);
    text-decoration: none;
    font: inherit;
    cursor: pointer;
    border-radius: var(--radius-sm);
}
.cd-overflow-menu a:hover,
.cd-overflow-menu button:hover { background: #f3f2ef; }
.cd-tabs {
    display: flex;
    gap: 0.15rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding: 0.15rem 0 0;
    scrollbar-width: thin;
}
.cd-tab {
    flex: 0 0 auto;
    border: 0;
    background: transparent;
    padding: 0.7rem 0.95rem;
    border-radius: var(--radius-sm) var(--radius-sm) 0 0;
    font: inherit;
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--color-muted);
    cursor: pointer;
    white-space: nowrap;
    box-shadow: inset 0 -2px 0 transparent;
}
.cd-tab:hover { color: var(--color-ink); background: color-mix(in srgb, #fff 70%, #f3f2ef); }
.cd-tab.is-active,
.cd-tab[aria-selected="true"] {
    color: var(--color-ink);
    background: #fff;
    box-shadow: inset 0 -2px 0 var(--color-accent);
}
.cd-body { min-width: 0; }
.cd-panel[hidden] { display: none !important; }

/* Overview — investment memo */
.cd-memo {
    display: flex;
    flex-direction: column;
    gap: 1.75rem;
    max-width: 76.25rem;
}
.cd-memo-summary {
    padding: 1.15rem 1.35rem 1.25rem;
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
}
.cd-memo-title {
    margin: 0;
    font-size: 1.375rem; /* ~22px */
    font-weight: 650;
    line-height: 1.3;
    letter-spacing: -0.02em;
}
.cd-memo-metrics {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.4rem 1.15rem;
    margin: 0.65rem 0 0;
    font-size: 0.9375rem;
    line-height: 1.45;
    color: color-mix(in srgb, var(--color-ink) 88%, var(--color-muted));
}
.cd-memo-metrics strong {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    color: var(--color-ink);
}
.cd-memo-status {
    font-weight: 650;
}
.cd-memo-status-rejected { color: #8f3530; }
.cd-memo-status-hold { color: #8a5a10; }
.cd-memo-status-ok { color: #14603f; }
.cd-memo-status-active { color: #1d4f7a; }
.cd-memo-verdict {
    margin-top: 0.95rem;
    padding-top: 0.9rem;
    border-top: 1px solid color-mix(in srgb, var(--color-line) 80%, transparent);
}
.cd-memo-verdict-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 650;
    line-height: 1.35;
}
.cd-memo-verdict-detail {
    margin: 0.35rem 0 0;
    max-width: 40rem;
    font-size: 0.9375rem;
    line-height: 1.5;
    color: color-mix(in srgb, var(--color-ink) 82%, var(--color-muted));
}
.cd-overview {
    display: grid;
    grid-template-columns: minmax(0, 50rem) minmax(18.75rem, 21rem); /* ~800 + ~320 */
    gap: 1.5rem; /* 24px */
    align-items: start;
    justify-content: space-between;
}
.cd-overview-main {
    display: flex;
    flex-direction: column;
    gap: 1.85rem; /* ~30px section spacing */
    min-width: 0;
    max-width: 50rem;
}
.cd-memo-section h3,
.cd-field h3 {
    margin: 0 0 0.55rem;
    font-family: var(--font-body);
    font-size: 0.9375rem; /* 15px */
    font-weight: 650;
    letter-spacing: 0;
    text-transform: none;
    color: var(--color-ink);
}
.cd-field-text {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.55;
    white-space: pre-wrap;
    color: color-mix(in srgb, var(--color-ink) 94%, var(--color-muted));
}
.cd-memo-facts {
    margin: 0;
    display: grid;
    gap: 0.75rem;
}
.cd-memo-facts > div {
    display: grid;
    grid-template-columns: 9.5rem minmax(0, 1fr);
    gap: 0.5rem 1rem;
    align-items: start;
}
.cd-memo-facts dt {
    margin: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.45;
    color: var(--color-muted);
}
.cd-memo-facts dd {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.5;
    color: color-mix(in srgb, var(--color-ink) 94%, var(--color-muted));
}
.cd-workflow {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem 0;
    align-items: stretch;
}
.cd-workflow-step {
    position: relative;
    flex: 1 1 7.5rem;
    min-width: 6.5rem;
    max-width: 11rem;
    padding: 0.55rem 0.7rem;
    background: color-mix(in srgb, #fff 70%, #f3f2ef);
    border: 1px solid color-mix(in srgb, var(--color-line) 90%, transparent);
    border-radius: var(--radius-sm);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
.cd-workflow-step:not(:last-child)::after {
    content: '→';
    position: absolute;
    right: -0.85rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--color-muted);
    font-size: 0.85rem;
    z-index: 1;
}
.cd-workflow-label {
    font-size: 0.75rem;
    font-weight: 650;
    color: var(--color-muted);
    letter-spacing: 0.01em;
}
.cd-workflow-value {
    font-size: 0.8125rem;
    line-height: 1.4;
    color: var(--color-ink);
}
.cd-more {
    margin-top: 0.4rem;
    border: 0;
    background: none;
    padding: 0;
    color: var(--color-accent);
    font: inherit;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
}
.cd-overview-side {
    position: sticky;
    top: 7.5rem;
    align-self: start;
    width: 100%;
    max-width: 21rem;
}
.cd-decision-panel {
    padding: 1.05rem 1.15rem 1.15rem;
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
}
.cd-side-block {
    padding: 0.85rem 0;
    border-bottom: 1px solid color-mix(in srgb, var(--color-line) 75%, transparent);
}
.cd-side-block:first-child { padding-top: 0; }
.cd-side-block:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}
.cd-side-block > h3 {
    margin: 0 0 0.55rem;
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 650;
    text-transform: none;
    letter-spacing: 0;
    color: var(--color-muted);
}
.cd-side-verdict {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.3;
}
.cd-side-verdict-rejected { color: #8f3530; }
.cd-side-verdict-hold { color: #8a5a10; }
.cd-side-verdict-ok { color: #14603f; }
.cd-side-verdict-active { color: #1d4f7a; }
.cd-side-verdict-pending { color: var(--color-ink); }
.cd-side-reason {
    margin: 0.35rem 0 0;
    font-size: 0.875rem;
    line-height: 1.45;
    color: color-mix(in srgb, var(--color-ink) 80%, var(--color-muted));
}
.cd-side-list {
    margin: 0;
    display: grid;
    gap: 0.55rem;
}
.cd-side-list > div {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.25rem 0.75rem;
}
.cd-side-list dt {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--color-muted);
}
.cd-side-list dd {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    text-align: right;
}
.cd-side-risks {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.45rem;
}
.cd-side-risks li {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: baseline;
}
.cd-side-risk-label {
    font-size: 0.8125rem;
    color: var(--color-muted);
}
.cd-side-risk-value {
    font-size: 0.875rem;
    font-weight: 600;
    text-align: right;
}
.cd-side-risk-value.is-ok { color: #14603f; }
.cd-side-risk-value.is-warn { color: #8a5a10; }
.cd-side-risk-value.is-muted { color: var(--color-ink); }
.cd-side-meta {
    margin: 0 0 0.45rem;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: color-mix(in srgb, var(--color-ink) 88%, var(--color-muted));
}
.cd-side-meta:last-child { margin-bottom: 0; }
.cd-side-meta-label {
    display: block;
    margin-bottom: 0.15rem;
    font-weight: 650;
    color: var(--color-muted);
}
.cd-kv { margin: 0; display: grid; gap: 0.85rem; }
.cd-kv dt {
    font-size: 0.75rem;
    font-weight: 650;
    color: var(--color-muted);
}
.cd-kv dd {
    margin: 0.2rem 0 0;
    font-size: 0.875rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
}
.cd-trail {
    margin: 0;
    padding: 1.35rem 0 0;
    border-top: 1px solid color-mix(in srgb, var(--color-line) 80%, transparent);
    max-width: 50rem;
}
.cd-trail h2 {
    margin: 0 0 0.85rem;
    font-size: 0.9375rem;
    font-weight: 650;
    color: var(--color-ink);
}
.cd-resume-diag {
    margin: 0;
    padding: 0.95rem 1.1rem;
    border: 1px solid color-mix(in srgb, #1d4f7a 18%, var(--color-line));
    border-radius: var(--radius-md);
    background: color-mix(in srgb, #e4eef4 35%, #fff);
    max-width: 50rem;
}
.cd-resume-diag h2 {
    margin: 0 0 0.65rem;
    font-size: 0.9375rem;
    font-weight: 650;
}
.cd-resume-diag .cd-kv { gap: 0.65rem; }
.cd-stepper {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0;
}
.cd-step {
    display: grid;
    grid-template-columns: 1.35rem minmax(0, 1fr);
    gap: 0.35rem 0.75rem;
    padding: 0.55rem 0;
    border-bottom: 0;
}
.cd-step:not(:last-child) .cd-step-body {
    padding-bottom: 0.55rem;
    border-bottom: 1px solid color-mix(in srgb, var(--color-line) 65%, transparent);
}
.cd-step-icon {
    width: 1.35rem;
    height: 1.35rem;
    margin-top: 0.1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1;
    border: 1px solid transparent;
    background: transparent;
    color: var(--color-muted);
}
.cd-step.is-passed .cd-step-icon { color: #14603f; }
.cd-step.is-failed .cd-step-icon { color: #8f3530; }
.cd-step.is-hold .cd-step-icon { color: #8a5a10; }
.cd-step.is-in_progress .cd-step-icon { color: #1d4f7a; }
.cd-step.is-warning .cd-step-icon { color: #8a5a10; }
.cd-step.is-warning .cd-step-outcome { color: #8a5a10; }
.cd-step-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.3rem 0.65rem;
}
.cd-step-label { font-weight: 650; font-size: 0.875rem; }
.cd-step-score {
    font-variant-numeric: tabular-nums;
    font-size: 0.8125rem;
    font-weight: 600;
}
.cd-step-outcome {
    font-size: 0.75rem;
    font-weight: 650;
    color: var(--color-muted);
}
.cd-step.is-failed .cd-step-outcome { color: #8f3530; }
.cd-step.is-hold .cd-step-outcome { color: #8a5a10; }
.cd-step.is-passed .cd-step-outcome { color: #14603f; }
.cd-step-text {
    margin: 0.2rem 0 0;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--color-muted);
}
.cd-evidence-summary,
.cd-comp-summary,
.cd-score-headline {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
    margin-bottom: 1rem;
}
.cd-metric {
    display: inline-flex;
    flex-direction: column;
    gap: 0.15rem;
    font-variant-numeric: tabular-nums;
}
.cd-metric strong { font-size: 1.05rem; }
.cd-metric-label {
    font-size: 0.75rem;
    font-weight: 650;
    color: var(--color-muted);
}
.cd-evidence-list { display: grid; gap: 0.75rem; }
.cd-evidence-item {
    padding: 0.85rem 1rem;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
    background: var(--color-surface);
}
.cd-evidence-item.is-verified { border-left: 3px solid #15803d; }
.cd-evidence-item.is-inference { border-left: 3px solid #2563eb; }
.cd-evidence-item.is-assumption { border-left: 3px solid #a16207; }
.cd-evidence-item.is-contradicted { border-left: 3px solid #b91c1c; }
.cd-evidence-item header {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 0.75rem;
    margin-bottom: 0.35rem;
    font-size: 0.8125rem;
}
.cd-evidence-kind { font-weight: 700; }
.cd-evidence-claim { margin: 0; font-weight: 600; }
.cd-evidence-meta { margin: 0.35rem 0 0; font-size: 0.8125rem; color: var(--color-muted); }
.cd-missing-block {
    margin-bottom: 1rem;
    padding: 0.75rem 1rem;
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, #a16207 25%, var(--color-line));
    background: color-mix(in srgb, #a16207 8%, var(--color-surface));
}
.cd-missing-block h3 {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 650;
    text-transform: none;
    letter-spacing: 0;
}
.cd-missing-block ul { margin: 0.35rem 0 0; padding-left: 1.1rem; }
.cd-table-wrap { overflow-x: auto; background: var(--color-surface); border: 1px solid var(--color-line); border-radius: var(--radius-md); }
.cd-table { width: 100%; font-size: 0.875rem; }
.cd-comp-ws { margin: 0 0 1rem; }
.cd-comp-crowded {
    align-self: center;
    font-size: 0.8125rem;
    font-weight: 700;
    color: #9a3412;
}
.cd-score-reason { margin: 0 0 1rem; }
.cd-score-pipeline {
    margin-top: 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
    background: var(--color-surface);
}
.cd-score-pipeline h3,
.cd-panel > h3 {
    margin: 0 0 0.4rem;
    font-size: 0.9375rem;
    font-weight: 650;
    text-transform: none;
    letter-spacing: 0;
}
.cd-score-pipeline ul { margin: 0.4rem 0 0; padding-left: 1.1rem; }
.cd-timeline {
    list-style: none;
    margin: 0 0 1.25rem;
    padding: 0;
    display: grid;
    gap: 0.45rem;
}
.cd-timeline li {
    padding: 0.65rem 0.8rem;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
    background: var(--color-surface);
}
.cd-timeline.is-compact li { padding: 0.4rem 0.65rem; font-size: 0.8125rem; }
.cd-timeline-head {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 0.75rem;
    align-items: baseline;
}
.cd-timeline li p { margin: 0.3rem 0 0; font-size: 0.875rem; }
.cd-collapse {
    margin: 1rem 0;
    padding: 0.65rem 0.85rem;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
    background: var(--color-surface);
}
.cd-collapse > summary { cursor: pointer; font-weight: 650; }
.cd-raw {
    margin: 0.65rem 0 0;
    padding: 0.75rem;
    max-height: 22rem;
    overflow: auto;
    font-size: 0.75rem;
    line-height: 1.4;
    background: var(--color-bg-1);
    border-radius: var(--radius-sm);
    white-space: pre-wrap;
}
.cd-tech-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1rem;
}
.cd-tech-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: 0.85rem;
    margin-bottom: 1rem;
}
.cd-side-card {
    padding: 1rem 1.05rem;
    background: var(--color-surface);
    border: 1px solid var(--color-line);
    border-radius: var(--radius-md);
}
.cd-side-card h3 {
    margin: 0 0 0.55rem;
    font-size: 0.9375rem;
    font-weight: 650;
    text-transform: none;
    letter-spacing: 0;
}
.cd-source-list { margin: 0.5rem 0 0; padding-left: 1.1rem; }
.cd-copy-llm-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}
.cd-copy-icon { flex: 0 0 auto; }
.cd-copy-toast {
    position: fixed;
    right: 1.25rem;
    bottom: 1.25rem;
    z-index: 80;
}
@media (max-width: 1100px) {
    .cd-overview {
        grid-template-columns: 1fr;
        justify-content: stretch;
    }
    .cd-overview-side {
        position: static;
        order: -1;
        max-width: none;
    }
    .cd-overview-main { max-width: none; }
    .cd-trail,
    .cd-resume-diag { max-width: none; }
    .cd-workflow-step:not(:last-child)::after { display: none; }
    .cd-memo-facts > div {
        grid-template-columns: 1fr;
        gap: 0.2rem;
    }
}
@media (max-width: 720px) {
    .cd-dossier-page { padding-left: 1rem; padding-right: 1rem; }
    .cd-sticky-chrome { margin-left: -1rem; margin-right: -1rem; padding-left: 1rem; padding-right: 1rem; }
    .cd-title { font-size: 1.05rem; }
    .cd-memo-title { font-size: 1.2rem; }
    .cd-header-actions { width: 100%; justify-content: flex-start; }
    .cd-callout { max-width: none; }
    .cd-sticky-chrome { top: 0; }
    .cd-memo-summary { padding: 1rem; }
}
