/* ── Reset & tokens ──────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
    --c-bg:       #f5f4f0;
    --c-surface:  #ffffff;
    --c-border:   #e2dfd8;
    --c-primary:  #4f46e5;
    --c-primary-h:#3730a3;
    /* Purple reserved for the author's voice (bubbles, composer, their quotes). */
    --c-author:              #4f46e5;
    --c-author-h:            #3730a3;
    --c-author-surface:      rgba(79, 70, 229, 0.1);
    --c-author-surface-2:    rgba(79, 70, 229, 0.06);
    --c-author-border:       rgba(79, 70, 229, 0.32);
    --c-author-border-2:     rgba(79, 70, 229, 0.14);
    --c-author-text:         rgb(67, 56, 202);
    --c-author-placeholder:  rgba(79, 70, 229, 0.52);
    --c-author-focus:        rgba(79, 70, 229, 0.12);
    --c-chrome-surface:      rgba(15, 23, 42, 0.04);
    --c-chrome-border:       rgba(15, 23, 42, 0.1);
    --c-progress-partial:    rgba(245, 158, 11, 0.2);
    --c-progress-partial-text: rgb(161, 98, 7);
    --c-success:  #059669;
    --c-danger:   #dc2626;
    --c-text:     #1c1a2e;
    --c-muted:    #6b7280;
    --c-subtle:   #9ca3af;
    --radius:     12px;
    --radius-lg:  18px;
    --shadow:     0 2px 16px rgba(0,0,0,.07);
    --shadow-lg:  0 8px 40px rgba(0,0,0,.12);
    --footer-h:   58px;
    --step2-tools-bar-h: 4.25rem;
    /* Default bar height; author.js sets the same token on <html> from measured .a-topbar when #app is visible */
    --header-h:   65px;
    --steps-row-h: 0px;
    --author-page-gutter: 1.25rem;
    --wmb-min-width: 820px;
}

html {
    font-size: clamp(13.5px, calc(8px + 0.8vh), 16px);
    scroll-behavior: smooth;
}

body {
    font-family: system-ui, -apple-system, 'Segoe UI', sans-serif;
    background: var(--c-bg);
    color: var(--c-text);
    line-height: 1.65;
    min-height: 100vh;
    overflow-x: auto;
}

/* Studio author workspace — not applied during mobile call shell */
#app.a-wrap {
    min-width: var(--wmb-min-width);
}

/* ── Utility ────────────────────────────────────────────────────────────── */
.hidden { display: none !important; }

body.ai-assist-busy,
body.ai-assist-busy * {
    cursor: wait !important;
}

.ai-assist-overlay {
    position: fixed;
    inset: 0;
    background: rgba(17, 24, 39, .25);
    backdrop-filter: blur(1px);
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ai-assist-overlay-box {
    min-width: 320px;
    max-width: 420px;
    background: #fff;
    border: 1px solid var(--c-border);
    border-radius: 14px;
    box-shadow: var(--shadow-lg);
    padding: 1rem 1.2rem;
    display: flex;
    flex-direction: column;
    gap: .45rem;
    align-items: center;
    text-align: center;
}

.ai-assist-spinner {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 3px solid #d1d5db;
    border-top-color: var(--c-primary);
    animation: spin .75s linear infinite;
}

.ai-assist-title {
    font-size: .95rem;
    font-weight: 700;
    color: var(--c-text);
}

.ai-assist-detail {
    font-size: .84rem;
    color: var(--c-muted);
}

.center { text-align: center; }

/* ── Buttons ────────────────────────────────────────────────────────────── */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: .85rem 2rem;
    border: none;
    border-radius: var(--radius);
    font-size: 1.05rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s, transform .1s, opacity .15s;
    text-decoration: none;
}
.btn:active { transform: scale(.97); }
.btn:disabled { opacity: .5; cursor: not-allowed; transform: none; }

.btn-primary {
    background: var(--c-primary);
    color: #fff;
}
.btn-primary:hover:not(:disabled) { background: var(--c-primary-h); }

.btn-ghost {
    background: transparent;
    color: var(--c-primary);
    border: 2px solid var(--c-primary);
}
.btn-ghost:hover:not(:disabled) { background: rgba(79,70,229,.06); }

.btn-xl {
    padding: 0.8rem 2rem;
    font-size: 1.2rem;
    border-radius: var(--radius-lg);
    min-width: 220px;
}

.btn-link {
    background: none;
    border: none;
    color: var(--c-primary);
    font-size: .9rem;
    cursor: pointer;
    text-decoration: underline;
    padding: 0;
}

/* ── Card ───────────────────────────────────────────────────────────────── */
.card {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-lg);
    padding: 1.25rem;
    box-shadow: var(--shadow);
    overflow: hidden;
    min-width: 0;
}

/* ── Layout ─────────────────────────────────────────────────────────────── */
.a-wrap {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    padding-top: var(--header-h);
}

/* ── Topbar ─────────────────────────────────────────────────────────────── */
.a-topbar {
    background: var(--c-surface);
    border-bottom: 1px solid var(--c-border);
    padding: 0 1.25rem;
    height: var(--header-h);
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-shadow: 0 1px 4px rgba(0,0,0,.05);
    z-index: 250;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    overflow: visible;
}

.a-logo {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--c-primary);
    letter-spacing: -.4px;
}

.a-logo-version {
    font-size: .65rem;
    color: var(--c-muted);
    margin-left: .35rem;
    font-weight: 500;
    opacity: .7;
    vertical-align: middle;
}

.a-topbar-brand {
    display: flex;
    align-items: center;
    gap: .55rem;
    flex-shrink: 0;
}

/* Phase C1 — phone author lives inside #app */
#app.a-wrap.a-wrap--phone,
.a-wrap--phone {
    min-width: 0 !important;
    padding-top: 0;
    height: 100dvh;
    max-height: 100dvh;
    overflow: hidden;
}

.a-wrap--phone > .a-topbar,
.a-wrap--phone > .steps-row,
.a-wrap--phone > .a-main,
.a-wrap--phone .a-global-nav {
    display: none !important;
}

.author-phone-host {
    position: fixed;
    inset: 0;
    z-index: 40;
    display: flex;
    flex-direction: column;
    min-width: 0;
    background: var(--c-bg, #f7f3ea);
}

.author-phone-host .mobile-studio {
    flex: 1;
    min-height: 0;
}

/* Desktop Capture FAB — sit above the global bottom tab bar (matches Discover Add something) */
#app.a-wrap:not(.a-wrap--phone) {
    --capture-fab-size: 3.25rem;
    --capture-fab-slot-width: 7.25rem;
    --capture-fab-gap: 0.75rem;
}

#app.a-wrap:not(.a-wrap--phone) > .mobile-studio-capture-root {
    z-index: 220;
}

#app.a-wrap:not(.a-wrap--phone) > .mobile-studio-capture-root .mobile-studio-capture-fab {
    bottom: calc(var(--footer-h, 58px) + 0.65rem);
    right: 1rem;
}

/* Desktop journey steps / Publish — Capture FAB torn down in JS; keep CSS failsafe */
#app.a-wrap--publish-landing > .mobile-studio-capture-root,
#app.a-wrap--capture-fab-hidden > .mobile-studio-capture-root {
    display: none !important;
}

/* When Capture FAB is hidden, reclaim the composer gutter so the prompt spans full width */
#app.a-wrap--capture-fab-hidden .workspace-talk-fab-slot,
#app.a-wrap--publish-landing .workspace-talk-fab-slot {
    display: none;
}

#app.a-wrap:not(.a-wrap--phone) > .mobile-studio-capture-root .mobile-studio-capture-sheet {
    bottom: 0;
    max-width: 28rem;
    left: auto;
    right: 1.25rem;
    border-radius: 18px 18px 0 0;
}

/* Reserve a column beside Discuss so the FAB does not cover the composer */
.workspace-talk-composer-row {
    display: flex;
    align-items: flex-end;
    gap: var(--capture-fab-gap, 0.75rem);
    width: 100%;
}

.workspace-talk-composer-main {
    flex: 1 1 auto;
    min-width: 0;
}

.workspace-talk-fab-slot {
    flex: 0 0 var(--capture-fab-slot-width, var(--capture-fab-size, 3.25rem));
    width: var(--capture-fab-slot-width, var(--capture-fab-size, 3.25rem));
    height: calc(var(--capture-fab-size, 3.25rem) + 1.6rem);
    pointer-events: none;
}

/* Phone Assignments already uses .mobile-studio-talk-fab-slot; keep agent-window slot off there */
.a-wrap--phone .workspace-talk-fab-slot {
    display: none;
}

.a-global-nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 200;
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) 10px repeat(5, minmax(0, 1fr));
    gap: 0;
    margin: 0;
    padding: 0.3rem 0.25rem calc(0.35rem + env(safe-area-inset-bottom, 0px));
    background: var(--c-surface, #fff);
    border-top: 1px solid rgba(28, 26, 46, 0.1);
    box-shadow: 0 -1px 8px rgba(0, 0, 0, 0.04);
}

.a-global-nav-gap {
    display: block;
    width: 100%;
    align-self: stretch;
    margin: 0.35rem 0;
    border-left: 1px solid rgba(28, 26, 46, 0.12);
    justify-self: center;
}

.a-global-nav-btn {
    position: relative;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 0.18rem;
    min-height: 44px;
    border: none;
    background: transparent;
    color: var(--c-text);
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.2rem 0.2rem;
    border-radius: 10px;
    cursor: pointer;
    line-height: 1.15;
}

.a-global-nav-btn--journey {
    font-size: 0.66rem;
}

.a-global-nav-btn:hover {
    color: var(--c-text);
    background: rgba(28, 26, 46, 0.06);
}

.a-global-nav-btn--active {
    color: var(--c-primary);
    background: rgba(var(--c-primary-rgb, 79, 70, 229), 0.16);
    font-weight: 700;
    box-shadow: inset 0 0 0 1.5px rgba(var(--c-primary-rgb, 79, 70, 229), 0.42);
}

.a-global-nav-btn--locked {
    color: var(--c-muted);
    opacity: 0.78;
}

.a-global-nav-btn--complete .a-global-nav-check {
    color: var(--c-success, #1f7a4d);
}

.a-global-nav-check {
    font-size: 0.65rem;
    font-weight: 800;
    line-height: 1;
}

.a-global-nav-label {
    display: block;
    white-space: nowrap;
}

.a-global-nav-ready {
    display: inline-flex;
    align-items: center;
    min-height: 1rem;
    padding: 0.05rem 0.3rem;
    border-radius: 999px;
    background: #dcfce7;
    color: #166534;
    font-size: 0.52rem;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

.a-global-nav-ready[hidden] {
    display: none !important;
}

.a-global-nav-badge {
    position: absolute;
    top: 0.15rem;
    right: max(0.2rem, calc(50% - 1.8rem));
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.1rem;
    height: 1.1rem;
    margin: 0;
    padding: 0 0.28rem;
    border-radius: 999px;
    background: var(--c-danger, #c0392b);
    color: #fff;
    font-size: 0.62rem;
    font-weight: 800;
    line-height: 1;
    vertical-align: middle;
}

/* display:inline-flex above overrides UA [hidden]; never show an empty red pill */
.a-global-nav-badge[hidden],
.a-global-nav-badge:empty {
    display: none !important;
}

.author-publish-landing {
    max-width: 56rem;
    margin: 0 auto;
    padding: 1.75rem 1.25rem 3rem;
}

.author-publish-header {
    margin-bottom: 1.75rem;
    max-width: 40rem;
}

.author-publish-header-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.author-publish-title {
    margin: 0;
    font-size: clamp(1.45rem, 2.2vw, 1.75rem);
    font-weight: 750;
    letter-spacing: -0.02em;
    color: var(--c-text);
    line-height: 1.2;
}

.author-publish-settings-btn {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    margin: -0.2rem -0.35rem 0 0;
    padding: 0;
    border: 1px solid var(--c-border);
    border-radius: 10px;
    background: var(--c-surface);
    color: var(--c-muted);
    cursor: pointer;
    box-shadow: var(--shadow);
}

.author-publish-settings-btn:hover {
    color: var(--c-text);
    border-color: color-mix(in srgb, var(--c-primary) 35%, var(--c-border));
    background: #fafaf8;
}

.author-publish-settings-btn:focus-visible {
    outline: 2px solid var(--c-primary);
    outline-offset: 2px;
}

.author-publish-lead {
    margin: 0;
    color: var(--c-muted);
    line-height: 1.55;
    font-size: 1.02rem;
}

.author-publish-sections {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

@media (min-width: 900px) {
    .author-publish-sections {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.15rem;
    }

    .author-publish-section[data-publish-section="export"],
    .author-publish-section[data-publish-section="publish-sell"],
    .author-publish-section[data-publish-section="audiobook"] {
        grid-column: 1 / -1;
    }
}

/* Publish settings dialog */
.author-publish-settings-backdrop {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(0, 0, 0, 0.45);
}

.author-publish-settings-dialog {
    width: min(32rem, 100%);
    max-height: min(90vh, 40rem);
    display: flex;
    flex-direction: column;
    background: var(--c-surface, #fff);
    color: var(--c-text, #111827);
    border: 1px solid var(--c-border, rgba(17, 24, 39, 0.12));
    border-radius: var(--radius-lg, 12px);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
    outline: none;
}

.author-publish-settings-dialog-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 1rem 1.1rem 0.75rem;
    border-bottom: 1px solid var(--c-border);
    flex-shrink: 0;
}

.author-publish-settings-dialog-title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 750;
    color: var(--c-text);
}

.author-publish-settings-dialog-close {
    flex: 0 0 auto;
    width: 2.5rem;
    height: 2.5rem;
    margin: -0.35rem -0.35rem 0 0;
    border: none;
    border-radius: 10px;
    background: transparent;
    color: var(--c-muted);
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.author-publish-settings-dialog-close:hover {
    background: #f3f4f6;
    color: var(--c-text);
}

.author-publish-settings-dialog-close:focus-visible {
    outline: 2px solid var(--c-primary);
    outline-offset: 1px;
}

.author-publish-settings-dialog-body {
    padding: 0.95rem 1.1rem 1.15rem;
    overflow-y: auto;
    overscroll-behavior: contain;
}

/* Publish audiobook chapter picker */
.author-publish-audiobook-dialog {
    width: min(34rem, 100%);
    max-height: min(92vh, 44rem);
}

.author-publish-audiobook-body {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.author-publish-audiobook-intro {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.45;
    color: var(--c-muted);
}

.author-publish-audiobook-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.author-publish-audiobook-chapter-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    max-height: min(40vh, 16rem);
    overflow-y: auto;
}

.author-publish-audiobook-chapter {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    padding: 0.55rem 0.65rem;
    border: 1px solid var(--c-border, rgba(17, 24, 39, 0.12));
    border-radius: 10px;
    cursor: pointer;
}

.author-publish-audiobook-chapter:hover {
    border-color: var(--c-primary, #2563eb);
}

.author-publish-audiobook-chapter input {
    margin-top: 0.2rem;
}

.author-publish-audiobook-chapter-copy {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.author-publish-audiobook-chapter-title {
    font-size: 0.88rem;
    font-weight: 650;
    color: var(--c-text);
}

.author-publish-audiobook-chapter-meta {
    font-size: 0.75rem;
    color: var(--c-muted);
}

.author-publish-audiobook-estimate {
    margin-top: 0.25rem;
    padding: 0.7rem 0.8rem;
    border-radius: 10px;
    background: rgba(17, 24, 39, 0.04);
}

.author-publish-audiobook-estimate-line {
    margin: 0 0 0.3rem;
    font-size: 0.86rem;
    line-height: 1.4;
    color: var(--c-text);
}

.author-publish-audiobook-estimate-line:last-child {
    margin-bottom: 0;
}

.author-publish-audiobook-estimate-line--error {
    color: #b91c1c;
}

.author-publish-audiobook-estimate-cost {
    font-size: 0.95rem;
}

.author-publish-audiobook-estimate-note {
    margin: 0.45rem 0 0;
    font-size: 0.75rem;
    line-height: 1.4;
    color: var(--c-muted);
}

.author-publish-audiobook-foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.75rem 1.1rem 1rem;
    border-top: 1px solid var(--c-border);
    flex-shrink: 0;
}

.author-publish-audiobook-status {
    flex: 1 1 10rem;
    margin-right: auto;
    font-size: 0.78rem;
    line-height: 1.35;
    color: var(--c-muted);
}

.author-publish-settings-dialog-lead {
    margin: 0 0 0.95rem;
    font-size: 0.9rem;
    color: var(--c-muted);
    line-height: 1.45;
}

.author-publish-settings-form {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.author-publish-setting {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin: 0;
}

.author-publish-setting--toggle {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem;
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    background: #fafaf8;
}

.author-publish-setting--soon {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.55rem 0.15rem;
    opacity: 0.9;
}

.author-publish-setting-main {
    min-width: 0;
    flex: 1;
}

.author-publish-setting-label {
    font-size: 0.88rem;
    font-weight: 650;
    color: var(--c-text);
}

.author-publish-setting-control {
    width: 100%;
    max-width: 28rem;
    font: inherit;
    font-size: 0.9rem;
    padding: 0.5rem 0.65rem;
    border-radius: var(--radius);
    border: 1px solid var(--c-border);
    background: var(--c-surface);
    color: var(--c-text);
}

.author-publish-setting-control:focus-visible {
    outline: 2px solid var(--c-primary);
    outline-offset: 2px;
}

.author-publish-setting-hint,
.author-publish-setting-desc {
    margin: 0;
    font-size: 0.78rem;
    color: var(--c-muted);
    line-height: 1.4;
    font-weight: 450;
}

.author-publish-setting-toggle {
    width: 1.15rem;
    height: 1.15rem;
    flex-shrink: 0;
    accent-color: var(--c-primary);
}

.author-publish-settings-soon {
    margin-top: 0.35rem;
    padding-top: 0.85rem;
    border-top: 1px dashed var(--c-border);
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.author-publish-settings-soon-title {
    margin: 0 0 0.15rem;
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--c-subtle);
}

.author-publish-settings-status {
    margin: 0.15rem 0 0;
    min-height: 1.1em;
    font-size: 0.78rem;
    color: var(--c-muted);
}

.author-publish-settings-status.is-error {
    color: var(--c-danger, #b91c1c);
}

.author-publish-section {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-lg);
    padding: 1.25rem 1.2rem 1.1rem;
    box-shadow: var(--shadow);
}

.author-publish-section-header {
    margin-bottom: 0.95rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid var(--c-border);
}

.author-publish-section-title {
    margin: 0 0 0.3rem;
    font-size: 1.05rem;
    font-weight: 750;
    color: var(--c-text);
}

.author-publish-section-desc {
    margin: 0;
    font-size: 0.9rem;
    color: var(--c-muted);
    line-height: 1.45;
}

.author-publish-action-list {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.author-publish-action {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
    text-align: left;
    padding: 0.7rem 0.85rem;
    border-radius: var(--radius);
    border: 1px solid transparent;
    background: transparent;
    color: var(--c-text);
    font: inherit;
}

.author-publish-action--available {
    cursor: pointer;
    border-color: var(--c-border);
    background: #fafaf8;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

.author-publish-action--available:hover {
    border-color: rgba(var(--c-primary-rgb, 79, 70, 229), 0.45);
    background: var(--c-surface);
    box-shadow: 0 1px 6px rgba(15, 23, 42, 0.06);
}

.author-publish-action--available:focus-visible {
    outline: 2px solid var(--c-primary);
    outline-offset: 2px;
}

.author-publish-action--coming-soon {
    cursor: default;
    opacity: 0.88;
    background: rgba(15, 23, 42, 0.02);
    border-color: transparent;
}

.author-publish-action--premier {
    border-color: rgba(var(--c-primary-rgb, 79, 70, 229), 0.28);
    background: linear-gradient(
        180deg,
        rgba(var(--c-primary-rgb, 79, 70, 229), 0.06),
        rgba(255, 255, 255, 0.9)
    );
}

.author-publish-action-main {
    min-width: 0;
    flex: 1;
}

.author-publish-action-label {
    display: block;
    font-size: 0.92rem;
    font-weight: 650;
    color: var(--c-text);
    line-height: 1.3;
}

.author-publish-action-desc {
    margin: 0.25rem 0 0;
    font-size: 0.8rem;
    color: var(--c-muted);
    line-height: 1.4;
    font-weight: 450;
}

.author-publish-coming-soon-badge {
    flex-shrink: 0;
    font-size: 0.68rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--c-subtle);
    background: rgba(15, 23, 42, 0.05);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 999px;
    padding: 0.22rem 0.55rem;
    white-space: nowrap;
}

.mobile-studio-publish-host {
    min-height: 100%;
    padding-bottom: 1rem;
}

.a-wrap--publish-landing #step-content {
    overflow: auto;
}

@media (max-width: 640px) {
    .author-publish-landing {
        padding: 1.15rem 0.85rem 2.5rem;
    }

    .author-publish-section {
        padding: 1.05rem 0.95rem 0.95rem;
    }

    .author-publish-action {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.4rem;
    }

    .author-publish-coming-soon-badge {
        align-self: flex-start;
    }
}

.author-global-panel {
    background: var(--c-bg, #f7f3ea);
}

.author-global-panel-body {
    overflow: auto;
    padding: 1rem 1.1rem 1.5rem;
}

.author-now-host,
.author-inbox-host {
    max-width: 640px;
    margin: 0 auto;
}

.author-now--desktop {
    padding-top: .25rem;
}

.a-wrap--now-landing .a-main {
    overflow: auto;
}

.author-now-landing {
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
    padding: 1.5rem 1.25rem calc(1.25rem + var(--footer-h));
}

.author-now-landing-host .author-now--desktop {
    padding-top: 0.5rem;
}

.author-now-landing-host .mobile-studio-card {
    margin-bottom: 1rem;
    padding: 1.15rem 1.2rem;
    border: 1px solid var(--c-border);
    border-radius: 14px;
    background: var(--c-surface, #fff);
}

.author-now-landing-host .mobile-studio-card--status,
.mobile-studio-now .mobile-studio-card--status {
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.98), var(--c-surface, #fff));
}

.author-now-landing-host .mobile-studio-card-head,
.mobile-studio-now .mobile-studio-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.65rem 0.75rem;
    margin-bottom: 0.15rem;
}

.author-now-landing-host .mobile-studio-card-head .mobile-studio-card-title,
.mobile-studio-now .mobile-studio-card-head .mobile-studio-card-title {
    margin: 0;
    flex: 0 1 auto;
    width: fit-content;
    max-width: calc(100% - 0.5rem);
    min-width: 0;
    font-size: 1.22rem;
    font-weight: 750;
    letter-spacing: -0.02em;
    line-height: 1.25;
    color: var(--c-text);
    /* Soft marker highlight — reads stronger than body lead without a heavy pill. */
    background: linear-gradient(
        transparent 58%,
        rgba(var(--c-primary-rgb, 79, 70, 229), 0.16) 58%
    );
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}

.author-now-status-title-row {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    min-width: 0;
    flex: 1 1 auto;
}

.author-now-status-title-row .mobile-studio-card-title {
    max-width: none;
}

.author-now-progress-info-btn {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.55rem;
    height: 1.55rem;
    margin: 0;
    padding: 0;
    border-radius: 999px;
    border: 1px solid var(--c-border, #d4d4d8);
    background: var(--c-surface, #fff);
    color: var(--c-muted, #71717a);
    font-size: 0.78rem;
    font-weight: 700;
    font-style: italic;
    font-family: Georgia, 'Times New Roman', serif;
    line-height: 1;
    cursor: pointer;
}

.author-now-progress-info-btn:hover,
.author-now-progress-info-btn:focus-visible {
    color: var(--c-primary, #4f46e5);
    border-color: rgba(var(--c-primary-rgb, 79, 70, 229), 0.45);
    outline: none;
}

.author-now-progress-info-btn:focus-visible {
    box-shadow: 0 0 0 2px rgba(var(--c-primary-rgb, 79, 70, 229), 0.25);
}

.author-now-landing-host .mobile-studio-card-head-actions,
.mobile-studio-now .mobile-studio-card-head-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 0.35rem 0.5rem;
    flex: 0 1 auto;
    max-width: 62%;
}

.author-now-status-grid {
    list-style: none;
    margin: 0.35rem 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem 0.85rem;
}

.author-now-status-grid--captures,
.author-now-status-grid--progress {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.author-now-status-grid--soft-inline {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 0.45rem 0.55rem;
}

.author-now-status-grid--soft-inline .author-now-status-item {
    flex: 1 1 0;
    min-width: 0;
}

.author-now-status-item {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.author-now-status-value {
    font-size: 1.15rem;
    font-weight: 750;
    line-height: 1.2;
    color: var(--c-text);
    letter-spacing: -0.01em;
}

.author-now-status-grid--soft-inline .author-now-status-value {
    font-size: 1.02rem;
}

.author-now-status-label {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--c-muted);
    line-height: 1.3;
}

.author-now-status-grid--soft-inline .author-now-status-label {
    font-size: 0.72rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.author-now-status--guided .author-now-phase-lead {
    margin: 0.35rem 0 0;
    font-size: 1.05rem;
    font-weight: 650;
    line-height: 1.35;
    color: var(--c-text);
}

.author-now-status--guided .author-now-status-grid {
    margin-top: 0.65rem;
}

.author-now-status-nudge {
    margin: 0.9rem 0 0;
    font-size: 0.9rem;
    line-height: 1.45;
    color: var(--c-text);
}

.author-now-landing-host .mobile-studio-card-title {
    margin: 0 0 0.45rem;
    font-size: 1.22rem;
    font-weight: 750;
}

.author-now-landing-host .mobile-studio-card-actions {
    margin-top: 0.85rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem 0.75rem;
}

.author-now-landing-host .mobile-studio-card-head-actions .mobile-studio-btn {
    min-height: 2.1rem;
    padding: 0.35rem 0.85rem;
    font-size: 0.84rem;
}

.author-now-landing-host .mobile-studio-card-head-actions .mobile-studio-btn--primary,
.mobile-studio-now .mobile-studio-card-head-actions .mobile-studio-btn--primary {
    min-width: 11rem;
    justify-content: center;
    text-align: center;
    white-space: nowrap;
    box-sizing: border-box;
}

.author-now-landing-host .mobile-studio-btn {
    min-height: 2.4rem;
    padding: 0.45rem 0.95rem;
    border-radius: 10px;
    border: 1px solid transparent;
    font-size: 0.9rem;
    font-weight: 700;
    cursor: pointer;
}

.author-now-landing-host .mobile-studio-btn--primary {
    background: var(--c-primary);
    color: #fff;
}

.author-now-landing-host .mobile-studio-btn--secondary {
    background: transparent;
    border-color: var(--c-border);
    color: var(--c-text);
}

.author-now-landing-host .mobile-studio-btn--subtle {
    background: transparent;
    color: var(--c-primary);
    border-color: transparent;
    font-weight: 600;
}

.author-now-landing-host .mobile-studio-btn--subtle:hover,
.author-now-landing-host .mobile-studio-btn--subtle:focus-visible {
    background: rgba(79, 70, 229, 0.06);
    border-color: rgba(79, 70, 229, 0.18);
}

.author-now-landing-host .mobile-studio-footnote {
    margin: 0.5rem 0 0;
    color: var(--c-muted);
    font-size: 0.88rem;
    line-height: 1.5;
}

.author-now-loading,
.author-now-error {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.85rem;
    text-align: center;
    color: var(--c-muted);
    padding: 2.5rem 1rem;
    min-height: 12rem;
}

.author-now-loading .spinner {
    margin: 0;
}

.author-now-loading p,
.author-now-error p {
    margin: 0;
}

@media (max-width: 768px) {
    .a-global-nav {
        display: none;
    }
}

.a-topbar-narration-dock {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0 0.65rem;
    display: flex;
    align-items: center;
}

body.ai-author-narration-dock .a-topbar {
    height: auto;
    min-height: var(--header-h, 56px);
    align-items: center;
    flex-wrap: nowrap;
}

body.ai-author-narration-dock .topbar-working-title {
    display: none;
}

body.ai-author-narration-dock .a-topbar-narration-dock,
body.ai-author-narration-dock .a-topbar-narration-dock #ai-author-narration-dock,
body.ai-author-narration-dock .a-topbar-narration-dock #ai-author-narration-caption {
    width: 100%;
    min-width: 0;
}

.topbar-working-title {
    font-size: .78rem;
    font-weight: 500;
    color: var(--c-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: min(28vw, 18rem);
    line-height: 1.2;
    margin-left: .1rem;
    pointer-events: none;
}

.topbar-working-title[hidden] {
    display: none !important;
}

.a-user {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.a-user-info {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .05rem;
}

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

#user-name {
    font-size: 1rem;
    font-weight: 800;
    color: var(--c-text);
    line-height: 1.25;
}

#user-email {
    font-size: .75rem;
    color: var(--c-muted);
    line-height: 1.25;
}

.a-topbar-inbox {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    height: 38px;
    padding: 0 0.85rem;
    border: 1px solid var(--c-border);
    border-radius: 10px;
    background: #fff;
    color: var(--c-text);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    flex-shrink: 0;
}
.a-topbar-inbox:hover {
    border-color: rgba(79, 70, 229, 0.35);
    color: var(--c-primary);
}
.a-topbar-inbox--active,
.a-topbar-inbox.a-global-nav-btn--active {
    border-color: rgba(79, 70, 229, 0.45);
    background: var(--c-author-surface);
    color: var(--c-author-text);
}
.a-topbar-inbox-badge {
    position: static;
    min-width: 1.15rem;
    height: 1.15rem;
    padding: 0 0.3rem;
    font-size: 0.65rem;
    line-height: 1.15rem;
}

.a-send-feedback {
    height: 38px;
    padding: 0 .85rem;
    border: 1px solid var(--c-border);
    border-radius: 10px;
    background: #fff;
    color: var(--c-text);
    font-size: .8rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background .15s, border-color .15s;
}

.a-send-feedback:hover {
    background: #f7f5f1;
    border-color: #cfcabf;
}

.a-send-feedback:focus-visible {
    outline: 2px solid var(--c-primary);
    outline-offset: 2px;
}

.a-menu {
    position: relative;
}

.a-menu-toggle {
    width: 38px;
    height: 38px;
    border: 1px solid var(--c-border);
    border-radius: 10px;
    background: #fff;
    color: var(--c-text);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .15s, border-color .15s;
}

.a-menu-toggle:hover {
    background: #f7f5f1;
    border-color: #cfcabf;
}

.a-menu-toggle:focus-visible {
    outline: 2px solid var(--c-primary);
    outline-offset: 2px;
}

.a-menu-icon,
.a-menu-icon::before,
.a-menu-icon::after {
    display: block;
    width: 16px;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    content: '';
}

.a-menu-icon {
    position: relative;
}

.a-menu-icon::before {
    position: absolute;
    top: -5px;
    left: 0;
}

.a-menu-icon::after {
    position: absolute;
    top: 5px;
    left: 0;
}

.a-menu-list {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    min-width: 210px;
    background: #fff;
    border: 1px solid var(--c-border);
    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(0,0,0,.12);
    padding: .35rem;
    display: flex;
    flex-direction: column;
    gap: .2rem;
    z-index: 400;
}

.a-menu-item {
    border: none;
    background: transparent;
    color: var(--c-text);
    text-align: left;
    font-size: .9rem;
    font-weight: 600;
    padding: .55rem .65rem;
    border-radius: 8px;
    cursor: pointer;
}

.a-menu-item:hover {
    background: #f4f1ea;
}

.a-menu-item:focus-visible {
    outline: 2px solid var(--c-primary);
    outline-offset: 1px;
}

#a-menu-item-signout {
    color: #b42318;
}

.a-menu-divider {
    border: none;
    height: 1px;
    background: var(--c-border);
    margin: .25rem .35rem;
}

.desk-whos-online-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.desk-whos-online-item {
    padding: .75rem .85rem;
    border: 1px solid var(--c-border);
    border-radius: 10px;
    background: #fff;
}

.desk-whos-online-name {
    display: block;
    font-size: .95rem;
    font-weight: 700;
    color: var(--c-text);
    margin-bottom: .2rem;
}

.desk-whos-online-activity {
    display: block;
    font-size: .82rem;
    color: var(--c-muted, #6b7280);
}

.desk-whos-online-empty {
    margin: 0;
    font-size: .88rem;
    color: var(--c-muted, #6b7280);
}

.desk-whos-online-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: 1rem;
}

.desk-whos-online-toolbar .desk-workspace-status {
    margin: 0;
}

/* ── Step progress bar ──────────────────────────────────────────────────── */
.a-steps {
    background: var(--c-surface);
    border-bottom: 1px solid var(--c-border);
    padding: 1.25rem 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
}

.step-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .3rem;
    cursor: pointer;
    position: relative;
}

.step-item:hover .step-circle {
    border-color: var(--c-primary);
}

.step-item:focus-visible {
    outline: 2px solid var(--c-primary);
    outline-offset: 3px;
    border-radius: 8px;
}

.step-connector {
    width: 60px;
    height: 2px;
    background: var(--c-border);
    margin-bottom: 24px;
    flex-shrink: 0;
    transition: background .3s;
}

.step-connector.done { background: var(--c-primary); }

.step-circle {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 2.5px solid var(--c-border);
    background: var(--c-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .85rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    line-height: 1;
    color: var(--c-muted);
    box-shadow: 0 0 0 4px transparent;
    transition: border-color .25s, background .25s, color .25s, box-shadow .25s;
    z-index: 1;
    flex-shrink: 0;
}

.step-check {
    display: block;
    width: 9px;
    height: 5px;
    border-left: 2.5px solid currentColor;
    border-bottom: 2.5px solid currentColor;
    transform: rotate(-45deg) translate(0, -1px);
}

.step-item.active .step-circle {
    border-color: var(--c-text);
    background: var(--c-text);
    color: #fff;
    box-shadow: 0 0 0 4px rgba(28, 26, 46, 0.12);
}

.step-item.done .step-circle {
    border-color: var(--c-success);
    background: var(--c-success);
    color: #fff;
}

.step-label {
    font-size: .72rem;
    font-weight: 600;
    color: var(--c-subtle);
    white-space: nowrap;
    letter-spacing: .03em;
    text-transform: uppercase;
    text-align: center;
}

.step-item.active .step-label { color: var(--c-text); }
.step-item.done  .step-label  { color: var(--c-success); }

/* ── Step progress row (retired — bottom tab bar is the shell nav) ───────── */
.steps-row {
    display: none !important;
}

/* ── Main content area ──────────────────────────────────────────────────── */
.a-main {
    flex: 1;
    min-height: calc(100vh - var(--header-h));
    display: flex;
    flex-direction: column;
    padding-bottom: calc(var(--footer-h) + 1.5rem);
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    width: 100%;
    box-sizing: border-box;
}

/* ── Outline wide mode ──────────────────────────────────────────────────── */
.a-main--wide {
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Steps 2–4: two-column assignment / outline / write views fill the viewport.
 * Reserve bottom tab bar height so Discuss composer (and lens footers) stay clear. */
.a-wrap:has(.a-main--fill) {
    height: 100dvh;
    min-height: 100dvh;
    overflow: hidden;
}

.a-wrap:not(.a-wrap--phone):has(.a-main--fill) {
    padding-bottom: var(--footer-h);
}

.a-main--fill {
    flex: 1 1 0;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    /* Fill shells zero horizontal padding via --wide; keep vertical padding off too,
       shell padding-bottom above clears the global tab bar. */
    padding-bottom: 0;
}

.a-main--fill > .step-action-shell {
    flex-shrink: 0;
    position: relative;
    top: auto;
    z-index: 1;
}

.a-main--fill > #outline-body {
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.a-main--fill > .outline-two-col,
.a-main--fill #outline-body > .outline-two-col,
.a-main--fill #outline-body > .outline-single-col,
.a-main--fill > .step3-plan-shell,
.a-main--fill > .step3-plan-host,
.a-main--fill > .step2-assignments-shell,
.a-main--fill > .step1-align-shell {
    flex: 1 1 0;
    min-height: 0;
    height: auto;
}

.a-main--fill .outline-qa-panel {
    overflow: hidden;
}

.a-main--fill .outline-qa-panel .outline-qa-header,
.a-main--fill .outline-qa-panel #workspace-objectives-slot,
.a-main--fill .outline-qa-panel .qa-question,
.a-main--fill .step2-assignments-main .outline-qa-panel .step2-assignment-instructions-wrap,
.a-main--fill .step2-assignments-main .workspace-assignment-chrome .step2-assignment-instructions-wrap,
.a-main--fill .outline-qa-panel .chq-question-na-row,
.a-main--fill .outline-qa-panel .chq-question-na-check,
.a-main--fill .outline-qa-panel .qa-save-status {
    flex-shrink: 0;
}

.card-fill {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.card-fill > #qa-body,
.card-fill > #align-body {
    flex: 1;
    min-height: 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

#qa-body .textarea-tools-wrap,
#align-body .textarea-tools-wrap,
.card-fill .textarea-tools-wrapped,
.my-desk-editor-card .textarea-tools-wrap,
.my-desk-editor-card .textarea-tools-wrapped,
.outline-qa-panel .textarea-tools-wrap {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

/* taWrap (the position:relative wrapper around the textarea) must also flex-fill */
#qa-body .textarea-tools-wrap > div:first-child,
#align-body .textarea-tools-wrap > div:first-child,
.card-fill .textarea-tools-wrapped > div:first-child,
.my-desk-editor-card .textarea-tools-wrap > div:first-child,
.my-desk-editor-card .textarea-tools-wrapped > div:first-child,
.outline-qa-panel .textarea-tools-wrap > div:first-child {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    width: 100%;
}

#qa-body .qa-answer-area,
#align-body .qa-answer-area,
.card-fill .generate-note,
.my-desk-editor-card .qa-answer-area,
.outline-qa-panel .qa-answer-area,
#qa-body .qa-answer-ce,
#align-body .qa-answer-ce,
.my-desk-editor-card .qa-answer-ce,
.outline-qa-panel .qa-answer-ce,
#qa-body .doc-analysis-overlay,
#align-body .doc-analysis-overlay,
.outline-qa-panel .doc-analysis-overlay {
    flex: 1;
    min-height: 7.25rem;
    height: 0;
}

@media (max-height: 900px) {
    .a-main {
        padding-top: 1.25rem;
        padding-bottom: calc(var(--footer-h) + 1rem);
    }
    .step-hero {
        margin-bottom: .8rem;
    }
}

@media (max-height: 760px) {
    .a-main {
        padding-top: .8rem;
        padding-bottom: calc(var(--footer-h) + .8rem);
    }
    .step-hero h1 {
        line-height: 1.1;
        margin-bottom: .35rem;
    }
    .step-hero p {
        line-height: 1.45;
    }
}

/* ── Step hero heading ──────────────────────────────────────────────────── */
.step-hero {
    text-align: center;
    margin-bottom: 1.5rem;
}

.step-hero h1 {
    font-size: 2.1rem;
    font-weight: 800;
    line-height: 1.2;
    color: var(--c-text);
    margin-bottom: .6rem;
}

.step-hero p {
    font-size: 1.1rem;
    color: var(--c-muted);
    max-width: 560px;
    margin: 0 auto;
    line-height: 1.7;
}

.step-coming-soon-card {
    max-width: 560px;
    margin: 0 auto;
    padding: 2rem 1.5rem;
}

.step-coming-soon {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .65rem;
}

.step-coming-soon-icon {
    font-size: 2.75rem;
    line-height: 1;
    margin-bottom: .25rem;
}

.step-coming-soon-title {
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--c-text);
    margin: 0;
}

.step-coming-soon-lead {
    font-size: 1rem;
    font-weight: 600;
    color: var(--c-primary);
    margin: 0;
}

.step-coming-soon-copy {
    font-size: .95rem;
    color: var(--c-muted);
    line-height: 1.65;
    margin: 0;
    max-width: 440px;
}

/* ── Upload zone ────────────────────────────────────────────────────────── */
.upload-zone {
    border: 2.5px dashed var(--c-border);
    border-radius: var(--radius-lg);
    padding: 1.75rem 1.25rem;
    text-align: center;
    background: #fafaf8;
    cursor: pointer;
    transition: border-color .2s, background .2s;
}

.upload-zone:hover, .upload-zone.drag-over {
    border-color: var(--c-primary);
    background: rgba(79,70,229,.03);
}

.upload-zone .upload-icon { font-size: 2.5rem; margin-bottom: .75rem; }
.upload-zone h3 { font-size: 1.1rem; font-weight: 700; margin-bottom: .4rem; }
.upload-zone p  { font-size: .9rem; color: var(--c-muted); }

.upload-zone input[type="file"] { display: none; }

/* ── Voice recorder ──────────────────────────────────────────────────────── */
.voice-record-btn {
    width: 68px;
    height: 68px;
    border-radius: 50%;
    border: none;
    background: var(--c-surface);
    border: 2.5px solid var(--c-border);
    color: var(--c-muted);
    font-size: 1.6rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all .2s;
}

.voice-record-btn:hover { border-color: var(--c-danger); color: var(--c-danger); }
.voice-record-btn.recording {
    background: var(--c-danger);
    border-color: var(--c-danger);
    color: #fff;
    animation: pulse-ring 1.2s ease-out infinite;
}

@keyframes pulse-ring {
    0%   { box-shadow: 0 0 0 0 rgba(220,38,38,.4); }
    70%  { box-shadow: 0 0 0 14px rgba(220,38,38,0); }
    100% { box-shadow: 0 0 0 0 rgba(220,38,38,0); }
}

.voice-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
}

.voice-wrap .voice-label {
    font-size: .8rem;
    color: var(--c-muted);
    font-weight: 500;
}

.voice-timer {
    font-size: .85rem;
    color: var(--c-danger);
    font-weight: 700;
    font-feature-settings: "tnum";
    min-height: 1.2em;
}

/* ── Source list ─────────────────────────────────────────────────────────── */
.source-list { list-style: none; display: flex; flex-direction: column; gap: .6rem; }

.source-item {
    display: flex;
    align-items: center;
    gap: .75rem;
    background: #f9f8f5;
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    padding: .7rem 1rem;
    font-size: .9rem;
}

.source-item .src-icon { font-size: 1.1rem; }
.source-item .src-title { flex: 1; font-weight: 600; color: var(--c-text); }
.source-item .src-type  { font-size: .75rem; color: var(--c-muted); background: #eee; padding: .15rem .45rem; border-radius: 4px; }

/* ── Q&A step ────────────────────────────────────────────────────────────── */
.qa-progress {
    text-align: left;
    font-size: .85rem;
    color: var(--c-muted);
    font-weight: 600;
    margin-bottom: .35rem;
    letter-spacing: .04em;
    background: rgba(0,0,0,.04);
    border-radius: 6px;
    padding: .25rem .5rem;
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    border: none;
    outline: none;
    cursor: pointer;
    font: inherit;
    color: inherit;
}

/* ── Custom select dropdown (replaces native <select> for question nav) ──── */
div.cust-select.qa-progress {
    display: flex;
    align-items: center;
    gap: .3rem;
    position: relative;
    user-select: none;
    -webkit-user-select: none;
}
div.cust-select.qa-progress:focus {
    outline: 2px solid var(--c-primary);
    outline-offset: 1px;
}
.cust-select-label {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.cust-select-arrow {
    flex-shrink: 0;
    font-size: .7rem;
    color: var(--c-muted);
    line-height: 1;
}
.cust-select-arrow::after { content: '▾'; }
.cust-select-list {
    position: absolute;
    top: calc(100% + 3px);
    left: 0;
    right: 0;
    z-index: 120;
    background: #fff;
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    box-shadow: 0 4px 20px rgba(0,0,0,.12);
    max-height: 320px;
    overflow-y: auto;
    overflow-x: hidden;
    padding: .25rem 0;
    list-style: none;
    margin: 0;
}
.cust-select-option {
    padding: .45rem .75rem;
    font-size: .82rem;
    font-weight: 500;
    letter-spacing: 0;
    color: var(--c-text);
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.4;
}
.cust-select-option:hover {
    background: var(--c-bg);
    color: var(--c-primary);
}

.qa-bar-wrap {
    height: 5px;
    background: var(--c-border);
    border-radius: 99px;
    margin-bottom: .6rem;
}

.qa-bar {
    height: 100%;
    background: var(--c-primary);
    border-radius: 99px;
    transition: width .4s ease;
}

.qa-question {
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--c-text);
    margin-bottom: .55rem;
}

.qa-answer-area {
    width: 100%;
    min-height: 112px;
    padding: .8rem .95rem;
    border: 2px solid var(--c-border);
    border-radius: var(--radius);
    font-size: 1.05rem;
    font-family: inherit;
    color: var(--c-text);
    background: #fff;
    resize: none;
    transition: border-color .2s;
    line-height: 1.6;
    box-sizing: border-box;
}

.qa-answer-area:focus {
    outline: none;
    border-color: var(--c-primary);
    box-shadow: 0 0 0 3px rgba(79,70,229,.1);
}

/* Copy / Erase overlay buttons inside textarea wrapper */
.ta-overlay-btn {
    position: absolute;
    top: .4rem;
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(0,0,0,.1);
    border-radius: 5px;
    cursor: pointer;
    font-size: .7rem;
    font-family: inherit;
    font-weight: 700;
    color: #888;
    padding: .15rem .32rem;
    line-height: 1;
    backdrop-filter: blur(4px);
    transition: background .15s, color .15s, opacity .15s;
    opacity: .55;
    z-index: 2;
}
.ta-overlay-btn:hover { opacity: 1; background: rgba(255,255,255,.92); color: #333; }

/* ── Ghostwriter button ─────────────────────────────────────────────────────── */
.btn-ghostwriter {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .2rem .425rem;
    border: 1.5px solid var(--c-primary);
    border-radius: 8px;
    background: transparent;
    color: var(--c-primary);
    font-size: .85rem;
    font-family: inherit;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s, color .15s;
    white-space: nowrap;
}
.btn-ghostwriter:hover:not(:disabled) { background: rgba(79,70,229,.07); }
.btn-ghostwriter:disabled { opacity: .5; cursor: not-allowed; }
.btn-ghostwriter.gw-btn--active {
    background: var(--c-primary);
    color: #fff;
}

.gw-stuck-wrap {
    position: relative;
}

.gw-stuck-popover {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    z-index: 30;
    width: min(360px, calc(100vw - 2rem));
    max-width: 360px;
    padding: .35rem;
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 18px 40px rgba(15, 23, 42, .16);
}

.gw-stuck-menu-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .35rem .45rem .15rem;
}

.gw-stuck-menu-header .gw-stuck-menu-title {
    padding: 0;
}

.gw-stuck-close-x {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1rem;
    line-height: 1;
    color: var(--c-muted);
    padding: .1rem .25rem;
    border-radius: 4px;
    transition: color .15s, background .15s;
}
.gw-stuck-close-x:hover { color: var(--c-text); background: rgba(0,0,0,.06); }

.gw-stuck-menu,
.gw-stuck-card {
    display: flex;
    flex-direction: column;
    gap: .55rem;
}

.gw-stuck-menu-title,
.gw-stuck-card-title {
    padding: .35rem .45rem .15rem;
    font-size: .82rem;
    font-weight: 800;
    color: var(--c-text);
    letter-spacing: .01em;
}

.gw-stuck-option {
    width: 100%;
    border: 1px solid var(--c-border);
    border-radius: 11px;
    background: #fff;
    padding: .7rem .8rem;
    text-align: left;
    cursor: pointer;
    transition: border-color .15s, background .15s, transform .15s;
}

.gw-stuck-option:hover {
    border-color: rgba(79,70,229,.35);
    background: rgba(79,70,229,.05);
    transform: translateY(-1px);
}

.gw-stuck-option-title {
    font-size: .9rem;
    font-weight: 700;
    color: var(--c-text);
    line-height: 1.35;
}

.gw-stuck-option-detail,
.gw-stuck-card-text,
.gw-stuck-detail-text {
    font-size: .82rem;
    line-height: 1.5;
    color: var(--c-muted);
}

.gw-stuck-option-detail {
    margin-top: .22rem;
}

.gw-stuck-card {
    padding: .35rem;
}

.gw-stuck-detail {
    padding: .55rem .6rem;
    border-radius: 10px;
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, .06);
}

.gw-stuck-detail-label {
    margin-bottom: .16rem;
    font-size: .74rem;
    font-weight: 800;
    color: var(--c-primary);
    text-transform: uppercase;
    letter-spacing: .04em;
}

.gw-stuck-footer {
    display: flex;
    justify-content: flex-end;
    gap: .45rem;
    padding-top: .2rem;
}

/* ── Ghostwriter suggestions panel ─────────────────────────────────────────── */
/* ── Contenteditable answer area (replaces <textarea> in wrapTextareaWithTools) */
.qa-answer-ce {
    position: relative;
    width: 100%;
    min-height: 112px;
    padding: .8rem .95rem;
    border: 2px solid var(--c-border);
    border-radius: var(--radius);
    font-size: 1.05rem;
    font-family: inherit;
    color: var(--c-text);
    background: #fff;
    transition: border-color .2s;
    line-height: 1.6;
    box-sizing: border-box;
    cursor: text;
    overflow-y: auto;
    white-space: pre-wrap;
    word-break: break-word;
    outline: none;
}

.qa-answer-ce:focus {
    border-color: var(--c-primary);
    box-shadow: 0 0 0 3px rgba(79,70,229,.1);
}

/*
 * Placeholder via data-placeholder.
 * Absolute so it never pushes the caret onto a second line; hide on focus
 * (class + :focus — contenteditable often fails :focus alone when focus() is programmatic).
 */
.qa-answer-ce:not(.ce-has-content):not(.ce-focused):not(:focus):before {
    content: attr(data-placeholder);
    color: #bbb;
    pointer-events: none;
    position: absolute;
    left: .95rem;
    top: .8rem;
    right: .95rem;
}

/* ── Inline suggestion block inside CE div ─────────────────────────────── */
.gw-suggestion-inline {
    background: #f3f2ff;
    border: 1.5px solid rgba(79,70,229,.25);
    border-radius: 10px;
    padding: .55rem .75rem .65rem;
    margin: .6rem 0 .2rem;
    display: flex;
    flex-direction: column;
    gap: .4rem;
    /* prevent this block from being edited */
    -webkit-user-select: none;
    user-select: none;
}

/* ── Old panel styles (no longer needed, kept for safety) ─────────────── */
.gw-suggestions-panel { display: none; }
.gw-inline-panel      { display: none; }

/* When active, flatten the textarea's bottom edge to connect to inline panel */
.gw-active textarea,
.gw-active .qa-answer-area {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    border-color: var(--c-primary);
    border-bottom-color: transparent;
}

.gw-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .15rem;
}

.gw-panel-title {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--c-muted);
}

.gw-panel-close {
    background: none;
    border: none;
    cursor: pointer;
    font-size: .8rem;
    color: var(--c-subtle);
    padding: .1rem .3rem;
    border-radius: 4px;
    line-height: 1;
}
.gw-panel-close:hover { color: var(--c-text); background: rgba(0,0,0,.05); }

.gw-empty {
    font-size: .85rem;
    color: var(--c-muted);
    text-align: center;
    padding: .5rem 0;
}

.gw-suggestion-card {
    background: #fff;
    border: 1px solid var(--c-border);
    border-radius: 10px;
    padding: .65rem .8rem .7rem;
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.gw-suggestion-label {
    font-size: .9rem;
    font-weight: 700;
    color: var(--c-text);
    line-height: 1.3;
}

.gw-suggestion-desc {
    font-size: .8rem;
    color: var(--c-muted);
    line-height: 1.5;
}

.gw-suggestion-actions {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-top: .1rem;
}

/* Small action buttons inside suggestion cards */
.btn-sm {
    display: inline-flex;
    align-items: center;
    padding: .3rem .75rem;
    border-radius: 7px;
    font-size: .8rem;
    font-family: inherit;
    font-weight: 600;
    cursor: pointer;
    border: none;
    transition: background .15s, opacity .15s;
}
.btn-sm:disabled { opacity: .45; cursor: not-allowed; }

.btn-sm--primary {
    background: var(--c-primary);
    color: #fff;
}
.btn-sm--primary:hover:not(:disabled) { background: var(--c-primary-h); }

.btn-sm--ghost {
    background: transparent;
    color: var(--c-primary);
    border: 1.5px solid var(--c-primary);
}
.btn-sm--ghost:hover:not(:disabled) { background: rgba(79,70,229,.07); }

.btn-sm--muted {
    background: transparent;
    color: var(--c-muted);
    border: 1.5px solid var(--c-border);
}
.btn-sm--muted:hover:not(:disabled) { background: rgba(0,0,0,.04); }

.gw-auto-toggle {
    display: inline-flex;
    align-items: center;
    gap: .38rem;
    color: var(--c-muted);
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .01em;
    cursor: pointer;
    user-select: none;
}

.gw-auto-toggle input {
    margin: 0;
    accent-color: var(--c-primary);
}

/* Input area revealed when author needs to provide detail */
.gw-input-area {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    margin-top: .3rem;
    padding-top: .45rem;
    border-top: 1px solid var(--c-border);
}

.gw-input-textarea {
    width: 100%;
    min-height: 80px;
    padding: .6rem .75rem;
    border: 1.5px solid var(--c-border);
    border-radius: 8px;
    font-size: .9rem;
    font-family: inherit;
    color: var(--c-text);
    background: #fff;
    resize: none;
    line-height: 1.55;
    box-sizing: border-box;
    transition: border-color .2s;
}
.gw-input-textarea:focus { outline: none; border-color: var(--c-primary); box-shadow: 0 0 0 3px rgba(79,70,229,.08); }

.gw-mini-tools {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.gw-mini-icon-btn {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1.35rem;
    opacity: .7;
    transition: opacity .15s;
    padding: 0;
    line-height: 1;
}
.gw-mini-icon-btn:hover:not(:disabled) { opacity: 1; }
.gw-mini-icon-btn:disabled { opacity: .35; }

/* ── I'm Stuck example boxes ─────────────────────────────────────────────── */
.gw-loading-row {
    display: flex;
    justify-content: center;
    padding: .75rem 0;
}

.gw-example-box {
    background: #fff;
    border: 1px solid var(--c-border);
    border-radius: 10px;
    padding: .65rem .8rem .7rem;
    display: flex;
    flex-direction: column;
    gap: .4rem;
}

.gw-example-label {
    font-size: .8rem;
    font-weight: 700;
    color: var(--c-primary);
    text-transform: uppercase;
    letter-spacing: .03em;
}

.gw-example-hint {
    font-size: .82rem;
    color: var(--c-muted);
    line-height: 1.45;
}

.gw-example-preview {
    background: #f3f2ff;
    border: 1px solid rgba(79,70,229,.15);
    border-radius: 7px;
    padding: .6rem .75rem;
    font-size: .87rem;
    line-height: 1.6;
    color: var(--c-text);
    white-space: pre-wrap;
    font-style: italic;
}

.gw-wizard-note {
    font-size: .78rem;
    color: var(--c-muted);
    margin-top: -.1rem;
}

.gw-wizard-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}

#qa-body,
#align-body {
    padding-bottom: 10px;
    min-width: 0;
    overflow: visible;
}

/* ── Align intro card (multi-field, before single Q flow) ──────────────────── */
.align-intro-card {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
    padding: .25rem 0 .5rem;
}

.align-intro-lead {
    font-size: .92rem;
    color: var(--c-muted);
    margin: 0;
}

.align-intro-fields {
    display: flex;
    flex-direction: column;
    gap: .85rem;
}

.align-intro-field {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.align-intro-label {
    font-size: .82rem;
    font-weight: 700;
    color: var(--c-text);
}

.align-intro-input {
    border: 1px solid var(--c-border);
    border-radius: 8px;
    padding: .48rem .72rem;
    font-size: .93rem;
    color: var(--c-text);
    background: #fff;
    font-family: inherit;
    outline: none;
    transition: border-color .15s, box-shadow .15s;
}

.align-intro-input:focus {
    border-color: var(--c-primary);
    box-shadow: 0 0 0 2px rgba(79, 70, 229, .12);
}

.align-voice-row {
    display: flex;
    align-items: center;
    gap: .55rem;
}

.align-choice-list--voice .align-voice-option-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 11rem;
    gap: .5rem;
    align-items: stretch;
}

.align-voice-option-row .align-choice-option--with-preview {
    min-width: 0;
}

.align-voice-option-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    gap: 0.2rem;
    min-width: 0;
}

.align-voice-option-row--my-clone .align-choice-option--with-preview {
    align-self: start;
}

.align-voice-action-btn {
    width: 100%;
    min-width: 0;
    justify-content: center;
    box-sizing: border-box;
}

.align-intro-inline-select {
    flex: 1;
}

.align-voice-action-btn {
    white-space: nowrap;
    padding: .42rem .55rem !important;
    font-size: .78rem !important;
}

.align-voice-settings-link-wrap {
    margin: 0;
    padding: 0;
    text-align: center;
    line-height: 1.3;
}

.align-voice-settings-link {
    font-size: 0.72rem;
    font-weight: 600;
}

.align-voice-my-hint,
.align-voice-discuss-note {
    margin: 0;
    font-size: 0.72rem;
    line-height: 1.35;
    color: var(--c-muted);
    text-align: left;
}

.align-voice-option-row--needs-clone .align-voice-option-actions {
    gap: 0.35rem;
}

.workspace-talk-options--voice .workspace-talk-options-label {
    margin-bottom: 0.35rem;
}

.align-voice-discuss-list {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    width: 100%;
}

.align-voice-discuss-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
}

.align-voice-discuss-row--stacked {
    flex-direction: column;
    align-items: stretch;
}

.align-voice-discuss-row--stacked .workspace-talk-option-chip {
    align-self: flex-start;
}

.align-voice-discuss-preview,
.align-voice-discuss-clone {
    flex: 0 0 auto;
    white-space: nowrap;
}

.align-voice-discuss-note--muted {
    font-style: italic;
}

.align-voice-discuss-select--setup {
    cursor: pointer;
    border-style: dashed;
}

.align-voice-discuss-row--unavailable .align-voice-discuss-select--setup {
    opacity: 0.92;
}

.align-voice-option-row--custom {
    grid-template-columns: minmax(0, 1fr) minmax(12rem, 16rem);
}

.align-voice-custom-controls {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
}

.align-voice-custom-id-input {
    width: 100%;
    min-width: 0;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.8rem;
}

.align-voice-custom-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.align-voice-discuss-row--custom .align-voice-custom-controls {
    width: 100%;
    max-width: 28rem;
}

.align-intro-input::placeholder {
    color: #bbb;
}

.align-intro-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .75rem;
    padding-top: .2rem;
}

/* ── Align quick-start card (first-four questions, one card) ──────────────── */
.align-qs-card {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
    padding: .25rem 0 .5rem;
}

.align-qs-fields {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.align-qs-field {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.align-qs-hint {
    font-size: .74rem;
    color: var(--c-muted);
    margin: 0 0 .15rem;
    font-style: italic;
}

.align-qs-input {
    /* inherits align-intro-input styles */
}

.align-choice-hint {
    margin: .35rem 0 0;
    font-size: .92rem;
    color: var(--c-muted);
}

.align-pet-speaker {
    margin: 0 0 .35rem;
    font-size: .78rem;
    font-weight: 650;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--c-muted);
}

.align-pet-pov-intro {
    display: flex;
    flex-direction: column;
    gap: .85rem;
    padding: .35rem 0 1rem;
    max-width: 36rem;
}

.align-pet-pov-intro-kicker {
    margin: 0;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--c-accent, #8a5a2b);
}

.align-pet-pov-intro-title {
    margin: 0;
    font-family: var(--font-display, Georgia, serif);
    font-size: clamp(1.65rem, 3vw, 2.15rem);
    line-height: 1.15;
    color: var(--c-text);
}

.align-pet-pov-intro-body {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.55;
    color: var(--c-text);
    white-space: pre-line;
}

.align-pet-pov-intro-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: .35rem;
}

.align-working-title {
    display: flex;
    flex-direction: column;
    gap: .65rem;
    margin-top: .5rem;
}

.align-working-title-option {
    align-items: flex-start;
}

.align-working-title-row {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex: 1;
    min-width: 0;
}

.align-working-title-input {
    flex: 1;
    min-width: 0;
}

.align-choice-list {
    display: flex;
    flex-direction: column;
    gap: .65rem;
    margin-top: .5rem;
    flex: 1;
    min-height: 0;
}

.align-choice-option {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    padding: .75rem .85rem;
    border: 1px solid var(--c-border);
    border-radius: 10px;
    cursor: pointer;
    background: #fff;
}

.align-choice-option--disabled {
    cursor: not-allowed;
    opacity: 0.48;
    background: var(--c-surface, #f4f5f7);
    border-color: var(--c-border);
}

.align-choice-option--disabled .align-choice-label,
.align-choice-option--disabled .align-choice-description {
    color: var(--c-muted);
}

.align-choice-option--disabled .align-choice-radio:disabled {
    cursor: not-allowed;
}

.align-choice-radio,
.align-choice-checkbox {
    margin-top: .2rem;
}

.align-choice-copy {
    display: block;
}

.align-choice-label {
    display: block;
    font-weight: 700;
    color: var(--c-text);
}

.align-choice-description {
    display: block;
    font-size: .85rem;
    color: var(--c-muted);
}

.align-controls-anchor {
    margin-top: .65rem;
    min-height: 2.5rem;
    border-top: 1px solid var(--c-border);
    padding-top: .65rem;
    margin-top: auto;
}

.align-controls-row {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    min-height: 2.25rem;
}

.qa-chevron-btn {
    background: linear-gradient(180deg, #ffffff 0%, #f9fafb 100%);
    border: 1px solid var(--c-border);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .3rem;
    color: var(--c-text);
    padding: .21rem .39rem;
    min-height: 1.65rem;
    border-radius: 9px;
    font-family: inherit;
    font-weight: 600;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .06);
    transition: color .15s, background .15s, border-color .15s, box-shadow .15s, transform .05s;
    user-select: none;
}

.qa-chevron-btn:hover:not(:disabled) {
    border-color: rgba(79, 70, 229, .45);
    box-shadow: 0 0 0 3px rgba(79, 70, 229, .10);
    background: #fff;
}

.qa-chevron-btn:active:not(:disabled) {
    transform: translateY(1px);
}

.qa-chevron-btn:disabled {
    opacity: .42;
    cursor: default;
}

.qa-chevron-btn:focus-visible {
    outline: 2px solid rgba(79, 70, 229, .45);
    outline-offset: 2px;
}

.qa-chevron { font-size: 1.08rem; line-height: 1; }
.qa-chevron-label { font-size: .8rem; font-weight: 700; letter-spacing: .01em; }

.qa-save-btn {
    background: linear-gradient(180deg, #4f46e5 0%, #4338ca 100%);
    border: 1px solid #4338ca;
    color: #fff;
    border-radius: 9px;
    padding: .21rem .5rem;
    min-height: 1.65rem;
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .01em;
    cursor: pointer;
    font-family: inherit;
    box-shadow: 0 8px 18px rgba(79, 70, 229, .18);
    transition: border-color .15s, color .15s, background .15s, box-shadow .15s, transform .05s;
}

.qa-save-btn:hover:not(:disabled) {
    background: linear-gradient(180deg, #5b53ea 0%, #4c43d5 100%);
    box-shadow: 0 10px 22px rgba(79, 70, 229, .24);
}

.qa-save-btn:active:not(:disabled) {
    transform: translateY(1px);
}

.qa-save-btn:disabled {
    opacity: .58;
    cursor: default;
}

.qa-save-btn:focus-visible {
    outline: 2px solid rgba(79, 70, 229, .45);
    outline-offset: 2px;
}

.qa-save-btn--dirty {
    border-color: #16a34a;
    background: linear-gradient(180deg, #16a34a 0%, #15803d 100%);
    box-shadow: 0 8px 18px rgba(22, 163, 74, .20);
}

.qa-save-btn--dirty:hover:not(:disabled) {
    background: linear-gradient(180deg, #22c55e 0%, #16a34a 100%);
    box-shadow: 0 10px 22px rgba(22, 163, 74, .26);
}

.qa-undo-btn {
    background: linear-gradient(180deg, #ffffff 0%, #f9fafb 100%);
    border: 1px solid var(--c-border);
    color: var(--c-text);
    border-radius: 9px;
    padding: .21rem .45rem;
    min-height: 1.65rem;
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .01em;
    cursor: pointer;
    font-family: inherit;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .06);
    transition: border-color .15s, color .15s, background .15s, box-shadow .15s, transform .05s;
}

.qa-undo-btn:hover:not(:disabled) {
    border-color: rgba(79, 70, 229, .45);
    box-shadow: 0 0 0 3px rgba(79, 70, 229, .10);
}

.qa-undo-btn:active:not(:disabled) {
    transform: translateY(1px);
}

.qa-undo-btn:disabled {
    opacity: .58;
    cursor: default;
}

.qa-undo-btn:focus-visible {
    outline: 2px solid rgba(79, 70, 229, .45);
    outline-offset: 2px;
}

.qa-save-status {
    font-size: .8rem;
    color: var(--c-muted);
    text-align: center;
    min-height: 1.1em;
    margin-top: .15rem;
}

.qa-save-status--ok {
    color: var(--c-success, #059669);
    font-weight: 600;
}

.chq-question-na-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    width: 100%;
}

.chq-question-na-actions {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    flex-shrink: 0;
    margin-left: auto;
}

.textarea-tools-ta-wrap {
    position: relative;
}

.textarea-tools-ta-wrap:has(.qa-talk-btn--overlay) .qa-answer-ce {
    padding-right: 2.5rem;
}

.qa-talk-btn--overlay {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    left: auto;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.15rem;
    border: none;
    border-radius: 6px;
    background: transparent;
    box-shadow: none;
    font-size: 1.2rem;
    line-height: 1;
    cursor: pointer;
    font-family: inherit;
    transition: background .15s;
}

.qa-talk-btn--overlay:hover:not(:disabled) {
    background: rgba(79, 70, 229, .08);
}

.qa-talk-btn--overlay.qa-talk-btn--recording {
    background: rgba(220, 38, 38, .1);
}

.qa-talk-btn--overlay:focus-visible {
    outline: 2px solid rgba(79, 70, 229, .45);
    outline-offset: 2px;
}

.chq-question-na-check {
    display: flex;
    align-items: center;
    gap: .45rem;
    font-size: .85rem;
    color: var(--c-muted);
    cursor: pointer;
    user-select: none;
    margin: 0;
}

.chq-question-na-check input {
    margin: 0;
    cursor: pointer;
}

.qa-undo-btn--compact {
    background: none;
    border: none;
    box-shadow: none;
    min-height: 0;
    padding: 0;
    font-size: .85rem;
    font-weight: 600;
    color: var(--c-primary);
}

.qa-undo-btn--compact:hover:not(:disabled) {
    background: none;
    border: none;
    box-shadow: none;
    text-decoration: underline;
}

.qa-undo-btn--compact:active:not(:disabled) {
    transform: none;
}

.qa-undo-btn--compact:disabled {
    color: var(--c-subtle);
    opacity: 1;
}

/* ── Outline step ────────────────────────────────────────────────────────── */

.outline-step-topbar {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .45rem 1.1rem;
    border-bottom: 1px solid var(--c-border);
    background: var(--c-surface);
    min-height: 0;
}

.outline-step-label {
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--c-muted);
}

.outline-two-col {
    display: grid;
    grid-template-columns: minmax(268px, 22rem) minmax(0, 1fr);
    min-height: 320px;
    overflow: hidden;
}

.outline-two-col--resizable {
    grid-template-columns: var(--outline-left-col-width, 22rem) 14px minmax(0, 1fr);
    gap: 0;
}

.outline-two-col--resizable .outline-left-col {
    border-right: none;
}

.a-main:not(.a-main--fill) .outline-two-col {
    height: calc(100vh - var(--header-h) - var(--steps-row-h) - var(--footer-h) - 64px);
}

/* Persistent step actions (Steps 3/4) — static in fill layout; sits below steps row in flex column */
.step-action-shell {
    position: relative;
    z-index: 1;
    background: var(--c-bg);
    border-bottom: 1px solid var(--c-border);
    padding: .65rem 1rem;
}

.step-action-bar {
    display: flex;
    gap: .6rem;
    align-items: center;
}

.step-run-card {
    margin-top: 0;
    padding: .45rem .65rem;
    border: 1px solid var(--c-border);
    border-radius: 8px;
    display: flex;
    gap: .6rem;
    align-items: center;
    flex-wrap: wrap;
    background: var(--c-surface);
}

.step-run-badge {
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: .15rem .45rem;
    border-radius: 999px;
    border: 1px solid currentColor;
}

.step-run-msg {
    font-size: .82rem;
    color: var(--c-muted);
    min-width: 0;
}

.step-run-actions {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    flex-wrap: wrap;
}

.step-run-action-btn {
    font-size: .76rem !important;
    padding: .3rem .62rem !important;
    line-height: 1.1;
}

.step-run-action-btn--disabled {
    background: #e5e7eb !important;
    border-color: #d1d5db !important;
    color: #6b7280 !important;
}

.step-run-action-btn--disabled:hover {
    background: #dfe3e8 !important;
}

.step-run-hint {
    font-size: .76rem;
    color: var(--c-muted);
    white-space: nowrap;
}

.step-run-card--idle .step-run-badge {
    color: var(--c-muted);
}
.step-run-card--running .step-run-badge {
    color: var(--c-primary);
}
.step-run-card--success .step-run-badge {
    color: var(--c-success);
}
.step-run-card--error .step-run-badge {
    color: var(--c-danger);
}
.step-run-card--stopped .step-run-badge {
    color: #b45309;
}

/* Step 2 — chapter headings above assignment groups */
.assignment-chapter-group {
    margin-bottom: .48rem;
}

/* Step 2 — book chapter (strategy) row + nested assignment groups */
.step2-book-chapter {
    margin-bottom: .72rem;
}

.step2-book-chapter-header {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: .5rem;
    min-height: 2.65rem;
    padding: .42rem .52rem .42rem .44rem;
    box-sizing: border-box;
    cursor: default;
    user-select: none;
    background: linear-gradient(135deg, rgba(60, 55, 45, .07) 0%, rgba(60, 55, 45, .02) 100%);
    border: 1px solid rgba(60, 55, 45, .14);
    border-left: 4px solid #5c5346;
    border-radius: 8px;
    margin-bottom: .34rem;
    box-shadow: 0 1px 3px rgba(28, 26, 46, .05);
}

.step2-book-chapter-header .step2-book-chapter-badge {
    width: 1.55rem;
    height: 1.55rem;
    min-width: 1.55rem;
    font-size: .78rem;
    font-weight: 800;
    background: #3f3a34;
    color: #f5f4f0;
    border-radius: 50%;
}

.step2-book-chapter-header .step2-book-chapter-badge.chapter-num--started {
    background: #2563eb;
    color: #fff;
}

.step2-book-chapter-header .step2-book-chapter-badge.chapter-num--complete {
    background: var(--c-success);
    color: #fff;
}

.step2-book-chapter-header .chapter-body {
    flex: 1;
    min-width: 0;
}

.step2-book-chapter-header .assignment-progress-txt,
.assignment-card .assignment-progress-txt,
.assignment-progress-txt {
    display: none !important;
}

.step2-book-chapter-header > .sidelist-card-trail,
.assignment-card-main > .sidelist-card-trail {
    display: none !important;
}

.step2-book-chapter-assignments {
    display: flex;
    flex-direction: column;
    gap: .22rem;
    padding: 0;
    margin: .08rem 0 0;
}

.sidelist-chapter-heading {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--c-muted);
    margin: 0 0 .2rem .06rem;
    line-height: 1.2;
}

.sidelist-card-stack {
    display: flex;
    flex-direction: column;
    gap: .22rem;
}

.outline-left-col {
    border-right: 1px solid var(--c-border);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: var(--c-surface);
}

.outline-left-col .chapter-list {
    flex: 1 1 0;
    min-height: 0;
    overflow-y: auto;
    padding: .08rem .28rem .12rem;
    gap: .22rem;
}

.outline-right-col {
    overflow: hidden;
    background: var(--c-bg);
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* Question Editor (My Desk): right column fills grid row; vertical scroll fallback if inner flex height collapses */
#question-editor-right.qe-editor-right-col.card {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
}

.qe-chapter-form {
    flex: 1 1 0;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.qe-chapter-form > .qe-right-stack,
.qe-chapter-form > .qe-right-divider {
    flex-shrink: 0;
}

.qe-right-questions-panel {
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    justify-content: flex-start;
}

.qe-right-questions-panel .qe-right-section-head {
    flex-shrink: 0;
}

.qe-right-questions-panel .qe-question-list {
    flex: 1 1 0;
    min-height: min(12rem, 42vh);
    max-height: 100%;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    align-content: start;
    align-items: start;
}

.qe-book-chapter[data-qe-drop-chapter].qe-drop-target--active {
    box-shadow: 0 0 0 2px rgba(79, 70, 229, 0.35);
    border-radius: 8px;
}

.qe-book-chapter-tree {
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.qe-book-chapter {
    margin-bottom: .12rem;
}

.qe-book-chapter-head {
    font-size: .68rem;
    font-weight: 800;
    color: var(--c-text);
    padding: .12rem .2rem .08rem .1rem;
    user-select: none;
}

.qe-book-chapter-head--with-action {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
}

.qe-book-chapter-head-title {
    min-width: 0;
}

.qe-add-assignment-in-chapter {
    flex-shrink: 0;
    font-size: 0.68rem;
    padding: 0.2rem 0.4rem;
    border-radius: var(--radius);
}

.qe-book-chapter-assignments-nested {
    display: flex;
    flex-direction: column;
    gap: .18rem;
    padding: .08rem 0 .12rem .45rem;
    margin-left: .28rem;
    border-left: 2px solid var(--c-border);
}

.qe-assignment-row {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 0.22rem;
    margin: 0.15rem 0;
}

.qe-assignment-row .qe-assignment-btn {
    flex: 1 1 auto;
    min-width: 0;
}

.qe-book-chapter-tree .qe-assignment-drag-handle {
    flex: 0 0 auto;
    align-self: center;
    font-size: 0.95rem;
    line-height: 1;
    padding: 0.08rem 0.12rem;
    cursor: grab;
    user-select: none;
}

.qe-book-chapter-tree .qe-assignment-drag-handle:active {
    cursor: grabbing;
}

.qe-assignment-drag-handle--dragging {
    opacity: 0.45;
}

.qe-assignment-drag-placeholder {
    flex: 0 0 1.2rem;
    width: 1.2rem;
    align-self: stretch;
}

.outline-right-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 3rem 2rem;
    color: var(--c-muted);
    font-size: .92rem;
    flex: 1;
}

.outline-single-col {
    display: flex;
    flex-direction: column;
    min-height: 0;
    flex: 1 1 0;
    gap: 0.65rem;
    padding: 0.35rem 0.5rem 0.75rem;
}

.outline-chapter-select-wrap {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    flex-shrink: 0;
}

.outline-chapter-select-label {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--c-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.outline-chapter-select {
    width: 100%;
    max-width: 100%;
}

/* Step 3 chapter picker — stronger border and dropdown affordance */
.outline-chapter-select-wrap select.outline-chapter-select,
.outline-chapter-select-wrap div.cust-select.qa-progress {
    padding: 0.6rem 0.85rem;
    min-height: 2.75rem;
    background: var(--c-surface);
    border: 1px solid #c9c4ba;
    border-radius: var(--radius);
    color: var(--c-text);
    font-size: 0.92rem;
    font-weight: 600;
    letter-spacing: 0;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    transition: border-color 0.15s, box-shadow 0.15s;
}

.outline-chapter-select-wrap select.outline-chapter-select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 2.25rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%234f46e5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 1rem;
}

.outline-chapter-select-wrap select.outline-chapter-select:hover,
.outline-chapter-select-wrap div.cust-select.qa-progress:hover {
    border-color: rgba(79, 70, 229, 0.55);
}

.outline-chapter-select-wrap div.cust-select.qa-progress:focus,
.outline-chapter-select-wrap select.outline-chapter-select:focus {
    outline: 2px solid rgba(79, 70, 229, 0.45);
    outline-offset: 1px;
    border-color: var(--c-primary);
    box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.12);
}

.outline-chapter-select-wrap .cust-select-label {
    color: var(--c-text);
    font-weight: 600;
}

.outline-chapter-select-wrap .cust-select-arrow {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--c-primary);
    line-height: 1;
    padding: 0 0.1rem;
    opacity: 1;
}

.outline-brief-host {
    flex: 1 1 0;
    min-height: 12rem;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--c-border);
    border-radius: var(--radius-lg);
    background: var(--c-surface);
}

.outline-brief-host .chapter-brief-panel {
    border: none;
    border-radius: 0;
}

.outline-brief-host .chapter-brief-panel--empty {
    flex: 1;
    justify-content: center;
}

.outline-chapter-brief-actions {
    flex-shrink: 0;
    display: flex;
    justify-content: flex-start;
    padding-top: 0.15rem;
}

.outline-chapter-brief-actions .btn {
    min-width: 10rem;
}

.step3-chapter-toolbar {
    flex-shrink: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.6rem;
    padding: 0.35rem 0 0.55rem;
}

.step3-chapter-toolbar .btn-secondary {
    min-width: 9.5rem;
}

.step3-narration-hint {
    flex: 1 1 12rem;
    min-width: 0;
    margin: 0;
}

.step3-draft-host .chapter-draft-panel {
    flex: 1;
    min-height: 0;
    border: none;
    border-radius: 0;
}

.step3-draft-host .chapter-draft-panel--empty {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.step3-draft-host .chapter-draft-body {
    flex: 1 1 0;
    min-height: 8rem;
}

/* ── Generate step right-panel actions block ────────────────────────────── */
.generate-actions-panel {
    padding: 2rem 2rem 2rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.generate-actions-panel .btn-xl {
    align-self: stretch;
}

/* ── Chapter brief panel ────────────────────────────────────────────────── */
.chapter-brief-panel {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    padding: 1.8rem 2rem 2rem;
}

.chapter-brief-loading {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.chapter-brief-loading--with-quotes {
    justify-content: flex-start;
    padding: 1.5rem 1rem 1.25rem;
    gap: 0.35rem;
}

.chapter-draft-wait-status {
    margin: 0.7rem 0 0;
    color: var(--c-muted);
    font-size: 0.9rem;
    text-align: center;
    line-height: 1.4;
}

.chapter-draft-wait-status span {
    font-size: 0.8rem;
}

.chapter-draft-wait-quotes-host {
    width: min(100%, 28rem);
    margin-top: 1.15rem;
    min-height: 0;
}

.chapter-draft-wait-quotes-host--write-all {
    width: min(100%, 560px);
    margin-top: 1.5rem;
    align-self: stretch;
}

.generate-actions-panel--writing .chapter-draft-wait-quotes-label {
    text-align: left;
}

.chapter-draft-wait-quotes {
    text-align: left;
}

.chapter-draft-wait-quotes-label {
    margin: 0 0 0.55rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--c-muted);
    text-align: center;
}

.chapter-draft-wait-quotes-list {
    list-style: none;
    margin: 0;
    padding: 0;
    position: relative;
    min-height: 5.5rem;
}

.chapter-draft-wait-quote {
    position: absolute;
    inset: 0;
    opacity: 0;
    transform: translateY(0.35rem);
    transition: opacity 0.55s ease, transform 0.55s ease;
    pointer-events: none;
}

.chapter-draft-wait-quote--active {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
    position: relative;
}

.chapter-draft-wait-quote blockquote {
    margin: 0;
    padding: 0.85rem 1rem;
    border-left: 3px solid rgba(var(--c-primary-rgb, 79, 70, 229), 0.45);
    background: rgba(var(--c-primary-rgb, 79, 70, 229), 0.06);
    border-radius: 0 10px 10px 0;
    font-size: 0.95rem;
    line-height: 1.45;
    color: var(--c-text);
    font-style: italic;
}

.chapter-draft-wait-quote-context {
    display: block;
    margin-top: 0.35rem;
    font-size: 0.75rem;
    color: var(--c-muted);
    font-style: normal;
}

/* ── Editable brief fields ─────────────────────────────────────────────── */
.brief-edit-title-wrap {
    display: flex;
    align-items: baseline;
    gap: .75rem;
    margin-bottom: 1.1rem;
}

.brief-edit-title {
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--c-text);
    line-height: 1.3;
    flex: 1;
    outline: none;
    border-bottom: 2px dashed var(--c-border);
    padding-bottom: .15rem;
    transition: border-color .15s;
    cursor: text;
}
.brief-edit-title:focus { border-bottom-color: var(--c-primary); }
.brief-edit-title:not(:focus):empty:before {
    content: attr(data-placeholder);
    color: #bbb;
    pointer-events: none;
}

.brief-title-pencil {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    color: var(--c-muted);
    opacity: .55;
    pointer-events: none;
    margin-bottom: 1px;
}

.brief-save-status {
    font-size: .75rem;
    color: var(--c-muted);
    flex-shrink: 0;
    white-space: nowrap;
}

.brief-edit-section {
    margin-bottom: 1.1rem;
}

.brief-edit-body {
    font-size: .95rem;
    line-height: 1.75;
    color: var(--c-text);
    outline: none;
    border: 1.5px solid var(--c-border);
    border-radius: 6px;
    padding: .35rem .5rem;
    margin-top: .25rem;
    transition: border-color .15s, background .15s;
    min-height: 2.5em;
    white-space: pre-wrap;
    word-break: break-word;
    background: #fff;
    cursor: text;
}
.brief-edit-body:focus {
    border-color: var(--c-primary);
    background: rgba(79,70,229,.03);
}
.brief-edit-body:not(:focus):empty:before {
    content: attr(data-placeholder);
    color: #bbb;
    pointer-events: none;
    display: block;
}

.chapter-brief-body {
    font-size: .95rem;
    line-height: 1.75;
    color: var(--c-text);
    white-space: pre-wrap;
}

.brief-section-heading {
    font-size: .8rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--c-primary);
    margin: 1.1rem 0 .15rem;
    padding: 0;
}

.brief-title {
    font-size: 1.05rem;
    font-weight: 700;
    margin-bottom: 1rem;
    color: var(--c-text);
}

.chapter-brief-body br + br {
    display: block;
    content: '';
    margin-top: .35rem;
}

.chapter-brief-actions {
    margin-top: 1.2rem;
    display: flex;
    gap: .6rem;
    flex-wrap: wrap;
    align-items: center;
}

/* ── Chapter draft panel ────────────────────────────────────────────────── */
.chapter-draft-panel {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    padding: 1.4rem 2rem 2rem;
}

.chapter-draft-header {
    display: flex;
    align-items: baseline;
    gap: .75rem;
    margin-bottom: 1rem;
    flex-shrink: 0;
}

.chapter-draft-header .btn-draft-narrate {
    margin-left: auto;
}

.chapter-draft-label {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--c-muted);
}

.chapter-draft-meta {
    font-size: .78rem;
    color: var(--c-muted);
}

.chapter-draft-tools {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.draft-tool-btn {
    width: 1.9rem;
    height: 1.9rem;
    border: 1px solid var(--c-border);
    border-radius: 7px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    color: var(--c-text);
    font-size: .92rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s, background .15s;
}

.draft-tool-btn--text {
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .02em;
}

.draft-tool-btn--narrate {
    width: auto;
    min-width: 1.9rem;
    padding: 0 .55rem;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .01em;
    color: var(--c-primary, #4f46e5);
    white-space: nowrap;
}

.draft-tool-btn--narrate:disabled {
    opacity: .55;
    cursor: not-allowed;
}

.draft-tool-btn:hover {
    border-color: rgba(79, 70, 229, .45);
    box-shadow: 0 0 0 3px rgba(79, 70, 229, .10);
    background: #fff;
}

.draft-tool-btn:focus-visible {
    outline: 2px solid rgba(79, 70, 229, .45);
    outline-offset: 2px;
}

.chapter-draft-body {
    font-size: .95rem;
    line-height: 1.8;
    color: var(--c-text);
    white-space: pre-wrap;
    flex: 1;
    outline: none;
}

.chapter-draft-body:focus {
    box-shadow: inset 0 0 0 1px rgba(79, 70, 229, .28);
    border-radius: 8px;
}

.draft-comment {
    background: #fff4bf;
    border-bottom: 2px dotted #f59e0b;
    padding: 0 .08em;
}

.draft-comment-popover {
    position: fixed;
    z-index: 1400;
    background: #fff;
    border: 1px solid var(--c-border);
    border-radius: 8px;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .22);
    padding: .3rem;
    display: inline-flex;
    gap: .25rem;
}

.draft-comment-popover-btn {
    border: 1px solid var(--c-border);
    background: #fff;
    color: var(--c-text);
    border-radius: 6px;
    font-size: .74rem;
    font-weight: 700;
    padding: .2rem .5rem;
    cursor: pointer;
}

.draft-comment-popover-btn:hover {
    border-color: rgba(79, 70, 229, .45);
    color: var(--c-primary);
}

.draft-comment-popover-btn--danger:hover {
    border-color: rgba(220, 38, 38, .45);
    color: #b91c1c;
}

.chapter-draft-body--rendered {
    white-space: normal;
}

.chapter-draft-body--rendered h1,
.chapter-draft-body--rendered h2,
.chapter-draft-body--rendered h3 {
    font-weight: 700;
    margin: 1.25rem 0 .5rem;
    line-height: 1.3;
}
.chapter-draft-body--rendered h1 { font-size: 1.2rem; }
.chapter-draft-body--rendered h2 { font-size: 1.05rem; }
.chapter-draft-body--rendered h3 { font-size: .97rem; }
.chapter-draft-body--rendered p  { margin: 0 0 .9rem; }
.chapter-draft-body--rendered blockquote {
    border-left: 3px solid var(--c-border);
    margin: .75rem 0;
    padding: .25rem 0 .25rem 1rem;
    color: var(--c-muted);
    font-style: italic;
}
.chapter-draft-body--rendered hr { border: none; border-top: 1px solid var(--c-border); margin: 1rem 0; }
.chapter-draft-body--rendered .md-needs {
    background: #fef9c3;
    color: #854d0e;
    padding: .1em .35em;
    border-radius: 4px;
    font-size: .88em;
    font-style: normal;
}
.chapter-draft-body--rendered .md-needs-actions {
    display: inline-flex;
    gap: .25rem;
    margin-left: .35rem;
    vertical-align: middle;
}
.chapter-draft-body--rendered .md-needs-btn {
    border: 1px solid rgba(133, 77, 14, .25);
    background: rgba(255, 255, 255, .62);
    color: #854d0e;
    border-radius: 4px;
    font-size: .72rem;
    line-height: 1.2;
    padding: .08rem .33rem;
    cursor: pointer;
}
.chapter-draft-body--rendered .md-needs-btn--fix {
    font-weight: 700;
}
.chapter-draft-body--rendered .md-needs-btn--dismiss,
.chapter-draft-body--rendered .md-needs-btn--undo {
    opacity: .82;
}
.chapter-draft-body--rendered .md-needs-dismissed {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: rgba(133, 77, 14, .75);
    font-size: .82em;
    background: rgba(254, 249, 195, .45);
    border-radius: 4px;
    padding: .05em .3em;
}
.chapter-draft-body--rendered .md-needs-dismissed-label {
    opacity: .75;
}
.chapter-draft-body--rendered .md-needs-fixed-flag {
    display: inline-block;
    margin-left: .35rem;
    color: rgba(5, 150, 105, .82);
    font-size: .75em;
    border: 1px solid rgba(5, 150, 105, .22);
    border-radius: 4px;
    padding: .02em .28em;
    vertical-align: middle;
}

.chapter-draft-body--rendered .narration-active-block {
    transition: background-color .2s ease;
    background: rgba(251, 191, 36, .28);
    border-radius: 4px;
    box-shadow: 0 0 0 1px rgba(251, 191, 36, .22);
}

.outline-qa-panel {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 1.2rem 1.5rem 1.4rem;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.outline-qa-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .4rem;
    margin-bottom: .4rem;
    min-width: 0;
    overflow: visible;
}

.outline-qa-header .qa-progress {
    flex: 1;
    min-width: 0;
    margin-bottom: 0;
}

.outline-qa-header .cust-select-arrow {
    font-size: 1.45rem;
    font-weight: 700;
    color: var(--c-text);
    opacity: .72;
    line-height: 1;
    padding: 0 .1rem;
}

.outline-qa-chapter-label {
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--c-primary);
}

.outline-qa-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: .75rem;
    gap: .5rem;
}

.outline-qa-btn {
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    color: var(--c-primary) !important;
    padding: 0 !important;
    font-size: .92rem !important;
    font-weight: 700 !important;
    cursor: pointer;
}
.outline-qa-btn:hover { text-decoration: underline; }

.outline-qa-save-status {
    font-size: .8rem;
    color: var(--c-muted);
    min-height: 1.2em;
}

/* Left sidebar cards — shared base (My Assignments, Outline, Write) */
.chapter-list { display: flex; flex-direction: column; gap: .22rem; }

.chapter-card,
.assignment-card {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: 8px;
    padding: .22rem .32rem .22rem .28rem;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: .38rem;
    min-height: 2.35rem;
    box-sizing: border-box;
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s;
}

.assignment-card {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 0;
    min-height: 0;
}

.assignment-card-main {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: .28rem;
    width: 100%;
    min-width: 0;
    padding: .1rem .24rem .1rem 0;
}

.assignment-card-main .chapter-body {
    flex: 1 1 0;
    min-width: 0;
    padding-left: 0;
}

.assignment-card .assignment-card-label {
    padding-left: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.assignment-card .sidelist-card-trail,
.assignment-card .assignment-card-arrow {
    margin-top: 0;
    flex-shrink: 0;
}

.assignment-card .assignment-instructions {
    width: 100%;
    margin-top: 0;
    padding: 0 .24rem .1rem .28rem;
    font-size: .74rem;
    line-height: 1.35;
    color: #5c5668;
    white-space: normal;
    overflow-wrap: anywhere;
}

.chapter-card:hover,
.assignment-card:hover {
    border-color: var(--c-primary);
    box-shadow: var(--shadow);
}

.chapter-card--active,
.assignment-card--active {
    border-color: var(--c-primary);
    background: rgba(79,70,229,.07);
    box-shadow: 0 0 0 2px rgba(79,70,229,.15);
}

.chapter-num {
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background: rgba(79,70,229,.1);
    color: var(--c-primary);
    font-size: .56rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.chapter-num--started {
    background: #2563eb;
    color: #fff;
}

.chapter-num--complete {
    background: #16a34a;
    color: #fff;
}

/* My Assignments — unassigned group: text pill instead of numbered badge */
.assignment-unassigned-pill {
    flex: 1;
    min-width: 0;
    align-self: center;
    border-radius: 999px;
    padding: .2rem .5rem;
    font-size: .58rem;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    color: var(--c-primary);
    background: rgba(79, 70, 229, 0.1);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.assignment-unassigned-pill.chapter-num--started {
    background: #2563eb;
    color: #fff;
}

.assignment-unassigned-pill.chapter-num--complete {
    background: #16a34a;
    color: #fff;
}

.chapter-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: .06rem;
}

.chapter-title {
    font-size: .86rem;
    font-weight: 700;
    color: var(--c-text);
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.15;
    margin-bottom: 0;
}

.chapter-title.step2-book-chapter-title {
    font-size: 1.12rem;
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.2;
    color: #1c1a2e;
}

.chapter-meta {
    font-size: .58rem;
    color: var(--c-muted);
    line-height: 1.15;
}

/* Fixed-width column so progress (step 2) or action buttons (outline/write) never resize the card */
.sidelist-card-trail {
    flex: 0 0 5.35rem;
    width: 5.35rem;
    min-width: 5.35rem;
    max-width: 5.35rem;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    box-sizing: border-box;
}

.chapter-action-btn--sidelist {
    appearance: none;
    font-family: inherit;
    font-size: .56rem;
    font-weight: 700;
    line-height: 1.15;
    padding: .14rem .26rem;
    margin: 0;
    border: 1px solid rgba(79, 70, 229, 0.38);
    border-radius: 5px;
    background: rgba(79, 70, 229, 0.06);
    color: var(--c-primary);
    cursor: pointer;
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

.chapter-action-btn--sidelist:hover {
    background: rgba(79, 70, 229, 0.11);
}

.chapter-action-btn--sidelist:disabled {
    opacity: 0.65;
    cursor: default;
}

.chapter-card--active .chapter-action-btn--sidelist,
.assignment-card--active .chapter-action-btn--sidelist {
    border-color: rgba(79, 70, 229, 0.55);
}

.chapter-actions {
    display: flex;
    align-items: center;
    margin-top: .02rem;
}

.chapter-action-btn {
    font-size: .58rem;
    line-height: 1.1;
    padding: .16rem .4rem;
}

.chapter-desc { display: none; }

.chapter-card-arrow,
.assignment-card-arrow {
    font-size: .95rem;
    color: var(--c-muted);
    flex-shrink: 0;
    width: 1rem;
    text-align: center;
    line-height: 1;
}

.assignment-card-arrow {
    margin-right: 0;
}

.chapter-card--active .chapter-card-arrow,
.assignment-card--active .assignment-card-arrow {
    color: var(--c-primary);
}

/* chapter-progress-txt reserved; assignment-progress-txt hidden (see step2 rules above) */
.chapter-progress-txt {
    font-size: .58rem;
    color: var(--c-muted);
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
    text-align: right;
    width: 100%;
}

/* Chat below the two-col (normal width) */
/* ── Strategy carousel ──────────────────────────────────────────────────── */
.strategy-carousel {
    display: flex;
    flex-direction: column;
    padding: 1.5rem;
    height: calc(100vh - var(--header-h) - var(--steps-row-h) - var(--footer-h) - 64px);
    min-height: 340px;
    box-sizing: border-box;
}

.strategy-carousel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
    margin-bottom: 1rem;
}

.strat-close-btn {
    width: 2rem;
    height: 2rem;
    border: 1px solid var(--c-border);
    border-radius: 999px;
    background: #fff;
    color: var(--c-muted);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
}

.strat-close-btn:hover {
    color: var(--c-text);
    border-color: var(--c-muted);
}

.strategy-carousel-stage {
    flex: 1;
    min-height: 0;
    display: flex;
    align-items: stretch;
}

/* The card itself */
.strategy-card {
    flex: 1;
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Arrow | content | arrow row inside the card */
.strategy-card-nav {
    flex: 1;
    display: flex;
    align-items: stretch;
    min-height: 0;
}

.strat-nav-btn {
    flex-shrink: 0;
    width: 3.2rem;
    height: 3.2rem;
    background: none;
    border: none;
    border-radius: 0;
    font-size: 0;
    color: transparent;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.strat-nav-btn::before {
    content: '';
    display: block;
    width: 1.1rem;
    height: 1.1rem;
    border-top: 2px solid var(--c-muted);
    border-right: 2px solid var(--c-muted);
    transition: border-color .15s;
}

#strat-prev::before {
    transform: rotate(-135deg) translate(-1px, 1px);
}

#strat-next::before,
.strat-nav-btn--next::before {
    transform: rotate(45deg) translate(-1px, 1px);
}

.strat-nav-btn:hover:not(:disabled)::before {
    border-color: var(--c-accent);
}

.strat-nav-btn:disabled {
    opacity: .2;
    cursor: default;
}

/* prev/next flanking the dots */
.strat-nav-row {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.strategy-card-content {
    flex: 1;
    overflow-y: auto;
    padding: 1.8rem 2rem 2rem;
}
.strat-counter {
    font-size: .78rem;
    color: var(--c-muted);
    margin: .1rem 0 .8rem;
}

.strategy-change-warning {
    margin: .2rem 0 .9rem;
    padding: .7rem .85rem;
    border-radius: 10px;
    border: 1px solid #fca5a5;
    background: #fef2f2;
    color: #991b1b;
    font-size: .86rem;
    line-height: 1.4;
}

.strategy-carousel-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    margin-bottom: 1.5rem;
}

.strategy-carousel-actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .6rem;
    margin-top: .5rem;
}

.strat-dots {
    display: flex;
    gap: .4rem;
    align-items: center;
}

.strat-dot {
    width: .55rem;
    height: .55rem;
    border-radius: 50%;
    background: var(--c-muted);
    opacity: .3;
    cursor: pointer;
    transition: opacity .15s, background .15s;
    flex-shrink: 0;
}

.strat-dot--active {
    background: #22c55e;
    opacity: 1;
}

/* ── Outline strategy header ─────────────────────────────────────────────── */
.outline-strategy-header {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .2rem;
    padding: 1rem 1.25rem .85rem;
    border-bottom: 1px solid var(--c-border);
    flex-shrink: 0;
}

.outline-strategy-label {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--c-muted);
}

.outline-strategy-name {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--c-text);
    line-height: 1.25;
}

.outline-strategy-change-btn {
    font-size: .78rem;
    padding: .25rem .7rem;
    margin-top: .35rem;
}

.strategy-preview-label {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--c-muted);
    margin: 0 0 .3rem;
}

.strategy-preview-title {
    font-size: 1.35rem;
    font-weight: 800;
    margin: 0 0 .4rem;
    color: var(--c-text);
}

.strategy-preview-desc {
    font-size: .9rem;
    color: var(--c-muted);
    line-height: 1.6;
    margin: 0 0 1.3rem;
}

.strategy-preview-chapters h4,
.strategy-carousel-cols h4 {
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--c-muted);
    margin: 0 0 .5rem;
}

.strategy-preview-chapters {
    margin-bottom: 1.3rem;
}

.strategy-ch-list {
    margin: 0;
    padding-left: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.strategy-ch-list li {
    display: flex;
    align-items: center;
    gap: .55rem;
    font-size: .9rem;
    line-height: 1.5;
    color: var(--c-text);
}

.strat-ch-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    background: var(--c-muted);
    color: #fff;
    font-size: .72rem;
    font-weight: 700;
    flex-shrink: 0;
}

.strategy-plan-tags {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .4rem;
}

.strategy-plan-tag {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    color: var(--c-text);
    font-size: .78rem;
    padding: .2rem .6rem;
    border-radius: 20px;
}

.strategy-change-btn {
    background: none;
    border: none;
    padding: .25rem .3rem;
    font-size: .75rem;
    color: var(--c-muted);
    cursor: pointer;
    text-decoration: underline;
    text-decoration-color: transparent;
    transition: color .15s, text-decoration-color .15s;
}

.strategy-change-btn:hover {
    color: var(--c-accent);
    text-decoration-color: var(--c-accent);
}

.outline-book-title {
    font-size: 1.5rem;
    font-weight: 800;
    margin-bottom: .25rem;
    color: var(--c-text);
}

.outline-subtitle {
    font-size: .95rem;
    color: var(--c-muted);
    margin-bottom: 1.25rem;
}

.outline-title-card {
    margin-bottom: 1rem;
    padding: .9rem 1.1rem .7rem;
}

/* ── Generate step ────────────────────────────────────────────────────────── */
.generate-note {
    width: 100%;
    min-height: 120px;
    padding: 1rem 1.2rem;
    border: 2px solid var(--c-border);
    border-radius: var(--radius);
    font-size: 1.05rem;
    font-family: inherit;
    color: var(--c-text);
    background: #fff;
    resize: none;
    margin-bottom: 1rem;
    transition: border-color .2s;
}

.generate-note:focus {
    outline: none;
    border-color: var(--c-primary);
    box-shadow: 0 0 0 3px rgba(79,70,229,.1);
}

.generate-actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    margin-top: 1.5rem;
}

/* ── Write My Book – chapter by chapter ─────────────────────────────────── */
.generate-chapters-section {
    margin-top: .5rem;
    margin-bottom: 2rem;
}

.generate-chapters-divider {
    text-align: center;
    margin: 0 0 1.25rem;
    color: var(--c-muted);
    font-size: .9rem;
    font-weight: 600;
    letter-spacing: .02em;
}

.generate-chapter-cols {
    display: grid;
    grid-template-columns: 260px 1fr;
    height: 55vh;
    min-height: 380px;
    overflow: hidden;
    border: 1px solid var(--c-border);
    border-radius: var(--radius-lg);
}

/* ── Spinner ─────────────────────────────────────────────────────────────── */
.spinner-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    padding: 2rem 1rem;
    text-align: center;
}

.spinner {
    width: 48px;
    height: 48px;
    border: 4px solid var(--c-border);
    border-top-color: var(--c-primary);
    border-radius: 50%;
    animation: spin .75s linear infinite;
}

@keyframes spin { to { transform: rotate(360deg); } }

.spinner-wrap p {
    font-size: 1rem;
    color: var(--c-muted);
}

/* ── Manuscript reader ────────────────────────────────────────────────────── */
.manuscript-ready {
    text-align: center;
    padding: 1rem 0 2rem;
}

.manuscript-ready .success-icon { font-size: 3rem; margin-bottom: .75rem; }
.manuscript-ready h2 { font-size: 1.6rem; font-weight: 800; margin-bottom: .5rem; }
.manuscript-ready p  { color: var(--c-muted); margin-bottom: 1.5rem; }

.chapter-read-list { display: flex; flex-direction: column; gap: .6rem; text-align: left; }

.chapter-read-item {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    padding: .85rem 1.2rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    cursor: pointer;
    transition: border-color .2s, box-shadow .2s;
}

.chapter-read-item:hover {
    border-color: var(--c-primary);
    box-shadow: var(--shadow);
}

.chapter-read-item .ch-num {
    font-size: .8rem;
    font-weight: 700;
    color: var(--c-muted);
    min-width: 28px;
}

.chapter-read-item .ch-title {
    flex: 1;
    font-weight: 600;
    font-size: .95rem;
}

.chapter-read-item .ch-arrow { color: var(--c-subtle); font-size: .85rem; }

/* Chapter reader overlay */
.chapter-reader {
    position: fixed;
    inset: 0;
    background: rgba(28,26,46,.5);
    backdrop-filter: blur(4px);
    z-index: 220;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.reader-box {
    background: #fff;
    border-radius: var(--radius-lg);
    max-width: 700px;
    width: 100%;
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    box-shadow: var(--shadow-lg);
}

.reader-header {
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--c-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.reader-header h3 { font-size: 1.05rem; font-weight: 700; }

.reader-close {
    background: none;
    border: none;
    font-size: 2rem;
    font-weight: 700;
    color: var(--c-muted);
    cursor: pointer;
    padding: .35rem .55rem;
    min-width: 2.75rem;
    min-height: 2.75rem;
    border-radius: 8px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.reader-close:hover { background: #f0ede8; }

.reader-body {
    padding: 1.5rem 2rem;
    overflow-y: auto;
    flex: 1;
    font-size: 1rem;
    line-height: 1.8;
    color: var(--c-text);
    word-break: break-word;
}

.reader-body h1 { font-size: 1.6rem; font-weight: 800; margin: 1.4rem 0 .6rem; }
.reader-body h2 { font-size: 1.25rem; font-weight: 700; margin: 1.2rem 0 .5rem; border-bottom: 1px solid var(--c-border); padding-bottom: .25rem; }
.reader-body h3 { font-size: 1.05rem; font-weight: 700; margin: 1rem 0 .4rem; }
.reader-body p  { margin: 0 0 1rem; }
.reader-body p.reader-paragraph-highlight {
    background: #fff3cd;
    border-left: 4px solid #f59e0b;
    padding: .35rem .55rem;
    border-radius: 6px;
    box-shadow: 0 0 0 1px rgba(245, 158, 11, .25) inset;
}
.reader-body blockquote {
    border-left: 3px solid var(--c-primary);
    margin: 1rem 0;
    padding: .5rem 1rem;
    background: #f5f3ef;
    color: var(--c-muted);
    font-style: italic;
}
.reader-body hr { border: none; border-top: 1px solid var(--c-border); margin: 1.5rem 0; }
.md-needs {
    background: #fff3cd;
    color: #856404;
    border-radius: 3px;
    padding: .1em .3em;
    font-size: .9em;
    font-style: italic;
}

/* ── Step nav footer ────────────────────────────────────────────────────── */
.step-nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: var(--footer-h);
    z-index: 120;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 3.25rem;
    margin-top: 0;
    padding: .8rem 1rem;
    padding-left: 5.4rem;
    border-top: 1px solid var(--c-border);
    background: rgba(255,255,255,.93);
    backdrop-filter: blur(8px);
    flex-wrap: wrap;
    gap: 1rem;
}

/* ── Empty / waiting state ────────────────────────────────────────────────── */
.empty-state {
    text-align: center;
    padding: 2rem 1rem;
}

.empty-state .empty-icon { font-size: 3rem; margin-bottom: 1rem; }
.empty-state h3 { font-size: 1.2rem; font-weight: 700; margin-bottom: .5rem; }
.empty-state p  { color: var(--c-muted); font-size: .95rem; max-width: 400px; margin: 0 auto; }

/* ── Alert / flash ────────────────────────────────────────────────────────── */
.alert {
    padding: .8rem 1.1rem;
    border-radius: var(--radius);
    font-size: .9rem;
    font-weight: 500;
    margin-bottom: 1.25rem;
}

.alert-success { background: rgba(5,150,105,.1); color: #065f46; border: 1px solid rgba(5,150,105,.25); }
.alert-error   { background: rgba(220,38,38,.09); color: #991b1b; border: 1px solid rgba(220,38,38,.2); }
.alert-info    { background: rgba(79,70,229,.08); color: #3730a3; border: 1px solid rgba(79,70,229,.2); }

/* Floating flash toasts — clear of bottom tab bars; solid fill so nav labels do not bleed through. */
.alert-area-host {
    position: fixed;
    bottom: calc(var(--footer-h, 58px) + 0.75rem + env(safe-area-inset-bottom, 0px));
    left: 50%;
    z-index: 10050;
    width: min(32rem, calc(100vw - 2rem));
    transform: translateX(-50%);
    pointer-events: none;
}

html.wmb-phone-active .alert-area-host,
body.wmb-phone-active .alert-area-host {
    /* Mobile Studio / Call bottom nav (~4.75–4.85rem incl. safe area) */
    bottom: calc(4.85rem + env(safe-area-inset-bottom, 0px));
}

.alert-area-host .alert {
    margin-bottom: 0;
    padding: 0.7rem 1rem;
    font-size: 0.88rem;
    font-weight: 650;
    line-height: 1.4;
    border-radius: 12px;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.18);
    pointer-events: auto;
    text-align: center;
}

.alert-area-host .alert-info {
    background: #eef2ff;
    color: #312e81;
    border: 1px solid rgba(79, 70, 229, 0.35);
}

.alert-area-host .alert-success {
    background: #ecfdf5;
    color: #065f46;
    border: 1px solid rgba(5, 150, 105, 0.35);
}

.alert-area-host .alert-error {
    background: #fef2f2;
    color: #991b1b;
    border: 1px solid rgba(220, 38, 38, 0.35);
}

/* Discover research — sticky background job status (survives closing Research dialog).
   Anchored under the header so it never covers Captured footer CTAs, composer, or journey nav. */
.discover-research-bg-status {
    position: fixed;
    top: calc(var(--header-h, 65px) + 0.65rem + env(safe-area-inset-top, 0px));
    bottom: auto;
    left: 50%;
    z-index: 10051;
    width: min(32rem, calc(100vw - 2rem));
    transform: translateX(-50%);
    margin: 0;
    padding: 0.7rem 1rem;
    font-size: 0.88rem;
    font-weight: 650;
    line-height: 1.4;
    border-radius: 12px;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.18);
    text-align: center;
    /* Status only — no dismiss/click; Esc must not target this toast. */
    pointer-events: none;
    background: #eef2ff;
    color: #312e81;
    border: 1px solid rgba(79, 70, 229, 0.35);
}

html.wmb-phone-active .discover-research-bg-status,
body.wmb-phone-active .discover-research-bg-status {
    /* Same top anchor on phone — stay clear of Call / Studio bottom chrome. */
    top: calc(var(--header-h, 65px) + 0.65rem + env(safe-area-inset-top, 0px));
    bottom: auto;
}

.discover-research-bg-status--success {
    background: #ecfdf5;
    color: #065f46;
    border-color: rgba(5, 150, 105, 0.35);
}

.discover-research-bg-status--error {
    background: #fef2f2;
    color: #991b1b;
    border-color: rgba(220, 38, 38, 0.35);
}

/* ── Auth / login page ────────────────────────────────────────────────────── */
.auth-wrap {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    background: var(--c-bg);
}

.auth-card {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-lg);
    padding: 2.75rem 2.25rem;
    width: 100%;
    max-width: 420px;
    text-align: center;
    box-shadow: var(--shadow-lg);
}

.auth-logo {
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--c-primary);
    letter-spacing: -.5px;
    margin-bottom: .2rem;
}

.auth-sub {
    font-size: .85rem;
    color: var(--c-muted);
    margin-bottom: 2.25rem;
}

.auth-field {
    width: 100%;
    padding: .85rem 1rem;
    border: 2px solid var(--c-border);
    border-radius: var(--radius);
    background: #fafaf8;
    color: var(--c-text);
    font-size: 1rem;
    margin-bottom: .85rem;
    transition: border-color .2s;
}

.auth-field:focus {
    outline: none;
    border-color: var(--c-primary);
    background: #fff;
}

.auth-card .btn { width: 100%; }

.auth-error {
    color: var(--c-danger);
    font-size: .85rem;
    margin-top: .5rem;
    min-height: 1.2em;
}

.auth-sent-icon { font-size: 2.5rem; margin-bottom: .75rem; }
.auth-sent p    { color: var(--c-muted); font-size: .92rem; line-height: 1.6; margin-bottom: .75rem; }
.auth-sent strong { color: var(--c-text); }

.my-desk-panel {
    position: fixed;
    left: 0;
    right: 0;
    top: var(--header-h);
    bottom: auto;
    width: 100vw;
    height: calc(100vh - var(--header-h));
    background: #e8dcc0;
    border: none;
    border-radius: 0;
    box-shadow: var(--shadow-lg);
    z-index: 200;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

@media (min-width: 769px) {
    .my-desk-panel {
        bottom: var(--footer-h);
        height: calc(100vh - var(--header-h) - var(--footer-h));
    }
}

.my-desk-head {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: .95rem 1.1rem;
    border-bottom: 1px solid var(--c-border);
    background: #ddd0b5;
    position: relative;
}

.my-desk-head h3 {
    font-size: 1rem;
    font-weight: 800;
    color: var(--c-text);
    text-align: center;
    flex: 1;
}

.my-desk-head-actions {
    position: absolute;
    right: 1.1rem;
    display: flex;
    align-items: center;
    gap: .35rem;
}

.my-desk-action-groups {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    width: 100%;
    box-sizing: border-box;
}
.my-desk-action-group {
    display: flex;
    flex-direction: column;
    gap: 0.32rem;
    width: 100%;
}
.my-desk-action-group-label {
    margin: 0;
    padding: 0 0.45rem;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--c-muted);
}

.my-desk-actions-row {
    display: grid;
    /* Fixed column count: equal-width cells; empty columns act as blank slots. */
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .55rem;
    padding: 0 .45rem;
    width: 100%;
    box-sizing: border-box;
}

.my-desk-action-card {
    width: 100%;
    min-width: 0;
    min-height: 5.75rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    padding: .7rem .5rem;
    border: 1px solid var(--c-border);
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
    font-family: inherit;
    transition: border-color .15s, box-shadow .15s;
}
.my-desk-action-card:hover {
    border-color: var(--c-primary);
    box-shadow: var(--shadow);
}
.my-desk-action-icon { font-size: 1.5rem; line-height: 1; }
.my-desk-action-label {
    font-size: .75rem;
    font-weight: 600;
    color: var(--c-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
}

.author-settings-host {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

#author-settings-panel .my-desk-body {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

#author-settings-panel.my-desk-panel--workspace .author-settings-host {
    min-height: 0;
}

#app-feedback-panel .my-desk-body {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

#app-feedback-panel.my-desk-panel--workspace .app-feedback-host {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

#app-feedback-panel.my-desk-panel--workspace .desk-workspace-shell {
    flex: 1;
    min-height: 0;
}

.author-settings-pace-list {
    flex: 1;
    min-height: 0;
    overflow: auto;
}

.desk-settings-subview--pace {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-height: 0;
}

.author-settings-pace-schedule {
    margin-top: 0.35rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--c-border);
    flex-shrink: 0;
}

.author-settings-pace-schedule-title {
    margin: 0 0 0.35rem;
    font-size: 0.92rem;
    font-weight: 700;
}

.author-settings-pace-schedule-copy {
    margin: 0 0 0.5rem;
}

.author-settings-pace-schedule-meta {
    margin: 0 0 0.65rem;
    font-size: 0.8rem;
    color: var(--c-muted);
    line-height: 1.45;
}

.author-settings-pace-schedule-fields {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(7.5rem, auto);
    gap: 0.55rem 0.75rem;
    align-items: end;
    margin-bottom: 0.65rem;
}

.author-settings-pace-schedule-field {
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
    min-width: 0;
}

.author-settings-pace-schedule-label {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--c-muted);
}

.author-settings-pace-date-input,
.author-settings-pace-time-input {
    width: 100%;
    max-width: 100%;
    min-height: 2.5rem;
    padding: 0.45rem 0.55rem;
    font-size: 1rem;
    line-height: 1.25;
    border: 1px solid var(--c-border);
    border-radius: 8px;
    background: var(--c-surface, #fff);
    color: inherit;
    box-sizing: border-box;
}

.author-settings-pace-date-input {
    min-width: 10.5rem;
}

.author-settings-pace-schedule-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 0.55rem;
    align-items: center;
}

.author-settings-voice-host {
    flex: 1;
    min-height: 0;
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.author-settings-voice-loading,
.author-settings-voice-error {
    margin: 0;
    font-size: 0.82rem;
    color: var(--c-muted);
}

.author-settings-voice-error {
    color: var(--c-danger);
}

.author-settings-voice-status {
    border: 1px solid var(--c-border);
    border-radius: 10px;
    padding: 0.7rem 0.8rem;
    background: #faf9f6;
}

.author-settings-voice-status--compact {
    padding: 0.4rem 0.55rem 0.4rem 0.65rem;
}

.author-settings-voice-status-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.author-settings-voice-status-row .author-settings-voice-status-line {
    flex: 1;
    min-width: 0;
}

.author-settings-voice-host .btn-sm {
    box-sizing: border-box;
    min-height: 2rem;
    line-height: 1.25;
    justify-content: center;
}

.author-settings-voice-status-actions {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    gap: 0.35rem;
}

.author-settings-voice-status-actions .btn-sm,
.author-settings-voice-guided-actions .btn-sm,
.author-settings-voice-actions-row .btn-sm {
    flex-shrink: 0;
}

.author-settings-voice-start-over-inline.btn-sm--ghost {
    color: var(--c-danger);
    border-color: rgba(220, 38, 38, 0.35);
}

.author-settings-voice-start-over-inline.btn-sm--ghost:hover:not(:disabled) {
    color: var(--c-danger);
    background: rgba(220, 38, 38, 0.06);
    border-color: rgba(220, 38, 38, 0.45);
}

.author-settings-voice-status--ready {
    border-color: rgba(79, 70, 229, 0.35);
    background: #f8f7ff;
}

.author-settings-voice-status-line {
    margin: 0;
    display: flex;
    flex-wrap: nowrap;
    align-items: baseline;
    gap: 0.35rem;
    font-size: 0.82rem;
    line-height: 1.35;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
}

.author-settings-voice-status-label {
    font-size: inherit;
    font-weight: 800;
    color: var(--c-text);
    flex-shrink: 0;
}

.author-settings-voice-status-sep {
    color: var(--c-muted);
    flex-shrink: 0;
}

.author-settings-voice-status-name {
    flex-shrink: 0;
    max-width: 9rem;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--c-text);
}

.author-settings-voice-status-date {
    flex-shrink: 0;
    color: var(--c-muted);
    font-size: 0.78rem;
}

.author-settings-voice-status-id {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.76rem;
    color: var(--c-muted);
}

.author-settings-voice-empty-msg {
    margin: 0;
    font-size: inherit;
    color: var(--c-muted);
    overflow: hidden;
    text-overflow: ellipsis;
}

.author-settings-voice-meta-grid {
    display: grid;
    gap: 0.4rem;
}

.author-settings-voice-meta-k {
    display: block;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--c-muted);
    font-weight: 700;
}

.author-settings-voice-meta-v {
    display: block;
    font-size: 0.84rem;
    color: var(--c-text);
}

.author-settings-voice-meta-v--mono {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.72rem;
    word-break: break-all;
}

.author-settings-voice-section {
    border: 1px solid var(--c-border);
    border-radius: 10px;
    padding: 0.7rem 0.8rem;
    background: #fff;
}

.author-settings-voice-section-title {
    margin: 0 0 0.5rem;
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--c-muted);
}

.author-settings-voice-consent {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.8rem;
    line-height: 1.45;
    margin: 0 0 0.55rem;
    cursor: pointer;
}

.author-settings-voice-consent--submit {
    margin: 0.35rem 0 0.4rem;
}

.author-settings-voice-actions-row--submit {
    margin-top: 0;
}

.author-settings-voice-consent input {
    margin-top: 0.2rem;
    flex-shrink: 0;
}

.author-settings-voice-guidance-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.35rem 0.65rem;
    margin-bottom: 0.55rem;
}

.author-settings-voice-guidance {
    margin: 0;
    flex: 1 1 12rem;
    font-size: 0.76rem;
    color: var(--c-muted);
    line-height: 1.45;
}

.author-settings-voice-script-wrap {
    margin: 0 0 0.65rem;
    border: 1px solid var(--c-border);
    border-radius: 10px;
    background: #f8f7ff;
    padding: 0.65rem 0.75rem;
}

.author-settings-voice-script-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem 0.65rem;
    margin-bottom: 0.45rem;
}

.author-settings-voice-script-title {
    margin: 0;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--c-primary);
}

.author-settings-voice-script-meta {
    font-size: 0.68rem;
    color: var(--c-muted);
}

.author-settings-voice-script {
    margin: 0;
    font-size: 0.86rem;
    line-height: 1.55;
    color: var(--c-text);
    white-space: pre-wrap;
}

.author-settings-voice-meter-panel {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    margin: 0;
    padding: 0.35rem 0.45rem;
    border-radius: 6px;
    background: rgba(91, 61, 122, 0.06);
    border: 1px solid rgba(91, 61, 122, 0.12);
}

.author-settings-voice-meter-panel.is-unavailable {
    opacity: 0.65;
}

.author-settings-voice-meter-label {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--c-muted);
    min-width: 1.6rem;
}

.author-settings-voice-meter {
    display: flex;
    align-items: flex-end;
    gap: 2px;
    height: 1.1rem;
    flex: 1 1 auto;
    min-width: 4.5rem;
    max-width: 7rem;
}

.author-settings-voice-meter-bar {
    flex: 1 1 0;
    min-width: 3px;
    height: 35%;
    border-radius: 2px;
    background: rgba(91, 61, 122, 0.18);
    transition: height 0.06s ease, background-color 0.08s ease;
}

.author-settings-voice-meter-bar.is-lit {
    background: var(--c-primary);
}

.author-settings-voice-meter-panel.is-live .author-settings-voice-meter-bar.is-lit {
    background: #5b8f4a;
}

.author-settings-voice-meter-panel.is-low .author-settings-voice-meter-bar.is-lit {
    background: #c9a227;
}

.author-settings-voice-mic-warn {
    margin: 0;
    width: 100%;
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--c-danger);
}

.author-settings-voice-mic-warn.is-flashing {
    animation: author-settings-voice-mic-flash 0.85s ease-in-out infinite;
}

@keyframes author-settings-voice-mic-flash {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.35; }
}

.author-settings-voice-capture-card {
    margin-bottom: 0.5rem;
    border: 1px solid var(--c-border);
    border-radius: 8px;
    padding: 0.65rem 0.75rem;
    background: #fff;
    transition: border-color 0.15s ease, opacity 0.15s ease;
}

.author-settings-voice-capture-card.is-active {
    border-color: var(--c-primary);
    box-shadow: 0 0 0 1px rgba(91, 61, 122, 0.12);
}

.author-settings-voice-capture-card.is-disabled {
    opacity: 0.55;
}

.author-settings-voice-capture-title {
    margin: 0 0 0.2rem;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--c-primary);
}

.author-settings-voice-capture-desc {
    margin: 0 0 0.45rem;
    font-size: 0.74rem;
    color: var(--c-muted);
    line-height: 1.4;
}

.author-settings-voice-capture-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

.author-settings-voice-actions-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.45rem;
}

.author-settings-voice-actions-row:last-child {
    margin-bottom: 0;
}

.author-settings-voice-timer {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--c-primary);
    min-width: 3rem;
}

#author-settings-voice-record.is-recording {
    color: var(--c-danger);
    border-color: rgba(220, 53, 69, 0.45);
}

.author-settings-voice-sample-meta {
    margin: 0 0 0.5rem;
    font-size: 0.78rem;
    color: var(--c-text);
}

.author-settings-voice-danger {
    color: var(--c-danger);
    border-color: rgba(220, 53, 69, 0.35);
}

.author-settings-voice-disabled-notice {
    margin: 0 0 0.65rem;
    padding: 0.65rem 0.75rem;
    border-radius: 8px;
    border: 1px solid rgba(220, 53, 69, 0.25);
    background: rgba(220, 53, 69, 0.06);
    font-size: 0.8rem;
    line-height: 1.45;
    color: var(--c-text);
}

.author-settings-voice-disabled-notice p {
    margin: 0;
}

.author-settings-voice-guided {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    flex: 1;
}

.author-settings-voice-guided-host {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.author-settings-voice-status-spacer {
    flex: 1;
    min-width: 0;
}

.author-settings-voice-guided-instructions {
    margin: 0;
    font-size: 0.84rem;
    line-height: 1.55;
    color: var(--c-text);
    padding: 0.65rem 0.75rem;
    border-radius: 8px;
    background: #faf9f6;
    border: 1px solid var(--c-border);
}

.author-settings-voice-intro-block {
    border: 1px solid var(--c-border);
    border-radius: 10px;
    padding: 0.85rem 0.95rem;
    background: #faf9f6;
}

.author-settings-voice-intro {
    margin: 0 0 0.65rem;
    font-size: 0.88rem;
    line-height: 1.55;
    color: var(--c-text);
}

.author-settings-voice-intro-steps {
    margin: 0;
    padding-left: 1.15rem;
    font-size: 0.84rem;
    line-height: 1.55;
    color: var(--c-muted);
}

.author-settings-voice-intro-steps li + li {
    margin-top: 0.35rem;
}

.author-settings-voice-guided--idle {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;
    padding: 0.5rem 0 1rem;
    min-height: 10rem;
}

.author-settings-voice-guided--idle .author-settings-voice-session-start,
.author-settings-voice-guided--idle .author-settings-voice-tips-link {
    align-self: center;
}

.author-settings-voice-idle-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.35rem 0.85rem;
}

.author-settings-voice-start-over-link {
    color: var(--c-danger);
}

.author-settings-voice-guided .author-settings-voice-idle-links,
.author-settings-voice-guided > .author-settings-voice-tips-link,
.author-settings-voice-guided > .author-settings-voice-start-over-link {
    align-self: center;
}

.author-settings-voice-guided-footer-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.35rem 0.85rem;
    margin-top: 0.15rem;
}

.author-settings-voice-guided-footer-links .author-settings-voice-start-over-link {
    color: var(--c-danger);
}

.author-settings-voice-session-start {
    min-width: 8rem;
}

.author-settings-voice-reading-box {
    border: 2px solid rgba(79, 70, 229, 0.35);
    border-radius: 12px;
    padding: 1.1rem 1.15rem;
    background: #fff;
    box-shadow: 0 1px 3px rgba(17, 24, 39, 0.06);
}

.author-settings-voice-reading-box .author-settings-voice-guided-prompt {
    font-size: 1.05rem;
    line-height: 1.65;
    font-weight: 500;
}

.author-settings-voice-record-toggle.is-recording {
    color: var(--c-danger);
    border-color: rgba(220, 53, 69, 0.45);
    background: rgba(220, 53, 69, 0.06);
}

.author-settings-voice-tips-link {
    align-self: center;
    margin-top: 0.25rem;
    font-size: 0.82rem;
}

.author-settings-voice-retake-link {
    font-size: 0.82rem;
}

.author-settings-voice-guided-progress {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.author-settings-voice-guided-step {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--c-muted);
    min-width: 3.5rem;
}

.author-settings-voice-guided-bar {
    flex: 1;
    min-width: 6rem;
    height: 0.45rem;
    border-radius: 999px;
    background: rgba(17, 24, 39, 0.1);
    overflow: hidden;
}

.author-settings-voice-guided-bar-fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--c-primary), #6366f1);
    transition: width 0.35s ease;
}

.author-settings-voice-guided-pct {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--c-muted);
    min-width: 2.2rem;
    text-align: right;
}

.author-settings-voice-guided-kind {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--c-muted);
}

.author-settings-voice-guided-prompt {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.55;
    color: var(--c-text);
}

.author-settings-voice-guided-phase {
    margin: 0;
    min-height: 1.2rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--c-primary);
}

.author-settings-voice-guided-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
}

.desk-voice-clone-settings-section--prompts {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.desk-voice-clone-prompts-list {
    flex: 1;
    min-height: 0;
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.desk-voice-clone-prompt-item {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.desk-voice-clone-prompt-label {
    font-size: 0.76rem;
    font-weight: 700;
    color: var(--c-text);
}

.desk-voice-clone-prompt-area {
    width: 100%;
    font-size: 0.8rem;
    line-height: 1.45;
    border: 1px solid var(--c-border);
    border-radius: 8px;
    padding: 0.45rem 0.55rem;
    resize: vertical;
    font-family: inherit;
    box-sizing: border-box;
}

.desk-workspace-shell--voice-clone-settings .desk-voice-clone-settings-body {
    flex: 1;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.desk-voice-clone-settings-card {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.desk-voice-clone-settings-card > .desk-workspace-intro {
    flex-shrink: 0;
    margin-bottom: 0.35rem;
}

.desk-voice-clone-settings-content {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    overflow: hidden;
}

.desk-voice-clone-server-hint {
    margin: 0 0 0.55rem;
    padding: 0.4rem 0.55rem;
    border-radius: 6px;
    border: 1px solid rgba(220, 53, 69, 0.28);
    background: rgba(220, 53, 69, 0.06);
    font-size: 0.78rem;
    line-height: 1.4;
    color: var(--c-text);
}

.desk-voice-clone-server-hint code {
    font-size: 0.76rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.desk-voice-clone-settings-section {
    margin-bottom: 0;
}

.desk-voice-clone-settings-section--enable {
    flex-shrink: 0;
}

.desk-voice-clone-settings-section--script {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.desk-voice-clone-settings-title {
    margin: 0 0 0.25rem;
    font-size: 0.88rem;
    font-weight: 800;
    color: var(--c-text);
}

.desk-voice-clone-settings-desc {
    margin: 0 0 0.45rem;
    font-size: 0.76rem;
    color: var(--c-muted);
    line-height: 1.45;
}

.desk-voice-clone-enable-row {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.82rem;
    cursor: pointer;
}

.desk-voice-clone-enable-row input {
    margin-top: 0.15rem;
    flex-shrink: 0;
}

.desk-voice-clone-script-area {
    flex: 1;
    min-height: 10rem;
    width: 100%;
    font-size: 0.82rem;
    line-height: 1.5;
    border: 1px solid var(--c-border);
    border-radius: 8px;
    padding: 0.55rem 0.65rem;
    resize: none;
    font-family: inherit;
    box-sizing: border-box;
}

.desk-voice-clone-settings-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

/* Admin Desk — AI Usage (ElevenLabs) */
.desk-workspace-shell--ai-usage .desk-ai-usage-body {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.desk-ai-usage-card > .desk-workspace-intro {
    margin: 0 0 0.85rem;
}

.desk-ai-usage-warn {
    margin: 0 0 0.75rem;
    padding: 0.55rem 0.7rem;
    border-radius: 8px;
    background: color-mix(in srgb, var(--c-danger) 12%, transparent);
    color: var(--c-danger);
    font-size: 0.82rem;
    line-height: 1.4;
}

.desk-ai-usage-summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 0.55rem;
    margin: 0 0 0.85rem;
}

.desk-ai-usage-stat {
    border: 1px solid var(--c-border, #ddd);
    border-radius: 8px;
    padding: 0.55rem 0.65rem;
    background: var(--c-surface-2, rgba(0, 0, 0, 0.03));
}

.desk-ai-usage-stat span {
    display: block;
    font-size: 0.72rem;
    color: var(--c-muted);
    margin-bottom: 0.2rem;
}

.desk-ai-usage-stat strong {
    font-size: 0.92rem;
}

.desk-ai-usage-progress {
    height: 8px;
    border-radius: 999px;
    background: var(--c-border, #ddd);
    overflow: hidden;
    margin: 0 0 0.9rem;
}

.desk-ai-usage-progress-bar {
    height: 100%;
    width: 0;
    background: var(--c-accent, #2f6fed);
    transition: width 0.2s ease;
}

.desk-ai-usage-progress.is-hot .desk-ai-usage-progress-bar {
    background: var(--c-danger);
}

.desk-ai-usage-form,
.desk-ai-usage-filters {
    display: grid;
    gap: 0.75rem;
}

.desk-ai-usage-filters {
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    align-items: end;
    margin-bottom: 0.85rem;
}

.desk-ai-usage-enable-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9rem;
}

.desk-ai-usage-field {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    font-size: 0.82rem;
}

.desk-ai-usage-field-hint {
    color: var(--c-muted);
    font-size: 0.75rem;
}

.desk-ai-usage-models {
    display: grid;
    gap: 0.75rem;
    padding-top: 0.35rem;
    border-top: 1px solid var(--c-border, #ddd);
}

.desk-ai-usage-models .desk-ai-usage-section-title {
    margin-top: 0.15rem;
}

.desk-ai-usage-form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
}

.desk-ai-usage-section-title {
    margin: 0 0 0.35rem;
    font-size: 0.95rem;
}

.desk-ai-usage-section-desc,
.desk-ai-usage-ledger-message,
.desk-ai-usage-empty {
    margin: 0 0 0.75rem;
    color: var(--c-muted);
    font-size: 0.82rem;
}

.desk-ai-usage-table-wrap {
    overflow: auto;
    max-height: min(50vh, 420px);
}

.desk-ai-usage-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.78rem;
}

.desk-ai-usage-table th,
.desk-ai-usage-table td {
    border-bottom: 1px solid var(--c-border, #ddd);
    padding: 0.4rem 0.45rem;
    text-align: left;
    vertical-align: top;
}

.desk-ai-usage-table th {
    position: sticky;
    top: 0;
    background: var(--c-surface, #fff);
    z-index: 1;
}

.desk-ai-usage-wrap {
    max-width: 10rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.my-desk-panel--workspace .desk-voice-clone-settings-body > .desk-workspace-panel-card {
    flex: 1;
    min-height: 0;
}

.my-desk-settings-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: .6rem;
}

.my-desk-settings-section-card {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    gap: .28rem;
    padding: .95rem 1rem;
    border: 1px solid var(--c-border);
    border-radius: 12px;
    background: linear-gradient(180deg, #ffffff 0%, #f9fbff 100%);
    cursor: pointer;
    font-family: inherit;
    transition: border-color .15s, box-shadow .15s, transform .15s;
}

.my-desk-settings-section-card:hover,
.my-desk-settings-section-card:focus-visible {
    border-color: var(--c-primary);
    box-shadow: var(--shadow);
    transform: translateY(-1px);
}

.my-desk-settings-section-title {
    font-size: .96rem;
    font-weight: 700;
    color: var(--c-text);
}

.my-desk-settings-section-desc {
    font-size: .82rem;
    color: var(--c-muted);
}

.my-desk-settings-section-cta {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-top: .35rem;
    font-size: .78rem;
    font-weight: 700;
    color: var(--c-primary);
    letter-spacing: .01em;
}

.my-desk-settings-section-card--static {
    cursor: default;
}

.my-desk-settings-section-card--static:hover,
.my-desk-settings-section-card--static:focus-visible {
    border-color: var(--c-border);
    box-shadow: none;
    transform: none;
}

.author-settings-ai-voice-copy {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    margin: .35rem 0 1rem;
    max-width: 40rem;
}

.author-settings-ai-voice-copy p {
    margin: 0;
    font-size: .88rem;
    line-height: 1.45;
    color: var(--c-text);
}

.author-settings-ai-voice-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.my-desk-body {
    flex: 1;
    display: block;
    min-height: 0;
}

.my-desk-body.my-desk-body--workspace {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
}

/* Full workspace below app topbar (same for every Admin Desk tool) */
.my-desk-panel.my-desk-panel--workspace {
    top: var(--header-h);
    height: calc(100dvh - var(--header-h));
    bottom: auto;
    overflow: clip;
}

.my-desk-panel.my-desk-panel--workspace .my-desk-head {
    display: none;
}

.my-desk-body.my-desk-body--workspace .my-desk-list-wrap {
    display: none;
}

.my-desk-body.my-desk-body--workspace .my-desk-editor-wrap {
    display: flex;
    padding: 0;
    height: 100%;
    min-height: 0;
    overflow: clip;
}

.my-desk-panel.my-desk-panel--workspace .my-desk-body {
    height: 100%;
    min-height: 0;
    overflow: clip;
}

/* Admin Desk workspace content — full bleed column under topbar */
.desk-workspace-shell {
    flex: 1;
    min-width: 0;
    min-height: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    background: var(--c-surface);
    overflow: hidden;
    border-radius: 0;
}
.desk-workspace-head {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.55rem;
    padding: 0.45rem 0.75rem;
    padding-right: max(0.75rem, env(safe-area-inset-right, 0px));
    border-bottom: 1px solid var(--c-border);
    background: var(--c-surface);
}
.desk-workspace-head .reader-close {
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    min-width: 2.25rem;
    min-height: 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.desk-workspace-head h3 {
    margin: 0;
    font-size: 0.92rem;
    font-weight: 800;
    color: var(--c-text);
}
.desk-workspace-intro {
    flex-shrink: 0;
    margin: 0;
    padding: 0.32rem 0.75rem;
    font-size: 0.74rem;
    color: var(--c-muted);
    line-height: 1.45;
    border-bottom: 1px solid var(--c-border);
    background: var(--c-bg);
}
.desk-workspace-body {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0.45rem 0.75rem;
}
.desk-workspace-body--flush {
    padding: 0;
}
.desk-workspace-body--scroll {
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}
.desk-workspace-foot {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.45rem;
    flex-wrap: wrap;
    padding: 0.4rem 0.75rem;
    border-top: 1px solid var(--c-border);
    background: var(--c-bg);
}
.desk-workspace-foot--spread {
    justify-content: space-between;
}
.desk-workspace-iframe-wrap {
    flex: 1;
    min-height: 0;
    border: 1px solid var(--c-border);
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}
.desk-workspace-iframe-wrap iframe {
    width: 100%;
    height: 100%;
    border: 0;
    background: transparent;
    display: block;
}

.desk-workspace-status {
    font-size: 0.76rem;
    min-height: 1.1em;
    color: var(--c-muted);
}
.desk-workspace-foot--spread .desk-workspace-status {
    margin-right: auto;
}

/* Admin Desk workspaces — Book Audit frame (cream gutter, tan toolbar, white card) */
.my-desk-panel--workspace .desk-workspace-shell,
.my-desk-panel--workspace .qe-panel-root {
    background: #e8dcc0;
}

.my-desk-panel--workspace .desk-workspace-head,
.my-desk-panel--workspace .qe-panel-head {
    background: #f4ecd9;
    padding: 0.75rem 0.85rem;
    position: sticky;
    top: 0;
    z-index: 2;
}

.my-desk-panel--workspace .desk-workspace-head h3,
.my-desk-panel--workspace .qe-panel-head h3 {
    font-size: 1.05rem;
    font-weight: 800;
}

.my-desk-panel--workspace .desk-workspace-shell > .desk-workspace-intro,
.my-desk-panel--workspace .qe-panel-intro {
    flex-shrink: 0;
    margin: 0;
    padding: 0.8rem 0.8rem 0;
    font-size: 0.84rem;
    color: var(--c-muted);
    line-height: 1.45;
    border-bottom: none;
    background: transparent;
}

.my-desk-panel--workspace .desk-workspace-shell > .desk-workspace-intro + .desk-workspace-body {
    padding-top: 0.45rem;
}

.my-desk-panel--workspace .desk-workspace-body {
    padding: 0.8rem;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    background: #e8dcc0;
}

.my-desk-panel--workspace .desk-workspace-body.desk-settings-body-wrap {
    overflow: hidden;
}

.my-desk-panel--workspace .desk-workspace-foot,
.my-desk-panel--workspace .qe-panel-actions,
.my-desk-panel--workspace .qe-footer-stats {
    background: #f4ecd9;
    border-color: var(--c-border);
}

.my-desk-panel--workspace .desk-workspace-foot {
    padding: 0.65rem 0.85rem;
}

.my-desk-panel--workspace .qe-panel-actions {
    padding: 0.65rem 0.85rem;
}

.my-desk-panel--workspace .qe-footer-stats {
    padding: 0.5rem 0.85rem;
}

.my-desk-panel--workspace .qe-panel-grid {
    padding: 0.8rem;
    background: #e8dcc0;
}

.my-desk-panel--workspace .qe-panel-grid--compact > .qe-panel-column.card {
    background: #fff;
    border: 1px solid var(--c-border);
    border-radius: 12px;
}

.desk-workspace-panel-card {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    background: #fff;
    border: 1px solid var(--c-border);
    border-radius: 12px;
    padding: 0.95rem 1.15rem;
}

.my-desk-panel--workspace .desk-workspace-panel-card .desk-workspace-intro {
    padding: 0;
    margin: 0 0 0.15rem;
}

.my-desk-panel--workspace #my-desk-settings-content,
.my-desk-panel--workspace #author-settings-content,
.my-desk-panel--workspace .desk-users-body,
.my-desk-panel--workspace .desk-print-body > .desk-print-options,
.my-desk-panel--workspace .desk-voice-clone-settings-body > .desk-workspace-panel-card,
.my-desk-panel--workspace .desk-voice-training-body > .desk-voice-training-prose,
.my-desk-panel--workspace .desk-config-assign-body,
.my-desk-panel--workspace .desk-app-requests-body,
.my-desk-panel--workspace .desk-workspace-body--flush .desk-workspace-iframe-wrap {
    flex: 1;
    min-height: 0;
    background: #fff;
    border: 1px solid var(--c-border);
    border-radius: 12px;
    padding: 0.95rem 1.15rem;
}

.my-desk-panel--workspace #my-desk-settings-content,
.my-desk-panel--workspace #author-settings-content {
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.my-desk-panel--workspace .desk-revisions-main {
    padding: 0.8rem !important;
    overflow: auto;
    background: #e8dcc0;
}

.my-desk-panel--workspace .desk-revisions-toolbar {
    padding: 0;
    margin-bottom: 0.45rem;
}

.my-desk-panel--workspace .desk-revisions-grid {
    padding: 0.65rem;
    background: #fff;
    border: 1px solid var(--c-border);
    border-radius: 12px;
}

.my-desk-panel--workspace .desk-ghostwriter-dimension {
    border: 1px solid var(--c-border);
    border-radius: 10px;
    background: #faf9f6;
    padding: 0.65rem 0.7rem;
    margin-bottom: 0.65rem;
}

.my-desk-panel--workspace .desk-ghostwriter-dimension:last-child {
    margin-bottom: 0;
}

.my-desk-panel--workspace .desk-ghostwriter-dimension-title {
    margin: 0 0 0.35rem;
    font-size: 0.86rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--c-muted);
}

.my-desk-panel--workspace .desk-workspace-shell--audit .book-audit-report-host {
    background: #e8dcc0;
}

.desk-voice-training-prose {
    max-width: 42rem;
    color: var(--c-text);
}

.desk-voice-training-section {
    margin-bottom: 1rem;
}

.desk-voice-training-section:last-child {
    margin-bottom: 0;
}

.desk-voice-training-section h4 {
    margin: 0 0 0.35rem;
    font-size: 0.82rem;
    font-weight: 800;
    color: var(--c-text);
}

.desk-voice-training-section p {
    margin: 0;
    font-size: 0.78rem;
    line-height: 1.5;
    color: var(--c-muted);
}

.desk-voice-training-steps,
.desk-voice-training-list {
    margin: 0.25rem 0 0;
    padding-left: 1.15rem;
    font-size: 0.78rem;
    line-height: 1.5;
    color: var(--c-muted);
}

.desk-voice-training-steps li,
.desk-voice-training-list li {
    margin-bottom: 0.35rem;
}

.desk-voice-training-steps li:last-child,
.desk-voice-training-list li:last-child {
    margin-bottom: 0;
}

.desk-voice-training-foot-note {
    font-size: 0.72rem;
    color: var(--c-muted);
    line-height: 1.35;
    max-width: 16rem;
}

.desk-workspace-shell--configure-assignments .desk-config-assign-body {
    overflow: auto;
}

.desk-config-assign-badge {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0.1rem 0.4rem;
    font-size: 0.62rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--c-primary);
    background: rgba(79, 70, 229, 0.1);
    border-radius: 4px;
    vertical-align: middle;
}

.desk-config-assign-section {
    margin-bottom: 1.1rem;
}

.desk-config-assign-section:last-child {
    margin-bottom: 0;
}

.desk-config-assign-section h4 {
    margin: 0 0 0.35rem;
    font-size: 0.82rem;
    font-weight: 800;
    color: var(--c-text);
}

.desk-config-assign-section-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
}

.desk-config-assign-section-head h4 {
    margin: 0;
}

.desk-config-assign-lead {
    margin: 0 0 0.5rem;
    font-size: 0.76rem;
    line-height: 1.45;
    color: var(--c-muted);
}

.desk-config-assign-preview-label {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.72rem;
    color: var(--c-muted);
}

.desk-config-assign-preview-select {
    min-width: 10rem;
    font-size: 0.78rem;
    padding: 0.28rem 0.45rem;
}

.desk-config-assign-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--c-border);
    border-radius: 8px;
    background: var(--c-surface);
}

.desk-config-assign-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.76rem;
}

.desk-config-assign-table th,
.desk-config-assign-table td {
    padding: 0.45rem 0.55rem;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid var(--c-border);
}

.desk-config-assign-table th {
    font-size: 0.68rem;
    font-weight: 800;
    color: var(--c-muted);
    background: var(--c-bg);
}

.desk-config-assign-table tbody tr:last-child td {
    border-bottom: none;
}

.desk-config-assign-muted {
    margin-top: 0.15rem;
    font-size: 0.7rem;
    color: var(--c-muted);
    line-height: 1.35;
}

.desk-config-assign-num {
    width: 4.2rem;
    padding: 0.28rem 0.4rem;
    font-size: 0.78rem;
}

.desk-config-assign-default {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.72rem;
    white-space: nowrap;
}

.desk-config-assign-ref-list {
    margin: 0;
    padding-left: 1.15rem;
    font-size: 0.78rem;
    line-height: 1.5;
    color: var(--c-muted);
}

.desk-config-assign-ref-list li {
    margin-bottom: 0.3rem;
}

.desk-workspace-shell--audit {
    min-height: 0;
}
.desk-workspace-shell--audit .book-audit-report-host {
    flex: 1;
    min-height: 0;
    min-width: 0;
}

.desk-print-body {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
.desk-print-options {
    display: flex;
    flex-direction: column;
    gap: 0.38rem;
}
.desk-print-option {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    cursor: pointer;
}
.desk-print-option input {
    margin: 0;
    flex-shrink: 0;
}
.desk-print-option strong {
    font-size: 0.8rem;
    color: var(--c-text);
}
.desk-print-report {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--c-border, #e7e5e4);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.55rem;
}
.desk-print-report-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 650;
    color: var(--c-text);
}
.desk-print-report-copy {
    margin: 0;
    max-width: 36rem;
}

.desk-ai-prompts-body {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    padding: 0 !important;
    overflow: hidden;
}
.desk-ai-prompts-iframe {
    flex: 1;
    min-height: 0;
    border-radius: 0;
    border-left: none;
    border-right: none;
}

.desk-users-body {
    display: flex;
    flex-direction: column;
    min-height: 0;
    gap: 0.35rem;
    overflow: hidden;
}
/* Shared grid: last column is fixed width so separate grids (add row vs list rows)
   resolve fr tracks identically; `auto` per grid used different widths for button vs icon. */
.desk-users-grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr 0.8fr 0.9fr minmax(5.5rem, 0.75fr) 7.75rem;
    gap: 0.32rem;
    align-items: center;
}
.desk-users-grid.desk-users-grid--add {
    flex-shrink: 0;
}

/* Reset global `.auth-field` / `.btn` inside user admin grids (login-sized fields
   and default button padding were winning over compact row styles). */
.desk-users-body .desk-users-grid .auth-field {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    border-width: 1px !important;
    line-height: 1.2 !important;
}
.desk-users-body .desk-users-grid input.auth-field.desk-users-field-tight,
.desk-users-body .desk-users-grid select.auth-field.desk-users-field-tight {
    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
}
.desk-users-body .desk-users-grid .btn.desk-users-add {
    margin: 0 !important;
    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
    line-height: 1.15 !important;
    font-size: 0.72rem !important;
    padding: 0 0.45rem !important;
    box-sizing: border-box !important;
    align-self: center;
}
.desk-users-body .desk-users-grid .btn.desk-users-delete-btn {
    margin: 0 !important;
    flex-shrink: 0;
    align-self: center;
}

.desk-users-field {
    font-size: 0.75rem !important;
    padding: 0.3rem 0.45rem !important;
    border-radius: 4px;
    height: 32px;
    box-sizing: border-box;
}
.desk-users-field-tight {
    font-size: 0.8rem !important;
    padding: 0.38rem 0.5rem !important;
    border-radius: 4px;
    height: 32px;
    box-sizing: border-box;
}
.desk-users-admin-cell {
    display: flex;
    align-items: center;
    align-self: center;
    min-height: 32px;
}
.desk-users-role.auth-field {
    margin-bottom: 0 !important;
    width: 100%;
    min-width: 0;
    cursor: pointer;
    line-height: 1.2;
}
select.desk-users-role.desk-users-field {
    padding: 0.28rem 0.4rem !important;
    font-size: 0.75rem !important;
}
select.desk-users-role.desk-users-field-tight {
    padding: 0.28rem 0.35rem !important;
    font-size: 0.78rem !important;
}
.desk-users-delete-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    align-self: center;
}
.desk-users-delete-btn {
    font-size: 1.05rem;
    line-height: 1;
    height: 32px;
    width: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    margin: 0;
    color: var(--c-danger);
    border: none;
    background: transparent;
    box-shadow: none;
    border-radius: 4px;
}
.desk-users-delete-btn:hover:not(:disabled) {
    background: rgba(220, 53, 69, 0.12);
}
.desk-users-add {
    font-size: 0.72rem !important;
    padding: 0 0.45rem !important;
    height: 32px;
    box-sizing: border-box;
    border-radius: 4px;
    align-self: center;
    width: 100%;
    min-width: 0;
    white-space: nowrap;
    line-height: 1.15 !important;
}
.desk-users-status {
    margin: 0 !important;
    flex-shrink: 0;
}
.desk-users-list {
    flex: 1;
    min-height: 0;
    overflow: auto;
    scrollbar-gutter: stable;
}
.desk-users-list-row {
    padding: 0.06rem 0;
}

.desk-settings-body-wrap {
    flex: 1;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    padding: 0;
}
#my-desk-settings-content {
    flex: 1;
    min-height: 0;
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.desk-settings-subview {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    gap: 0.3rem;
}
.desk-settings-subview--iframe {
    flex: 1;
    min-height: 0;
    overflow: hidden;
}
.desk-settings-subnav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.45rem;
    flex-shrink: 0;
}
.desk-settings-back {
    padding: 0.25rem 0.48rem !important;
    font-size: 0.76rem !important;
}
.desk-settings-subtitle {
    margin: 0;
    font-size: 0.88rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--c-text);
}
.desk-settings-subnav-spacer {
    width: 64px;
    flex-shrink: 0;
}
.desk-settings-subcopy {
    margin: 0;
    font-size: 0.75rem;
    color: var(--c-muted);
}
.desk-strategy-list {
    flex: 1;
    min-height: 0;
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
    padding-right: 0.15rem;
}

.desk-strategy-editor {
    gap: 0.65rem;
}
.desk-strategy-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}
.desk-strategy-tab {
    border: 1px solid var(--c-border);
    background: #fff;
    border-radius: 8px;
    padding: 0.35rem 0.7rem;
    font-size: 0.82rem;
    cursor: pointer;
    color: var(--c-text);
}
.desk-strategy-tab.is-active {
    border-color: var(--c-primary);
    background: color-mix(in srgb, var(--c-primary) 10%, #fff);
    font-weight: 600;
}
.desk-strategy-picker {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    max-width: 28rem;
}
.desk-strategy-picker-label {
    font-size: 0.78rem;
    color: var(--c-muted);
}
.desk-strategy-select {
    border: 1px solid var(--c-border);
    border-radius: 7px;
    padding: 0.4rem 0.55rem;
    font-size: 0.9rem;
    color: var(--c-text);
    background: #fff;
    width: 100%;
}
.desk-strategy-cards {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.desk-strategy-card {
    border: 1px solid var(--c-border);
    border-radius: 10px;
    background: #fff;
    padding: 0.75rem 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}
.desk-strategy-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}
.desk-strategy-enable {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.85rem;
    cursor: pointer;
}
.desk-strategy-fields {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 0.5rem;
}
.desk-strategy-field {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.78rem;
    color: var(--c-muted);
}
.desk-strategy-field--full {
    width: 100%;
}
.desk-strategy-field input,
.desk-strategy-field textarea,
.desk-strategy-list-input {
    border: 1px solid var(--c-border);
    border-radius: 7px;
    padding: 0.35rem 0.5rem;
    font-size: 0.88rem;
    color: var(--c-text);
    background: #fff;
}
.desk-strategy-field textarea {
    resize: vertical;
    min-height: 2.6rem;
}
.desk-strategy-list-block {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}
.desk-strategy-list-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem;
}
.desk-strategy-list-label {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--c-text);
}
.desk-strategy-list-rows {
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
}
.desk-strategy-list-row {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    border-radius: 7px;
    padding: 0.1rem 0.15rem;
    transition: background 0.12s ease, outline-color 0.12s ease, opacity 0.12s ease;
}
.desk-strategy-list-row .desk-strategy-drag-handle {
    flex-shrink: 0;
}
.desk-strategy-list-row--dragging {
    opacity: 0.65;
}
.desk-strategy-list-row--drop-target {
    outline: 2px dashed var(--c-primary);
    outline-offset: 1px;
    background: rgba(79, 70, 229, 0.04);
}
.desk-strategy-list-input {
    flex: 1;
    min-width: 0;
}
.desk-strategy-list-actions {
    display: flex;
    gap: 0.1rem;
    flex-shrink: 0;
}
.desk-strategy-list-empty {
    margin: 0;
    font-size: 0.8rem;
    color: var(--c-muted);
}
@media (max-width: 720px) {
    .desk-strategy-fields {
        grid-template-columns: 1fr;
    }
}

.desk-ghostwriter-dimension {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-bottom: 0.75rem;
}

.desk-ghostwriter-dimension-title {
    margin: 0.15rem 0 0;
    font-size: 0.86rem;
    font-weight: 700;
    color: var(--c-text);
}

.desk-ghostwriter-dimension-desc {
    margin: 0;
    font-size: 0.75rem;
    color: var(--c-muted);
}

.desk-workspace-shell--ghostwriter-settings .desk-ghostwriter-settings-body {
    flex: 1;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.desk-workspace-shell--allowed-book-types .desk-allowed-book-types-body {
    flex: 1;
    min-height: 0;
    overflow: auto;
}

.desk-abt-list-head,
.desk-abt-row {
    display: grid;
    grid-template-columns: 2.25rem minmax(8rem, 1.1fr) minmax(10rem, 1.4fr) 5.5rem;
    gap: 0.55rem;
    align-items: center;
}

.desk-abt-list-head {
    margin: 0 0 0.35rem;
    padding: 0 0.15rem;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--c-muted);
}

.desk-abt-list {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-bottom: 0.75rem;
}

.desk-abt-row {
    padding: 0.45rem 0.5rem;
    border: 1px solid var(--c-border);
    border-radius: 9px;
    background: #fff;
}

.desk-abt-enabled-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    cursor: pointer;
}

.desk-abt-enabled-wrap input {
    width: 1rem;
    height: 1rem;
    accent-color: var(--c-primary);
}

.desk-abt-id-wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
}

.desk-abt-id {
    font-size: 0.8rem;
    word-break: break-all;
}

.desk-abt-badge {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--c-muted);
    border: 1px solid var(--c-border);
    border-radius: 4px;
    padding: 0.05rem 0.3rem;
}

.desk-abt-badge--custom {
    color: var(--c-text);
}

.desk-abt-label-input {
    width: 100%;
    min-width: 0;
}

.desk-abt-remove {
    font-size: 0.8rem;
    padding: 0.25rem 0.4rem;
}

.desk-abt-remove-spacer {
    display: block;
    min-height: 1px;
}

.desk-abt-add-row {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 0.65rem;
    align-items: end;
}

.desk-abt-link-btn {
    appearance: none;
    border: 0;
    background: none;
    padding: 0;
    margin: 0;
    color: var(--c-primary);
    font: inherit;
    text-decoration: underline;
    cursor: pointer;
}

.desk-abt-link-btn:hover {
    color: var(--c-text);
}

@media (max-width: 720px) {
    .desk-abt-list-head {
        display: none;
    }

    .desk-abt-row {
        grid-template-columns: 2rem 1fr auto;
        grid-template-areas:
            "on id remove"
            "on label label";
    }

    .desk-abt-enabled-wrap { grid-area: on; }
    .desk-abt-id-wrap { grid-area: id; }
    .desk-abt-label-input { grid-area: label; }
    .desk-abt-remove,
    .desk-abt-remove-spacer { grid-area: remove; }

    .desk-abt-add-row {
        grid-template-columns: 1fr;
    }
}

.desk-ghostwriter-check-list {
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
}

.desk-ghostwriter-situation-by-type {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.desk-ghostwriter-situation-type-title {
    margin: 0 0 0.35rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--c-text);
}


.desk-ghostwriter-prompt-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.desk-ghostwriter-prompt-card {
    border: 1px solid var(--c-border);
    border-radius: 9px;
    background: #fff;
    padding: 0.7rem 0.85rem;
}

.desk-ghostwriter-prompt-card-title {
    margin: 0 0 0.25rem;
    font-size: 0.9rem;
    font-weight: 600;
}

.desk-ghostwriter-prompt-card-meta {
    margin: 0 0 0.4rem;
    font-size: 0.72rem;
    color: var(--c-muted);
}

.desk-ghostwriter-prompt-card-body {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.45;
    white-space: pre-wrap;
}

.desk-ghostwriter-check-row {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    cursor: pointer;
    padding: 0.45rem 0.55rem;
    border: 1px solid var(--c-border);
    border-radius: 9px;
    background: #fff;
    margin: 0;
    font-size: 0.9rem;
}

.desk-ghostwriter-check-row--long {
    align-items: flex-start;
}

.desk-ghostwriter-check-row--long input {
    margin-top: 0.15rem;
    flex-shrink: 0;
}

.desk-ghostwriter-check-row--long span {
    line-height: 1.45;
    font-size: 0.84rem;
}

.desk-ghostwriter-fields {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.desk-ghostwriter-field-label {
    display: block;
    font-size: 0.86rem;
    font-weight: 700;
    color: var(--c-text);
    margin: 0 0 0.2rem;
}

.desk-ghostwriter-field-helper {
    margin: 0 0 0.35rem;
    font-size: 0.75rem;
    color: var(--c-muted);
}

.desk-ghostwriter-select {
    width: 100%;
    max-width: 100%;
    margin: 0;
}

.desk-ghostwriter-settings-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
}

.desk-settings-iframe {
    flex: 1;
    min-height: 0;
}

.desk-app-requests-body {
    flex: 1;
    min-height: 0;
    overflow: auto;
    gap: 0.28rem;
}
.desk-app-requests-textarea {
    flex: 1;
    min-height: 160px;
    resize: vertical;
    margin: 0;
}
.desk-app-requests-tip {
    margin: 0;
    font-size: 0.66rem;
    color: var(--c-muted);
    flex-shrink: 0;
}
.desk-app-requests-attachments-block {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-top: 0.35rem;
    flex-shrink: 0;
}
.desk-app-requests-attachment-heading {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--c-text);
}
.desk-app-requests-attachment-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    align-items: stretch;
}
.desk-app-requests-attachment-file-label,
.desk-app-requests-attach-previous-button {
    flex: 1 1 calc(50% - 0.25rem);
    min-width: min(100%, 9.5rem);
    margin: 0;
}
.desk-app-requests-attachment-file-label {
    display: flex;
    cursor: pointer;
}
.desk-app-requests-attachment-file-button,
.desk-app-requests-attach-previous-button {
    width: 100%;
    min-height: 2.4rem;
    justify-content: center;
}
.desk-app-requests-attachment-file-button {
    pointer-events: none;
}
.desk-app-requests-attach-previous-button:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}
.snapshot-mode *,
.snapshot-mode *::before,
.snapshot-mode *::after {
    animation: none !important;
    transition: none !important;
}
.desk-app-requests-attachment-hint {
    margin: 0;
    font-size: 0.66rem;
    color: var(--c-muted);
    flex-shrink: 0;
}
.desk-app-requests-attachment-summary {
    margin: 0;
    flex-shrink: 0;
}
.desk-app-requests-attachment-summary[hidden] {
    display: none !important;
}
.app-request-attachment-summary-meta {
    margin: 0 0 0.45rem;
    font-size: 0.7rem;
    font-weight: 600;
    line-height: 1.4;
    color: var(--c-text);
}
.app-request-attachment-thumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.app-request-attachment-thumb {
    position: relative;
    width: 88px;
    height: 88px;
    margin: 0;
    padding: 0;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid var(--c-border);
    background: var(--c-surface-2, rgba(255, 255, 255, 0.04));
}
.app-request-attachment-thumb-expand {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
}
.app-request-attachment-thumb-expand img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.app-request-attachment-thumb-expand:disabled {
    cursor: default;
}
.app-request-attachment-file-chip {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 0.35rem;
    font-size: 0.62rem;
    line-height: 1.25;
    text-align: center;
    color: var(--c-muted);
    word-break: break-word;
}
.app-request-attachment-thumb-remove {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 26px;
    height: 26px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 23, 42, 0.78);
    color: #fff;
    font-size: 0.72rem;
    line-height: 1;
    cursor: pointer;
}
.app-request-attachment-thumb-remove:hover,
.app-request-attachment-thumb-remove:focus-visible {
    background: rgba(15, 23, 42, 0.92);
}
.app-request-attachment-lightbox {
    position: fixed;
    inset: 0;
    z-index: 12000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right))
        max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
}
.app-request-attachment-lightbox-backdrop {
    position: absolute;
    inset: 0;
    margin: 0;
    padding: 0;
    border: 0;
    background: rgba(15, 23, 42, 0.72);
    cursor: pointer;
}
.app-request-attachment-lightbox-inner {
    position: relative;
    z-index: 1;
    max-width: min(96vw, 1100px);
    max-height: min(92vh, 900px);
}
.app-request-attachment-lightbox-image {
    display: block;
    max-width: min(96vw, 1100px);
    max-height: min(92vh, 900px);
    width: auto;
    height: auto;
    margin: 0 auto;
    border-radius: 8px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
}
.app-request-attachment-lightbox-close {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 36px;
    height: 36px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 23, 42, 0.88);
    color: #fff;
    font-size: 1rem;
    cursor: pointer;
}
.desk-workspace-field-label {
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--c-muted);
    flex-shrink: 0;
}

.desk-revisions-main {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    flex: 1;
    min-height: 0;
    overflow: hidden;
    padding: 0 !important;
}
.desk-revisions-toolbar {
    display: flex;
    align-items: center;
    gap: 0.32rem;
    flex-wrap: wrap;
    flex-shrink: 0;
    padding: 0.15rem 0.75rem 0;
}
.desk-revisions-toolbar-btn {
    font-size: 0.72rem !important;
    padding: 0.25rem 0.48rem !important;
    min-height: 28px;
    line-height: 1.1;
    border-radius: 6px;
}
.desk-revisions-toolbar-status {
    font-size: 0.74rem;
    min-height: 1em;
    color: var(--c-muted);
    margin-left: auto;
}
.desk-revisions-grid {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) minmax(300px, 1.2fr);
    gap: 0.45rem;
    flex: 1;
    min-height: 0;
    padding: 0 0.75rem 0.45rem;
    overflow: hidden;
}
.desk-revisions-list-pane {
    overflow: auto;
    border: 1px solid var(--c-border);
    border-radius: 8px;
    padding: 0.35rem;
    background: #fff;
    min-height: 0;
}
.desk-revisions-preview-pane {
    overflow: hidden;
    border: 1px solid var(--c-border);
    border-radius: 8px;
    padding: 0.4rem;
    background: #fff;
    display: flex;
    flex-direction: column;
    min-height: 0;
}
.desk-revisions-find-bar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.28rem;
    margin-bottom: 0.32rem;
    flex-shrink: 0;
}
.desk-revisions-find-input {
    max-width: 220px;
    height: 28px;
    font-size: 0.72rem !important;
    padding: 0.18rem 0.4rem !important;
    border-radius: 6px;
    margin-bottom: 0 !important;
}
.desk-revisions-find-btn {
    font-size: 0.68rem !important;
    padding: 0.2rem 0.42rem !important;
    min-height: 28px;
    line-height: 1.1;
    border-radius: 6px;
}
.desk-revisions-find-status {
    font-size: 0.68rem;
    color: var(--c-muted);
    min-height: 1em;
}
.desk-revisions-preview-inner {
    overflow: auto;
    flex: 1;
    min-height: 0;
    padding: 0.08rem;
}
.desk-revisions-preview-placeholder {
    color: var(--c-muted);
    font-size: 0.76rem;
    margin: 0;
}

.desk-answers-subtitle {
    color: var(--c-muted);
    font-size: 0.78rem;
    margin: 0.15rem 0 0;
}
.desk-answers-search {
    flex: 1;
    min-width: 0;
    margin: 0;
}
.desk-answers-grid {
    min-height: 320px;
}
.desk-answers-list {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    overflow-y: auto;
}
.desk-answers-list-empty {
    color: var(--c-muted);
    font-size: 0.78rem;
    margin: 0.5rem;
}
.desk-answers-row {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.12rem;
    width: 100%;
    text-align: left;
    border: 1px solid var(--c-border);
    border-radius: 8px;
    background: var(--c-surface);
    padding: 0.45rem 0.55rem;
    cursor: pointer;
}
.desk-answers-row:hover {
    border-color: var(--c-primary);
}
.desk-answers-row--selected {
    box-shadow: inset 0 0 0 2px var(--c-primary);
    background: rgba(79, 70, 229, 0.08);
}
.desk-answers-row-qid {
    font-family: ui-monospace, monospace;
    font-size: 0.68rem;
    color: var(--c-muted);
}
.desk-answers-row-question {
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.25;
}
.desk-answers-row-preview {
    font-size: 0.74rem;
    color: var(--c-muted);
    line-height: 1.3;
}
.desk-answers-row-meta {
    font-size: 0.68rem;
    color: var(--c-muted);
}
.desk-answers-detail {
    overflow-y: auto;
}
.desk-answers-detail-inner {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 0.35rem;
}
.desk-answers-detail-meta {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 0.35rem 0.75rem;
    font-size: 0.72rem;
}
.desk-answers-meta-label {
    display: block;
    color: var(--c-muted);
    font-size: 0.66rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.desk-answers-detail-question {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.35;
}
.desk-answers-detail-body {
    margin: 0;
    padding: 0.65rem 0.75rem;
    border-radius: 8px;
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    white-space: pre-wrap;
    word-break: break-word;
    font-family: inherit;
    font-size: 0.8rem;
    line-height: 1.45;
    max-height: 240px;
    overflow-y: auto;
}
.desk-answers-events-wrap summary {
    cursor: pointer;
    font-size: 0.78rem;
    font-weight: 600;
    margin-bottom: 0.35rem;
}
.desk-answers-events {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}
.desk-answers-events-empty {
    color: var(--c-muted);
    font-size: 0.74rem;
    margin: 0;
}
.desk-answers-event-row {
    border: 1px solid var(--c-border);
    border-radius: 8px;
    padding: 0.45rem 0.55rem;
    background: var(--c-surface);
}
.desk-answers-event-head {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.7rem;
    color: var(--c-muted);
    margin-bottom: 0.25rem;
}
.desk-answers-event-trigger {
    font-family: ui-monospace, monospace;
}
.desk-answers-event-body {
    margin: 0;
    white-space: pre-wrap;
    word-break: break-word;
    font-family: inherit;
    font-size: 0.76rem;
    line-height: 1.4;
    max-height: 120px;
    overflow-y: auto;
}
.desk-answers-event-prev {
    margin: 0.25rem 0 0;
    font-size: 0.7rem;
    color: var(--c-muted);
}
.desk-answers-event-prev span {
    font-weight: 600;
}

.desk-workspace-shell--preparation .desk-prep-body {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.desk-prep-subtitle {
    color: var(--c-muted);
    font-size: 0.78rem;
    margin: 0.15rem 0 0;
}
.desk-prep-toolbar,
.desk-prep-filters {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.55rem;
}
.desk-prep-toolbar > div {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}
.desk-prep-toolbar-status {
    color: var(--c-muted);
    font-size: 0.75rem;
}
.desk-prep-toolbar-status--error,
.desk-prep-error {
    color: var(--c-danger);
}
.desk-prep-health-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr));
    gap: 0.45rem;
}
.desk-prep-health-card {
    display: flex;
    flex-direction: column;
    gap: 0.18rem;
    padding: 0.55rem 0.65rem;
    border: 1px solid var(--c-border);
    border-left-width: 4px;
    border-radius: 8px;
    background: var(--c-surface);
}
.desk-prep-health-card span {
    color: var(--c-muted);
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.desk-prep-health-card strong {
    font-size: 0.84rem;
    overflow-wrap: anywhere;
}
.desk-prep-health-card--ok {
    border-left-color: var(--c-success);
}
.desk-prep-health-card--warn {
    border-left-color: #c98b1d;
}
.desk-prep-health-card--error {
    border-left-color: var(--c-danger);
}
.desk-prep-health-card--muted {
    border-left-color: var(--c-muted);
}
.desk-prep-generated {
    color: var(--c-muted);
    font-size: 0.72rem;
    margin: 0.4rem 0 0;
}
.desk-prep-filters .auth-field {
    margin: 0;
}
#desk-prep-search {
    flex: 1 1 22rem;
}
#desk-prep-scope {
    flex: 0 1 14rem;
}
.desk-prep-items {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}
.desk-prep-item {
    border: 1px solid var(--c-border);
    border-radius: 8px;
    background: var(--c-surface);
}
.desk-prep-item > summary {
    display: grid;
    grid-template-columns: minmax(8rem, 0.28fr) minmax(16rem, 1fr) auto;
    align-items: center;
    gap: 0.55rem;
    padding: 0.55rem 0.65rem;
    cursor: pointer;
    list-style-position: inside;
}
.desk-prep-item-scope {
    color: var(--c-muted);
    font-size: 0.68rem;
    font-weight: 700;
}
.desk-prep-item-text {
    font-size: 0.8rem;
    line-height: 1.35;
}
.desk-prep-item-badges {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.22rem;
}
.desk-prep-badge {
    padding: 0.12rem 0.35rem;
    border-radius: 999px;
    background: var(--c-surface-2, #f3f4f6);
    color: var(--c-muted);
    font-size: 0.62rem;
    white-space: nowrap;
}
.desk-prep-badge--ok {
    background: rgba(31, 143, 85, 0.12);
    color: var(--c-success);
}
.desk-prep-badge--warn {
    background: rgba(201, 139, 29, 0.14);
    color: #8a5b08;
}
.desk-prep-badge--error {
    background: rgba(190, 45, 45, 0.12);
    color: var(--c-danger);
}
.desk-prep-item-detail {
    display: grid;
    grid-template-columns: minmax(16rem, 0.8fr) minmax(18rem, 1.2fr);
    gap: 0.8rem;
    padding: 0.65rem 0.75rem;
    border-top: 1px solid var(--c-border);
    font-size: 0.74rem;
}
.desk-prep-item-detail dl,
.desk-prep-diagnostic-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
    gap: 0.4rem 0.7rem;
    margin: 0;
}
.desk-prep-item-detail dl > div,
.desk-prep-diagnostic-list > div {
    min-width: 0;
}
.desk-prep-item-detail dt,
.desk-prep-diagnostic-list dt {
    color: var(--c-muted);
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}
.desk-prep-item-detail dd,
.desk-prep-diagnostic-list dd {
    margin: 0.12rem 0 0;
    overflow-wrap: anywhere;
}
.desk-prep-item-detail h4 {
    margin: 0 0 0.3rem;
    font-size: 0.75rem;
}
.desk-prep-item-detail ul,
.desk-prep-item-detail p {
    margin: 0;
    padding-left: 1rem;
}
.desk-prep-diagnostics {
    border-top: 1px solid var(--c-border);
    padding-top: 0.6rem;
}
.desk-prep-diagnostics > summary {
    cursor: pointer;
    font-size: 0.78rem;
    font-weight: 700;
}
#desk-prep-diagnostics-body {
    margin-top: 0.55rem;
}
.desk-prep-error {
    margin: 0.6rem 0 0;
    font-size: 0.74rem;
}
.desk-prep-empty {
    color: var(--c-muted);
    font-size: 0.8rem;
    margin: 0.75rem 0;
    text-align: center;
}
@media (max-width: 760px) {
    .desk-prep-item > summary,
    .desk-prep-item-detail {
        grid-template-columns: 1fr;
    }
    .desk-prep-item-badges {
        justify-content: flex-start;
    }
    #desk-prep-scope {
        flex: 1 1 100%;
    }
}

.desk-revision-card {
    cursor: pointer;
}
.desk-revision-card--selected {
    box-shadow: inset 0 0 0 2px var(--c-primary);
    background: rgba(79, 70, 229, 0.08);
}
.book-revision-delete {
    border: none;
    background: transparent;
    padding: 0.1rem 0.22rem;
    margin: 0;
    line-height: 0;
    color: var(--c-danger);
    cursor: pointer;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.book-revision-delete svg {
    display: block;
}
.book-revision-delete:hover {
    background: rgba(220, 38, 38, 0.12);
}
.book-revision-delete:focus-visible {
    outline: 2px solid var(--c-danger);
    outline-offset: 2px;
}

.my-desk-list-wrap {
    border-right: 1px solid var(--c-border);
    min-height: 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.my-desk-editor-wrap {
    padding: .85rem;
    min-height: 0;
    display: none;
    flex-direction: column;
}

.my-desk-editor-card {
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: .6rem;
    padding: .9rem;
}

.my-desk-editor-card .auth-field {
    margin-bottom: 0;
}

.my-desk-editor-card .qa-answer-area {
    min-height: 220px;
    flex: 1;
    margin: 0;
}

.my-desk-sub {
    font-size: .78rem;
    color: var(--c-muted);
    margin: .65rem .8rem;
    letter-spacing: .03em;
    text-transform: uppercase;
    font-weight: 600;
}

.my-desk-list {
    overflow-y: auto;
    padding: 0 .45rem .45rem;
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.my-desk-item {
    border: 1px solid var(--c-border);
    border-radius: 10px;
    background: #fff;
    padding: .45rem .6rem;
    cursor: pointer;
}

.my-desk-item:hover {
    border-color: var(--c-primary);
    box-shadow: var(--shadow);
}

.my-desk-item--new {
    border-style: dashed;
}

.my-desk-item.active {
    border-color: var(--c-primary);
    background: rgba(79,70,229,.08);
}

.my-desk-item.hidden-item {
    opacity: .72;
}

.my-desk-hidden-folder {
    margin-top: .35rem;
    border: 1px dashed var(--c-border);
    border-radius: 10px;
    background: #f8f7f3;
    padding: .45rem;
}

.my-desk-hidden-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .15rem .25rem .45rem;
}

.my-desk-hidden-title {
    font-size: .78rem;
    font-weight: 700;
    color: var(--c-muted);
}

.my-desk-hidden-list {
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.doc-row-top {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: .1rem;
    min-width: 0;
}

.doc-kind-badge {
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    color: #3f3f46;
    background: #eceff3;
    border-radius: 999px;
    padding: .12rem .45rem;
}

.doc-title {
    font-size: .83rem;
    font-weight: 700;
    color: var(--c-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.doc-visibility-toggle {
    margin-left: auto;
    font-size: .72rem;
    color: var(--c-primary);
    text-decoration: underline;
    flex-shrink: 0;
}

.doc-preview {
    font-size: .75rem;
    color: var(--c-muted);
    line-height: 1.35;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}

.doc-meta {
    font-size: .69rem;
    color: var(--c-subtle);
    line-height: 1.25;
    margin-bottom: .15rem;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}

.doc-meta-link-row {
    display: flex;
    justify-content: flex-end;
    margin-top: -.35rem;
}

.doc-meta-link {
    font-size: .74rem;
    color: var(--c-primary);
    text-decoration: underline;
    cursor: pointer;
}

/* ── View toggle (Original / Analyzed) ─────────────────────────────────── */
.view-toggle-group {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .3rem;
    margin-left: auto;
    flex-shrink: 0;
}

.view-toggle {
    display: inline-flex;
    align-items: center;
    background: #e4e4e8;
    border: 1px solid #c8c8d0;
    border-radius: 6px;
    overflow: hidden;
    height: 26px;
    flex-shrink: 0;
}

.view-toggle__btn {
    display: inline-block;
    background: none;
    border: none;
    border-radius: 0;
    padding: 0 .75rem;
    font-size: .75rem;
    line-height: 26px;
    height: 26px;
    cursor: pointer;
    color: #888;
    font-weight: 500;
    white-space: nowrap;
    transition: background .12s, color .12s;
}

.view-toggle__btn--active {
    background: #fff;
    color: #1a1a2e;
    font-weight: 700;
    box-shadow: inset 0 0 0 1px #c0c0c8;
    border-radius: 5px;
}

.view-toggle__btn:not(.view-toggle__btn--active):hover {
    color: #444;
    background: rgba(0,0,0,.06);
}

.doc-analysis-overlay {
    display: none;
    background: #fff;
    border: 1px solid var(--c-border, #ddd);
    border-radius: 8px;
    overflow-y: auto;
    font-size: .82rem;
    color: var(--c-text);
    line-height: 1.5;
}

.doc-analysis-overlay.visible {
    display: block;
}

/* ── Spreadsheet-style analysis layout ───────────────────────────────────── */
.ana-meta {
    font-size: .72rem;
    color: var(--c-muted);
    padding: .45rem .65rem .25rem;
    border-bottom: 1px solid var(--c-border, #e8e8ee);
}

.ana-section {
    border-bottom: 1px solid var(--c-border, #e8e8ee);
}

.ana-section:last-child {
    border-bottom: none;
}

.ana-section-head {
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--c-muted);
    padding: .35rem .65rem .2rem;
    background: #f6f6f9;
    border-bottom: 1px solid var(--c-border, #e8e8ee);
    display: flex;
    align-items: center;
    gap: .5rem;
}

.ana-table {
    width: 100%;
    border-collapse: collapse;
}

.ana-table tr {
    border-bottom: 1px solid #ebebf0;
}

.ana-table tr:last-child {
    border-bottom: none;
}

.ana-table td,
.ana-table th {
    padding: .3rem .65rem;
    font-size: .8rem;
    line-height: 1.45;
    vertical-align: top;
    text-align: left;
}

.ana-table th {
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--c-muted);
    background: #fafafe;
    border-bottom: 1px solid var(--c-border, #e8e8ee);
    padding: .25rem .65rem;
}

.ana-row-num {
    color: var(--c-muted);
    font-size: .72rem;
    width: 1.6rem;
    min-width: 1.6rem;
    text-align: right;
    padding-right: .5rem;
    user-select: none;
}

.ana-table--two-col td:first-child {
    width: 55%;
    border-right: 1px solid #ebebf0;
}

.ana-gap {
    color: #c0392b;
    font-size: .78rem;
}

.ana-prose {
    padding: .4rem .65rem;
    font-size: .8rem;
    line-height: 1.5;
    color: var(--c-text);
    white-space: pre-wrap;
}

.doc-meta-structured {
    border: 1px solid var(--c-border);
    border-radius: 10px;
    background: #fff;
    padding: .55rem .7rem;
    margin-top: .25rem;
    max-height: 180px;
    overflow-y: auto;
}

.doc-meta-grid {
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.doc-meta-row {
    display: grid;
    grid-template-columns: minmax(110px, 170px) 1fr;
    gap: .45rem;
    align-items: start;
}

.doc-meta-key {
    font-size: .7rem;
    color: var(--c-subtle);
    text-transform: uppercase;
    letter-spacing: .03em;
    font-weight: 700;
}

.doc-meta-val {
    font-size: .78rem;
    color: var(--c-text);
    line-height: 1.35;
    word-break: break-word;
    white-space: pre-wrap;
}

.doc-meta-empty {
    font-size: .78rem;
    color: var(--c-muted);
}

.doc-analysis-summary {
    font-size: .76rem;
    color: var(--c-muted);
    margin-bottom: .45rem;
}

.doc-meta-section {
    margin-bottom: .55rem;
}

.doc-meta-heading {
    font-size: .72rem;
    color: var(--c-text);
    font-weight: 700;
    margin-bottom: .18rem;
}

.doc-meta-bullets {
    margin: 0;
    padding-left: 1.1rem;
}

.doc-meta-bullets li {
    font-size: .78rem;
    line-height: 1.35;
    color: var(--c-text);
    margin: .1rem 0;
}

.doc-meta-subline {
    margin-top: .2rem;
    font-size: .74rem;
    color: var(--c-muted);
}

.my-desk-empty {
    margin: auto;
    color: var(--c-muted);
    font-size: .9rem;
}

.my-desk-empty.book-audit-host {
    margin: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
    color: inherit;
    font-size: inherit;
}

/* Question Editor — full panel shell (fills workspace under topbar) */
.qe-panel-root {
    flex: 1;
    min-width: 0;
    min-height: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    background: var(--c-surface);
    overflow: hidden;
    border-radius: 0;
}
.qe-panel-head {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    padding: 0.65rem 1rem;
    border-bottom: 1px solid var(--c-border);
    background: var(--c-surface);
}
.qe-panel-head h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 800;
    color: var(--c-text);
}
.qe-panel-intro {
    flex-shrink: 0;
    margin: 0;
    padding: 0.5rem 1rem 0.65rem;
    color: var(--c-muted);
    font-size: 0.82rem;
    line-height: 1.45;
    border-bottom: 1px solid var(--c-border);
    background: var(--c-bg);
}
.qe-panel-grid {
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(220px, 280px) minmax(420px, 1fr);
    /* One row must fill the flex area so column children can shrink and inner scroll works */
    grid-template-rows: minmax(0, 1fr);
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    overflow: hidden;
    box-sizing: border-box;
}
.qe-footer-stats {
    flex-shrink: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.2rem 0.35rem;
    padding: 0.45rem 1rem;
    border-top: 1px solid var(--c-border);
    background: var(--c-surface);
    font-size: 0.7rem;
    color: var(--c-text);
    line-height: 1.4;
}
.qe-footer-stats-label {
    font-weight: 700;
    color: var(--c-muted);
    margin-right: 0.12rem;
}
.qe-footer-stats-sep {
    color: var(--c-border);
    margin: 0 0.08rem;
    user-select: none;
}
.qe-footer-stats-meta {
    color: var(--c-muted);
    font-weight: 500;
}
.qe-panel-actions {
    flex-shrink: 0;
    display: flex;
    gap: 0.55rem;
    align-items: center;
    justify-content: flex-end;
    padding: 0.65rem 1rem;
    border-top: 1px solid var(--c-border);
    background: var(--c-bg);
}
.qe-panel-column {
    padding: 0.65rem 0.75rem !important;
    overflow: auto;
    min-height: 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

/* Question Editor — admin compact shell */
.qe-panel-root--compact .qe-panel-head {
    padding: 0.45rem 0.75rem;
    gap: 0.55rem;
}
.qe-panel-root--compact .qe-panel-head h3 {
    font-size: 1rem;
    font-weight: 800;
}

.qe-panel-head--with-situation {
    align-items: flex-start;
}

.qe-panel-head--with-situation .qe-panel-head-main {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.qe-situation-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.55rem;
}

.qe-situation-label {
    font-size: 0.62rem;
    font-weight: 600;
    color: var(--c-muted);
    margin: 0;
}

.qe-situation-select {
    min-width: min(100%, 18rem);
    max-width: 100%;
    font-size: 0.68rem !important;
    padding: 0.18rem 0.35rem !important;
}

.qe-panel-root--compact .qe-panel-intro {
    font-size: 0.62rem;
    line-height: 1.35;
    padding: 0.22rem 0.55rem;
}
.qe-panel-grid--compact {
    gap: 0.38rem;
    padding: 0.38rem 0.55rem;
}
.qe-panel-grid--compact > .qe-panel-column {
    padding: 0.35rem 0.45rem !important;
}
.qe-panel-root--compact .qe-footer-stats {
    padding: 0.3rem 0.55rem;
    font-size: 0.61rem;
}
.qe-panel-root--compact .qe-panel-actions {
    padding: 0.35rem 0.55rem;
    gap: 0.35rem;
    justify-content: flex-start;
}
.qe-panel-root--compact .qe-panel-actions .btn {
    padding: 0.28rem 0.65rem;
    font-size: 0.72rem;
}
.qe-panel-status {
    font-size: 0.65rem;
    min-height: 1em;
    color: var(--c-muted);
    margin-right: auto;
}

/* Question Editor — dense right column (admin) */
.qe-editor-right {
    font-size: 0.7rem;
    line-height: 1.32;
}
.qe-right-stack {
    display: flex;
    flex-direction: column;
    gap: 0.22rem;
}
.qe-right-label {
    font-size: 0.62rem;
    font-weight: 600;
    color: var(--c-muted);
    margin: 0.08rem 0 0;
    letter-spacing: 0.02em;
}
.qe-right-hint {
    font-size: 0.58rem;
    line-height: 1.35;
    color: var(--c-muted);
    margin: 0;
}
.qe-right-hint--tight {
    margin-top: 0.12rem;
}
.qe-editor-right .auth-field,
.qe-editor-right .qe-right-input,
.qe-editor-right .qe-right-select {
    font-size: 0.68rem !important;
    padding: 0.18rem 0.35rem !important;
    line-height: 1.32;
    border-radius: 5px;
    min-height: 0;
}
.qe-editor-right .qe-right-textarea,
.qe-editor-right .qa-answer-area {
    font-size: 0.68rem !important;
    padding: 0.2rem 0.35rem !important;
    line-height: 1.32;
    border-radius: 5px;
    min-height: 0;
}
.qe-right-divider {
    border: none;
    border-top: 1px solid var(--c-border);
    margin: 0.28rem 0;
}
.qe-metadata-save-row {
    margin-top: 0.32rem;
    display: flex;
    align-items: center;
    gap: 0.45rem;
}
.qe-metadata-save-row .btn.btn-primary {
    font-size: 0.78rem;
    padding: 0.32rem 0.55rem;
    border-radius: var(--radius);
}
.qe-right-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
    margin-top: 0.05rem;
}
.qe-right-section-title {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 800;
    color: var(--c-text);
}
/* Match Question Editor "+ Add Assignment" toolbar sizing (default .btn is full-size). */
.qe-right-section-head .btn.btn-primary {
    font-size: 0.78rem;
    padding: 0.32rem 0.55rem;
    border-radius: var(--radius);
}
.qe-right-btn-sm {
    padding: 0.12rem 0.38rem !important;
    font-size: 0.62rem !important;
    font-weight: 600;
    min-height: 0;
    border-radius: 5px;
}
.qe-question-list {
    display: grid;
    gap: 2px;
    margin-top: 0.12rem;
    align-content: start;
    align-items: start;
}
.qe-question-list .qa-answer-area {
    min-height: 0;
}
.qe-question-card {
    padding: 0.22rem 0.32rem !important;
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.05);
    background: #fefce8;
    border-color: rgba(234, 179, 8, 0.28);
}
.qe-question-main-row {
    display: flex;
    align-items: stretch;
    gap: 0.35rem;
}
.qe-question-main-row .qe-question-text {
    flex: 1;
    min-width: 0;
    align-self: center;
}
.qe-question-main-row .qe-question-text.qe-question-text--readonly {
    cursor: pointer;
    resize: none;
    background: rgba(255, 255, 255, 0.72);
}
.qe-question-main-row .qe-question-text.qe-question-text--readonly:focus {
    outline: 2px solid rgba(59, 130, 246, 0.35);
    outline-offset: 1px;
}
/* Auto-derived display number for each question (e.g. 1.1, 2.2). Not persisted —
   recomputed on every render from the question's index inside its chapter bucket. */
.qe-question-number {
    flex: 0 0 auto;
    align-self: flex-start;
    margin-top: 0.2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.85rem;
    padding: 0.12rem 0.32rem;
    border-radius: 999px;
    background: rgba(234, 179, 8, 0.18);
    border: 1px solid rgba(234, 179, 8, 0.35);
    color: #92400e;
    font-size: 0.66rem;
    font-weight: 700;
    line-height: 1;
    font-variant-numeric: tabular-nums;
    user-select: none;
}
.qe-assignment-numbers {
    color: var(--c-primary, #6c63ff);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.qe-drag-cluster-inline {
    flex: 0 0 auto;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    max-width: 5.5rem;
    min-width: 2.25rem;
    gap: 0.12rem !important;
    padding-top: 0.12rem;
}
.qe-question-main-row .qe-drag-hint-label {
    white-space: normal;
    text-align: center;
    font-size: 0.52rem;
    line-height: 1.15;
    max-width: 5rem;
}
.qe-editor-right .qe-drag-handle {
    font-size: 1.35rem;
    line-height: 1;
    padding: 0.14rem 0.2rem;
}
.qe-editor-right .qe-drag-hint-label {
    font-size: 0.58rem;
}
.qe-editor-right .qe-remove-question {
    min-width: 22px !important;
    min-height: 22px !important;
    padding: 0.06rem 0.2rem !important;
}
.qe-editor-right .qe-remove-question .fa-trash-can {
    font-size: 0.72rem;
}
.qe-question-main-row .qe-remove-question--in-row {
    flex: 0 0 auto;
    align-self: center;
    margin: 0;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}
.qe-question-main-row .qe-remove-question--in-row:hover:not(:disabled) {
    background: rgba(185, 28, 28, 0.1) !important;
}
.qe-example-toggle {
    display: flex;
    align-items: center;
    gap: 0.32rem;
    width: 100%;
    justify-content: flex-start;
    margin-top: 0.2rem;
    padding: 0.15rem 0.35rem !important;
    font-size: 0.62rem !important;
    font-weight: 600;
    color: var(--c-primary);
    border: 1px dashed var(--c-border);
    border-radius: 5px;
    text-align: left;
    cursor: pointer;
}
.qe-example-toggle--beside-text {
    width: auto;
    min-width: 5rem;
    max-width: 7.25rem;
    margin-top: 0;
    flex-direction: column;
    align-self: stretch;
    justify-content: center;
    text-align: center;
    gap: 0.18rem;
    padding: 0.22rem 0.28rem !important;
}
.qe-example-toggle--beside-text span {
    line-height: 1.15;
}
.qe-example-toggle .qe-example-chevron {
    font-size: 0.55rem;
    transition: transform 0.15s ease;
    width: 0.65rem;
    text-align: center;
}
.qe-example-toggle--open .qe-example-chevron {
    transform: rotate(90deg);
}
.qe-example-drawer {
    margin-top: 0.22rem;
    padding-top: 0.22rem;
    border-top: 1px dashed var(--c-border);
}
.qe-example-drawer.hidden {
    display: none !important;
}
.qe-example-drawer-hint {
    font-size: 0.58rem;
    color: var(--c-muted);
    margin: 0 0 0.18rem;
    line-height: 1.35;
}
.qe-example-tools {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
    margin-top: 0.22rem;
}
.qe-example-append-label {
    display: inline-flex;
    align-items: center;
    gap: 0.22rem;
    font-size: 0.58rem;
    color: var(--c-muted);
}
.qe-editor-right .qe-example-status {
    font-size: 0.58rem;
    color: var(--c-muted);
    min-height: 1em;
}
.qe-right-empty {
    color: var(--c-muted);
    font-size: 0.65rem;
    margin: 0;
}

/* Question Editor — tighter left list in compact mode */
.qe-panel-grid--compact .qe-assignment-toolbar {
    margin-bottom: 0.28rem;
}
.qe-panel-grid--compact .qe-assignment-toolbar .btn {
    font-size: 0.62rem;
    padding: 0.22rem 0.4rem;
}
.qe-panel-grid--compact .qe-add-assignment-in-chapter {
    font-size: 0.62rem;
    padding: 0.2rem 0.38rem;
}
.qe-panel-grid--compact .qe-right-section-head .btn.btn-primary {
    font-size: 0.62rem;
    padding: 0.22rem 0.4rem;
}
.qe-panel-grid--compact .qe-assignment-btn {
    padding: 0.28rem 0.38rem 0.25rem;
    gap: 0.12rem;
}
.qe-panel-grid--compact .qe-assignment-label {
    font-size: 0.68rem;
}
.qe-panel-grid--compact .qe-assignment-count {
    font-size: 0.58rem;
    padding-left: 0;
}
.qe-panel-grid--compact .qe-assignment-seq {
    font-size: 0.58rem;
}
.qe-panel-grid--compact .qe-assignment-row {
    margin: 0.08rem 0;
}

/* Question Editor — reorder chapter questions (assignment block) */
.qe-question-row {
    position: relative;
}
.qe-drag-handle-cluster {
    position: relative;
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
    max-width: 100%;
}
.qe-drag-hint-label {
    font-size: 0.72rem;
    line-height: 1.2;
    color: var(--c-muted);
    opacity: 0.75;
    white-space: nowrap;
}
.qe-drag-handle-cluster--hint-dismissed .qe-drag-hint-label {
    display: none;
}
.qe-drag-tooltip-pop {
    position: absolute;
    left: 0;
    top: calc(100% + 4px);
    z-index: 6;
    font-size: 0.72rem;
    line-height: 1.25;
    padding: 0.28rem 0.45rem;
    border-radius: 6px;
    background: var(--c-text, #1f2937);
    color: #fff;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.17s ease;
    white-space: nowrap;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.14);
}
.qe-drag-handle-cluster--hint-dismissed:hover .qe-drag-tooltip-pop,
.qe-drag-handle-cluster--hint-dismissed:focus-within .qe-drag-tooltip-pop {
    opacity: 0.95;
}
.qe-drag-handle-cluster.qe-drag-tooltip--press .qe-drag-tooltip-pop {
    opacity: 0.95;
}
.qe-drag-handle {
    cursor: grab;
    flex-shrink: 0;
    user-select: none;
    font-size: 1rem;
    line-height: 1;
    color: var(--c-subtle);
    padding: .1rem .15rem;
    border-radius: 4px;
}
.qe-drag-handle:hover {
    color: var(--c-primary);
    background: rgba(79, 70, 229, 0.08);
}
.qe-drag-handle:active {
    cursor: grabbing;
}
.qe-question-row--dragging .qe-drag-handle {
    cursor: grabbing;
}
.qe-question-row--dragging > .card {
    opacity: 0.65;
    transform: scale(1.01);
    transition: opacity 0.15s ease, transform 0.15s ease;
}
.qe-question-row--drop-target > .card {
    outline: 2px dashed var(--c-primary);
    outline-offset: 2px;
    background: rgba(79, 70, 229, 0.04);
}

.qe-assignment-btn.qe-assignment-btn--drop-target,
.smb-editor-row-btn.qe-assignment-btn--drop-target {
    outline: 2px dashed var(--c-primary);
    outline-offset: 1px;
    background: rgba(79, 70, 229, 0.08);
}

.qe-assignment-btn {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.2rem;
    width: 100%;
    justify-content: flex-start;
    padding: 0.45rem 0.55rem 0.4rem;
    text-align: left;
}
.qe-assignment-btn-main {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    min-width: 0;
}
.qe-assignment-count {
    font-size: 0.7rem;
    color: var(--c-muted);
    line-height: 1.25;
    padding-left: 0;
    padding-bottom: 0.05rem;
}
.qe-assignment-count--missing {
    color: #b45309;
    font-weight: 600;
}
.qe-assignment-label-wrap {
    display: flex;
    flex-direction: row;
    align-items: baseline;
    gap: 0;
    min-width: 0;
    flex: 1;
}

.qe-assignment-seq {
    flex-shrink: 0;
    margin-left: 0.22em;
    font-variant-numeric: tabular-nums;
    font-size: 0.65rem;
    font-weight: 500;
    line-height: 1.2;
    color: var(--c-muted);
    opacity: 0.92;
}

.qe-assignment-label {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.qe-assignment-btn .qe-delete-assignment {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: auto;
    padding: 0.2rem 0.35rem;
    border-radius: 6px;
    color: var(--c-danger, #b91c1c);
    cursor: pointer;
    line-height: 1;
}
.qe-assignment-btn .qe-delete-assignment:hover {
    background: rgba(185, 28, 28, 0.1);
}
.qe-assignment-btn .qe-delete-assignment:focus-visible {
    outline: 2px solid var(--c-danger, #b91c1c);
    outline-offset: 1px;
}
.qe-assignment-btn .qe-delete-assignment .fa-trash-can {
    font-size: 0.85rem;
}

.qe-remove-question {
    flex-shrink: 0;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    padding: 0.2rem 0.35rem !important;
    min-width: 28px;
    min-height: 28px;
    color: var(--c-danger, #b91c1c) !important;
    border-radius: 6px;
}
.qe-remove-question:hover {
    background: rgba(185, 28, 28, 0.1);
    color: var(--c-danger, #b91c1c) !important;
}
.qe-remove-question:focus-visible {
    outline: 2px solid var(--c-danger, #b91c1c);
    outline-offset: 1px;
}
.qe-remove-question .fa-trash-can {
    font-size: 0.85rem;
}

.qe-assignment-toolbar {
    margin-bottom: 0.45rem;
    display: flex;
    gap: 0.35rem;
}
.qe-assignment-toolbar .btn {
    flex: 1;
    justify-content: center;
    font-size: 0.78rem;
    padding: 0.32rem 0.5rem;
}

.qe-import-dialog {
    width: min(720px, 96vw);
    max-height: 90vh;
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.qe-import-textarea {
    width: 100%;
    min-height: 12rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.78rem;
    line-height: 1.45;
}
.qe-import-mode {
    margin: 0;
    padding: 0;
    border: none;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}
.qe-import-mode-legend {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--c-muted);
    margin-bottom: 0.15rem;
    padding: 0;
}
.qe-import-mode-option {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    font-size: 0.78rem;
    cursor: pointer;
    padding: 0.35rem 0.45rem;
    border-radius: 6px;
    border: 1px solid var(--c-border, rgba(0, 0, 0, 0.12));
}
.qe-import-mode-option:has(input:checked) {
    border-color: var(--c-primary, #6d28d9);
    background: rgba(109, 40, 217, 0.06);
}
.qe-import-mode-option input {
    margin-top: 0.15rem;
    flex-shrink: 0;
}
.qe-import-mode-label {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    line-height: 1.35;
}
.qe-import-mode-hint {
    font-size: 0.7rem;
    color: var(--c-muted);
    font-weight: 400;
}
.qe-import-remove-row {
    display: none;
}
.qe-import-preview {
    font-size: 0.72rem;
    line-height: 1.5;
    white-space: pre-wrap;
    padding: 0.45rem 0.55rem;
    border-radius: 6px;
    background: var(--c-surface-2, rgba(0, 0, 0, 0.04));
    max-height: 10rem;
    overflow: auto;
}
.qe-import-preview--ok {
    color: var(--c-text);
}
.qe-import-preview--error {
    color: var(--c-danger, #b91c1c);
    background: rgba(185, 28, 28, 0.08);
}
.qe-import-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.45rem;
    margin-top: 0.25rem;
}

.book-audit-report-host {
    flex: 1;
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: auto;
    display: flex;
    flex-direction: column;
}

.book-audit-frame {
    flex: 1;
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.book-audit-actions {
    position: sticky;
    top: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .75rem .85rem;
    background: #f4ecd9;
    border-bottom: 1px solid var(--c-border);
}

.book-audit-actions-meta {
    font-size: .8rem;
    color: var(--c-muted);
}

.book-audit-close {
    margin-left: auto;
}

.book-audit-content {
    flex: 1;
    min-height: 0;
    overflow: visible;
    padding: .8rem;
}

.book-audit-report {
    height: auto;
    overflow: visible;
    background: #fff;
    border: 1px solid var(--c-border);
    border-radius: 12px;
    padding: .95rem;
}

.audit-loading,
.audit-empty {
    border: 1px dashed var(--c-border);
    border-radius: 10px;
    background: #fcfbf7;
    color: var(--c-muted);
    text-align: center;
    padding: 1rem;
}

.audit-hero {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: .9rem;
    margin-bottom: .7rem;
}

.audit-eyebrow {
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 700;
    color: var(--c-primary);
}

.audit-hero h2 {
    font-size: 1.2rem;
    font-weight: 800;
    margin: .1rem 0 .2rem;
}

.audit-sub {
    color: var(--c-muted);
    font-size: .84rem;
    max-width: 58ch;
}

.audit-hero-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(74px, 1fr));
    gap: .45rem;
}

.audit-hero-meta > div {
    border: 1px solid var(--c-border);
    border-radius: 10px;
    background: #faf9f6;
    padding: .35rem .45rem;
    text-align: center;
}

.audit-hero-meta strong {
    display: block;
    font-size: 1rem;
    line-height: 1.05;
}

.audit-hero-meta span {
    display: block;
    font-size: .67rem;
    color: var(--c-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
}

.audit-meta-line {
    font-size: .72rem;
    color: var(--c-muted);
    margin-bottom: .55rem;
}

.audit-section {
    border: 1px solid var(--c-border);
    border-radius: 10px;
    background: #fff;
    padding: .65rem;
    margin-bottom: .65rem;
}

.audit-section h3 {
    font-size: .86rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--c-muted);
    margin-bottom: .5rem;
}

.audit-issues-grid {
    display: grid;
    gap: .55rem;
}

.audit-issue-card {
    border: 1px solid var(--c-border);
    border-radius: 10px;
    background: #faf9f6;
    padding: .55rem .6rem;
}

.audit-issue-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: .3rem;
}

.audit-cat {
    font-size: .67rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--c-muted);
    font-weight: 700;
}

.audit-issue-card h4 {
    font-size: .9rem;
    margin-bottom: .2rem;
}

.audit-issue-card p,
.audit-fix,
.audit-ref {
    font-size: .78rem;
    color: var(--c-text);
    line-height: 1.45;
    margin-bottom: .25rem;
}

.audit-ref {
    color: var(--c-muted);
}

.audit-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: .3rem;
}

.audit-nav-btn {
    border: 1px solid var(--c-border);
    border-radius: 8px;
    background: #fff;
    color: var(--c-primary);
    padding: .28rem .5rem;
    font-size: .72rem;
    font-weight: 700;
    cursor: pointer;
}

.audit-nav-btn:hover {
    border-color: var(--c-primary);
}

.audit-ref-link {
    border: none;
    background: transparent;
    color: var(--c-primary);
    font: inherit;
    font-weight: 700;
    text-decoration: underline;
    cursor: pointer;
    padding: 0;
}

.audit-ref-link:hover {
    color: var(--c-primary-h);
}

.audit-table-wrap {
    overflow: auto;
}

.audit-table {
    width: 100%;
    border-collapse: collapse;
}

.audit-table th,
.audit-table td {
    border-bottom: 1px solid #ebe7de;
    text-align: left;
    vertical-align: top;
    font-size: .76rem;
    line-height: 1.4;
    padding: .36rem .42rem;
}

.audit-table th {
    font-size: .66rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--c-muted);
    background: #f8f7f3;
}

.audit-sev {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .04em;
    border-radius: 999px;
    padding: .16rem .42rem;
    border: 1px solid transparent;
}

.audit-sev--critical {
    background: #fee2e2;
    color: #7f1d1d;
    border-color: #fecaca;
}

.audit-sev--high {
    background: #ffedd5;
    color: #9a3412;
    border-color: #fed7aa;
}

.audit-sev--medium {
    background: #fef9c3;
    color: #854d0e;
    border-color: #fde68a;
}

.audit-sev--low {
    background: #dcfce7;
    color: #166534;
    border-color: #bbf7d0;
}

.my-desk-coming-soon {
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: center;
}

.my-desk-coming-soon-inner {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
}

.my-desk-coming-soon-icon {
    font-size: 2.5rem;
    line-height: 1;
    margin-bottom: .25rem;
}

.my-desk-coming-soon-inner h3 {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--c-text);
    margin: 0;
}

.my-desk-coming-soon-inner p {
    font-size: .88rem;
    color: var(--c-muted);
    margin: 0;
}

/* ── Text Dialog (general-purpose modal with full toolbar) ───────────────── */
.text-dialog-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.45);
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.text-dialog {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0,0,0,.18);
    padding: 1.4rem 1.5rem 1.2rem;
    width: 100%;
    max-width: 560px;
    display: flex;
    flex-direction: column;
    gap: .85rem;
    max-height: 90vh;
    overflow-y: auto;
}

.text-dialog-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
}

.text-dialog-question {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--c-text);
    line-height: 1.4;
    flex: 1;
    margin: 0;
}

.text-dialog-close {
    background: none;
    border: none;
    font-size: 2rem;
    line-height: 1;
    color: var(--c-muted);
    cursor: pointer;
    padding: 0;
    width: 2.75rem;
    height: 2.75rem;
    flex-shrink: 0;
    margin: -.35rem -.2rem 0 0;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.text-dialog-close:hover { color: var(--c-text); }

.text-dialog-sub {
    font-size: .8rem;
    color: var(--c-muted);
    margin-top: -.55rem;
}

.text-dialog .qa-answer-area {
    width: 100%;
    min-height: 120px;
    resize: vertical;
    border: 1px solid var(--c-border);
    border-radius: 7px;
    padding: .65rem .75rem;
    font-size: .9rem;
    line-height: 1.6;
    font-family: inherit;
    background: var(--c-bg);
    color: var(--c-text);
    box-sizing: border-box;
}

.text-dialog .qa-answer-area:focus {
    outline: none;
    border-color: var(--c-primary);
    box-shadow: 0 0 0 2px rgba(79,70,229,.12);
}

.textarea-tools-row {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: nowrap;
    padding-top: .65rem;
    border-top: 1px solid var(--c-border);
}

.textarea-tools-edge--start,
.textarea-tools-edge--end {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: .5rem;
}

.textarea-tools-middle {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    justify-content: center;
    align-items: center;
}

/* Equal-width toolbar: Prev | Skip | Talk | I'm Stuck | Refine | Discuss | Undo Refine | Next */
.textarea-tools-row--equal {
    flex-wrap: nowrap;
    gap: .35rem;
    align-items: stretch;
}

.textarea-tools-row--equal .textarea-tools-edge--start,
.textarea-tools-row--equal .textarea-tools-edge--end {
    flex: 1 1 0;
    min-width: 0;
}

.textarea-tools-row--equal .textarea-tools-middle {
    flex: 5 1 0;
    flex-wrap: nowrap;
    justify-content: stretch;
    gap: .35rem;
}

.textarea-tools-row--equal .textarea-tools-middle > *,
.textarea-tools-row--equal .textarea-tools-edge--start > *,
.textarea-tools-row--equal .textarea-tools-edge--end > * {
    flex: 1 1 0;
    min-width: 0;
    width: 100%;
    justify-content: center;
}

.textarea-tools-row--equal .btn-ghostwriter--discuss {
    font-weight: 700;
    color: var(--c-primary);
    border-color: rgba(79, 70, 229, 0.35);
    background: rgba(79, 70, 229, 0.06);
}

.textarea-tools-row--equal .btn-ghostwriter--discuss:hover,
.textarea-tools-row--equal .btn-ghostwriter--discuss:focus-visible {
    background: rgba(79, 70, 229, 0.12);
    border-color: rgba(79, 70, 229, 0.5);
}

.textarea-tools-row--equal .gw-stuck-wrap {
    display: flex;
    min-width: 0;
}

.textarea-tools-row--equal .gw-stuck-wrap > .btn-ghostwriter {
    flex: 1 1 0;
    width: 100%;
}

.textarea-tools-row--equal .qa-chevron-btn {
    width: 100%;
    justify-content: center;
}

.step2-assignments-main .textarea-tools-row--equal {
    display: flex;
    grid-template-areas: none;
}

.text-dialog .textarea-tools-row {
    margin-top: .1rem;
}

/* ── Ana-gap action buttons ─────────────────────────────────────────────── */
.ana-gap-actions {
    display: flex;
    gap: .4rem;
    margin-top: .4rem;
}

.ana-gap-btn {
    font-size: .68rem;
    font-weight: 600;
    padding: .2rem .6rem;
    border-radius: 5px;
    border: 1px solid var(--c-border);
    cursor: pointer;
    background: var(--c-bg);
    color: var(--c-text);
    line-height: 1.5;
    transition: background .12s, border-color .12s;
}

.ana-gap-btn:hover { border-color: var(--c-primary); color: var(--c-primary); }
.ana-gap-btn--answer { border-color: var(--c-primary); color: var(--c-primary); }
.ana-gap-btn--answer:hover { background: rgba(79,70,229,.07); }

.ana-gap-skipped {
    font-size: .73rem;
    color: var(--c-muted);
    font-style: italic;
    margin-top: .3rem;
}

.ana-gap-answered {
    font-size: .78rem;
    color: var(--c-text);
    background: rgba(79,70,229,.06);
    border-left: 2px solid var(--c-primary);
    padding: .3rem .55rem;
    border-radius: 0 4px 4px 0;
    margin-top: .35rem;
    line-height: 1.4;
}

.ana-unskip-btn {
    font-size: .68rem;
    font-weight: 600;
    padding: .15rem .55rem;
    border-radius: 5px;
    border: 1px solid var(--c-border);
    cursor: pointer;
    background: var(--c-bg);
    color: var(--c-muted);
    margin-left: auto;
    transition: border-color .12s, color .12s;
}
.ana-unskip-btn:hover { border-color: var(--c-primary); color: var(--c-primary); }

/* ── Narration Settings Dialog ────────────────────────────────────────── */
.narration-dialog-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(28, 26, 46, .5);
    backdrop-filter: blur(4px);
    z-index: 150;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.narration-dialog-backdrop[hidden] {
    display: none;
}

.narration-dialog {
    background: #fff;
    border-radius: var(--radius-lg);
    max-width: 520px;
    width: 100%;
    max-height: 85vh;
    display: flex;
    flex-direction: column;
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}

.narration-dialog-header {
    padding: 1.5rem 1.75rem;
    border-bottom: 1px solid var(--c-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.narration-clone-btn {
    font-size: .82rem;
    padding: .45rem .9rem;
    white-space: nowrap;
    margin-right: auto;
}

.narration-dialog-header h2 {
    font-size: 1.2rem;
    font-weight: 700;
    margin: 0;
    color: var(--c-text);
}

.narration-dialog-close {
    background: none;
    border: none;
    font-size: 2rem;
    font-weight: 700;
    color: var(--c-muted);
    cursor: pointer;
    padding: .35rem .55rem;
    min-width: 2.75rem;
    min-height: 2.75rem;
    border-radius: 8px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .15s, color .15s;
}

.narration-dialog-close:hover {
    background: #f0ede8;
    color: var(--c-text);
}

.narration-dialog-body {
    padding: 1.5rem 1.75rem;
    overflow-y: auto;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}

.narration-dialog-intro {
    font-size: .95rem;
    line-height: 1.6;
    color: var(--c-muted);
    margin: 0;
}

.narration-setting-group {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.narration-checkbox-label {
    display: flex;
    align-items: center;
    gap: .65rem;
    cursor: pointer;
    font-size: .95rem;
    color: var(--c-text);
    font-weight: 500;
}

.narration-checkbox {
    width: 18px;
    height: 18px;
    cursor: pointer;
    accent-color: var(--c-primary);
}

.narration-voice-section {
    display: flex;
    flex-direction: column;
    gap: .8rem;
    padding: .95rem 1.1rem;
    background: var(--c-bg);
    border-radius: var(--radius);
    border: 1px solid var(--c-border);
}

.narration-voice-section.hidden {
    display: none;
}

.narration-voice-heading {
    font-size: .88rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--c-muted);
    margin: 0;
}

.narration-voice-controls {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .6rem;
    align-items: center;
}

.narration-voice-select {
    padding: .55rem .75rem;
    border: 1.5px solid var(--c-border);
    border-radius: 8px;
    background: #fff;
    font-size: .9rem;
    color: var(--c-text);
    font-family: inherit;
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s;
}

.narration-voice-select:focus {
    outline: none;
    border-color: var(--c-primary);
    box-shadow: 0 0 0 3px rgba(79, 70, 229, .1);
}

.narration-preview-btn {
    white-space: nowrap;
    padding: .45rem 1rem;
    font-size: .82rem;
}

.narration-preview-btn:disabled {
    opacity: .5;
    cursor: not-allowed;
}

.narration-preview-status {
    font-size: .8rem;
    color: var(--c-muted);
    margin: 0;
    min-height: 1.2em;
}

.narration-dialog-actions {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding-top: .5rem;
    border-top: 1px solid var(--c-border);
    margin-top: .5rem;
}

.narration-dialog-actions .btn {
    padding: .5rem 1rem;
    font-size: .88rem;
}

.smb-editor-foot {
    margin-top: 0;
    padding: 0.65rem 0;
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-shrink: 0;
}

/* Content-bank revision history overlay (SMB + Assignment editors) */
.cbr-overlay {
    position: fixed;
    inset: 0;
    z-index: 12000;
    background: rgba(20, 18, 16, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
}
.cbr-modal {
    width: min(1100px, 100%);
    height: min(820px, 100%);
    background: var(--c-surface, #fff);
    border-radius: 10px;
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.28);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.cbr-modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--c-border, #e5e0d8);
}
.cbr-modal-head h3 {
    margin: 0;
    font-size: 1.05rem;
}
.cbr-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 1rem;
    border-bottom: 1px solid var(--c-border, #e5e0d8);
}
.cbr-toolbar-btn {
    padding: 0.28rem 0.65rem;
    font-size: 0.8rem;
}
.cbr-status {
    font-size: 0.78rem;
    color: var(--c-muted);
    margin-left: auto;
}
.cbr-grid {
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(240px, 320px) 1fr;
    gap: 0;
}
.cbr-list {
    overflow: auto;
    padding: 0.5rem;
    border-right: 1px solid var(--c-border, #e5e0d8);
}
.cbr-preview {
    overflow: auto;
    padding: 0.75rem 1rem;
}
.cbr-card {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.35rem 0.45rem;
    align-items: start;
    padding: 0.45rem 0.5rem;
    margin: 0.25rem 0;
}
.cbr-card--selected {
    outline: 2px solid var(--c-accent, #8a6a3a);
}
.cbr-card-check {
    margin: 0.15rem 0 0;
}
.cbr-card-main {
    border: 0;
    background: transparent;
    text-align: left;
    padding: 0;
    cursor: pointer;
    color: inherit;
    font: inherit;
}
.cbr-card-title {
    font-size: 0.82rem;
    font-weight: 600;
}
.cbr-card-meta,
.cbr-card-summary {
    font-size: 0.72rem;
    color: var(--c-muted);
    margin-top: 0.1rem;
}
.cbr-restore-btn {
    padding: 0.2rem 0.45rem;
    font-size: 0.74rem;
}
.cbr-preview-pre {
    margin: 0;
    white-space: pre-wrap;
    word-break: break-word;
    font-size: 0.78rem;
    line-height: 1.45;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
@media (max-width: 720px) {
    .cbr-grid {
        grid-template-columns: 1fr;
    }
    .cbr-list {
        max-height: 40%;
        border-right: 0;
        border-bottom: 1px solid var(--c-border, #e5e0d8);
    }
}

/* Start My Book editor — pin footer; scroll columns independently */
.desk-smb-editor-root {
    flex: 1;
    min-height: 0;
    height: 100%;
}

.desk-smb-editor-root .qe-panel-intro {
    padding: 0.35rem 1rem 0.45rem;
    font-size: 0.78rem;
    line-height: 1.35;
}

.desk-smb-editor-root .qe-panel-grid--resizable {
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

.desk-smb-editor-root #smb-editor-left {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.desk-smb-editor-root #smb-editor-left .qe-assignment-toolbar {
    flex-shrink: 0;
    margin-bottom: 0.35rem;
}

.desk-smb-editor-root #smb-editor-left .smb-editor-list {
    flex: 1 1 0;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    margin-top: 0;
}

.desk-smb-editor-root #smb-editor-right.qe-editor-right-col {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.desk-smb-editor-root #smb-editor-form.qe-chapter-form {
    flex: 1 1 0;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.desk-smb-editor-root .qe-footer-stats {
    flex-shrink: 0;
}

.desk-smb-editor-root .smb-editor-field {
    margin-bottom: 0.42rem;
}

.desk-smb-editor-root .smb-editor-field .qe-right-label {
    margin: 0.08rem 0 0.12rem;
}

.desk-smb-editor-root .smb-editor-field .auth-field {
    margin-bottom: 0;
}

.desk-smb-editor-root .smb-editor-why {
    min-height: 2.25rem;
    resize: vertical;
}

.desk-smb-editor-root .smb-editor-id {
    margin: 0 0 0.35rem;
}

.desk-smb-editor-root .smb-editor-sub-field {
    margin-bottom: 0.4rem;
    padding: 0.4rem 0.45rem;
}

.desk-smb-editor-root .smb-editor-sub-fields {
    gap: 0.22rem;
}

.desk-smb-editor-root .smb-editor-option-row {
    margin-bottom: 0.35rem;
}

.desk-smb-editor-root .qe-panel-grid--resizable {
    grid-template-columns: var(--smb-editor-left-width, 280px) 14px minmax(0, 1fr) !important;
    gap: 0;
}

.qe-panel-root--resizable .qe-panel-grid--resizable,
.my-desk-panel--workspace .qe-panel-root--resizable .qe-panel-grid--resizable {
    grid-template-columns: var(--qe-editor-left-width, 280px) 14px minmax(0, 1fr) !important;
    gap: 0;
}

.desk-workspace-head--with-situation {
    align-items: flex-start;
    gap: 0.55rem;
}

.desk-workspace-head--with-situation .desk-workspace-head-main {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
    flex: 1;
}

body.qe-editor-col-resizing .qe-panel-resize-handle::after {
    background: var(--c-primary);
}

body.outline-col-resizing {
    cursor: col-resize !important;
    user-select: none;
}

body.outline-col-resizing * {
    cursor: col-resize !important;
}

body.qe-editor-col-resizing {
    cursor: col-resize;
    user-select: none;
}

body.qe-editor-col-resizing * {
    cursor: col-resize !important;
}

.qe-panel-resize-handle {
    position: relative;
    align-self: stretch;
    min-height: 0;
    min-width: 14px;
    cursor: col-resize;
    touch-action: none;
    border-radius: 4px;
    z-index: 2;
    background: transparent;
}

.qe-panel-resize-handle::after {
    content: '';
    position: absolute;
    top: 0.5rem;
    bottom: 0.5rem;
    left: 50%;
    width: 4px;
    transform: translateX(-50%);
    background: #b8a888;
    border-radius: 3px;
    transition: background 0.12s, width 0.12s;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.04);
}

.qe-panel-resize-handle::before {
    content: '⋮⋮';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 0.55rem;
    line-height: 0.85;
    letter-spacing: -0.08em;
    color: #8a7d62;
    pointer-events: none;
    opacity: 0.85;
}

.qe-panel-resize-handle:hover::after,
.qe-panel-resize-handle:focus-visible::after,
body.smb-editor-col-resizing .qe-panel-resize-handle::after,
body.qe-editor-col-resizing .qe-panel-resize-handle::after,
body.outline-col-resizing .qe-panel-resize-handle::after {
    background: var(--c-primary);
    width: 5px;
}

.qe-panel-resize-handle:hover::before,
.qe-panel-resize-handle:focus-visible::before,
body.smb-editor-col-resizing .qe-panel-resize-handle::before,
body.qe-editor-col-resizing .qe-panel-resize-handle::before,
body.outline-col-resizing .qe-panel-resize-handle::before {
    color: var(--c-primary);
}

.qe-panel-resize-handle:focus-visible {
    outline: none;
}

body.smb-editor-col-resizing {
    cursor: col-resize !important;
    user-select: none;
}

body.smb-editor-col-resizing * {
    cursor: col-resize !important;
}

.smb-editor-list {
    display: flex;
    flex-direction: column;
    gap: 0.08rem;
    margin-top: 0.5rem;
}

.smb-editor-row {
    display: flex;
    align-items: stretch;
    gap: 0.22rem;
    margin: 0.08rem 0;
}

.smb-editor-row .qe-drag-handle {
    flex: 0 0 auto;
    align-self: center;
    font-size: 0.95rem;
    line-height: 1;
    padding: 0.08rem 0.12rem;
}

.smb-editor-row-btn {
    flex: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.2rem 0.4rem;
    text-align: left;
    border: 1px solid var(--c-border);
    border-radius: 6px;
    background: #fff;
    padding: 0.28rem 0.38rem 0.25rem;
    cursor: pointer;
    font: inherit;
    min-width: 0;
}

.smb-editor-row--active .smb-editor-row-btn {
    border-color: var(--c-primary);
    background: rgba(79, 70, 229, 0.06);
}

/* Match Assignment Editor compact list typography (.qe-panel-grid--compact). */
.smb-editor-row-num {
    font-weight: 700;
    font-size: 0.68rem;
    color: var(--c-primary);
    font-variant-numeric: tabular-nums;
}

.smb-editor-row-text {
    flex: 1;
    font-size: 0.68rem;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.smb-editor-row-type {
    font-size: 0.58rem;
    color: var(--c-muted);
    line-height: 1.25;
}

.desk-smb-editor-root .smb-editor-icon-btn {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    min-width: 0;
    min-height: 0;
    padding: 0;
    margin: 0;
    border: none;
    border-radius: 5px;
    background: transparent;
    color: var(--c-danger, #b91c1c);
    cursor: pointer;
    line-height: 1;
    font: inherit;
    appearance: none;
    -webkit-appearance: none;
    box-shadow: none;
}

.desk-smb-editor-root .smb-editor-icon-btn .fa-trash-can {
    font-size: 0.72rem;
    pointer-events: none;
}

.desk-smb-editor-root .smb-editor-icon-btn:hover {
    background: rgba(185, 28, 28, 0.1);
}

.desk-smb-editor-root .smb-editor-icon-btn:focus-visible {
    outline: 2px solid var(--c-danger, #b91c1c);
    outline-offset: 1px;
}

.smb-editor-delete {
    align-self: center;
}

.smb-editor-field {
    margin-bottom: 0.75rem;
}

.smb-editor-id {
    font-size: 0.75rem;
    color: var(--c-muted);
    margin: 0 0 0.75rem;
}

.smb-editor-option-row {
    display: flex;
    align-items: flex-start;
    gap: 0.35rem;
    margin-bottom: 0.5rem;
}

.smb-editor-option-fields {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.smb-editor-option-fields .auth-field {
    width: 100%;
    box-sizing: border-box;
}

.smb-editor-opt-id-wrap {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
}

.smb-editor-opt-id-label {
    flex: 0 0 auto;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--c-muted);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.smb-editor-opt-id-wrap .smb-editor-opt-value {
    flex: 1;
    min-width: 0;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.8rem;
}

.smb-editor-opt-hint {
    margin: 0.45rem 0 0;
    font-size: 0.75rem;
    line-height: 1.35;
    color: var(--c-muted);
}

.smb-editor-opt-hint code {
    font-size: 0.72rem;
}

.smb-editor-derived-options {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.smb-editor-derived-option {
    display: grid;
    grid-template-columns: minmax(6rem, 0.9fr) minmax(8rem, 1.4fr) auto;
    gap: 0.45rem;
    align-items: center;
    padding: 0.4rem 0.5rem;
    border: 1px solid var(--c-border);
    border-radius: 8px;
    background: #fff;
    font-size: 0.85rem;
}

.smb-editor-derived-option--empty {
    grid-template-columns: 1fr;
    color: var(--c-muted);
}

.smb-editor-derived-id {
    font-size: 0.78rem;
    word-break: break-all;
}

.smb-editor-derived-badge {
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--c-muted);
    border: 1px solid var(--c-border);
    border-radius: 4px;
    padding: 0.05rem 0.3rem;
    justify-self: end;
}

.smb-editor-derived-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.55rem;
}

.smb-editor-opt-remove {
    align-self: flex-start;
    margin-top: 0.35rem;
}

.desk-smb-editor-root .smb-editor-add-option {
    display: inline-flex;
    align-items: center;
    margin-top: 0.3rem;
    padding: 0.1rem 0.34rem;
    font-size: 0.65rem;
    font-weight: 600;
    font-family: inherit;
    color: var(--c-primary);
    background: transparent;
    border: 1px solid rgba(79, 70, 229, 0.45);
    border-radius: 5px;
    cursor: pointer;
    line-height: 1.2;
    appearance: none;
    -webkit-appearance: none;
    box-shadow: none;
}

.desk-smb-editor-root .smb-editor-add-option:hover {
    background: rgba(79, 70, 229, 0.06);
    border-color: var(--c-primary);
}

.smb-editor-sub-field {
    display: flex;
    align-items: flex-start;
    gap: 0.35rem;
    margin-bottom: 0.65rem;
    padding: 0.55rem;
    border: 1px solid var(--c-border);
    border-radius: 8px;
}

.smb-editor-sub-fields {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.smb-editor-sub-fields .auth-field {
    width: 100%;
    box-sizing: border-box;
}

.smb-editor-sub-remove {
    align-self: flex-start;
    margin-top: 0.35rem;
}

.smb-editor-sub-id {
    font-size: 0.72rem;
    color: var(--c-muted);
}

/* Phase 4 — discovery mode banner */
.discovery-mode-banner {
    font-size: 0.88rem;
    color: var(--c-muted);
    margin: 0 0 0.75rem;
    padding: 0.5rem 0.65rem;
    background: var(--c-surface-2, #f0f4f8);
    border-radius: 6px;
}

/* Step 2 — single-column assignments (no left rail) */
.a-main--fill > .step2-single-col,
.a-main--fill > .step4-single-col,
.a-main--fill > .step2-assignments-shell,
.a-main--fill > .step1-align-shell {
    flex: 1 1 0;
    min-height: 0;
    width: 100%;
    max-width: none;
}

/* Write: keep chrome short so the draft column starts higher. */
.step4-single-col > .step-hero {
    flex-shrink: 0;
    margin-bottom: 0.35rem;
    text-align: left;
}
.step4-single-col > .step-hero h1 {
    font-size: 1.35rem;
    margin-bottom: 0.15rem;
    line-height: 1.25;
}
.step4-single-col > .step-hero p {
    font-size: 0.9rem;
    line-height: 1.4;
    max-width: none;
    margin: 0;
}

.step2-single-col {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0 var(--author-page-gutter) 1rem;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.step2-single-col > .discovery-mode-banner,
.step2-single-col > .step-hero,
.step2-single-col > .step2-pace-banner,
.step2-single-col > .step2-nav-scope,
.step2-single-col > .step2-how-it-works-wrap {
    flex-shrink: 0;
}

.step2-how-it-works-wrap {
    margin: 0 0 0.45rem;
    border: 1px solid var(--c-border);
    border-radius: 8px;
    background: var(--c-surface);
    overflow: hidden;
}

.step2-how-it-works-toggle {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    width: 100%;
    border: none;
    background: transparent;
    padding: 0.45rem 0.65rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--c-text);
    cursor: pointer;
    text-align: left;
}

.step2-how-it-works-caret {
    display: inline-block;
    width: 0.45rem;
    height: 0.45rem;
    border-right: 2px solid var(--c-muted);
    border-bottom: 2px solid var(--c-muted);
    transform: rotate(45deg);
    transition: transform 0.15s ease;
    margin-top: -0.15rem;
}

.step2-how-it-works-wrap:not(.step2-how-it-works-wrap--collapsed) .step2-how-it-works-caret {
    transform: rotate(-135deg);
    margin-top: 0.15rem;
}

.step2-how-it-works-wrap--collapsed .step2-how-it-works-body,
.step2-how-it-works-wrap--collapsed #step2-how-it-works-body {
    display: none !important;
}

.step2-how-it-works-body {
    padding: 0 0.65rem 0.55rem;
    border-top: 1px solid var(--c-border);
}

.step2-how-it-works-lede {
    margin: 0.45rem 0 0.4rem;
    font-size: 0.8rem;
    line-height: 1.4;
    color: var(--c-text);
}

.step2-how-it-works-note {
    margin: 0.35rem 0 0;
    font-size: 0.78rem;
    line-height: 1.45;
    color: var(--c-muted);
}

.step2-how-it-works-steps {
    margin: 0;
    padding-left: 1rem;
    font-size: 0.76rem;
    line-height: 1.4;
    color: var(--c-muted);
}

.step2-how-it-works-steps li + li {
    margin-top: 0.2rem;
}

.step2-assignment-context {
    flex-shrink: 0;
    margin: 0 0 0.35rem;
    padding: 0.3rem 0.5rem;
    background: rgba(0, 0, 0, 0.02);
    border-left: 3px solid var(--c-primary);
    border-radius: 0 4px 4px 0;
}

.step2-assignment-context--book {
    border-left-color: rgba(79, 70, 229, 0.45);
}

.step2-assignment-context-trail {
    margin: 0;
    font-size: 0.76rem;
    line-height: 1.35;
    color: var(--c-text);
}

.step2-assignment-context-arrow {
    margin: 0 0.35rem;
    color: var(--c-muted);
    font-size: 0.75rem;
}

.step2-assignment-context-seg--current {
    font-weight: 700;
}

.step2-assignment-context-lede {
    margin: 0;
    font-size: 0.78rem;
    color: var(--c-muted);
    line-height: 1.4;
}

.workspace-draft-panel--preview {
    border: 1px dashed rgba(79, 70, 229, 0.35);
    border-radius: 10px;
    padding: 0.85rem 1rem 1rem;
    background: rgba(79, 70, 229, 0.02);
}

/* Preview scene — fill split column and scroll vertically (like chapter draft panel) */
.step2-assignments-main .workspace-session-col > .workspace-lens-body:has(> .workspace-draft-panel--preview) {
    display: flex;
    flex-direction: column;
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    overflow: hidden;
    padding: 0.35rem 0 calc(var(--step2-tools-bar-h) + 0.65rem);
}

.step2-assignments-main .workspace-session-col > .workspace-lens-body > .workspace-draft-panel--preview {
    flex: 1 1 0;
    min-height: 0;
    max-height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.workspace-draft-panel--preview .workspace-draft-body {
    max-height: none;
    overflow-y: visible;
}

.workspace-draft-preview-banner {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    margin: 0 0 0.85rem;
    padding: 0.55rem 0.7rem;
    border-radius: 8px;
    background: rgba(79, 70, 229, 0.08);
    border: 1px solid rgba(79, 70, 229, 0.16);
    font-size: 0.8rem;
    line-height: 1.4;
    color: var(--c-text);
}

.workspace-draft-preview-banner strong {
    font-size: 0.72rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--c-primary);
}

.workspace-lens-intro {
    margin: 0 0 0.85rem;
    padding: 0.55rem 0.7rem;
    border-radius: 8px;
    background: rgba(79, 70, 229, 0.06);
    border: 1px solid rgba(79, 70, 229, 0.12);
    font-size: 0.82rem;
    line-height: 1.45;
    color: var(--c-text);
}

.workspace-lens-intro p {
    margin: 0;
}

.workspace-review-gap-row {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
}

.workspace-review-gap-copy {
    line-height: 1.45;
}

.workspace-review-next-steps {
    margin: 0.75rem 0 0;
    font-size: 0.82rem;
    line-height: 1.45;
    color: var(--c-muted);
}

.workspace-review-list--gaps {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.step2-pace-banner {
    font-size: 0.82rem;
    color: var(--c-muted);
    margin: 0 0 0.45rem;
    line-height: 1.4;
}

.step2-pace-line {
    margin: 0;
}

.step2-pace-edit-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    margin: 0 0.15rem 0 0.2rem;
    padding: 0;
    vertical-align: middle;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: var(--c-muted);
    cursor: pointer;
    line-height: 1;
}

.step2-pace-edit-btn .fa-pen {
    font-size: 0.72rem;
}

.step2-pace-edit-btn:hover,
.step2-pace-edit-btn:focus-visible {
    color: var(--c-primary, #5b4fcf);
    background: rgba(91, 79, 207, 0.08);
    outline: none;
}

.step2-assignments-main {
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
}

.step2-assignments-main.step2-assignments-shell {
    flex: 1 1 0;
    min-height: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
}

.a-main--fill > .discovery-mode-banner,
.a-main--fill > .step2-chrome-meta {
    flex-shrink: 0;
    padding: 0 var(--author-page-gutter);
}

.a-main--fill > .discovery-mode-banner {
    margin-top: 0.35rem;
}

.a-main--fill > .step2-chrome-meta {
    margin-bottom: 0.15rem;
}

#assignments-right-col.step2-assignments-main > .workspace-shell {
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
}

.step2-assignments-main .outline-qa-panel:not(.outline-qa-panel--discuss) {
    flex: 1 1 0;
    min-height: 0;
    overflow-y: auto;
    padding-bottom: calc(var(--step2-tools-bar-h) + 1.25rem);
}

/* Questions lens in session column — tools bar is in-flow at column bottom, not viewport-fixed */
.step2-assignments-main .workspace-session-col .outline-qa-panel:not(.outline-qa-panel--discuss) {
    overflow: hidden;
    padding-bottom: 0;
}

.step2-assignments-main .outline-qa-panel {
    flex: 1 1 0;
    min-height: 0;
}

.step2-assignments-main .qa-question {
    margin-top: 0.35rem;
    margin-bottom: 0.35rem;
    font-size: 1.05rem;
    line-height: 1.32;
}

.step2-assignments-main .outline-qa-panel .qa-answer-area {
    min-height: 96px;
}

@media (max-height: 860px) {
    .step2-nav-scope-head .step2-nav-hint {
        display: none;
    }

    .workspace-lens-nav-head .step2-nav-hint {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .step2-single-col {
        padding-bottom: 0.5rem;
    }

    .step2-how-it-works-wrap {
        margin-bottom: 0.35rem;
    }

    .step2-assignment-instructions-toggle {
        font-size: 0.82rem;
    }
}

/* Step 2 — action bar (Prev / Refine / I'm Stuck / Next) docks to workspace-session-col bottom */
.step2-assignments-main .workspace-session-col .textarea-tools-row {
    position: static;
    flex: 0 0 auto;
    z-index: 1;
    margin: 0;
    padding: 0.4rem 0;
    border-top: 1px solid var(--c-border);
    background: var(--c-surface);
    box-shadow: none;
}

/* Questions lens — fill session column; answer scrolls above in-column tools bar */
.step2-assignments-main .workspace-session-col > .workspace-lens-body:has(.outline-qa-panel--questions) {
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0.35rem 0 0;
}

.step2-assignments-main .workspace-session-col .outline-qa-panel--questions {
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0;
}

.step2-assignments-main .workspace-session-col .outline-qa-panel--questions .qa-question,
.step2-assignments-main .workspace-session-col .outline-qa-panel--questions .chq-question-na-row,
.step2-assignments-main .workspace-session-col .outline-qa-panel--questions .qa-save-status,
.step2-assignments-main .workspace-session-col .outline-qa-panel--questions .outline-qa-header,
.step2-assignments-main .workspace-session-col .outline-qa-panel--questions #align-controls-anchor {
    flex-shrink: 0;
}

.step2-assignments-main .workspace-session-col .outline-qa-panel--questions .textarea-tools-wrap {
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.step2-assignments-main .workspace-session-col .outline-qa-panel--questions .textarea-tools-ta-wrap {
    flex: 1 1 0;
    min-height: 0;
    overflow-y: auto;
}

/* Questions toolbar — always one row; compact sizing scales with session column width */
.step2-assignments-main .workspace-session-col .textarea-tools-row--equal {
    flex-wrap: nowrap;
    gap: 0.2rem;
    min-width: 0;
}

.step2-assignments-main .workspace-session-col .textarea-tools-row--equal .textarea-tools-edge--start,
.step2-assignments-main .workspace-session-col .textarea-tools-row--equal .textarea-tools-edge--end,
.step2-assignments-main .workspace-session-col .textarea-tools-row--equal .textarea-tools-middle {
    flex-wrap: nowrap;
    min-width: 0;
    gap: 0.2rem;
}

.step2-assignments-main .workspace-session-col .textarea-tools-row--equal .btn-ghostwriter,
.step2-assignments-main .workspace-session-col .textarea-tools-row--equal .qa-chevron-btn,
.step2-assignments-main .workspace-session-col .textarea-tools-row--equal .qa-undo-btn {
    font-size: clamp(0.7rem, 1.2vw, 0.86rem);
    padding: 0.1rem clamp(0.16rem, 0.4vw, 0.28rem);
    min-height: 1.38rem;
    line-height: 1.2;
}

.step2-assignments-main .workspace-session-col .textarea-tools-row--equal .qa-chevron {
    font-size: 1rem;
}

.step2-assignments-main .workspace-session-col .textarea-tools-row--equal .qa-chevron-label {
    font-size: clamp(0.7rem, 1.12vw, 0.82rem);
}

@container workspace-session (max-width: 36rem) {
    .step2-assignments-main .workspace-session-col .textarea-tools-row--equal .qa-chevron-label {
        display: none;
    }

    .step2-assignments-main .workspace-session-col .textarea-tools-row--equal .qa-chevron-btn {
        padding-inline: 0.22rem;
    }
}

.step2-assignments-main .outline-right-empty {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    text-align: center;
    color: var(--c-muted);
}

.step2-qa-header {
    align-items: center;
}

.step2-assignment-select {
    font-weight: 700;
    color: var(--c-text);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.78rem;
}

.step2-assignment-instructions-wrap {
    margin-bottom: 0.45rem;
    background: var(--c-chrome-surface);
    border: 1px solid var(--c-chrome-border);
    border-radius: var(--radius);
    overflow: hidden;
}

.step2-assignment-instructions-toggle {
    display: flex;
    align-items: flex-start;
    gap: 0.35rem;
    width: 100%;
    padding: 0.4rem 0.65rem;
    border: none;
    background: transparent;
    font: inherit;
    font-size: 0.88rem;
    color: var(--c-text);
    text-align: left;
    cursor: pointer;
}

.step2-assignment-instructions-toggle:hover {
    background: rgba(15, 23, 42, 0.05);
}

.step2-assignment-instructions-toggle:focus-visible {
    outline: 2px solid var(--c-border);
    outline-offset: -2px;
}

.step2-assignment-instructions-caret {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1rem;
    flex-shrink: 0;
    font-size: 0.95rem;
    line-height: 1;
    color: var(--c-muted);
}

.step2-assignment-instructions-caret::before {
    content: '▾';
    display: block;
    transition: transform 0.15s ease;
}

.step2-assignment-instructions-wrap--collapsed .step2-assignment-instructions-caret::before {
    transform: rotate(-90deg);
}

.step2-assignment-instructions-inline {
    flex: 1;
    min-width: 0;
    line-height: 1.45;
}

.step2-assignment-instructions-prefix {
    font-weight: 700;
    color: var(--c-text);
    margin-right: 0.25rem;
}

.step2-assignment-instructions-wrap--collapsed .step2-assignment-instructions-text {
    display: none;
}

.step2-assignment-instructions-text {
    font-size: 0.88rem;
    font-weight: 400;
    line-height: 1.45;
    color: var(--c-text);
}
.desk-discovery-fields {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    max-width: 28rem;
}
.desk-discovery-fields .auth-field-label {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.85rem;
}

/* Phase 2 — assignment workflow + review */
.assignment-wf-badge {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 600;
    padding: 0.1rem 0.45rem;
    border-radius: 4px;
    margin-left: 0.35rem;
    vertical-align: middle;
    background: var(--c-surface-2, #eef1f4);
    color: var(--c-muted);
}
.assignment-wf-badge--reviewAddressed {
    background: #e8f5e9;
    color: #2e7d32;
}
.assignment-wf-badge--inProgress {
    background: #e3f2fd;
    color: #1565c0;
}
.assignment-wf-badge--locked {
    background: #f5f5f5;
    color: #757575;
}
.assignment-review-cta-wrap {
    margin-top: 0.75rem;
}

.assignment-review-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .45);
    z-index: 1300;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.assignment-review-dialog {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, .18);
    width: 100%;
    max-width: 42rem;
    min-height: min(18rem, calc(100dvh - 4rem));
    max-height: min(90vh, calc(100dvh - 2rem));
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.assignment-review-dialog-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    padding: 1.1rem 1.25rem .65rem;
    flex-shrink: 0;
    border-bottom: 1px solid var(--c-border);
}

.assignment-review-dialog-head-copy {
    flex: 1 1 auto;
    min-width: 0;
}

.assignment-review-dialog-body {
    padding: 0;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 12rem;
    overflow: hidden;
}

.assignment-review-dialog-body--loading {
    align-items: center;
    justify-content: center;
}

.assignment-review-loading {
    padding: 2.5rem 1.5rem;
}

.assignment-review-loading .spinner {
    width: 2.5rem;
    height: 2.5rem;
    border-width: 3px;
}

.assignment-review-dialog-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 1rem 1.25rem 0.5rem;
}

.assignment-review-error {
    margin: 1rem 1.25rem;
    font-size: 0.88rem;
    color: var(--c-danger);
}

.assignment-review-dialog-close {
    background: none;
    border: none;
    font-size: 2rem;
    line-height: 1;
    color: var(--c-muted);
    cursor: pointer;
    padding: 0;
    width: 2.75rem;
    height: 2.75rem;
    flex-shrink: 0;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.assignment-review-dialog-close:hover {
    color: var(--c-text);
}

.assignment-review-panel {
    padding: 0.25rem 0;
}
.assignment-review-title {
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 0.35rem;
}
.assignment-review-hint {
    font-size: 0.85rem;
    color: var(--c-muted);
    margin: 0.35rem 0 0;
    line-height: 1.45;
}
.review-material-row {
    border: 1px solid var(--c-border, #dde3ea);
    border-radius: 8px;
    padding: 0.75rem;
    margin-bottom: 0.65rem;
}

.review-material-row-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.55rem;
    margin-bottom: 0.45rem;
}

.review-material-q {
    font-weight: 600;
    font-size: 0.88rem;
    margin: 0;
    flex: 1 1 auto;
    min-width: 0;
}

.review-goto-question {
    flex-shrink: 0;
    white-space: nowrap;
}

.review-grade-readonly {
    margin: 0 0 0.5rem;
    font-size: 0.82rem;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem 0.5rem;
}

.review-grade-label-text {
    color: var(--c-muted);
    font-weight: 600;
}

.review-grade-badge {
    display: inline-block;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 0.12rem 0.5rem;
    border-radius: 4px;
    background: var(--c-surface-2, #eef1f4);
    color: var(--c-text);
}

.review-grade-badge--excellent {
    background: #e8f5e9;
    color: #2e7d32;
}

.review-grade-badge--good {
    background: #e3f2fd;
    color: #1565c0;
}

.review-grade-badge--needs_attention {
    background: #fff3e0;
    color: #e65100;
}

.review-grade-badge--missing_info {
    background: #fce4ec;
    color: #c62828;
}

.review-grade-badge--not_applicable {
    background: #eceff1;
    color: #546e7a;
}

.review-na-note {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--c-muted);
}

.review-feedback-block.hidden {
    display: none;
}

.review-material-issues {
    margin: 0.35rem 0 0;
    padding: 0 0 0 1.1rem;
    list-style: disc;
    font-size: 0.82rem;
    line-height: 1.45;
    color: var(--c-text);
}

.review-material-issues li + li {
    margin-top: 0.35rem;
}

.review-issue-summary {
    display: block;
    font-weight: 600;
}

.review-issue-suggestion {
    display: block;
    margin-top: 0.12rem;
    color: var(--c-muted);
    font-weight: 500;
}

.review-feedback-block .review-feedback-addressed-label {
    margin-top: 0.5rem;
}

.review-feedback-addressed-label {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.82rem;
    font-weight: 600;
    margin: 0;
    cursor: pointer;
}

.review-feedback-addressed-label input {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
}

.review-material-row--addressed {
    border-color: #c8e6c9;
    background: #f9fdf9;
}
.review-followups {
    font-size: 0.82rem;
    margin: 0.75rem 0;
    color: var(--c-muted);
}
.assignment-review-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0;
    padding: 0.85rem 1.25rem 1rem;
    flex-shrink: 0;
    border-top: 1px solid var(--c-border);
    background: var(--c-surface);
}

/* ── Unified Author Workspace (Phase 1) ─────────────────────────────────────── */

/* Fill-layout steps (2–4): compact chrome — target ~300px above workspace body */
.a-wrap:has(.a-main--fill) .a-topbar {
    padding: 0.35rem var(--author-page-gutter);
    min-height: 0;
}

.a-wrap:has(.a-main--fill) .a-topbar img {
    width: 28px;
    height: 28px;
}

.a-wrap:has(.a-main--fill) .a-logo {
    font-size: 1.05rem;
}

.a-wrap:has(.a-main--fill) #user-email {
    display: none;
}

.a-wrap:has(.a-main--fill) .a-send-feedback {
    height: 32px;
    padding: 0 0.65rem;
    font-size: 0.75rem;
}

.a-wrap:has(.a-main--fill) .steps-row {
    padding: 0.4rem var(--author-page-gutter) 0.35rem;
}

.a-wrap:has(.a-main--fill) .step-item {
    gap: 0.15rem;
}

.a-wrap:has(.a-main--fill) .step-circle {
    width: 28px;
    height: 28px;
    font-size: 0.75rem;
    border-width: 2px;
}

.a-wrap:has(.a-main--fill) .step-item.active .step-circle {
    box-shadow: 0 0 0 3px rgba(28, 26, 46, 0.1);
}

.a-wrap:has(.a-main--fill) .step-connector {
    width: 36px;
    margin-bottom: 14px;
}

.a-wrap:has(.a-main--fill) .step-label {
    font-size: 0.62rem;
}

.a-main--fill .step2-single-col {
    padding-bottom: 0.65rem;
    gap: 0.2rem;
}

.a-main--fill .step2-chrome-meta {
    margin-bottom: 0.25rem;
}

.a-main--fill .step2-chrome-meta-pace .step2-pace-banner {
    font-size: 0.76rem;
    line-height: 1.25;
}

.a-main--fill .step2-chrome-meta .btn-link.btn-sm {
    font-size: 0.78rem;
    padding-top: 0.1rem;
    padding-bottom: 0.1rem;
}

.a-main--fill .step2-assignments-main .workspace-shell {
    padding-top: 0;
    gap: 0;
}

.a-main--fill .workspace-session-col > .workspace-lens-nav--assignment .workspace-lens-nav-head {
    display: none;
}

.a-main--fill .workspace-mode-bar--lens .workspace-mode-tab--pill {
    padding: 0.28rem 0.5rem;
    font-size: 0.72rem;
    gap: 0.26rem;
}

.a-main--fill .workspace-mode-tab-group {
    padding: 0.12rem;
}

.a-main--fill .workspace-assignment-chrome {
    gap: 0.1rem;
    padding-bottom: 0.1rem;
}

.a-main--fill .workspace-assignment-progress .workspace-coverage-seg-label {
    font-size: 0.56rem;
}

.a-main--fill .step2-single-col > .step-hero {
    flex-shrink: 0;
    margin-bottom: 0.75rem;
}

.a-main--fill > .step-action-shell {
    padding: 0.45rem var(--author-page-gutter);
}

.a-main--fill .step-run-card {
    padding: 0.45rem 0.65rem;
}

.step2-assignments-main .workspace-shell {
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0;
    gap: 0;
}

.step2-assignments-main .workspace-session-col > .workspace-mode-bar,
.step2-assignments-main .workspace-session-col > .workspace-lens-nav,
.step2-assignments-main .workspace-session-col > .step2-assignment-context,
.step2-assignments-main .workspace-session-col > #workspace-talk-onboarding,
.step2-assignments-main .workspace-session-col > .workspace-assignment-chrome,
.step2-assignments-main .workspace-session-col > .workspace-session-meta {
    flex-shrink: 0;
}

.workspace-assignment-chrome {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding-bottom: 0.2rem;
}

.workspace-assignment-instructions-chrome .step2-assignment-instructions-wrap {
    margin-bottom: 0;
}

.workspace-ready-cards-chrome:empty {
    display: none;
}

.workspace-assignment-chrome .workspace-ready-cards {
    margin-top: 0.15rem;
    margin-bottom: 0.35rem;
    padding-bottom: 0.45rem;
}

.workspace-focus-hint-slot:not([hidden]) {
    display: block;
}

.workspace-focus-hint {
    padding: 0.28rem 0.55rem;
    border-radius: 6px;
    background: var(--c-chrome-surface);
    border: 1px solid var(--c-chrome-border);
}

.workspace-focus-hint-text {
    margin: 0;
    font-size: 0.72rem;
    line-height: 1.3;
    color: var(--c-muted);
    font-weight: 500;
}

.workspace-focus-hint-text strong {
    color: var(--c-text);
    font-weight: 600;
}

.workspace-focus-hint-arc {
    display: inline;
    color: var(--c-muted);
}

.workspace-coverage-complete-note {
    margin: 0.2rem 0 0;
    font-size: 0.72rem;
    line-height: 1.35;
    color: var(--c-muted);
}

.workspace-coverage--complete .workspace-coverage-count {
    font-weight: 600;
}

.workspace-discuss-gap-banner-label {
    margin: 0 0 0.2rem;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #b45309;
}

.workspace-discuss-gap-banner--reflection {
    background: linear-gradient(180deg, rgba(239, 246, 255, 0.95) 0%, rgba(219, 234, 254, 0.55) 100%);
    border-color: rgba(37, 99, 235, 0.22);
}

.workspace-discuss-gap-banner--reflection .workspace-discuss-gap-banner-label {
    color: #1d4ed8;
}

.workspace-discuss-gap-banner--coach {
    background: linear-gradient(180deg, rgba(240, 253, 244, 0.95) 0%, rgba(220, 252, 231, 0.55) 100%);
    border-color: rgba(22, 163, 74, 0.22);
}

.workspace-discuss-gap-banner--coach .workspace-discuss-gap-banner-label {
    color: #15803d;
}

.workspace-discuss-gap-banner--contrast {
    background: linear-gradient(180deg, rgba(255, 251, 235, 0.95) 0%, rgba(254, 243, 199, 0.55) 100%);
    border-color: rgba(217, 119, 6, 0.22);
}

.workspace-discuss-gap-banner--contrast .workspace-discuss-gap-banner-label {
    color: #b45309;
}

.workspace-discuss-gap-banner--progress {
    background: linear-gradient(180deg, rgba(245, 243, 255, 0.95) 0%, rgba(237, 233, 254, 0.55) 100%);
    border-color: rgba(109, 40, 217, 0.22);
}

.workspace-discuss-gap-banner--progress .workspace-discuss-gap-banner-label {
    color: #6d28d9;
}

.workspace-discuss-gap-banner--audience {
    background: linear-gradient(180deg, rgba(239, 246, 255, 0.95) 0%, rgba(219, 234, 254, 0.55) 100%);
    border-color: rgba(37, 99, 235, 0.22);
}

.workspace-discuss-gap-banner--followups {
    background: linear-gradient(180deg, rgba(255, 251, 235, 0.95) 0%, rgba(254, 243, 199, 0.45) 100%);
    border-color: rgba(180, 83, 9, 0.2);
}

.workspace-discuss-gap-banner--followups .workspace-discuss-gap-banner-label {
    color: #b45309;
}

.workspace-discuss-gap-followups-btn {
    padding: 0;
    font-size: 0.78rem;
}

.workspace-discuss-gap-dismiss {
    padding: 0;
    font-size: 0.78rem;
}

.workspace-assignment-nav--compact {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    gap: 0.35rem;
    align-items: center;
    margin-bottom: 0;
}

.workspace-assignment-nav-assign-row {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    min-width: 0;
}

.workspace-assignment-nav-assign-row > .qa-progress,
.workspace-assignment-nav-assign-row > div.cust-select.qa-progress {
    flex: 1 1 auto;
    min-width: 0;
}

.workspace-assignment-nav--compact .qa-progress,
.workspace-assignment-nav--compact div.cust-select.qa-progress {
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.18rem 0.45rem;
    margin-bottom: 0;
    min-height: 1.65rem;
    border-radius: 5px;
}

.workspace-assignment-nav--compact .step2-assignment-select,
.workspace-assignment-nav--compact .step2-assignment-select .cust-select-label {
    font-size: 0.68rem;
    letter-spacing: 0.03em;
}

.workspace-assignment-progress-pie-slot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-width: 1.35rem;
    min-height: 1.35rem;
}

.workspace-assignment-progress-pie-slot:empty {
    display: none;
}

.assignment-progress-pie {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    --pie-pct: 0;
    --pie-fill: #16a34a;
    --pie-track: #e5e7eb;
    --pie-ring: #16a34a;
}

.assignment-progress-pie-visual {
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 50%;
    background:
        radial-gradient(circle closest-side, #fff 58%, transparent 59%),
        conic-gradient(var(--pie-fill) calc(var(--pie-pct) * 1%), var(--pie-track) 0);
    box-shadow: inset 0 0 0 1.5px var(--pie-ring);
}

.assignment-progress-pie--complete .assignment-progress-pie-visual {
    --pie-fill: #15803d;
    --pie-ring: #15803d;
}

.assignment-progress-pie--pulse .assignment-progress-pie-visual {
    animation: assignment-progress-pie-pulse 0.55s ease-in-out 2;
}

@keyframes assignment-progress-pie-pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.12); }
}

.align-progress-pie-row {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.1rem 0;
    flex-wrap: wrap;
}

.align-progress-edit-answers {
    margin-left: auto;
    padding: 0.15rem 0.35rem;
    font-size: 0.78rem;
    font-weight: 650;
    color: var(--c-primary);
    text-decoration: none;
    white-space: nowrap;
}

.align-progress-edit-answers:hover,
.align-progress-edit-answers:focus-visible {
    text-decoration: underline;
    color: var(--c-primary-h);
}

.align-progress-qmeta,
.mobile-studio-talk-focus-qmeta {
    font-size: 0.72rem;
    font-weight: 650;
    letter-spacing: 0.02em;
    color: var(--c-muted, #64748b);
    white-space: nowrap;
}

.workspace-lens-nav-toolbar-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.45rem;
    min-width: 0;
}

.cust-select-option--disabled {
    opacity: 0.55;
    cursor: not-allowed;
    font-style: italic;
}

.workspace-assignment-progress .workspace-coverage {
    margin-bottom: 0;
}

.workspace-coverage--compact .workspace-coverage-compact-main {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
}

.workspace-coverage--compact .workspace-coverage-compact-track {
    flex: 1 1 auto;
    min-width: 0;
}

.workspace-coverage--compact .workspace-coverage-track {
    height: auto;
    min-height: 1.35rem;
    overflow: visible;
    background: transparent;
    gap: 3px;
}

.workspace-coverage--compact .workspace-coverage-seg {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 1.35rem;
    padding: 0.12rem 0.2rem;
    border-radius: 4px;
}

.workspace-coverage--compact .workspace-coverage-seg-label {
    font-size: 0.58rem;
    font-weight: 600;
    line-height: 1.1;
    text-align: center;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
    pointer-events: none;
}

.workspace-coverage--compact .workspace-coverage-seg--complete {
    background: rgba(5, 150, 105, 0.2);
    gap: 0.18rem;
}

.workspace-coverage--compact .workspace-coverage-seg--complete::before {
    content: '';
    display: block;
    flex-shrink: 0;
    width: 0.38rem;
    height: 0.22rem;
    border-left: 1.5px solid var(--c-text);
    border-bottom: 1.5px solid var(--c-text);
    transform: rotate(-45deg) translate(0, -0.5px);
}

.workspace-coverage--compact .workspace-coverage-seg--complete .workspace-coverage-seg-label {
    color: rgb(4, 95, 65);
}

.workspace-coverage--compact .workspace-coverage-seg--partial {
    background: var(--c-progress-partial);
}

.workspace-coverage--compact .workspace-coverage-seg--partial .workspace-coverage-seg-label {
    color: var(--c-progress-partial-text);
}

.workspace-coverage--compact .workspace-coverage-seg--open {
    background: rgba(148, 163, 184, 0.14);
}

.workspace-coverage--compact .workspace-coverage-seg--open .workspace-coverage-seg-label {
    color: var(--c-muted);
}

.workspace-coverage--compact .workspace-coverage-seg--na {
    background: rgba(148, 163, 184, 0.1);
}

.workspace-coverage--compact .workspace-coverage-count {
    flex: 0 0 auto;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--c-muted);
    line-height: 1.2;
    padding-top: 0.35rem;
    white-space: nowrap;
}

.workspace-assignment-progress .workspace-coverage-head {
    margin-bottom: 0.15rem;
}

.step2-assignments-main .workspace-shell--unified > .workspace-split {
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    display: flex;
    align-items: stretch;
    overflow: hidden;
    position: relative;
    padding-left: var(--author-page-gutter);
    --workspace-capture-sidebar-pad-top: 0;
    --workspace-capture-headbar-pad-top: 0;
    --workspace-capture-headbar-offset: 0.55rem;
}

.step2-assignments-shell .workspace-shell--unified {
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    background: transparent;
}

.step2-assignments-shell .workspace-session-col {
    flex: 1 1 0;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    position: relative;
    padding-right: var(--author-page-gutter);
    container-type: inline-size;
    container-name: workspace-session;
}

.step2-assignments-shell .workspace-session-meta {
    flex: 0 0 auto;
    padding: 0.15rem 0 0;
    margin: 0;
    background: var(--c-surface);
}

.step2-assignments-shell .workspace-session-meta .step2-pace-banner {
    margin: 0;
    font-size: 0.76rem;
    line-height: 1.25;
    color: var(--c-muted);
}

.step2-assignments-shell .workspace-session-meta + .workspace-lens-nav--assignment {
    padding-top: 0.15rem;
}

.step2-assignments-shell .workspace-session-col > .workspace-lens-nav--assignment {
    flex-shrink: 0;
    padding: 0.35rem 0 0.15rem;
    border-bottom: 1px solid var(--c-border);
    background: var(--c-surface);
}

.step2-assignments-shell .workspace-session-col > .workspace-assignment-chrome {
    flex-shrink: 0;
    padding: 0.4rem 0 0.3rem;
    background: var(--c-surface);
    border-bottom: 1px solid var(--c-border);
}

.step2-assignments-shell .workspace-split--capture-first {
    align-items: stretch;
}

.step2-assignments-shell .workspace-split--capture-first .workspace-capture-sidebar {
    background: var(--c-surface);
    border-right: 1px solid var(--c-border);
    padding: 0;
    align-self: stretch;
    height: 100%;
    min-height: 0;
}

.step2-assignments-shell .workspace-remembers-headbar--sidebar {
    padding: .55rem 1.25rem .45rem;
    border-bottom: 1px solid var(--c-border);
    background: var(--c-surface);
}

.step2-assignments-shell .workspace-remembers-headbar--sidebar .workspace-remembers-title {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--c-muted);
}

.workspace-remembers-headbar--capture-tabs {
    flex-direction: column;
    align-items: stretch;
    gap: .35rem;
}

.workspace-capture-headbar-top {
    display: flex;
    align-items: center;
    gap: .35rem;
    min-width: 0;
}

.workspace-capture-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    align-items: center;
}

.workspace-capture-tab {
    appearance: none;
    border: 1px solid transparent;
    border-radius: 999px;
    background: transparent;
    color: var(--c-muted);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: .28rem .65rem;
    cursor: pointer;
}

.workspace-capture-tab--active {
    color: var(--c-text);
    background: rgba(79, 70, 229, .1);
    border-color: rgba(79, 70, 229, .18);
}

.workspace-capture-tab-count {
    font-weight: 700;
    color: var(--c-accent, #4f46e5);
}

.workspace-capture-tab-ok {
    font-weight: 700;
    color: var(--c-success, #15803d);
}

.workspace-capture-tab-needs {
    font-weight: 700;
    color: var(--c-warning, #ca8a04);
}

.workspace-followups-empty--none-required .workspace-followups-empty-title {
    color: var(--c-success, #15803d);
}

.workspace-followups-empty--may-dig .workspace-followups-empty-title {
    color: var(--c-warning, #ca8a04);
}

.workspace-capture-panes {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    min-height: 0;
}

.workspace-capture-pane {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    min-height: 0;
}

.workspace-capture-pane[hidden] {
    display: none !important;
}

.workspace-followups-scroll {
    padding: .65rem 1rem 1rem;
}

.workspace-followups-empty {
    padding: .5rem 0;
}

.workspace-followups-empty-title {
    font-size: .92rem;
    font-weight: 600;
    margin: 0 0 .35rem;
}

.workspace-followups-empty-copy {
    font-size: .82rem;
    color: var(--c-muted);
    margin: 0;
    line-height: 1.45;
}

.workspace-followups-elsewhere {
    font-size: .78rem;
    color: var(--c-muted);
    margin: 0 0 .55rem;
    line-height: 1.4;
}

.workspace-followups-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.workspace-followup-row {
    padding: .55rem 0;
    border-bottom: 1px solid var(--c-border);
}

.workspace-followup-row--highlight {
    background: rgba(79, 70, 229, .06);
    border-radius: .35rem;
    padding-left: .35rem;
    padding-right: .35rem;
}

.workspace-followup-title {
    font-size: .88rem;
    font-weight: 600;
    margin: 0 0 .15rem;
    line-height: 1.35;
}

.workspace-followup-meta {
    font-size: .74rem;
    color: var(--c-muted);
    margin: 0 0 .35rem;
}

.workspace-followup-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .65rem;
}

.workspace-followup-done {
    color: var(--c-success, #15803d);
}

.workspace-followup-done:hover {
    color: var(--c-success, #15803d);
    opacity: .85;
}

.workspace-followup-dismiss,
.workspace-followup-source {
    color: var(--c-muted);
}

.workspace-followup-reopen {
    color: var(--c-accent, #4f46e5);
}

.workspace-followup-row--closed .workspace-followup-title {
    color: var(--c-muted);
}

.workspace-followup-row--completed .workspace-followup-title {
    text-decoration: line-through;
}

.workspace-followups-closed {
    margin-top: .85rem;
    padding-top: .65rem;
    border-top: 1px solid var(--c-border);
}

.workspace-followups-closed-summary {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--c-muted);
    cursor: pointer;
    list-style: none;
}

.workspace-followups-closed-summary::-webkit-details-marker {
    display: none;
}

.workspace-followups-closed-summary::before {
    content: '▸ ';
    display: inline-block;
    transition: transform .12s ease;
}

.workspace-followups-closed[open] .workspace-followups-closed-summary::before {
    transform: rotate(90deg);
}

.workspace-followups-list--closed .workspace-followup-row:last-child {
    border-bottom: none;
}

.workspace-capture-log-entry--follow-up .workspace-capture-log-badge {
    background: rgba(79, 70, 229, .12);
    color: var(--c-accent, #4f46e5);
}

.workspace-turn-badge--followup {
    color: var(--c-muted, #64748b);
}

.workspace-turn-badge--followup-rich {
    align-items: center;
    max-width: 11rem;
    padding: 0.2rem 0.35rem;
}

.workspace-turn-badge--followup-rich .workspace-turn-badge-short {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.workspace-turn-badge--followup-done .workspace-turn-badge-icon {
    color: var(--c-muted, #64748b);
}

.workspace-turn-badge--followup-dismissed {
    opacity: 0.55;
}

.workspace-talk-turn--highlight {
    outline: 2px solid rgba(79, 70, 229, .45);
    outline-offset: 4px;
    border-radius: .5rem;
    transition: outline-color .2s ease;
}

.step2-assignments-shell .workspace-remembers-scroll-wrap--sidebar {
    flex: 1 1 0;
    min-height: 0;
}

.step2-assignments-shell .workspace-lens-body {
    background: rgba(79, 70, 229, .04);
}

/* Start My Book reuses Step 2 discuss styling but has no tools bar — reclaim the
   reserved bottom space so the ghostwriter panel and composer reach the bottom
   of the viewport (parity with Plan My Book). */
.step1-align-shell {
    --step2-tools-bar-h: 0rem;
}

.step1-align-shell .workspace-split--capture-first {
    align-items: stretch;
}

.step1-align-shell .workspace-split--capture-first .workspace-capture-sidebar {
    background: var(--c-surface);
    border-right: 1px solid var(--c-border);
    padding: 0;
    align-self: stretch;
    height: 100%;
    min-height: 0;
}

.step1-align-shell .workspace-remembers-headbar--sidebar {
    padding: .55rem 1.25rem .45rem;
    border-bottom: 1px solid var(--c-border);
    background: var(--c-surface);
}

.step1-align-shell .workspace-remembers-headbar--sidebar .workspace-remembers-title {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--c-muted);
}

/* Step 1 — Start My Book decisions sidebar */
.step1-align-shell .workspace-capture-sidebar #align-decisions-slot {
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.step1-align-shell .align-decisions-sidebar {
    flex: 1 1 0;
    min-height: 0;
    width: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--c-border);
    border-radius: 0 12px 12px 0;
    border-left: none;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.step1-align-shell .align-decisions-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0.35rem 0.5rem 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.step1-align-shell .align-discover-sources {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.45rem 0.5rem 0.55rem;
    border-top: 1px solid var(--c-border);
    background: #fff;
}

.step1-align-shell .align-discover-sources-title {
    margin: 0;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--c-muted);
    text-transform: uppercase;
    flex: 0 0 auto;
}

.step1-align-shell .align-discover-sources .discover-prep-source-list {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    margin: 0;
    padding: 0;
    list-style: none;
}

.step1-align-shell .align-decisions-footer {
    flex: 0 0 auto;
    margin-top: auto;
    width: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 0.55rem 0.65rem 0.75rem;
    border-top: 1px solid var(--c-border);
    background: #fafaf8;
}
.step1-align-shell .align-discover-add-footer {
    align-items: center;
    gap: 0.55rem;
}
.step1-align-shell .align-discover-add-source-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    width: 100%;
    margin: 0;
    padding: 0.35rem 0.5rem 0.15rem;
    border: none;
    background: transparent;
    cursor: pointer;
    font: inherit;
    color: var(--c-text);
}
.step1-align-shell .align-discover-add-source-fab {
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 999px;
    background: var(--c-primary, #4f46e5);
    color: #fff;
    box-shadow: 0 8px 24px rgba(79, 70, 229, 0.35);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.step1-align-shell .align-discover-add-source-fab-icon {
    font-size: 1.75rem;
    line-height: 1;
    font-weight: 400;
    margin-top: -0.1rem;
}
.step1-align-shell .align-discover-research-fab-icon {
    font-size: 1.2rem;
    margin-top: 0;
}
.step1-align-shell .align-discover-brief-fab-icon {
    font-size: 1.2rem;
    margin-top: 0;
}
.step1-align-shell .align-discover-brief-fab {
    position: relative;
    color: #374151;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.12);
}
.step1-align-shell .align-discover-brief-fab-spinner.spinner {
    display: none;
    position: absolute;
    inset: 0;
    margin: auto;
    width: 1.2rem;
    height: 1.2rem;
    border-width: 2px;
    border-color: rgba(55, 65, 81, 0.22);
    border-top-color: #374151;
}
.step1-align-shell .align-discover-brief-btn--preparing .align-discover-brief-fab-spinner,
.step1-align-shell .align-discover-brief-btn[data-brief-state="updating"] .align-discover-brief-fab-spinner {
    display: block;
}
.step1-align-shell .align-discover-brief-btn--preparing .align-discover-brief-fab-icon,
.step1-align-shell .align-discover-brief-btn[data-brief-state="updating"] .align-discover-brief-fab-icon {
    opacity: 0.22;
}
.step1-align-shell .align-discover-brief-meta--preparing {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
}
.step1-align-shell .align-discover-brief-meta-spinner.spinner {
    width: 0.75rem;
    height: 0.75rem;
    border-width: 2px;
    flex: 0 0 auto;
}
.step1-align-shell .align-discover-brief-btn[data-brief-phase="developing"] .align-discover-brief-fab,
.step1-align-shell .align-discover-brief-btn:not([data-brief-phase]) .align-discover-brief-fab {
    background: #e5e7eb;
}
.step1-align-shell .align-discover-brief-btn[data-brief-phase="interview_ready"] .align-discover-brief-fab {
    background: #facc15;
}
.step1-align-shell .align-discover-brief-btn[data-brief-phase="well_prepared"] .align-discover-brief-fab {
    background: #4ade80;
}
.step1-align-shell .align-discover-brief-btn:hover .align-discover-brief-fab,
.step1-align-shell .align-discover-brief-btn:focus-visible .align-discover-brief-fab {
    transform: translateY(-1px);
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.16);
    outline: none;
}
.step1-align-shell .align-discover-brief-btn--locked {
    opacity: 0.72;
}
.step1-align-shell .align-discover-brief-btn--actionable:not(.align-discover-brief-btn--locked) {
    opacity: 1;
}
.step1-align-shell .align-discover-brief-meta {
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--c-text);
    text-align: center;
    line-height: 1.25;
    max-width: 9.5rem;
}
.step1-align-shell .align-discover-brief-meta--muted {
    color: var(--c-muted);
    font-weight: 500;
}
.step1-align-shell .align-discover-brief-meta--action {
    color: var(--c-accent, #2f5d50);
    font-weight: 600;
}
.step1-align-shell .align-discover-brief-meta--error,
.step1-align-shell .align-discover-brief-btn--error .align-discover-brief-meta {
    color: var(--c-danger, #b42318);
    font-weight: 600;
}
.step1-align-shell .align-discover-add-source-btn:not(.align-discover-brief-btn):hover .align-discover-add-source-fab,
.step1-align-shell .align-discover-add-source-btn:not(.align-discover-brief-btn):focus-visible .align-discover-add-source-fab {
    transform: translateY(-1px);
    box-shadow: 0 10px 28px rgba(79, 70, 229, 0.42);
    outline: none;
}
.step1-align-shell .align-discover-add-source-label {
    font-size: 0.78rem;
    font-weight: 650;
    color: var(--c-muted);
    text-align: center;
    line-height: 1.25;
}

.discover-dialog-body {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}
.discover-dialog-status {
    padding: 0.45rem 0.65rem;
    border-radius: 8px;
    background: var(--c-chrome-surface);
    font-size: 0.85rem;
}
.discover-dialog-status.is-busy {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    color: var(--c-text, #1c2430);
}
.discover-dialog-status-spinner.spinner {
    width: 1.1rem;
    height: 1.1rem;
    border-width: 2px;
    flex: 0 0 auto;
}
.discover-dialog-status-text {
    flex: 1 1 auto;
    min-width: 0;
    line-height: 1.35;
}
.discover-dialog-body.is-capture-busy .discover-dropzone.is-disabled,
.discover-dropzone.is-disabled {
    opacity: 0.55;
    pointer-events: none;
}
.discover-source-intent {
    margin: 0 0 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--c-border, #d5dde8);
    border-radius: 10px;
    background: var(--c-surface-2, #f6f8fb);
}
.discover-source-intent-title {
    margin: 0 0 0.35rem;
    font-size: 0.95rem;
    font-weight: 650;
}
.discover-source-intent-hint {
    margin: 0 0 0.65rem;
    font-size: 0.8rem;
    color: var(--c-muted, #5c6b7a);
    line-height: 1.4;
}
.discover-source-intent-checks {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-bottom: 0.65rem;
}
.discover-source-intent-check {
    display: flex;
    gap: 0.55rem;
    align-items: flex-start;
    font-size: 0.88rem;
    line-height: 1.35;
    cursor: pointer;
}
.discover-source-intent-check input {
    margin-top: 0.2rem;
}
.discover-source-intent-brief-label {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    margin-bottom: 0.3rem;
}
.discover-source-intent-brief {
    width: 100%;
    min-height: 3.2rem;
    resize: vertical;
}
.discover-source-detail-intents {
    margin: 0 0 0.75rem;
}
.discover-source-intent-pill {
    display: inline-block;
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: #e8eef6;
    color: #243447;
}
.discover-source-intent-edit {
    margin: 0 0 1rem;
}
.discover-source-intent-edit .discover-source-intent {
    margin-bottom: 0.65rem;
}
.discover-source-candidates {
    list-style: none;
    margin: 0 0 1rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}
.discover-source-candidate {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    align-items: flex-start;
    justify-content: space-between;
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--c-border, #d5dde8);
    border-radius: 8px;
}
.discover-source-candidate-copy {
    flex: 1 1 14rem;
    min-width: 0;
}
.discover-source-candidate-copy p {
    margin: 0.25rem 0 0;
    font-size: 0.85rem;
    color: var(--c-muted, #5c6b7a);
    line-height: 1.4;
}
.discover-briefing-voice {
    margin: 0 0 1rem;
    font-size: 0.92rem;
    line-height: 1.45;
    color: var(--c-ink, #1c2430);
}
.discover-dialog-status.is-error {
    background: rgba(220, 38, 38, 0.08);
    color: var(--c-danger);
}
.discover-briefing-actions {
    margin-top: 0.85rem;
}

/* Large study dialog — fills most of the viewport */
.discover-dialog-backdrop .discover-dialog--large {
    width: min(56rem, calc(100vw - 2rem));
    max-width: none;
    height: min(44rem, calc(100vh - 2rem));
    max-height: calc(100vh - 2rem);
}
.discover-dialog--large .discover-dialog-body,
.discover-dialog-backdrop .discover-dialog--large .align-decisions-editor-body {
    flex: 1 1 auto;
    min-height: 0;
    /* Intent form + capture modes can exceed viewport — scroll the body, don't clip. */
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 1rem 1.15rem 1.15rem;
}
/* Let Add Source content define height so the body scrollbar can reach Paste. */
.discover-dialog--large .discover-study-layout {
    flex: 0 0 auto;
    min-height: auto;
    overflow: visible;
}

/* Brief dialog — wide reading surface with internal scroll */
.discover-dialog-backdrop .discover-dialog--brief {
    width: min(72rem, calc(100vw - 2.5rem));
    max-width: none;
    height: min(92vh, calc(100vh - 1.5rem));
    max-height: calc(100vh - 1.5rem);
}
.discover-dialog-backdrop .discover-dialog--brief .align-decisions-editor-head {
    padding: 1.15rem 1.75rem 0.9rem;
}
.discover-dialog-backdrop .discover-dialog--brief .align-decisions-editor-hint {
    max-width: 48rem;
    font-size: 0.9rem;
    line-height: 1.5;
}
.discover-dialog--brief .discover-dialog-body,
.discover-dialog-backdrop .discover-dialog--brief .align-decisions-editor-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1.15rem 1.75rem 1.35rem;
}
.discover-dialog--brief .discover-briefing-host {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}
.discover-dialog--brief .discover-briefing {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    background: transparent;
}
.discover-dialog--brief .discover-briefing-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 0.15rem 0.85rem 0.85rem 0.15rem;
    scrollbar-gutter: stable;
}
.discover-dialog--brief .discover-briefing-footer {
    flex: 0 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.85rem 1.25rem;
    margin-top: 0.35rem;
    padding-top: 1rem;
    border-top: 1px solid var(--c-border);
}
.discover-dialog--brief .discover-briefing-ready-wrap {
    margin-top: 0;
}
.discover-dialog--brief .discover-briefing-actions {
    margin-top: 0;
}
.discover-dialog--brief .discover-briefing-list {
    padding-left: 1.35rem;
    gap: 0.55rem;
    margin: 0 0 0.35rem;
}
.discover-dialog--brief .discover-briefing-bullet {
    gap: 0.85rem;
    padding: 0.2rem 0;
}
.discover-dialog--brief .discover-briefing-bullet-text {
    flex: 1 1 auto;
    min-width: 0;
    line-height: 1.5;
}
.discover-dialog--brief .discover-briefing h3 {
    margin: 1.15rem 0 0.55rem;
}
.discover-dialog--brief .discover-briefing-kicker {
    margin-bottom: 0.65rem;
    font-size: 1.05rem;
}
.discover-dialog--brief .discover-briefing-phase {
    margin-bottom: 1rem;
    line-height: 1.5;
}
.discover-study-list-panel {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    min-height: 0;
    flex: 1 1 auto;
    overflow: hidden;
}
.discover-captured-preview {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.78rem;
    font-weight: 450;
    color: var(--c-muted);
    line-height: 1.35;
    text-align: left;
}
.discover-captured-detail {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: 0.15rem 0.1rem 0.5rem;
}
.discover-captured-detail[hidden] {
    display: none !important;
}
.discover-captured-back {
    align-self: flex-start;
    margin: 0 0 0.15rem;
}
.discover-captured-detail-title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 650;
    line-height: 1.35;
}
.discover-captured-detail-meta {
    margin: 0;
    font-size: 0.78rem;
    color: var(--c-muted);
}
.discover-captured-detail-body {
    margin: 0.25rem 0 0;
    font-size: 0.92rem;
    line-height: 1.55;
    white-space: normal;
}
.discover-captured-detail-hint {
    margin: 0.75rem 0 0;
    padding: 0.65rem 0.75rem;
    border-radius: 8px;
    background: var(--c-chrome-surface, #f3f4f6);
    font-size: 0.85rem;
    line-height: 1.45;
    color: var(--c-text);
}
.discover-study-search-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.discover-study-search {
    flex: 0 0 auto;
}
.discover-prep-source-list--dialog {
    flex: 1 1 auto;
    min-height: 14rem;
    max-height: min(55vh, 28rem);
    overflow-y: auto;
    margin: 0;
    padding: 0;
    list-style: none;
}
.discover-study-sources {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin: 0 0 0.85rem;
    padding: 0 0 0.85rem;
    border-bottom: 1px solid var(--c-border);
    max-height: 11rem;
    min-height: 0;
}
.discover-study-sources-title {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 650;
}
.discover-study-sources .discover-prep-source-list {
    margin: 0;
    padding: 0;
    list-style: none;
    overflow-y: auto;
    min-height: 0;
}
.discover-study-layout {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    flex: 1 1 auto;
    min-height: 0;
}
.discover-study-modes {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
    flex: 0 0 auto;
}
.discover-study-modes--pet {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.discover-study-layout--pet-memories {
    gap: 0.85rem;
}
.pet-photo-label-panel {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}
.pet-photo-label-file {
    margin: 0;
    font-size: 0.78rem;
    color: var(--c-muted);
    word-break: break-all;
}
.pet-photo-subject-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}
.pet-photo-subject-pill {
    margin: 0;
    padding: 0.4rem 0.7rem;
    border: 1px solid var(--c-border);
    border-radius: 999px;
    background: #fff;
    font: inherit;
    font-size: 0.82rem;
    font-weight: 550;
    color: var(--c-text);
    cursor: pointer;
}
.pet-photo-subject-pill:hover {
    border-color: rgba(120, 90, 50, 0.45);
}
.pet-photo-subject-pill.is-active,
.pet-photo-subject-pill[aria-pressed="true"] {
    border-color: rgba(120, 90, 50, 0.65);
    background: rgba(196, 160, 110, 0.18);
}
.discover-study-mode {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
    margin: 0;
    padding: 0.55rem 0.65rem;
    border: 1px solid var(--c-border);
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
    text-align: left;
    font: inherit;
    color: var(--c-text);
}
.discover-study-mode:hover {
    border-color: rgba(79, 70, 229, 0.35);
}
.discover-study-mode.is-active,
.discover-study-mode[aria-pressed="true"] {
    border-color: rgba(79, 70, 229, 0.55);
    background: rgba(79, 70, 229, 0.06);
}
.discover-study-mode-label {
    font-size: 0.85rem;
    font-weight: 650;
}
.discover-study-mode-hint {
    font-size: 0.72rem;
    color: var(--c-muted);
    line-height: 1.25;
}
.discover-study-mode-panel {
    flex: 0 0 auto;
    padding: 0.75rem 0.85rem;
    border: 1px solid var(--c-border);
    border-radius: 12px;
    background: #fafaf8;
}
.discover-study-note-form,
.discover-study-voice {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}
.discover-study-field-label {
    font-size: 0.82rem;
    font-weight: 650;
    color: var(--c-text);
}
.discover-study-mode-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.25rem;
}
.discover-study-voice-status {
    margin: 0;
    font-size: 0.88rem;
    color: var(--c-text);
}
.discover-study-voice-timer {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--c-text);
}
.discover-dropzone {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    min-height: 7.5rem;
    padding: 1rem;
    border: 2px dashed rgba(28, 26, 46, 0.18);
    border-radius: 14px;
    background: #fafaf8;
    text-align: center;
    outline: none;
}
.discover-dropzone.is-dragover {
    border-color: rgba(79, 70, 229, 0.55);
    background: rgba(79, 70, 229, 0.06);
}
.discover-dropzone-title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--c-text);
}
.discover-dropzone-hint {
    margin: 0 0 0.35rem;
    font-size: 0.85rem;
    color: var(--c-muted);
}
.discover-study-main {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
.discover-study-main--paste-only {
    min-height: 10rem;
}
.discover-generic-paste {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    min-height: 0;
    flex: 1 1 auto;
}
.discover-generic-paste-label {
    font-size: 0.85rem;
    font-weight: 650;
    color: var(--c-text);
}
.discover-generic-paste-actions {
    display: flex;
    justify-content: flex-start;
    flex: 0 0 auto;
}
.discover-prep-paste--large {
    flex: 1 1 auto;
    min-height: 8rem;
    height: 100%;
    resize: none;
}
.discover-study-actions {
    flex: 0 0 auto;
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    justify-content: flex-end;
    padding-top: 0.35rem;
    border-top: 1px solid var(--c-border);
}
.discover-research-panel {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 0.65rem 0 0.15rem;
    border-top: 1px dashed var(--c-border);
}
.discover-research-panel[hidden] {
    display: none !important;
}
.discover-research-dialog {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-height: 0;
    overflow-y: auto;
}
.discover-research-section {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 0.85rem 0.9rem;
    border: 1px solid var(--c-border);
    border-radius: 10px;
    background: #fff;
}
.discover-research-section-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
}
.discover-research-author-block {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
.discover-research-author-name {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 650;
    color: var(--c-text);
}
.discover-research-hint--warn {
    color: var(--c-danger, #b91c1c);
}
.discover-research-hint {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.4;
    color: var(--c-muted, #5c5c5c);
}
.discover-research-label {
    font-size: 0.8rem;
    font-weight: 600;
}
.discover-research-kind-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}
.discover-research-kind-chip {
    border: 1px solid var(--c-border, #d4d4d8);
    background: #fff;
    border-radius: 999px;
    padding: 0.35rem 0.75rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--c-text, #1f1f1f);
    cursor: pointer;
    transition: background 0.12s ease, color 0.12s ease, border-color 0.12s ease;
}
.discover-research-kind-chip:hover {
    border-color: var(--c-accent, #4f46e5);
    color: var(--c-accent, #4f46e5);
}
.discover-research-kind-chip.is-selected {
    background: var(--c-accent, #4f46e5);
    border-color: var(--c-accent, #4f46e5);
    color: #fff;
}
.discover-research-query {
    width: 100%;
    resize: vertical;
    min-height: 2.75rem;
}
.discover-research-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.55rem;
}
.discover-research-max {
    width: auto;
    min-width: 7rem;
}
@media (max-width: 720px) {
    .discover-dialog-backdrop .discover-dialog--large,
    .discover-dialog-backdrop .discover-dialog--brief {
        width: calc(100vw - 1rem);
        height: calc(100vh - 1rem);
    }
    .discover-dialog-backdrop .discover-dialog--brief .align-decisions-editor-head,
    .discover-dialog--brief .discover-dialog-body,
    .discover-dialog-backdrop .discover-dialog--brief .align-decisions-editor-body {
        padding-left: 1rem;
        padding-right: 1rem;
    }
    .discover-dialog--brief .discover-briefing-footer {
        flex-direction: column;
        align-items: stretch;
    }
    .discover-study-modes {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .discover-study-actions {
        justify-content: stretch;
    }
    .discover-study-actions .btn {
        flex: 1 1 auto;
    }
    .discover-research-row .btn {
        flex: 1 1 auto;
    }
}

.step1-align-shell .align-decision-card,
.workspace-remembers--capture-cards .align-decision-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    width: 100%;
    margin: 0;
    padding: 0.55rem 1.85rem 0.55rem 0.65rem;
    border: 1px solid var(--c-border);
    border-radius: 10px;
    background: #fff;
    color: var(--c-text);
    font-size: 0.82rem;
    line-height: 1.35;
    text-align: left;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.step1-align-shell .align-decision-card:hover,
.workspace-remembers--capture-cards .align-decision-card:hover {
    border-color: var(--c-accent, #2563eb);
    background: var(--c-surface-muted);
    box-shadow: 0 2px 6px rgba(37, 99, 235, 0.08);
}

.step1-align-shell .align-decision-card--active,
.workspace-remembers--capture-cards .align-decision-card--active {
    border-color: var(--c-accent, #2563eb);
    background: rgba(37, 99, 235, 0.06);
    box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.15);
}

.step1-align-shell .align-decision-card-label,
.workspace-remembers--capture-cards .align-decision-card-label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--c-muted);
    text-transform: uppercase;
    padding-right: 0.15rem;
}

.step1-align-shell .align-decision-card-edit-icon,
.workspace-remembers--capture-cards .align-decision-card-edit-icon {
    position: absolute;
    top: 0.42rem;
    right: 0.42rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.2rem;
    height: 1.2rem;
    color: var(--c-muted);
    pointer-events: none;
    line-height: 1;
}

.step1-align-shell .align-decision-card-edit-icon .fa-pen,
.workspace-remembers--capture-cards .align-decision-card-edit-icon .fa-pen {
    font-size: 0.68rem;
}

.step1-align-shell .align-decision-card:hover .align-decision-card-edit-icon,
.step1-align-shell .align-decision-card--active .align-decision-card-edit-icon,
.workspace-remembers--capture-cards .align-decision-card:hover .align-decision-card-edit-icon,
.workspace-remembers--capture-cards .align-decision-card--active .align-decision-card-edit-icon {
    color: var(--c-accent, #2563eb);
}

.step1-align-shell .align-decision-card--pending .align-decision-card-edit-icon,
.workspace-remembers--capture-cards .align-decision-card--pending .align-decision-card-edit-icon {
    opacity: 0.72;
}

.step1-align-shell .align-decision-card-value,
.workspace-remembers--capture-cards .align-decision-card-value {
    width: 100%;
    font-size: 0.86rem;
    font-weight: 600;
    line-height: 1.35;
    word-break: break-word;
    color: var(--c-text);
}

.step1-align-shell .align-decision-card--active .align-decision-card-value,
.workspace-remembers--capture-cards .align-decision-card--active .align-decision-card-value {
    color: var(--c-text);
}

.step1-align-shell .align-decisions-empty {
    margin: 0.5rem 0.75rem;
    color: var(--c-muted);
    font-size: 0.82rem;
}

/* Shared Edit answers dialog (phone drill-in + desktop parity) */
.align-decisions-editor-backdrop {
    position: absolute;
    inset: 0;
    z-index: 80;
    display: flex;
    align-items: stretch;
    justify-content: center;
    padding: 0.65rem;
    background: rgba(15, 23, 42, 0.42);
}

.step1-align-shell {
    position: relative;
}

.align-decisions-editor-dialog {
    display: flex;
    flex-direction: column;
    width: min(100%, 26rem);
    max-height: calc(100% - 0.25rem);
    margin: auto;
    border-radius: 14px;
    border: 1px solid var(--c-border);
    background: var(--c-surface, #fff);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.18);
    overflow: hidden;
}

.align-decisions-editor-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.9rem 1rem 0.65rem;
    border-bottom: 1px solid var(--c-border);
    flex-shrink: 0;
}

.align-decisions-editor-title {
    margin: 0 0 0.25rem;
    font-size: 1.05rem;
    font-weight: 750;
    color: var(--c-text);
}

.align-decisions-editor-hint {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.45;
    color: var(--c-muted);
}

.align-decisions-editor-close {
    flex-shrink: 0;
    width: 2.75rem;
    height: 2.75rem;
    border: none;
    border-radius: 10px;
    background: transparent;
    color: var(--c-muted);
    font-size: 2rem;
    line-height: 1;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.align-decisions-editor-close:hover,
.align-decisions-editor-close:focus-visible {
    background: rgba(15, 23, 42, 0.06);
    color: var(--c-text);
}

.align-decisions-editor-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.align-decisions-editor-body .align-decisions-sidebar {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    border: none;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
}

.align-decisions-editor-body .align-decisions-headbar {
    display: none;
}

.align-decisions-editor-body .align-decisions-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 0.65rem 0.75rem 0.9rem;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.mobile-studio-start-host .align-decisions-editor-backdrop {
    position: fixed;
    inset: 0;
    z-index: 90;
    padding: 0.85rem 0.85rem calc(4.75rem + env(safe-area-inset-bottom, 0px));
}

.mobile-studio-start-host .align-decisions-editor-dialog {
    width: 100%;
    max-width: none;
    max-height: 100%;
}

.step1-align-shell .outline-qa-panel:not(.outline-qa-panel--discuss) {
    flex: 1 1 0;
    min-height: 0;
    overflow: auto;
    padding: 0.75rem 0 1rem;
}

.step1-align-shell .outline-qa-panel--discuss {
    flex: 1 1 0;
    min-height: 0;
    overflow: hidden;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.step1-align-shell .outline-qa-panel--discuss .workspace-talk-panel--discuss {
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.step1-align-shell .outline-qa-panel--discuss .workspace-talk-agent-window--discuss {
    flex: 1 1 0;
    min-height: 0;
}

.step1-align-shell .outline-qa-panel .qa-question {
    font-size: 1rem;
    line-height: 1.45;
    margin: 0 0 0.85rem;
}

.step1-align-shell .align-intro-fields--workspace {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.step1-align-shell .align-intro-fields--workspace .align-intro-label {
    font-size: 0.82rem;
    font-weight: 600;
    margin-bottom: 0.35rem;
}

.step1-align-shell .align-intro-fields--workspace .align-intro-input {
    font-size: 0.92rem;
}

/* Start My Book — 11 foundation segments; same keyword bar as My Assignments */
.step1-align-shell .workspace-coverage--align .workspace-coverage-seg {
    flex: 1 1 0;
    min-width: 0;
}

.step1-align-shell .workspace-coverage--align .workspace-coverage-seg-label {
    font-size: 0.52rem;
    letter-spacing: 0.01em;
}

.step2-assignments-shell .workspace-split-handle.qe-panel-resize-handle {
    width: 14px;
    margin: 0;
    flex-shrink: 0;
}

.workspace-split-handle {
    width: 6px;
    margin: 0 -2px;
    flex-shrink: 0;
    cursor: col-resize;
    background: transparent;
    position: relative;
    z-index: 2;
    touch-action: none;
}

.workspace-split-handle:hover,
.workspace-split-handle:focus-visible,
body.workspace-split-dragging .workspace-split-handle {
    background: rgba(15, 23, 42, 0.1);
}

body.workspace-split-dragging {
    cursor: col-resize;
    user-select: none;
}

.workspace-split--capture-hidden .workspace-capture-sidebar,
.workspace-split--capture-hidden .workspace-split-handle {
    display: none;
}

/*
 * Collapse control is a zero-width edge tab, always parked far left in the
 * page gutter (gray margin) — open and closed — so it never overlays the
 * Discovery column or the Story Session card.
 */
.workspace-capture-toggle-rail {
    position: absolute;
    z-index: 8;
    top: 50%;
    left: 0;
    width: 0;
    min-width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    overflow: visible;
    background: transparent;
    flex: 0 0 0;
    pointer-events: none;
    transform: translateY(-50%);
}

.workspace-capture-toggle-rail-btn {
    pointer-events: auto;
    position: absolute;
    top: 50%;
    left: calc(var(--author-page-gutter, 1.25rem) / 2);
    transform: translate(-50%, -50%);
    flex-shrink: 0;
    width: 1.75rem;
    min-width: 1.75rem;
    height: 3.25rem;
    padding: 0;
    border-radius: 8px;
    border-width: 1.5px;
    box-shadow: 1px 2px 6px rgba(15, 23, 42, 0.12);
}

.workspace-capture-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.38rem 0.42rem;
    border: 1px solid var(--c-border);
    border-radius: 8px;
    background: var(--c-surface, #fff);
    color: var(--c-muted);
    cursor: pointer;
    line-height: 0;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
    -webkit-font-smoothing: antialiased;
}

.workspace-capture-toggle.workspace-capture-toggle-rail-btn {
    color: var(--c-text, #1c1a2e);
}

.workspace-capture-toggle:hover,
.workspace-capture-toggle:focus-visible {
    color: var(--c-primary);
    border-color: rgba(79, 70, 229, 0.35);
    background: var(--c-chrome-surface);
    box-shadow: 0 2px 6px rgba(15, 23, 42, 0.08);
    outline: none;
}

.workspace-capture-toggle.workspace-capture-toggle-rail-btn:hover,
.workspace-capture-toggle.workspace-capture-toggle-rail-btn:focus-visible {
    color: var(--c-primary);
    border-color: rgba(79, 70, 229, 0.45);
    box-shadow: 2px 3px 8px rgba(15, 23, 42, 0.14);
}

.workspace-capture-chevron-icon {
    display: block;
    width: 1.25rem;
    height: 1.25rem;
}

.workspace-capture-toggle-rail-btn .workspace-capture-chevron-icon {
    width: 1.25rem;
    height: 1.25rem;
}

.workspace-remembers-headbar-actions {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
}

.workspace-capture-sidebar {
    width: var(--workspace-sidebar-w, 260px);
    min-width: 168px;
    max-width: 45%;
    flex-shrink: 0;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
    padding: 0;
    background: transparent;
}

.step2-assignments-main .workspace-capture-sidebar #workspace-remembers-slot {
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.step2-assignments-main .workspace-capture-sidebar #workspace-remembers-slot .workspace-remembers--sidebar {
    flex: 1 1 0;
    min-height: 0;
    max-height: none;
    height: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--c-border);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.step2-assignments-shell .workspace-capture-sidebar #workspace-remembers-slot .workspace-remembers--sidebar {
    border-radius: 0 12px 12px 0;
    border-left: none;
}

.step2-assignments-main .workspace-capture-sidebar .workspace-remembers-scroll--sidebar {
    flex: 1 1 0;
    min-height: 0;
    max-height: none;
    margin: 0;
}

.workspace-remembers-headbar--sidebar {
    flex-shrink: 0;
    padding: 0.4rem 0.75rem 0.45rem;
    border-bottom: 1px solid rgba(79, 70, 229, 0.12);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
    background: rgba(79, 70, 229, 0.04);
}

.workspace-remembers-headbar--sidebar .workspace-remembers-title {
    margin: 0;
    font-size: 0.88rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--c-text);
    text-transform: none;
    letter-spacing: normal;
}

.workspace-remembers-scroll--sidebar {
    flex: 1 1 0;
    min-height: 0;
    max-height: none;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: 0.4rem 0.55rem 0.65rem;
}

.workspace-remembers-scroll-wrap--sidebar {
    position: relative;
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.workspace-capture-log {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.workspace-capture-log-empty {
    margin: 0.35rem 0.15rem;
    font-size: 0.78rem;
    line-height: 1.45;
    color: var(--c-muted, #64748b);
}

.workspace-capture-log-entry {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem 0.4rem;
    padding: 0.35rem 0.45rem;
    border-radius: 6px;
    background: rgba(79, 70, 229, 0.05);
    border: 1px solid rgba(79, 70, 229, 0.08);
    font-size: 0.76rem;
    line-height: 1.35;
    cursor: default;
}

.workspace-capture-log-entry--quote-pending,
.workspace-capture-log-entry--insight,
.workspace-capture-log-entry--material {
    cursor: pointer;
}

.workspace-capture-log-entry--quote-pending:hover,
.workspace-capture-log-entry--insight:hover,
.workspace-capture-log-entry--material:hover {
    background: rgba(79, 70, 229, 0.09);
}

.workspace-capture-log-badge {
    flex-shrink: 0;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--c-primary, #4f46e5);
}

.workspace-capture-log-meta {
    flex: 0 1 auto;
    font-size: 0.68rem;
    color: var(--c-muted, #64748b);
}

.workspace-capture-log-meta::after {
    content: '·';
    margin-left: 0.35rem;
}

.workspace-capture-log-summary {
    flex: 1 1 100%;
    color: var(--c-text);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.workspace-capture-log-entry--pending {
    cursor: default;
    background: transparent;
    border-color: transparent;
    color: var(--c-muted, #64748b);
}

.workspace-capture-log-spinner {
    width: 0.85rem;
    height: 0.85rem;
    border: 2px solid rgba(79, 70, 229, 0.2);
    border-top-color: var(--c-primary, #4f46e5);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
    flex-shrink: 0;
}

.workspace-capture-log-jump {
    position: absolute;
    left: 50%;
    bottom: 0.55rem;
    transform: translateX(-50%);
    z-index: 2;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    border: 1px solid rgba(79, 70, 229, 0.25);
    background: #fff;
    color: var(--c-primary, #4f46e5);
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    padding: 0;
}

.workspace-capture-log-jump:hover,
.workspace-capture-log-jump:focus-visible {
    background: rgba(79, 70, 229, 0.08);
    outline: none;
}

.workspace-capture-log-jump[hidden] {
    display: none !important;
}

.workspace-remembers--sidebar {
    display: flex;
    flex-direction: column;
    min-height: 0;
    flex: 1 1 0;
    height: 100%;
    margin-top: 0;
    border: none;
    background: transparent;
    box-shadow: none;
}

.workspace-remembers--capture-cards .workspace-capture-cards {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 0.15rem 0.1rem 0.75rem;
}

/* Interviews Captured — Add something + Research footer (matches Discover Discovery column) */
.step2-assignments-shell .workspace-remembers--capture-cards .align-decisions-footer {
    flex: 0 0 auto;
    margin-top: auto;
    width: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.55rem;
    padding: 0.55rem 0.65rem 0.75rem;
    border-top: 1px solid var(--c-border);
    background: #fafaf8;
}
.step2-assignments-shell .workspace-remembers--capture-cards .align-discover-add-source-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    width: 100%;
    margin: 0;
    padding: 0.35rem 0.5rem 0.15rem;
    border: none;
    background: transparent;
    cursor: pointer;
    font: inherit;
    color: var(--c-text);
}
.step2-assignments-shell .workspace-remembers--capture-cards .align-discover-add-source-fab {
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 999px;
    background: var(--c-primary, #4f46e5);
    color: #fff;
    box-shadow: 0 8px 24px rgba(79, 70, 229, 0.35);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.step2-assignments-shell .workspace-remembers--capture-cards .align-discover-add-source-fab-icon {
    font-size: 1.75rem;
    line-height: 1;
    font-weight: 400;
    margin-top: -0.1rem;
}
.step2-assignments-shell .workspace-remembers--capture-cards .align-discover-research-fab-icon {
    font-size: 1.2rem;
    margin-top: 0;
}
.step2-assignments-shell .workspace-remembers--capture-cards .align-discover-add-source-btn:hover .align-discover-add-source-fab,
.step2-assignments-shell .workspace-remembers--capture-cards .align-discover-add-source-btn:focus-visible .align-discover-add-source-fab {
    transform: translateY(-1px);
    box-shadow: 0 10px 28px rgba(79, 70, 229, 0.42);
    outline: none;
}
.step2-assignments-shell .workspace-remembers--capture-cards .align-discover-add-source-label {
    font-size: 0.78rem;
    font-weight: 650;
    color: var(--c-muted);
    text-align: center;
    line-height: 1.25;
}

.workspace-remembers--capture-cards .align-decision-card + .align-decision-card {
    margin-top: 0;
}

.followups-dialog .followups-dialog-body {
    max-height: min(70vh, 36rem);
    overflow-y: auto;
}

.step2-assignments-main .workspace-session-col > .workspace-lens-body {
    flex: 1 1 0;
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
    padding: 0.35rem 0 1rem;
    padding-bottom: calc(var(--step2-tools-bar-h) + 0.85rem);
}

.step2-assignments-main .workspace-session-col > .workspace-lens-body:has(.outline-qa-panel--questions) {
    overflow: hidden;
    padding-bottom: 0;
}

.step2-assignments-main .workspace-shell--unified.workspace-shell--discuss .workspace-session-col > .workspace-lens-body,
.step2-assignments-main .workspace-session-col > .workspace-lens-body.workspace-lens-body--discuss,
.step2-assignments-main .workspace-session-col > .workspace-lens-body:has(.outline-qa-panel--discuss) {
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    /* Discuss has no Questions-lens tools row — do not reserve tools-bar height */
    padding: 0.35rem 0 0.65rem;
}

.step2-assignments-main .workspace-shell--unified.workspace-shell--discuss .outline-qa-panel--discuss,
.step2-assignments-main .workspace-lens-body--discuss > .outline-qa-panel--discuss,
.step2-assignments-main .workspace-lens-body:has(.outline-qa-panel--discuss) > .outline-qa-panel--discuss {
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.step2-assignments-main .workspace-lens-body > .outline-qa-panel,
.step2-assignments-main .workspace-lens-body > .workspace-review-panel,
.step2-assignments-main .workspace-lens-body > .workspace-draft-panel {
    min-height: 0;
}

.step2-assignments-main .workspace-shell--unified.workspace-shell--discuss .workspace-session-col > .workspace-lens-body > .outline-qa-panel--discuss {
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0;
}

.step2-assignments-main .outline-qa-panel--discuss > #workspace-discuss-gap-slot,
.step2-assignments-main .outline-qa-panel--discuss > #workspace-discuss-themes-slot,
.step2-assignments-main .outline-qa-panel--discuss > .workspace-talk-onboarding {
    flex-shrink: 0;
}

.step2-assignments-main .workspace-shell--unified.workspace-shell--discuss .workspace-talk-panel--discuss,
.step2-assignments-main .outline-qa-panel--discuss > .workspace-talk-panel--discuss {
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding-bottom: 0;
    gap: 0;
}

.step2-assignments-main .workspace-shell--unified.workspace-shell--discuss .workspace-talk-panel--discuss > .workspace-talk-agent-window,
.step2-assignments-main .outline-qa-panel--discuss .workspace-talk-agent-window--discuss,
.step2-assignments-main .workspace-talk-panel--discuss > .workspace-talk-agent-window {
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    max-height: none;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.step2-assignments-main .workspace-talk-agent-window--discuss > .workspace-talk-agent-head {
    flex-shrink: 0;
}

.step2-assignments-main .workspace-shell--unified.workspace-shell--discuss .workspace-talk-agent-window--discuss > .workspace-talk-composer-stack,
.step2-assignments-main .workspace-talk-agent-window--discuss > .workspace-talk-composer-stack,
.step2-assignments-main .workspace-shell--unified.workspace-shell--discuss .workspace-talk-agent-window--discuss > .workspace-talk-composer,
.step2-assignments-main .workspace-talk-agent-window--discuss > .workspace-talk-composer {
    flex-shrink: 0;
    margin: 0;
}

.step2-assignments-main .workspace-shell--unified.workspace-shell--discuss .workspace-talk-agent-window--discuss > .workspace-talk-composer-stack > .workspace-talk-composer,
.step2-assignments-main .workspace-talk-agent-window--discuss > .workspace-talk-composer-stack > .workspace-talk-composer {
    padding: 0.55rem 0.75rem 0.65rem;
    border-top: none;
    background: transparent;
}

.step2-assignments-main .workspace-shell--unified.workspace-shell--discuss .workspace-talk-panel--discuss > .workspace-talk-composer,
.step2-assignments-main .workspace-shell--unified.workspace-shell--discuss .workspace-talk-panel--discuss > #workspace-readiness-bridge-slot {
    flex-shrink: 0;
}

.step2-assignments-main .workspace-shell--unified.workspace-shell--discuss .workspace-talk-panel--discuss .workspace-talk-thread,
.step2-assignments-main .workspace-talk-agent-window--discuss .workspace-talk-thread {
    flex: 1 1 0;
    min-height: 0;
    max-height: none;
    overflow-y: auto;
}

.outline-qa-panel #workspace-objectives-slot,
.workspace-talk-panel > #workspace-coverage-slot,
.workspace-review-panel > #workspace-coverage-slot,
.workspace-draft-panel > #workspace-coverage-slot {
    flex-shrink: 0;
}

.step2-qa-header + #workspace-objectives-slot {
    margin-top: 0.1rem;
    margin-bottom: 0.45rem;
}

.workspace-talk-panel > #workspace-coverage-slot,
.workspace-review-panel > #workspace-coverage-slot,
.workspace-draft-panel > #workspace-coverage-slot {
    margin-bottom: 0.85rem;
}

.step2-assignments-main .workspace-shell > .outline-qa-panel {
    flex: 1 1 0;
    min-height: 0;
    overflow-y: auto;
    padding: 0.35rem 0 1rem;
    padding-bottom: calc(var(--step2-tools-bar-h) + 0.85rem);
}

.step2-assignments-main .workspace-shell > .outline-qa-panel--discuss {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding-bottom: 0;
}

.step2-assignments-main .outline-qa-panel--discuss > .workspace-talk-panel--discuss {
    flex: 1 1 0;
    min-height: 0;
}

.step2-assignments-main .outline-qa-panel--discuss .workspace-talk-panel {
    flex: 1 1 0;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding-bottom: 0;
}

.step2-qa-header--discuss {
    margin-bottom: 0.15rem;
}

.step2-qa-header--discuss .step2-qa-header-actions {
    margin-left: auto;
    flex-shrink: 0;
}

.qa-question--discuss {
    margin-top: 0;
    margin-bottom: 0.45rem;
}

.step2-assignments-main .workspace-shell--discuss > .workspace-talk-onboarding {
    flex-shrink: 0;
}

.step2-assignments-main .outline-qa-panel--discuss > .workspace-talk-onboarding {
    flex-shrink: 0;
    margin-bottom: 0.35rem;
}

.step2-assignments-main .workspace-shell > .workspace-talk-panel {
    flex: 1 1 0;
    min-height: 0;
    overflow: hidden;
    padding-bottom: calc(var(--step2-tools-bar-h) + 1.25rem);
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.step2-assignments-main .workspace-shell > .workspace-lens-back,
.step2-assignments-main .workspace-shell > .workspace-talk-onboarding {
    flex-shrink: 0;
}

.step2-assignments-main .workspace-talk-panel > .workspace-talk-composer,
.step2-assignments-main .workspace-talk-panel > #workspace-coverage-slot,
.step2-assignments-main .workspace-talk-panel > #workspace-remembers-slot,
.step2-assignments-main .workspace-talk-panel > #workspace-book-remembers-slot {
    flex-shrink: 0;
}

.step2-assignments-main .workspace-talk-panel:not(.workspace-talk-panel--discuss) > .workspace-talk-agent-window {
    flex: 1 1 0;
    min-height: 8rem;
    max-height: min(38vh, 320px);
}

.step2-assignments-main .workspace-talk-panel--discuss > .workspace-talk-agent-window {
    flex: 1 1 0;
    min-height: 0;
    max-height: none;
}

.step2-assignments-main .outline-qa-panel--discuss .workspace-talk-panel--discuss > .workspace-talk-agent-window {
    flex: 1 1 0;
    min-height: 0;
    max-height: none;
}

.step2-assignments-main .workspace-talk-panel--discuss > #workspace-remembers-slot {
    flex: 0 0 auto;
    min-height: 0;
    overflow: visible;
    display: block;
}

.step2-assignments-main .workspace-talk-panel--discuss > #workspace-remembers-slot .workspace-remembers {
    min-height: 0;
    max-height: none;
    flex: 0 0 auto;
}

.step2-assignments-main .workspace-talk-panel--discuss .workspace-talk-thread {
    flex: 1 1 0;
    min-height: 0;
    max-height: none;
    overflow-y: auto;
}

.step2-assignments-main .workspace-talk-panel--discuss > .workspace-talk-composer {
    flex-shrink: 0;
}

.step2-assignments-main .workspace-shell--discuss {
    gap: 0.4rem;
}

.step2-assignments-main .workspace-talk-panel--discuss {
    gap: 0.4rem;
}

.step2-assignments-main .workspace-shell:not(.workspace-shell--unified) .workspace-talk-panel--discuss {
    padding-bottom: calc(var(--step2-tools-bar-h) + 0.65rem);
}

.step2-assignments-main .workspace-talk-panel > .workspace-talk-composer--dock {
    flex-shrink: 0;
}

.step2-assignments-main .workspace-talk-panel > .workspace-talk-thread {
    flex: none;
    min-height: 0;
    max-height: none;
}

.step2-assignments-main .workspace-shell > .workspace-review-panel,
.step2-assignments-main .workspace-shell > .workspace-draft-panel {
    flex: 1 1 0;
    min-height: 0;
    overflow-y: auto;
    padding-bottom: calc(var(--step2-tools-bar-h) + 1.25rem);
}

.workspace-shell {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

/* Step 2 — scope (assignment vs whole book) vs lens (how to work) */
.step2-nav-label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--c-muted);
}

.step2-nav-hint {
    font-size: 0.74rem;
    color: var(--c-muted);
    line-height: 1.3;
    flex: 1;
    min-width: 0;
}

.step2-nav-scope {
    flex-shrink: 0;
    margin: 0 0 0.45rem;
    padding: 0.45rem 0.6rem;
    background: rgba(79, 70, 229, 0.04);
    border: 1px solid rgba(79, 70, 229, 0.14);
    border-radius: 8px;
}

.step2-nav-scope-head {
    display: flex;
    flex-direction: row;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.25rem 0.45rem;
    margin-bottom: 0.35rem;
}

.step2-scope-bar {
    display: flex;
    gap: 0;
    margin: 0;
    padding: 3px;
    background: rgba(0, 0, 0, 0.05);
    border-radius: 8px;
}

.step2-scope-tab {
    flex: 1;
    border: none;
    background: transparent;
    color: var(--c-muted);
    border-radius: 6px;
    padding: 0.38rem 0.55rem;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.step2-scope-tab:hover:not(.step2-scope-tab--active) {
    color: var(--c-text);
    background: rgba(255, 255, 255, 0.45);
}

.step2-scope-tab--active {
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    color: var(--c-text);
    font-weight: 700;
}

/* Step 2 — simplified top bar (A+B hybrid) */
.step2-top-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.35rem;
    padding: 0.15rem 0;
}

.step2-top-bar-actions {
    display: flex;
    align-items: center;
    gap: 0.35rem 0.65rem;
    margin-left: auto;
}

.step2-top-bar-help {
    font-weight: 600;
}

.step2-chrome-meta {
    display: flex;
    align-items: center;
    gap: 0.65rem 1rem;
    flex-wrap: wrap;
    margin-bottom: 0.25rem;
}

.step2-chrome-meta-pace {
    flex: 1 1 12rem;
    min-width: 0;
}

.step2-assignments-shell .workspace-session-col > .step2-chrome-meta-pace {
    flex: 0 0 auto;
}

.step2-chrome-meta-pace .step2-pace-banner {
    margin: 0;
}

.step2-chrome-meta > .step2-top-bar {
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
}

.step2-chrome-meta > .step2-top-bar .step2-top-bar-actions {
    margin-left: 0;
}

.step2-quick-guide-host {
    margin-bottom: 0.5rem;
    padding: 0.65rem 0.75rem;
    border-radius: var(--radius);
    border: 1px solid var(--c-border);
    background: var(--c-surface);
}

.step2-quick-guide-host[hidden] {
    display: none !important;
    margin: 0;
    padding: 0;
    border: none;
}

.step2-quick-guide-host .step2-how-it-works-body {
    margin: 0;
}

.workspace-answer-actions {
    margin: 0.25rem 0 0;
}

.workspace-answer-actions .btn-link {
    padding-left: 0;
    font-size: 0.82rem;
}

.workspace-ready-cards {
    margin: 0.5rem 0 0.75rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid var(--c-border);
}

.step2-assignments-main .workspace-ready-cards {
    margin-top: 0.35rem;
    margin-bottom: 0.55rem;
}

.workspace-ready-cards-label {
    margin: 0;
    flex: 0 0 auto;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--c-muted);
    white-space: nowrap;
}

.workspace-ready-cards-row {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.workspace-ready-card {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    text-align: center;
    padding: 0.32rem 0.55rem;
    border-radius: var(--radius);
    border: 1px solid var(--c-border);
    background: var(--c-surface);
    cursor: pointer;
    white-space: nowrap;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.workspace-ready-card:not(:disabled):hover {
    border-color: rgba(79, 70, 229, 0.35);
    box-shadow: 0 1px 4px rgba(79, 70, 229, 0.08);
}

.workspace-ready-card--talk:not(:disabled),
.workspace-ready-card--discuss:not(:disabled) {
    border-color: rgba(79, 70, 229, 0.25);
    background: rgba(79, 70, 229, 0.04);
}

.workspace-ready-card--locked,
.workspace-ready-card:disabled {
    opacity: 0.72;
    cursor: not-allowed;
    background: var(--c-bg, #f8f9fa);
}

.workspace-ready-card-title {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--c-text);
    line-height: 1.2;
}

.workspace-lens-back {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    flex-shrink: 0;
    padding-bottom: 0.65rem;
    margin-bottom: 0.35rem;
    border-bottom: 1px solid var(--c-border);
}

.workspace-lens-back-btn {
    font-size: 0.92rem;
    font-weight: 600;
    padding: 0.55rem 1.05rem;
    min-height: 2.5rem;
}

.step2-qa-header--discuss .workspace-lens-back-btn {
    flex-shrink: 0;
}

.workspace-lens-back-current {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--c-primary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.workspace-lens-back-actions {
    margin-left: auto;
    flex-shrink: 0;
}

.workspace-lens-nav--tabrow {
    border-bottom: 1px solid var(--c-border);
    padding-bottom: 0;
}

.workspace-lens-nav-toolbar {
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
    padding: 0.4rem 0 0.35rem;
}

.workspace-lens-nav-toolbar-row {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-width: 0;
}

.workspace-lens-nav-toolbar-row--view {
    justify-content: space-between;
    gap: 0.75rem;
}

.workspace-lens-nav-toolbar-row--work {
    flex-wrap: wrap;
    justify-content: flex-start;
}

.workspace-lens-nav-toolbar-row--work .workspace-lens-nav-toolbar-actions {
    margin-left: auto;
}

.workspace-lens-nav-toolbar-actions {
    flex-shrink: 0;
    margin-left: auto;
}

.step2-scope-zone {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-width: 0;
    flex: 1 1 auto;
}

.step2-zone-label {
    flex-shrink: 0;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--c-muted);
}

.workspace-lens-nav-tabrow {
    display: flex;
    align-items: center;
    gap: 0.35rem 0.75rem;
    flex-wrap: wrap;
    min-width: 0;
}

.workspace-lens-nav-tabrow .workspace-mode-bar {
    flex: 1 1 auto;
    min-width: 0;
    margin-bottom: 0;
}

.workspace-lens-nav-toolbar-row--work .workspace-mode-bar {
    flex: 1 1 auto;
    min-width: 0;
    margin-bottom: 0;
}

.workspace-mode-tab-group {
    display: inline-flex;
    align-items: center;
    gap: 0.12rem;
    padding: 0.16rem;
    border-radius: 10px;
    background: rgba(15, 23, 42, 0.04);
    border: 1px solid var(--c-border);
    min-width: 0;
}

.workspace-mode-tab-group--check {
    background: rgba(15, 23, 42, 0.025);
}

.workspace-mode-tab-sep {
    width: 0.5rem;
    align-self: stretch;
    flex-shrink: 0;
    background: transparent;
}

.workspace-lens-nav-tabrow-actions {
    display: flex;
    align-items: center;
    gap: 0.45rem 0.85rem;
    flex-shrink: 0;
    margin-left: auto;
}

.step2-scope-radios {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
}

.step2-scope-radio {
    display: inline-flex;
    align-items: center;
    gap: 0.32rem;
    margin: 0;
    font-size: 0.76rem;
    font-weight: 600;
    color: var(--c-muted);
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}

.step2-scope-radio input[type="radio"] {
    margin: 0;
    accent-color: var(--c-primary);
}

.step2-scope-radio:has(input:checked) {
    color: var(--c-text);
}

.workspace-lens-nav--tabrow .step2-quick-guide-host {
    margin: 0.35rem 0 0.15rem;
}

.workspace-lens-nav--tabrow .workspace-lens-nav-active-hint {
    display: none;
}

.a-main--fill .workspace-lens-nav--tabrow .workspace-lens-nav-toolbar-actions .step2-top-bar-help,
.a-main--fill .workspace-lens-nav--tabrow .workspace-lens-nav-toolbar-actions .step2-top-bar-pace,
.a-main--fill .workspace-lens-nav--tabrow .step2-top-bar-help,
.a-main--fill .workspace-lens-nav--tabrow .step2-top-bar-pace {
    font-size: 0.72rem;
    padding: 0.1rem 0.25rem;
}

.a-main--fill .workspace-lens-nav--tabrow .step2-scope-radio {
    font-size: 0.72rem;
}

.workspace-lens-nav--compact {
    border-bottom: none;
    gap: 0.35rem;
}

.workspace-lens-nav--compact .workspace-mode-bar {
    margin-bottom: 0;
}

.workspace-lens-nav {
    flex-shrink: 0;
    padding: 0;
    border-bottom: 1px solid var(--c-border);
}

.workspace-lens-nav-head {
    display: flex;
    flex-direction: row;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.25rem 0.45rem;
    margin-bottom: 0.2rem;
}

.workspace-mode-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0 0 0.15rem;
}

.workspace-mode-bar--lens {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
    padding: 0;
    border-bottom: none;
    margin-bottom: 0;
}

.workspace-mode-bar--lens .workspace-mode-tab--pill {
    display: inline-flex;
    align-items: center;
    gap: 0.32rem;
    border: none;
    border-radius: 8px;
    background: transparent;
    padding: 0.34rem 0.62rem;
    margin: 0;
    color: var(--c-muted);
    font-size: 0.76rem;
    font-weight: 600;
    line-height: 1.1;
    white-space: nowrap;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.workspace-mode-tab-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--c-subtle);
    transition: color 0.15s ease;
}

.workspace-mode-tab-icon svg {
    display: block;
}

.workspace-mode-tab-label {
    line-height: 1.1;
}

.workspace-mode-bar--lens .workspace-mode-tab--pill:hover:not(.workspace-mode-tab--active) {
    color: var(--c-text);
    background: rgba(255, 255, 255, 0.55);
}

.workspace-mode-bar--lens .workspace-mode-tab--pill:hover:not(.workspace-mode-tab--active) .workspace-mode-tab-icon {
    color: var(--c-text);
}

.workspace-mode-bar--lens .workspace-mode-tab--pill.workspace-mode-tab--active {
    background: #fff;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.1);
    color: var(--c-text);
    font-weight: 700;
}

.workspace-mode-bar--lens .workspace-mode-tab--pill.workspace-mode-tab--active .workspace-mode-tab-icon {
    color: var(--c-text);
}

.workspace-mode-bar--lens .workspace-mode-tab--pill.workspace-mode-tab--ready:not(.workspace-mode-tab--active) {
    color: var(--c-success);
}

.workspace-mode-bar--lens .workspace-mode-tab--pill.workspace-mode-tab--ready:not(.workspace-mode-tab--active) .workspace-mode-tab-icon {
    color: var(--c-success);
}

.workspace-mode-bar--lens .workspace-mode-tab--pill.workspace-mode-tab--ready.workspace-mode-tab--active {
    color: var(--c-text);
}

.workspace-mode-bar--lens .workspace-mode-tab--pill.workspace-mode-tab--ready.workspace-mode-tab--active .workspace-mode-tab-icon {
    color: var(--c-text);
}

.workspace-mode-bar--lens .workspace-mode-tab {
    border: none;
    border-radius: 6px 6px 0 0;
    background: transparent;
    border-bottom: 2px solid transparent;
    padding: 0.35rem 0.55rem;
    margin-bottom: -1px;
    color: var(--c-muted);
    font-size: 0.78rem;
}

.workspace-mode-bar--lens .workspace-mode-tab:hover:not(.workspace-mode-tab--active) {
    color: var(--c-text);
    background: rgba(0, 0, 0, 0.03);
}

.workspace-mode-bar--lens .workspace-mode-tab--active {
    background: transparent;
    border-bottom-color: var(--c-text);
    color: var(--c-text);
    font-weight: 700;
}

.workspace-mode-bar--lens .workspace-mode-tab--ready:not(.workspace-mode-tab--active) {
    color: var(--c-success);
}

.workspace-mode-bar--lens .workspace-mode-tab--ready.workspace-mode-tab--active {
    border-bottom-color: var(--c-success);
    color: var(--c-success);
}

.workspace-mode-tab-dot {
    display: inline-block;
    width: 6px;
    height: 6px;
    margin-left: 0.1rem;
    border-radius: 50%;
    background: var(--c-success);
    flex-shrink: 0;
}

.workspace-mode-tab-dot--pulse {
    animation: workspace-mode-tab-dot-pulse 0.8s ease-in-out 3;
}

@keyframes workspace-mode-tab-dot-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(5, 150, 105, 0); }
    50% { box-shadow: 0 0 0 4px rgba(5, 150, 105, 0.28); }
}

.workspace-mode-tab {
    border: 1px solid var(--c-border);
    background: var(--c-surface);
    color: var(--c-text);
    border-radius: 999px;
    padding: 0.45rem 0.85rem;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
}

.workspace-mode-tab--active {
    background: var(--c-primary);
    border-color: var(--c-primary);
    color: #fff;
}

.workspace-coverage {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.workspace-coverage-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
}

.workspace-coverage-title,
.workspace-talk-context-title,
.workspace-panel-title {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--c-muted);
    margin: 0;
}

.workspace-coverage-count {
    font-size: 0.75rem;
    color: var(--c-muted);
    white-space: nowrap;
}

.workspace-coverage-track {
    display: flex;
    gap: 3px;
    width: 100%;
    height: 0.45rem;
    border-radius: 999px;
    overflow: hidden;
    background: var(--c-border);
}

.workspace-coverage-seg {
    flex: 1 1 0;
    min-width: 0;
    border-radius: 2px;
    transition: background-color 0.15s ease;
}

.workspace-coverage-seg--complete {
    background: rgba(5, 150, 105, 0.85);
}

.workspace-coverage-seg--partial {
    background: rgba(245, 158, 11, 0.65);
}

.workspace-coverage-seg--open {
    background: rgba(148, 163, 184, 0.45);
}

.workspace-coverage-seg--na {
    background: rgba(148, 163, 184, 0.25);
}

.workspace-coverage-labels {
    display: flex;
    gap: 3px;
    width: 100%;
}

.workspace-coverage-label {
    flex: 1 1 0;
    min-width: 0;
    font-size: 0.62rem;
    line-height: 1.25;
    color: var(--c-muted);
    text-align: center;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 0 1px;
}

.workspace-talk-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
    margin-top: 0.45rem;
    padding: 0.4rem 0.55rem;
    border-radius: var(--radius);
    background: rgba(79, 70, 229, 0.06);
    border: 1px solid rgba(79, 70, 229, 0.15);
}

.workspace-talk-cta-copy {
    margin: 0;
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.78rem;
    line-height: 1.35;
    color: var(--c-text);
}

.workspace-talk-cta .btn {
    flex-shrink: 0;
    white-space: nowrap;
}

.workspace-talk-panel {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.workspace-talk-agent-window {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--c-border);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.workspace-talk-agent-window--thread-only {
    background: #fff;
}

.workspace-talk-agent-window--thread-only .workspace-talk-thread {
    padding-top: 0.75rem;
}

.workspace-talk-agent-head {
    flex-shrink: 0;
    padding: 0.85rem 0.95rem 0.75rem;
    border-bottom: 1px solid var(--c-chrome-border);
    background: var(--c-chrome-surface);
}

.workspace-talk-agent-head--compact {
    padding: 0.4rem 0.75rem 0.45rem;
}

.workspace-talk-agent-head--session.workspace-talk-agent-head--compact {
    padding: 0.3rem 0.7rem 0.35rem;
}

.workspace-talk-agent-head--compact .workspace-talk-focus {
    margin-top: 0.45rem;
    padding: 0.55rem 0.65rem;
}

.workspace-talk-agent-assignment {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--c-muted);
}

.workspace-talk-session-kicker {
    margin: 0;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--c-muted);
}

.workspace-talk-session-bar {
    display: flex;
    align-items: center;
    gap: 0.45rem 0.65rem;
    min-width: 0;
}

.workspace-talk-session-status-slot {
    flex: 1 1 auto;
    min-width: 0;
}

.workspace-talk-session-status-slot:empty {
    display: none;
}

.workspace-talk-session-status {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.35;
    color: var(--c-muted);
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.workspace-talk-session-status::before {
    content: '·';
    margin-right: 0.45rem;
    color: var(--c-subtle);
    font-weight: 400;
}

.workspace-talk-session-title {
    margin: 0;
    flex-shrink: 0;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--c-text);
}

.workspace-talk-agent-head--session.workspace-talk-agent-head--compact .workspace-talk-session-title {
    font-size: 0.88rem;
    line-height: 1.2;
}

.workspace-talk-session-question {
    margin: 0.25rem 0 0;
    font-size: 0.88rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--c-text);
}

.workspace-talk-agent-head--session .workspace-talk-agent-brief {
    margin-top: 0.35rem;
    font-size: 0.8rem;
    line-height: 1.35;
    color: var(--c-muted);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.workspace-mquote {
    margin-top: 0.35rem;
    max-width: min(36rem, 96%);
    padding: 0.75rem 0.9rem;
    border-radius: 10px;
    border: 1px solid var(--c-author-border);
    background: rgba(245, 243, 255, 0.85);
}

.workspace-mquote-lead {
    margin: 0 0 0.25rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--c-author-text);
}

.workspace-mquote-prompt {
    margin: 0 0 0.45rem;
    font-size: 0.86rem;
    line-height: 1.45;
}

.workspace-mquote-text {
    margin: 0 0 0.45rem;
    font-size: 0.9rem;
    font-style: italic;
    line-height: 1.45;
    border-left: 3px solid var(--c-author);
    padding-left: 0.65rem;
}

.workspace-mquote-context {
    display: block;
    margin-bottom: 0.5rem;
    font-size: 0.78rem;
    color: var(--c-muted);
}

.workspace-mquote--saved {
    border-color: rgba(46, 125, 50, 0.28);
    background: rgba(232, 245, 233, 0.75);
}

.workspace-mquote-saved-line {
    margin: 0 0 0.35rem;
    font-size: 0.86rem;
}

.workspace-mquote-check {
    color: var(--c-success, #2e7d32);
    font-weight: 700;
}

.workspace-mquotes-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.workspace-mquotes-list blockquote {
    margin: 0;
    font-size: 0.86rem;
    font-style: italic;
    line-height: 1.45;
    border-left: 3px solid var(--c-primary, #5b4fd6);
    padding-left: 0.6rem;
}

.workspace-pending-quotes {
    margin-bottom: 0.5rem;
}

.workspace-pending-quotes-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.workspace-pending-quote {
    padding: 0.55rem 0.65rem;
    border-radius: 8px;
    border: 1px dashed rgba(91, 79, 214, 0.35);
    background: rgba(245, 243, 255, 0.55);
}

.workspace-pending-quote--busy {
    opacity: 0.65;
    pointer-events: none;
}

.workspace-pending-quote-text {
    margin: 0 0 0.3rem;
    font-size: 0.82rem;
    font-style: italic;
    line-height: 1.4;
    border-left: 2px solid var(--c-primary, #5b4fd6);
    padding-left: 0.5rem;
}

.workspace-pending-quote-context {
    display: block;
    font-size: 0.72rem;
    color: var(--c-muted);
    margin-bottom: 0.35rem;
}

.workspace-pending-quote-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.5rem;
    align-items: center;
}

.workspace-turn-badges {
    display: inline-flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem;
    flex-shrink: 0;
}

.workspace-turn-badges--trail {
    display: inline-flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.2rem;
    margin-left: 0.35rem;
    vertical-align: text-bottom;
    white-space: nowrap;
}

.workspace-turn-badges--trail .workspace-turn-badge {
    min-height: auto;
    padding: 0.08rem 0.22rem;
    vertical-align: text-bottom;
}

.workspace-turn-badges--trail .workspace-turn-badge--icon-only {
    min-width: auto;
    padding: 0.08rem 0.18rem;
}

.workspace-turn-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    padding: 0.18rem 0.38rem;
    border-radius: 6px;
    border: none;
    background: transparent;
    color: var(--c-muted, #64748b);
    font-size: 0.68rem;
    font-weight: 500;
    line-height: 1.3;
    cursor: pointer;
    min-height: 1.75rem;
    transition: background 0.12s ease, color 0.12s ease;
}

.workspace-turn-badge:hover {
    background: rgba(15, 23, 42, 0.06);
    color: var(--c-text, #0f172a);
}

.workspace-turn-badge:focus-visible {
    outline: 2px solid rgba(79, 70, 229, 0.45);
    outline-offset: 2px;
}

.workspace-turn-badge-icon {
    font-size: 0.82rem;
    line-height: 1;
    opacity: 0.85;
}

.workspace-turn-badge-icon i {
    font-size: inherit;
    line-height: inherit;
}

.workspace-turn-badge--icon-only {
    padding: 0.18rem 0.32rem;
    min-width: 1.75rem;
    justify-content: center;
}

.workspace-turn-badge-short {
    font-size: 0.68rem;
    font-weight: 500;
    line-height: 1.25;
}

.workspace-turn-badge--insight,
.workspace-turn-badge--quote,
.workspace-turn-badge--saved {
    color: var(--c-muted, #64748b);
}

.workspace-turn-badge--insight:hover,
.workspace-turn-badge--quote:hover,
.workspace-turn-badge--saved:hover {
    color: var(--c-text, #0f172a);
}

.workspace-capture-dialog {
    max-width: 34rem;
}

.workspace-capture-dialog-quote {
    margin: 0;
    padding-left: 0.75rem;
    border-left: 3px solid var(--c-primary, #5b4fd6);
    font-size: 1rem;
    font-style: italic;
    line-height: 1.5;
    color: var(--c-text);
}

.workspace-capture-dialog-context {
    margin: 0.6rem 0 0;
    font-size: 0.82rem;
    color: var(--c-muted);
}

.workspace-capture-dialog-body .workspace-ghostwriter-insight {
    max-width: none;
    margin-top: 0;
}

.workspace-talk-agent-brief {
    margin: 0.35rem 0 0;
    font-size: 0.88rem;
    line-height: 1.45;
    color: var(--c-text);
}

.workspace-talk-resume {
    display: none;
}

/* Increment 8 — Project Conversation history chrome (all journey shells) */
.conversation-history-slot {
    margin: 0 0 0.55rem;
}

.conversation-history-chrome {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.45rem 0.65rem;
    border-left: 3px solid var(--c-accent, #2f5d50);
    background: color-mix(in srgb, var(--c-accent, #2f5d50) 8%, transparent);
    border-radius: 0 0.35rem 0.35rem 0;
}

.conversation-history-chrome--compact {
    padding: 0.35rem 0.55rem;
    gap: 0.15rem;
}

.conversation-history-continuity,
.conversation-history-projection,
.conversation-history-extra,
.conversation-history-workflow-note {
    margin: 0;
    font-size: 0.8rem;
    line-height: 1.4;
    color: var(--c-text-muted, #5a635e);
}

.conversation-history-chrome--compact .conversation-history-continuity,
.conversation-history-chrome--compact .conversation-history-extra {
    font-size: 0.74rem;
}

.conversation-history-projection {
    color: var(--c-text, #24302b);
}

.conversation-history-captures {
    list-style: none;
    margin: 0.3rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.conversation-history-capture {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.3rem 0.55rem;
    font-size: 0.74rem;
    color: var(--c-text-muted, #5a635e);
}

.conversation-history-capture-status {
    font-weight: 600;
    text-transform: capitalize;
    color: var(--c-text, #24302b);
}

.call-shell-history-slot {
    margin: 0 0.75rem 0.65rem;
}

.mobile-studio-talk-history-slot {
    margin: 0 0 0.45rem;
}

.plan-ghost-panel .conversation-history-slot {
    margin: 0 0 0.45rem;
}

.conversation-history-expand {
    align-self: flex-start;
    margin: 0.1rem 0 0;
    padding: 0;
    font-size: 0.78rem;
}

.conversation-history-episodes {
    list-style: none;
    margin: 0.35rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    max-height: 10rem;
    overflow: auto;
}

.conversation-history-episode {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.75rem;
    padding: 0.25rem 0.4rem;
    border-radius: 0.3rem;
    background: color-mix(in srgb, var(--c-surface, #fff) 80%, transparent);
}

.conversation-history-episode--current {
    outline: 1px solid color-mix(in srgb, var(--c-accent, #2f5d50) 45%, transparent);
}

.conversation-history-episode-label {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--c-text, #24302b);
}

.conversation-history-episode-meta {
    font-size: 0.72rem;
    color: var(--c-text-muted, #5a635e);
}

.workspace-talk-session-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem 0.75rem;
}

.workspace-talk-session-head-copy {
    flex: 1 1 auto;
    min-width: 0;
}

.workspace-talk-head-actions {
    flex-shrink: 0;
    margin-left: auto;
    padding-top: 0.05rem;
}

.workspace-talk-head-actions .workspace-talk-fresh-session {
    margin: 0;
    padding: 0;
    white-space: nowrap;
    font-size: 0.78rem;
}

.workspace-talk-head-actions .workspace-talk-go-deeper {
    margin: 0 0 0 0.65rem;
    padding: 0;
    white-space: nowrap;
    font-size: 0.78rem;
}

.workspace-talk-head-actions .workspace-talk-start-over {
    margin: 0 0 0 0.65rem;
    padding: 0;
    white-space: nowrap;
    font-size: 0.78rem;
}

.workspace-story-connections-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.workspace-story-connections-list li {
    font-size: 0.84rem;
    line-height: 1.45;
    color: var(--c-text);
}

.workspace-story-connection-from {
    font-weight: 600;
}

.workspace-story-connection-arrow {
    margin: 0 0.35rem;
    color: var(--c-primary, #5b4fd6);
    font-weight: 700;
}

.workspace-story-connection-note {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.78rem;
    color: var(--c-muted, #64748b);
    font-style: italic;
}

.workspace-review-list--connections li {
    line-height: 1.45;
}

.workspace-talk-focus {
    margin-top: 0.75rem;
    padding: 0.7rem 0.8rem;
    border-radius: var(--radius);
    background: #fff;
    border: 1px solid rgba(79, 70, 229, 0.2);
    font-size: 0.84rem;
    line-height: 1.45;
}

.workspace-talk-focus-label {
    display: block;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: 0.68rem;
    color: var(--c-primary);
    margin-bottom: 0.25rem;
}

.workspace-talk-focus-qnum {
    display: inline-block;
    margin-left: 0.35rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--c-muted);
}

.workspace-talk-focus-text {
    margin: 0.35rem 0 0;
    font-size: 0.98rem;
    font-weight: 600;
    line-height: 1.4;
    color: var(--c-text);
}

.workspace-talk-context-desc,
.workspace-panel-copy {
    margin: 0.35rem 0 0;
    font-size: 0.9rem;
    color: var(--c-text);
    line-height: 1.5;
}

.workspace-talk-thread {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    flex: 1 1 auto;
    min-height: 0;
    padding: 0.65rem 0.85rem 1.5rem;
    scroll-padding-bottom: 1.5rem;
    overflow-y: auto;
    overflow-x: hidden;
}

.workspace-talk-agent-window--discuss > .workspace-talk-thread {
    padding-bottom: 1.75rem;
    scroll-padding-bottom: 1.75rem;
}

.workspace-talk-agent-window .workspace-talk-toolbar {
    flex-shrink: 0;
    padding: 0 0.95rem 0.65rem;
    margin-top: auto;
}

.workspace-talk-bubble {
    border-radius: var(--radius);
    padding: 0.75rem 0.9rem;
    max-width: 92%;
}

.workspace-talk-bubble p {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.55;
}

/* Preserve Ghostwriter paragraph breaks (social ack vs soft handoff / dig). */
.workspace-talk-bubble p + p {
    margin-top: 0.7em;
}

.workspace-talk-bubble--assistant {
    align-self: flex-start;
    background: transparent;
    border: none;
    padding: 0.2rem 0;
    max-width: 100%;
}

.workspace-talk-bubble--user {
    align-self: flex-end;
    background: var(--c-author-surface);
    border: none;
    padding: 0.5rem 0.72rem;
}

.workspace-talk-bubble .workspace-talk-quote-excerpt {
    margin: 0.45rem 0 0;
    padding: 0.45rem 0 0.45rem 0.65rem;
    border-left: 3px solid var(--c-primary, #5b4fd6);
    font-style: italic;
    line-height: 1.45;
    color: inherit;
}

.workspace-talk-bubble .workspace-talk-quote-excerpt p {
    margin: 0;
}

.workspace-talk-bubble .workspace-talk-quote-excerpt--callout {
    margin-top: 0.65rem;
    padding: 0.5rem 0.65rem;
    border-radius: 0 8px 8px 0;
    background: rgba(255, 255, 255, 0.45);
    font-style: normal;
}

.workspace-talk-quote-excerpt-label {
    margin: 0 0 0.25rem;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--c-primary, #5b4fd6);
    font-style: normal;
}

.workspace-talk-bubble--quote-pending {
    /* pending quotes use sidebar approval — no bubble chrome */
}

.workspace-talk-bubble--quote-saved {
    /* saved quote excerpt styling lives in blockquote, not bubble border */
}

.workspace-talk-turn {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    max-width: 100%;
}

.workspace-talk-turn--user {
    align-items: flex-end;
}

.workspace-talk-turn--assistant {
    align-items: flex-start;
}

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

.workspace-ghostwriter-insight {
    margin-top: 0.15rem;
    max-width: min(36rem, 96%);
    padding: 0.75rem 0.9rem;
    border-radius: 10px;
    border: 1px solid rgba(245, 158, 11, 0.35);
    background: linear-gradient(180deg, rgba(255, 251, 235, 0.95) 0%, rgba(255, 247, 237, 0.9) 100%);
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.08);
}

.workspace-ghostwriter-insight-head {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.25rem;
}

.workspace-ghostwriter-insight-icon {
    font-size: 1rem;
    line-height: 1;
}

.workspace-ghostwriter-insight-label {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #b45309;
}

.workspace-ghostwriter-insight-title {
    margin: 0 0 0.25rem;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--c-text);
}

.workspace-ghostwriter-insight-body {
    margin: 0;
    font-size: 0.86rem;
    line-height: 1.5;
    color: var(--c-text);
}

.workspace-ghostwriter-insight-source {
    margin: 0.45rem 0 0;
    font-size: 0.78rem;
    line-height: 1.4;
    color: var(--c-muted, #64748b);
    font-style: italic;
}

.workspace-ghostwriter-insight--cross_link {
    border-color: rgba(148, 163, 184, 0.35);
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.95) 0%, rgba(241, 245, 249, 0.92) 100%);
}

.workspace-ghostwriter-insight--cross_link .workspace-ghostwriter-insight-label {
    color: var(--c-muted);
}

.workspace-sidebar-insights-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.workspace-remembers--sidebar .workspace-ghostwriter-insight--sidebar {
    max-width: none;
    margin-top: 0;
    padding: 0.5rem 0.55rem;
    font-size: 0.92em;
}

.workspace-remembers--sidebar .workspace-ghostwriter-insight-title {
    font-size: 0.82rem;
}

.workspace-remembers--sidebar .workspace-ghostwriter-insight-body {
    font-size: 0.8rem;
    line-height: 1.45;
}

.workspace-talk-composer {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.workspace-talk-composer-stack {
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    border-top: 1px solid var(--c-border);
    background: var(--c-surface);
    position: relative;
    z-index: 2;
}

.workspace-talk-status-slot {
    flex-shrink: 0;
    min-height: 0;
    padding: 0 0.85rem;
}

.workspace-talk-status-slot:not(:empty) {
    padding-top: 0.3rem;
    padding-bottom: 0.15rem;
}

.workspace-talk-status--thinking {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.35rem;
    max-width: 100%;
    min-height: 1.35rem;
}

.workspace-talk-status--thinking .workspace-talk-thinking-text {
    margin: 0;
    font-size: 0.78rem;
    line-height: 1.35;
    color: var(--c-muted);
    font-style: italic;
    min-width: 0;
    flex: 1 1 auto;
}

.workspace-talk-composer-foot {
    flex-shrink: 0;
    box-sizing: border-box;
    width: 100%;
    min-height: 0;
    padding: 0 0.75rem 0.65rem;
}

.workspace-talk-composer-foot:not(:empty) {
    padding-top: 0.25rem;
}

body.ai-author-narration-dock .workspace-talk-composer-foot {
    min-height: 0;
}

body.ai-author-narration-dock #ai-author-narration-dock {
    min-height: 2rem;
}

.workspace-talk-composer-stack > .workspace-talk-composer {
    border-top: none;
}

.workspace-talk-agent-window--discuss {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.workspace-talk-agent-window--discuss > .workspace-talk-thread {
    flex: 1 1 0;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
}

.workspace-talk-agent-window--discuss > .workspace-talk-composer-stack {
    flex-shrink: 0;
    margin-top: auto;
}

.workspace-talk-composer .workspace-composer-tools-row {
    flex: 0 0 auto;
    margin: 0;
    padding: 0.35rem 0 0.25rem;
    border-top: none;
    background: transparent;
    box-shadow: none;
}

.workspace-composer-tools-row--right .workspace-composer-tools-middle {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-end;
    align-items: center;
    gap: 0.35rem;
    width: 100%;
    min-width: 0;
}

.workspace-composer-tools-row--right .workspace-composer-tools-middle .btn-ghostwriter,
.workspace-composer-tools-row--right .workspace-composer-stuck-wrap > .btn-ghostwriter {
    flex: 0 0 auto;
    width: auto;
    min-width: 4.5rem;
}

.workspace-composer-done {
    font-weight: 600;
    color: var(--c-primary, #4f46e5);
    border-color: rgba(79, 70, 229, 0.35);
    min-width: 9rem;
}

.workspace-composer-done:hover:not(:disabled) {
    background: rgba(79, 70, 229, 0.08);
}

.btn-ghostwriter--done-primary {
    background: var(--c-primary, #4f46e5);
    color: #fff;
    border-color: var(--c-primary, #4f46e5);
    font-weight: 700;
}

.btn-ghostwriter--done-primary:hover:not(:disabled) {
    background: var(--c-primary-dark, #4338ca);
    color: #fff;
}

.workspace-talk-composer .workspace-composer-tools-row .btn-ghostwriter {
    font-size: clamp(0.7rem, 1.2vw, 0.86rem);
    padding: 0.1rem clamp(0.16rem, 0.4vw, 0.28rem);
    min-height: 1.38rem;
    line-height: 1.2;
}

.workspace-talk-composer--ghostwriter-busy .workspace-composer-talk,
.workspace-talk-composer--loading .workspace-composer-talk,
.workspace-talk-composer--ghostwriter-busy .workspace-composer-talk-menu,
.workspace-talk-composer--loading .workspace-composer-talk-menu {
    opacity: 0.5;
    pointer-events: none;
}

/* Talk split control + continuous voice dock */
.workspace-talk-split {
    position: relative;
    display: inline-flex;
    align-items: stretch;
    flex: 0 0 auto;
}

.workspace-talk-split .workspace-composer-talk {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    min-width: 3.6rem;
}

.btn-ghostwriter--talk-chevron.workspace-composer-talk-menu {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    border-left: 0;
    min-width: 1.55rem;
    padding-left: 0.15rem;
    padding-right: 0.2rem;
    font-size: 0.65rem;
    line-height: 1;
}

.workspace-talk-voice-menu {
    position: absolute;
    right: 0;
    bottom: calc(100% + 0.35rem);
    z-index: 40;
    min-width: min(18rem, 78vw);
    padding: 0.35rem;
    border-radius: 10px;
    border: 1px solid var(--c-author-border, #d8d6ef);
    /* Opaque panel so story thread text cannot bleed through Talk options. */
    background: var(--c-surface, #fff);
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.14);
}

.workspace-talk-voice-menu-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
    width: 100%;
    margin: 0;
    padding: 0.55rem 0.65rem;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
    font: inherit;
}

.workspace-talk-voice-menu-item:hover,
.workspace-talk-voice-menu-item:focus-visible {
    background: rgba(79, 70, 229, 0.08);
    outline: none;
}

.workspace-talk-voice-menu-title {
    font-size: 0.86rem;
    font-weight: 650;
    color: var(--c-author-text, #1e1b4b);
}

.workspace-talk-voice-menu-sub {
    font-size: 0.74rem;
    color: var(--c-author-muted, #64748b);
    line-height: 1.35;
}

.workspace-talk-voice-menu-backdrop {
    position: fixed;
    inset: 0;
    z-index: 35;
    border: 0;
    background: rgba(15, 23, 42, 0.35);
    padding: 0;
    cursor: pointer;
}

.workspace-talk-voice-menu--sheet {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    z-index: 45;
    min-width: 0;
    width: 100%;
    border-radius: 14px 14px 0 0;
    padding: 0.55rem 0.55rem calc(0.55rem + env(safe-area-inset-bottom, 0px));
    box-shadow: 0 -8px 28px rgba(15, 23, 42, 0.18);
}

.discuss-voice-dock {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 0.55rem 0.15rem 0.15rem;
}

.discuss-voice-dock[hidden] {
    display: none !important;
}

.discuss-voice-dock-header {
    display: flex;
    align-items: center;
    gap: 0.45rem;
}

.discuss-voice-dock-label {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--c-author-text, #1e1b4b);
}

.discuss-voice-dock-status {
    margin: 0;
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--c-author-text, #1e1b4b);
    min-height: 1.35em;
}

.discuss-voice-dock-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}

.discuss-voice-dock-actions .btn-ghostwriter {
    font-size: 0.8rem;
    min-height: 2rem;
    padding: 0.25rem 0.55rem;
}

.discuss-voice-dock-indicator {
    width: 0.65rem;
    height: 0.65rem;
    border-radius: 999px;
    background: var(--c-author-muted, #94a3b8);
    flex: 0 0 auto;
}

.discuss-voice-dock-indicator--speaking {
    background: var(--c-primary, #4f46e5);
    animation: discuss-voice-pulse 1.1s ease-in-out infinite;
}

.discuss-voice-dock-indicator--listening {
    background: #059669;
    animation: discuss-voice-pulse 0.9s ease-in-out infinite;
}

.discuss-voice-dock-indicator--processing {
    background: #d97706;
    animation: discuss-voice-pulse 0.7s ease-in-out infinite;
}

.discuss-voice-dock-indicator--error {
    background: #dc2626;
}

@keyframes discuss-voice-pulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.35); opacity: 0.55; }
}

@media (prefers-reduced-motion: reduce) {
    .discuss-voice-dock-indicator--speaking,
    .discuss-voice-dock-indicator--listening,
    .discuss-voice-dock-indicator--processing {
        animation: none;
    }
}

.workspace-talk-composer--voice-mode {
    box-shadow: 0 6px 18px rgba(79, 70, 229, 0.12);
}

.workspace-talk-composer--dock {
    padding: 0.55rem 0.65rem 0.65rem;
    border-radius: 12px;
    border: 2px solid var(--c-author-border);
    background: linear-gradient(180deg, var(--c-author-surface) 0%, #fff 55%);
    box-shadow: 0 6px 18px rgba(79, 70, 229, 0.14);
}

.workspace-talk-composer-label {
    margin: 0 0 0.45rem;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    color: var(--c-author-text);
}

.workspace-talk-composer--dock .workspace-talk-composer-box {
    border-color: var(--c-author-border);
    background: var(--c-author-surface);
    box-shadow: inset 0 1px 2px rgba(79, 70, 229, 0.06);
}

.workspace-talk-composer--dock .workspace-talk-input {
    min-height: 3.1rem;
    font-size: 1rem;
    padding-top: 0.6rem;
    padding-bottom: 0.6rem;
}

.workspace-talk-composer--dock .workspace-talk-send {
    opacity: 1;
    pointer-events: auto;
    transform: scale(1);
    width: 2rem;
    height: 2rem;
    font-size: 0.9rem;
}

.workspace-talk-composer--dock .workspace-talk-mic {
    width: 2rem;
    height: 2rem;
}

.workspace-talk-composer--slim {
    padding: 0;
    border: none;
    background: transparent;
    box-shadow: none;
}

.workspace-talk-composer--slim .workspace-talk-composer-box {
    border-color: var(--c-author-border);
    background: var(--c-author-surface);
    box-shadow: 0 1px 4px rgba(79, 70, 229, 0.08);
}

.workspace-talk-composer--slim .workspace-talk-composer-box:focus-within {
    border-color: rgba(79, 70, 229, 0.5);
    box-shadow: 0 0 0 2px var(--c-author-focus);
}

.workspace-talk-composer--slim .workspace-talk-input {
    min-height: 2.35rem;
    max-height: none;
    font-size: 0.92rem;
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
    line-height: 1.35;
    overflow-y: hidden;
    resize: none;
}

.workspace-talk-composer--slim .workspace-talk-send,
.workspace-talk-composer--slim .workspace-talk-mic {
    width: 1.85rem;
    height: 1.85rem;
    font-size: 0.82rem;
}

.workspace-talk-panel--discuss .workspace-talk-composer--slim .workspace-talk-composer-box:hover {
    border-color: rgba(79, 70, 229, 0.42);
}

.workspace-talk-coverage-compact {
    opacity: 0.85;
    margin-top: 0.15rem;
}

.workspace-talk-coverage-compact .workspace-coverage-labels {
    display: none;
}

.workspace-talk-coverage-compact .workspace-coverage-head {
    margin-bottom: 0.25rem;
}

.workspace-discuss-gap-banner {
    margin: 0.35rem 0 0.5rem;
    padding: 0.55rem 0.7rem;
    border-radius: var(--radius);
    background: linear-gradient(180deg, rgba(255, 251, 235, 0.95) 0%, rgba(254, 243, 199, 0.55) 100%);
    border: 1px solid rgba(217, 119, 6, 0.22);
}

.workspace-discuss-gap-banner-text {
    margin: 0 0 0.25rem;
    font-size: 0.84rem;
    line-height: 1.45;
    color: var(--c-text);
}

.workspace-discuss-gap-banner-text strong {
    color: #b45309;
    font-weight: 700;
}

.workspace-discuss-gap-focus-btn {
    padding: 0;
    font-size: 0.82rem;
}

.workspace-discuss-coverage-panel {
    margin-top: 0.65rem;
    padding-top: 0.55rem;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.workspace-discuss-coverage-panel .workspace-coverage {
    margin-bottom: 0.45rem;
}

.workspace-discuss-themes-label {
    margin: 0 0 0.35rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--c-muted, #64748b);
}

.workspace-discuss-themes-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.workspace-discuss-theme {
    border: 1px solid var(--c-border);
    background: var(--c-surface);
    color: var(--c-text);
    border-radius: 999px;
    padding: 0.2rem 0.55rem;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
}

.workspace-discuss-theme--partial {
    border-style: dashed;
    opacity: 0.9;
}

.workspace-discuss-theme:hover,
.workspace-discuss-theme:focus-visible {
    background: var(--c-chrome-surface);
    border-color: var(--c-border);
}

.workspace-readiness-bridge {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 0.75rem;
    margin-top: 0.65rem;
    padding: 0.6rem 0.75rem;
    border-radius: var(--radius);
    background: linear-gradient(180deg, rgba(236, 253, 245, 0.95) 0%, rgba(209, 250, 229, 0.55) 100%);
    border: 1px solid rgba(16, 185, 129, 0.25);
}

.workspace-readiness-bridge--compact {
    margin-top: 0.45rem;
    padding: 0.5rem 0.65rem;
}

.workspace-readiness-bridge--inline {
    margin-top: 0.55rem;
    background: rgba(236, 253, 245, 0.65);
}

.workspace-readiness-bridge-copy {
    margin: 0;
    flex: 1 1 12rem;
    font-size: 0.84rem;
    line-height: 1.4;
    color: var(--c-text);
}

.workspace-readiness-bridge-dot {
    margin-right: 0.2rem;
}

.workspace-readiness-bridge-btn {
    flex-shrink: 0;
}

.session-recap-dialog-foot {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: flex-end;
}

.workspace-talk-composer-box {
    position: relative;
    border: 1px solid var(--c-border);
    border-radius: 10px;
    background: #fff;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.workspace-talk-composer-box:hover,
.workspace-talk-composer-box:focus-within {
    border-color: var(--c-border);
    box-shadow: 0 0 0 2px rgba(15, 23, 42, 0.05);
}

.workspace-talk-composer .workspace-talk-composer-box:hover,
.workspace-talk-composer .workspace-talk-composer-box:focus-within {
    border-color: var(--c-author-border);
    box-shadow: 0 0 0 2px var(--c-author-focus);
}

.workspace-talk-composer .workspace-talk-input,
.workspace-talk-extract-area {
    display: block;
    width: 100%;
    border: none;
    border-radius: 10px;
    padding: 0.5rem 4.4rem 0.5rem 0.65rem;
    min-height: 2.65rem;
    max-height: none;
    font: inherit;
    font-size: 0.92rem;
    line-height: 1.45;
    resize: none;
    overflow-y: hidden;
    background: transparent;
    box-shadow: none;
}

.workspace-talk-composer .workspace-talk-input:focus {
    outline: none;
}

.workspace-talk-composer .workspace-talk-input::placeholder {
    color: var(--c-author-placeholder);
}

.workspace-talk-composer-actions {
    position: absolute;
    right: 0.35rem;
    bottom: 0.35rem;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.workspace-talk-mic,
.workspace-talk-send,
.workspace-talk-stop {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    border: none;
    border-radius: 999px;
    cursor: pointer;
    font-size: 0.85rem;
    line-height: 1;
    transition: opacity 0.15s ease, transform 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.workspace-talk-mic {
    background: transparent;
    color: var(--c-muted);
}

.workspace-talk-mic:hover {
    background: rgba(15, 23, 42, 0.06);
    color: var(--c-text);
}

.workspace-talk-composer .workspace-talk-mic:hover {
    background: var(--c-author-surface);
    color: var(--c-author-text);
}

.workspace-talk-mic--recording {
    background: rgba(220, 38, 38, 0.12);
    color: #dc2626;
    animation: workspace-mic-pulse 1.3s ease-in-out infinite;
}

@keyframes workspace-mic-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.35); }
    50% { box-shadow: 0 0 0 4px rgba(220, 38, 38, 0); }
}

.workspace-talk-send {
    background: var(--c-author);
    color: #fff;
    opacity: 0;
    pointer-events: none;
    transform: scale(0.9);
}

.workspace-talk-composer-box:hover .workspace-talk-send,
.workspace-talk-composer-box:focus-within .workspace-talk-send,
.workspace-talk-composer-box .workspace-talk-input:not(:placeholder-shown) ~ .workspace-talk-composer-actions .workspace-talk-send {
    opacity: 1;
    pointer-events: auto;
    transform: scale(1);
}

.workspace-talk-send:hover:not(:disabled) {
    filter: brightness(1.06);
}

.workspace-talk-send:disabled {
    opacity: 0.35;
    cursor: not-allowed;
    pointer-events: none;
}

.workspace-talk-stop {
    display: none;
    background: var(--c-primary);
    color: #fff;
    opacity: 1;
    pointer-events: auto;
    transform: scale(1);
}

.workspace-talk-stop-icon {
    display: block;
    width: 0.58rem;
    height: 0.58rem;
    background: #fff;
    border-radius: 2px;
}

.workspace-talk-stop:hover:not(:disabled) {
    filter: brightness(1.06);
}

.workspace-talk-composer--ghostwriter-busy .workspace-talk-send {
    display: none;
}

.workspace-talk-composer--ghostwriter-busy .workspace-talk-stop {
    display: inline-flex;
}

.workspace-talk-composer--ghostwriter-busy .workspace-talk-mic {
    opacity: 0.35;
    pointer-events: none;
}

.workspace-talk-composer--ghostwriter-busy .workspace-talk-composer-box:hover .workspace-talk-send,
.workspace-talk-composer--ghostwriter-busy .workspace-talk-composer-box:focus-within .workspace-talk-send {
    display: none;
}

.workspace-talk-composer--slim .workspace-talk-stop {
    width: 1.85rem;
    height: 1.85rem;
}

.workspace-talk-extract-area {
    width: 100%;
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    padding: 0.65rem 0.75rem;
    font: inherit;
    resize: vertical;
}

.workspace-talk-extract {
    border-top: 1px solid var(--c-border);
    padding-top: 0.85rem;
}

.workspace-talk-extract-label {
    margin: 0 0 0.35rem;
    font-size: 0.82rem;
    font-weight: 600;
}

.workspace-talk-extract-help {
    margin: 0 0 0.5rem;
    font-size: 0.78rem;
    color: var(--c-muted);
    line-height: 1.45;
}

.workspace-talk-extract-actions {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-top: 0.5rem;
}

.workspace-talk-autosave[hidden] {
    display: none !important;
}

.workspace-talk-autosave {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.5rem;
    padding: 0.55rem 0.7rem;
    border-radius: var(--radius);
    background: rgba(34, 139, 76, 0.08);
    border: 1px solid rgba(34, 139, 76, 0.25);
    font-size: 0.8rem;
    color: var(--c-text);
}

.workspace-talk-autosave-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.15rem;
    height: 1.15rem;
    flex: none;
    border-radius: 50%;
    background: rgba(34, 139, 76, 0.85);
    color: #fff;
    font-size: 0.72rem;
    line-height: 1;
}

.workspace-talk-autosave-body {
    flex: 1 1 auto;
    min-width: 0;
}

.workspace-talk-autosave-text {
    line-height: 1.4;
}

.workspace-captured-title {
    margin: 0 0 0.45rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: rgba(34, 139, 76, 0.95);
}

.workspace-captured-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.workspace-captured-item {
    margin: 0;
}

.workspace-captured-quote {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 0.86rem;
    line-height: 1.5;
    color: var(--c-text);
    font-style: italic;
}

.workspace-captured-topic {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.72rem;
    color: var(--c-muted);
}

.workspace-captured-memory,
.workspace-captured-graph {
    margin: 0.55rem 0 0;
    font-size: 0.78rem;
    line-height: 1.45;
    color: var(--c-text);
}

.workspace-captured-label {
    display: inline-block;
    font-weight: 700;
    font-size: 0.68rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--c-muted);
    margin-right: 0.35rem;
}

.workspace-captured-graph-chips {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    vertical-align: middle;
}

.workspace-captured-graph-chip {
    display: inline-block;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    background: rgba(79, 70, 229, 0.1);
    color: var(--c-primary);
    font-size: 0.72rem;
    font-weight: 600;
}

.workspace-captured-head {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.35rem;
}

.workspace-captured-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.2rem;
    height: 1.2rem;
    border-radius: 50%;
    background: rgba(34, 139, 76, 0.9);
    color: #fff;
    font-size: 0.72rem;
    flex: none;
}

.workspace-captured--celebrate .workspace-captured-title {
    margin: 0;
    font-size: 0.82rem;
    letter-spacing: 0.02em;
    text-transform: none;
    color: var(--c-text);
}

.workspace-captured-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.5rem;
}

.workspace-captured-pill {
    display: inline-block;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    background: rgba(79, 70, 229, 0.1);
    color: var(--c-primary);
    font-size: 0.72rem;
    font-weight: 600;
}

.workspace-captured-view-questions {
    margin-top: 0.35rem;
    padding-left: 0;
}

.workspace-remembers {
    margin-top: 0.65rem;
    padding: 0.75rem 0.85rem;
    border-radius: var(--radius);
    border: 1px solid var(--c-border);
    background: linear-gradient(180deg, rgba(79, 70, 229, 0.04) 0%, var(--c-surface) 100%);
    display: flex;
    flex-direction: column;
}

.workspace-remembers-head {
    flex-shrink: 0;
}

.workspace-remembers-headbar {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
}

.workspace-remembers-headbar--static {
    align-items: flex-start;
}

.workspace-remembers-head-copy {
    flex: 1 1 auto;
    min-width: 0;
}

.workspace-remembers-toggle {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    text-align: left;
    font: inherit;
    color: inherit;
}

.workspace-remembers-toggle:focus-visible,
.workspace-remembers-edit:focus-visible {
    outline: 2px solid var(--c-primary);
    outline-offset: 2px;
    border-radius: 4px;
}

.workspace-remembers-edit {
    flex-shrink: 0;
    margin-left: auto;
    padding: 0 0.15rem;
    font-size: 0.78rem;
    font-weight: 600;
}

.workspace-remembers-scroll {
    flex: 1 1 auto;
    min-height: 5.5rem;
    max-height: 9.5rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    margin: 0 -0.15rem;
    padding: 0.15rem;
}

.workspace-remembers-foot {
    flex-shrink: 0;
    margin-top: 0.45rem;
    padding-top: 0.45rem;
    border-top: 1px solid var(--c-border);
}

.workspace-graph-editor-wrap:not(:empty) {
    flex-shrink: 0;
}

.workspace-remembers-body > .workspace-graph-editor-wrap:has(.workspace-graph-editor:not([hidden])) {
    margin-top: 0.45rem;
    padding-top: 0.45rem;
    border-top: 1px solid var(--c-border);
}

.workspace-remembers > .workspace-graph-editor-wrap:has(.workspace-graph-editor:not([hidden])) {
    margin-top: 0.45rem;
    padding-top: 0.45rem;
    border-top: 1px solid var(--c-border);
}

.step2-assignments-main #workspace-remembers-slot,
.step2-assignments-main #workspace-book-remembers-slot {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    overflow: visible;
}

.step2-assignments-main #workspace-remembers-slot .workspace-remembers:not(.workspace-remembers--sidebar),
.step2-assignments-main #workspace-book-remembers-slot .workspace-remembers {
    width: 100%;
    min-height: 11.5rem;
    max-height: min(38vh, 300px);
    margin-top: 0;
}

.step2-assignments-main #workspace-remembers-slot .workspace-remembers-scroll:not(.workspace-remembers-scroll--sidebar),
.step2-assignments-main #workspace-book-remembers-slot .workspace-remembers-scroll {
    min-height: 5.5rem;
    max-height: min(22vh, 160px);
}

.step2-assignments-main .workspace-talk-panel--discuss #workspace-remembers-slot .workspace-remembers--compact-discuss:not(.workspace-remembers--collapsed) {
    display: flex;
    flex-direction: column;
    min-height: 0;
    max-height: none;
    height: auto;
    padding: 0.55rem 0.65rem;
}

.step2-assignments-main .workspace-talk-panel--discuss #workspace-remembers-slot .workspace-remembers--compact-discuss:not(.workspace-remembers--collapsed) .workspace-remembers-body {
    flex: 0 0 auto;
    min-height: 0;
    display: block;
}

.step2-assignments-main .workspace-talk-panel--discuss #workspace-remembers-slot .workspace-remembers--compact-discuss:not(.workspace-remembers--collapsed) .workspace-remembers-scroll {
    flex: 0 0 auto;
    min-height: 0;
    max-height: 8.25rem;
    overflow-y: auto;
}

.step2-assignments-main .workspace-talk-panel--discuss #workspace-remembers-slot .workspace-remembers--compact-discuss .workspace-story-memory-chips {
    gap: 0.28rem;
}

.step2-assignments-main .workspace-talk-panel--discuss #workspace-remembers-slot .workspace-remembers--compact-discuss .workspace-story-memory-chip {
    font-size: 0.76rem;
    line-height: 1.35;
}

.step2-assignments-main .workspace-talk-panel--discuss #workspace-remembers-slot .workspace-remembers--collapsed {
    min-height: 0;
    max-height: none;
    padding: 0.35rem 0.65rem;
}

.workspace-remembers-caret::before {
    content: '▾';
    font-size: 0.72rem;
    color: var(--c-muted);
    line-height: 1;
}

.workspace-remembers--collapsed .workspace-remembers-caret::before {
    content: '▸';
}

.workspace-shell--discuss .workspace-talk-onboarding {
    margin-bottom: 0;
    padding: 0.5rem 0.65rem;
    font-size: 0.8rem;
}

.workspace-remembers-title {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--c-text);
}

.workspace-remembers-tagline {
    margin: 0.2rem 0 0.45rem;
    font-size: 0.78rem;
    color: var(--c-muted);
}

.workspace-remembers-scroll > .workspace-remembers-section:first-child,
.workspace-remembers-scroll > #workspace-remembers-captured:first-child {
    margin-top: 0;
}

.workspace-remembers-section {
    margin-top: 0.65rem;
    padding-top: 0.65rem;
    border-top: 1px solid var(--c-border);
}

.workspace-remembers-section--captured {
    border-top: 0;
    padding-top: 0;
    margin-top: 0;
}

.workspace-remembers-section--captured .workspace-captured {
    padding: 0.65rem 0.75rem;
    border-radius: var(--radius);
    background: rgba(34, 139, 76, 0.07);
    border: 1px solid rgba(34, 139, 76, 0.22);
}

.workspace-remembers-section--animate {
    animation: workspace-capture-in 0.55s ease-out;
}

@keyframes workspace-capture-in {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}

.workspace-remembers-section-label {
    margin: 0 0 0.35rem;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--c-muted);
}

.workspace-remembers-session {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.45;
    color: var(--c-text);
}

.workspace-remembers-empty {
    margin: 0;
    font-size: 0.78rem;
    color: var(--c-muted);
    font-style: italic;
}

.workspace-talk-onboarding {
    margin-bottom: 0.65rem;
    padding: 0.65rem 0.85rem;
    border-radius: var(--radius);
    border: 1px solid var(--c-chrome-border);
    background: var(--c-chrome-surface);
}

.workspace-talk-onboarding-title {
    margin: 0 0 0.35rem;
    font-size: 0.86rem;
    font-weight: 700;
}

.workspace-talk-onboarding-list {
    margin: 0 0 0.35rem;
    padding-left: 1.1rem;
    font-size: 0.8rem;
    line-height: 1.45;
}

.workspace-talk-welcome-lead {
    margin: 0 0 0.35rem;
    font-size: 0.92rem;
    font-weight: 600;
}

.workspace-talk-welcome-sub {
    margin: 0 0 0.75rem;
    font-size: 0.84rem;
    color: var(--c-muted);
    line-height: 1.45;
}

.workspace-talk-starters-label {
    margin: 0 0 0.4rem;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--c-muted);
}

.workspace-talk-starters-row {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.workspace-talk-starter {
    text-align: left;
    border: 1px dashed var(--c-border);
    background: var(--c-surface);
    border-radius: var(--radius);
    padding: 0.45rem 0.65rem;
    font-size: 0.8rem;
    color: var(--c-text);
    cursor: pointer;
}

.workspace-talk-starter:hover {
    border-color: var(--c-border);
    background: var(--c-chrome-surface);
}

/* Clickable answer options inline in the Discuss thread (Start My Book). */
.workspace-talk-options {
    padding: 0.5rem 0.75rem 0.65rem;
    border-top: 1px solid var(--c-border);
    background: var(--c-chrome-surface);
}

.workspace-talk-options--inline {
    margin: 0.15rem 0 0.35rem;
    padding: 0 0 0.15rem 0.15rem;
    border-top: none;
    background: transparent;
    max-width: min(36rem, 96%);
    align-self: flex-start;
}

.align-decision-card--locked {
    opacity: 0.72;
}

.align-decision-card--actionable:not(.align-decision-card--locked) {
    opacity: 1;
}

.align-decision-card-value--muted {
    color: var(--c-muted);
    font-weight: 500;
}

.align-decision-card-value--action {
    color: var(--c-accent, #2f5d50);
    font-weight: 600;
}

.align-decision-card-value--error,
.align-decision-card--error .align-decision-card-value {
    color: var(--c-danger, #b42318);
    font-weight: 600;
}

.discover-prep-briefing-empty--error {
    color: var(--c-danger, #b42318);
}
.discover-prep-briefing-loading {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    margin: 0 0 0.85rem;
    padding: 0.75rem 0.85rem;
    border-radius: 10px;
    background: var(--c-chrome-surface, #f3f5f8);
}
.discover-prep-briefing-loading-copy {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
}
.discover-prep-briefing-loading .discover-prep-briefing-empty,
.discover-prep-briefing-loading p {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.4;
    color: var(--c-text, #1c2430);
}
.discover-prep-briefing-background-note {
    font-size: 0.86rem;
    color: var(--c-text-muted, #5b6775);
}
.discover-prep-briefing-spinner.spinner {
    width: 1.25rem;
    height: 1.25rem;
    border-width: 2px;
    flex: 0 0 auto;
}
.discover-prep-briefing-updating.discover-prep-briefing-loading {
    margin-bottom: 0.75rem;
}

.align-basics-pill {
    width: 100%;
}

.align-basics-dialog {
    width: min(100%, 34rem);
    max-height: calc(100% - 0.25rem);
}

.align-basics-dialog-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    padding: 0.85rem 1rem 1rem;
}

.align-basics-section {
    padding: 0.75rem 0.85rem;
    border: 1px solid var(--c-border);
    border-radius: 10px;
    background: var(--c-chrome-surface, #fafafa);
}

.align-basics-section.is-answered {
    background: var(--c-surface, #fff);
}

.align-basics-section-title {
    margin: 0 0 0.2rem;
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--c-text);
}

.align-basics-section-prompt {
    margin: 0 0 0.65rem;
    font-size: 0.8rem;
    line-height: 1.4;
    color: var(--c-muted);
}

.align-basics-section-fields .align-choice-list,
.align-basics-section-fields .align-intro-fields,
.align-basics-section-fields .align-working-title {
    margin: 0;
}

.align-basics-section-status {
    margin: 0.45rem 0 0;
}

.align-basics-dialog-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding: 0.75rem 1rem;
    border-top: 1px solid var(--c-border);
    flex-shrink: 0;
}

.align-basics-dialog-footer-status {
    margin-right: auto;
    font-size: 0.8rem;
    color: var(--c-muted);
}

.workspace-talk-options-label {
    margin: 0 0 0.45rem;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--c-muted);
}

.workspace-talk-options-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.workspace-talk-option-chip {
    text-align: left;
    border: 1px solid var(--c-accent, #4f46e5);
    background: var(--c-surface);
    border-radius: 999px;
    padding: 0.38rem 0.8rem;
    font-size: 0.8rem;
    color: var(--c-accent, #4f46e5);
    cursor: pointer;
    transition: background 0.12s ease, color 0.12s ease, border-color 0.12s ease;
}

.workspace-talk-option-chip:hover {
    background: rgba(79, 70, 229, 0.08);
}

.workspace-talk-option-chip.is-selected {
    background: var(--c-accent, #4f46e5);
    color: #fff;
    border-color: var(--c-accent, #4f46e5);
}

.workspace-talk-options-send {
    margin-top: 0.55rem;
}

.workspace-talk-options--widget {
    max-width: min(28rem, 96%);
}

.workspace-talk-options--widget .align-intro-fields--discuss {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    margin-bottom: 0.35rem;
}

.workspace-talk-options--widget .align-intro-label {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--c-muted);
}

.workspace-talk-options--widget .align-working-title--discuss {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-bottom: 0.35rem;
}

.workspace-talk-thinking {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.65rem 0.75rem;
    border-radius: var(--radius);
    background: rgba(79, 70, 229, 0.06);
    font-size: 0.84rem;
    color: var(--c-muted);
}

.workspace-talk-bubble--thinking {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    opacity: 0.92;
}

.workspace-talk-bubble--thinking .workspace-talk-thinking-text {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.45;
    color: var(--c-muted);
    font-style: italic;
}

.workspace-talk-turn--thinking {
    opacity: 0.95;
}

.workspace-talk-thinking-spinner {
    width: 0.75rem;
    height: 0.75rem;
    border-width: 1.5px;
    flex: none;
}

.workspace-talk-thinking-dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: var(--c-primary);
    animation: workspace-thinking-pulse 1s ease-in-out infinite;
    flex: none;
}

@keyframes workspace-thinking-pulse {
    0%, 100% { opacity: 0.35; transform: scale(0.9); }
    50% { opacity: 1; transform: scale(1); }
}

.workspace-coverage-seg--pulse {
    animation: workspace-coverage-pulse 0.6s ease-in-out 3;
    box-shadow: 0 0 0 2px rgba(79, 70, 229, 0.45);
}

@keyframes workspace-coverage-pulse {
    0%, 100% { filter: brightness(1); }
    50% { filter: brightness(1.25); }
}

.workspace-story-memory {
    margin-top: 0.65rem;
    padding: 0.65rem 0.75rem;
    border-radius: var(--radius);
    border: 1px solid var(--c-border);
    background: var(--c-surface);
}

.workspace-story-memory-title {
    margin: 0 0 0.45rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--c-muted);
}

.workspace-story-memory-chips {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.workspace-story-memory-chip {
    font-size: 0.78rem;
    line-height: 1.4;
    color: var(--c-text);
}

.workspace-story-memory-chip strong {
    font-weight: 600;
    margin-right: 0.35rem;
}

.workspace-review-panel,
.workspace-draft-panel {
    padding: 0.5rem 0 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    align-items: stretch;
    overflow-y: auto;
}

.workspace-review-header,
.workspace-draft-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.workspace-readiness {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0.25rem 0.65rem;
    font-size: 0.72rem;
    font-weight: 600;
    border: 1px solid var(--c-border);
    white-space: nowrap;
}

.workspace-readiness--ready {
    background: rgba(5, 150, 105, 0.1);
    border-color: rgba(5, 150, 105, 0.35);
    color: #047857;
}

.workspace-readiness--partial {
    background: rgba(79, 70, 229, 0.08);
    border-color: rgba(79, 70, 229, 0.3);
    color: var(--c-primary);
}

.workspace-readiness--not_ready {
    background: rgba(148, 163, 184, 0.12);
    color: var(--c-muted);
}

.workspace-review-summary,
.workspace-review-draft-note,
.workspace-panel-copy {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.5;
    color: var(--c-text);
}

.workspace-review-draft-note {
    color: var(--c-muted);
    font-style: italic;
}

.workspace-review-section {
    width: 100%;
    margin-top: 1.2rem;
}

.workspace-review-section--warn {
    padding: 0.65rem 0.75rem;
    border-radius: var(--radius);
    border: 1px solid rgba(234, 88, 12, 0.25);
    background: rgba(234, 88, 12, 0.06);
}

.workspace-review-heading {
    margin: 0 0 0.5rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--c-muted);
}

.workspace-review-list {
    margin: 0;
    padding-left: 1.1rem;
    font-size: 0.85rem;
    line-height: 1.45;
}

.workspace-review-list--themes {
    list-style: none;
    padding-left: 0;
}

.workspace-review-list--themes li {
    margin-bottom: 0.35rem;
}

.workspace-theme-strength {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-right: 0.35rem;
    padding: 0.1rem 0.35rem;
    border-radius: 4px;
    background: var(--c-border);
    color: var(--c-muted);
}

.workspace-theme-strength--strong {
    background: rgba(5, 150, 105, 0.15);
    color: #047857;
}

.workspace-theme-strength--emerging {
    background: rgba(79, 70, 229, 0.12);
    color: var(--c-primary);
}

.workspace-review-actions,
.workspace-draft-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1rem;
}

.workspace-scene-narration-hint {
    flex: 1 1 100%;
    margin: 0;
}

.workspace-review-foot {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--c-border);
}

.workspace-review-foot .workspace-lens-back-btn {
    width: 100%;
    max-width: 18rem;
}

.workspace-draft-body {
    width: 100%;
    padding: 0.85rem 1rem;
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    background: var(--c-surface);
    font-size: 0.9rem;
    line-height: 1.65;
    white-space: pre-wrap;
    max-height: 420px;
    overflow-y: auto;
}

.workspace-draft-meta {
    margin: 0;
    font-size: 0.78rem;
    color: var(--c-muted);
}

.workspace-muted {
    color: var(--c-muted);
    font-style: italic;
}

.workspace-talk-loading,
.workspace-talk-empty,
.workspace-talk-error {
    margin: 0;
    font-size: 0.88rem;
    color: var(--c-muted);
}

.workspace-lens-loading {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 10rem;
    padding: 2rem 1rem;
}

.workspace-spinner-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.85rem;
    text-align: center;
}

.workspace-spinner-block--compact {
    gap: 0.55rem;
    padding: 0.75rem 0;
}

.workspace-spinner-message {
    margin: 0;
    font-size: 0.88rem;
    color: var(--c-muted);
    line-height: 1.45;
}

.workspace-spinner-hint {
    margin: 0;
    max-width: 22rem;
    font-size: 0.78rem;
    color: var(--c-muted);
    line-height: 1.4;
}

.workspace-remembers-section--pending .workspace-spinner-block {
    padding: 0.35rem 0 0.15rem;
}

.workspace-remembers-section--pending .workspace-spinner-message {
    font-size: 0.82rem;
}

.workspace-talk-composer--loading .workspace-talk-composer-box {
    opacity: 0.72;
}

.workspace-talk-composer--loading .workspace-talk-input {
    cursor: wait;
}

.workspace-talk-composer--loading .workspace-talk-send,
.workspace-talk-composer--loading .workspace-talk-mic {
    opacity: 0.4;
    pointer-events: none;
}

.workspace-talk-composer--loading.workspace-talk-composer--ghostwriter-busy .workspace-talk-stop {
    opacity: 1;
    pointer-events: auto;
}

.workspace-talk-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    margin-top: 0.35rem;
}

.workspace-talk-session-summary {
    font-size: 0.78rem;
    color: var(--c-muted);
    font-style: italic;
}

.workspace-draft-paragraph {
    margin: 0 0 0.85rem;
}

.workspace-draft-heading {
    margin: 0 0 0.5rem;
    font-size: 1rem;
    font-weight: 700;
}

.workspace-shell--book .workspace-book-header {
    margin-bottom: 0.25rem;
}

.workspace-book-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    margin-bottom: 0.5rem;
}

.workspace-book-stat {
    font-size: 0.78rem;
    color: var(--c-muted);
}

.step2-assignments-main .workspace-shell--book > .workspace-book-overview,
.step2-assignments-main .workspace-shell--book > .workspace-talk-panel,
.step2-assignments-main .workspace-shell--book > .workspace-review-panel {
    flex: 1 1 0;
    min-height: 0;
    overflow-y: auto;
    padding-bottom: calc(var(--step2-tools-bar-h) + 1.25rem);
}

.workspace-talk-error {
    color: #b45309;
}

.workspace-cross-nudge {
    margin-top: 0.75rem;
    padding: 0.65rem 0.85rem;
    border-radius: var(--radius-md);
    background: rgba(91, 79, 207, 0.06);
    border: 1px solid rgba(91, 79, 207, 0.12);
}

.workspace-cross-nudge--inline {
    margin-top: 1rem;
}

.workspace-cross-nudge-copy {
    margin: 0 0 0.45rem;
    font-size: 0.85rem;
    color: var(--c-muted);
}

.workspace-captured-nudges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.65rem;
}

.workspace-captured-nudges .workspace-cross-nudge {
    flex: 1 1 12rem;
    margin-top: 0;
}

.workspace-step4-hint {
    flex-shrink: 0;
    margin: 0 0 0.65rem;
    padding: 0.55rem 0.75rem;
    border-radius: var(--radius-md);
    background: rgba(91, 79, 207, 0.05);
    border: 1px dashed rgba(91, 79, 207, 0.2);
}

.workspace-step4-hint-copy {
    margin: 0;
    font-size: 0.82rem;
    color: var(--c-muted);
}

.workspace-book-arc-hero {
    margin-bottom: 1rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid var(--c-border);
}

.workspace-book-arc-hero-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    margin-bottom: 0.35rem;
}

.workspace-book-arc-summary,
.workspace-book-arc-themes {
    margin: 0.35rem 0 0;
    font-size: 0.88rem;
    color: var(--c-muted);
    line-height: 1.45;
}

.workspace-graph-editor-wrap {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

.workspace-graph-edit-slot {
    margin-top: 0.35rem;
}

.captured-edit-dialog-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1200;
    background: rgba(15, 23, 42, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem;
}

.captured-edit-dialog {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: 12px;
    box-shadow: 0 12px 48px rgba(0, 0, 0, 0.2);
    width: 100%;
    max-width: min(56rem, 96vw);
    height: min(94dvh, calc(100dvh - 1rem));
    min-height: min(94dvh, calc(100dvh - 1rem));
    max-height: min(96dvh, calc(100dvh - 0.75rem));
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.captured-edit-dialog-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1.15rem 1.35rem 0.85rem;
    flex-shrink: 0;
    border-bottom: 1px solid var(--c-border);
}

.captured-edit-dialog-head-copy {
    flex: 1 1 auto;
    min-width: 0;
}

.captured-edit-dialog-title {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.3;
}

.captured-edit-dialog-sub {
    margin: 0.35rem 0 0;
    font-size: 0.86rem;
    color: var(--c-muted);
    line-height: 1.45;
}

.captured-edit-dialog-close {
    background: none;
    border: none;
    font-size: 2rem;
    line-height: 1;
    color: var(--c-muted);
    cursor: pointer;
    padding: 0;
    width: 2.75rem;
    height: 2.75rem;
    flex-shrink: 0;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.captured-edit-dialog-close:hover {
    color: var(--c-text);
}

.captured-edit-dialog-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 1rem 1.35rem;
}

.captured-edit-dialog-foot {
    flex-shrink: 0;
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.85rem 1.35rem 1.1rem;
    border-top: 1px solid var(--c-border);
}

.workspace-graph-editor:not([hidden]):not(.workspace-graph-editor--dialog) {
    max-height: min(30vh, 240px);
    overflow-y: auto;
    margin-top: 0.35rem;
}

.captured-edit-dialog-body.workspace-graph-editor--dialog {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    margin-top: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.workspace-graph-editor--dialog {
    max-height: none;
    margin-top: 0;
    overflow: visible;
}

.captured-edit-dialog-body.workspace-graph-editor--dialog .workspace-graph-editor-list {
    flex: 1 1 auto;
    min-height: 0;
    margin: 0;
    overflow-y: auto;
    gap: 1rem;
    padding: 0.15rem 0.1rem 0.35rem;
}

.workspace-graph-editor--dialog .workspace-graph-editor-list {
    margin-top: 0;
    gap: 1rem;
}

.workspace-graph-editor--dialog .workspace-graph-editor-row {
    flex: 0 0 auto;
    padding: 1rem 1.1rem;
    gap: 0.75rem;
    background: var(--c-surface2, #f8f9fb);
    border-color: var(--c-border);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.workspace-graph-editor--dialog .workspace-graph-editor-row-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.15rem;
}

.workspace-graph-editor--dialog .workspace-graph-editor-type {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--c-primary, #5b4fd6);
    background: rgba(91, 79, 214, 0.1);
    border: 1px solid rgba(91, 79, 214, 0.18);
}

.workspace-graph-editor--dialog .workspace-graph-editor-field {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.workspace-graph-editor--dialog .workspace-graph-editor-field-label {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--c-muted);
    line-height: 1.2;
}

.workspace-graph-editor--dialog .auth-field {
    margin-bottom: 0;
    padding: 0.65rem 0.8rem;
    border-width: 1px;
    font-size: 0.92rem;
    background: var(--c-surface);
}

.workspace-graph-editor--dialog .workspace-graph-editor-desc {
    flex: 0 0 auto;
    min-height: 4.5rem;
    max-height: 12rem;
    resize: vertical;
    line-height: 1.45;
}

.workspace-graph-editor--dialog .workspace-graph-editor-actions {
    flex-shrink: 0;
    margin-left: auto;
}

.workspace-graph-editor-list {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.workspace-graph-editor-row {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.55rem;
    border: 1px solid var(--c-border);
    border-radius: var(--radius-md);
    background: var(--c-surface);
}

.workspace-graph-editor-row-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.workspace-graph-editor-field {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.workspace-graph-editor-field-label {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--c-muted);
}

.workspace-graph-editor-type {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--c-muted);
}

.workspace-graph-editor-label {
    font-size: 0.88rem;
}

.workspace-graph-editor-desc {
    font-size: 0.82rem;
    min-height: 2.5rem;
}

.workspace-graph-editor-actions {
    display: flex;
    gap: 0.35rem;
}

/* Captured editor — sectioned (Ghostwriter insights + Story details) */
.captured-editor {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.captured-edit-dialog-body.workspace-graph-editor--dialog .captured-editor {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 0.15rem 0.1rem 0.35rem;
}

.captured-editor-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.85rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid var(--c-border);
    flex-shrink: 0;
}

.captured-editor-tab {
    appearance: none;
    border: 1px solid var(--c-border);
    background: var(--c-bg, #f8f9fb);
    color: var(--c-text);
    border-radius: 999px;
    padding: 0.28rem 0.75rem;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.captured-editor-tab:hover {
    border-color: var(--c-accent, #4f46e5);
    color: var(--c-accent, #4f46e5);
}

.captured-editor-tab--active {
    background: var(--c-accent, #4f46e5);
    border-color: var(--c-accent, #4f46e5);
    color: #fff;
}

.captured-editor-tab-count {
    font-size: 0.68rem;
    font-weight: 700;
    opacity: 0.85;
}

.captured-editor-panels {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-height: 0;
}

.captured-editor-tab-panel[hidden] {
    display: none !important;
}

.captured-preview-tab {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    align-items: stretch;
    width: 100%;
}

.captured-preview-scene-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    width: 100%;
}

.captured-preview-scene-row-btn {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
    padding: 0.55rem 0.65rem;
    border: 1px solid var(--c-border, #e2e5ea);
    border-radius: 8px;
    background: var(--c-surface, #fff);
    text-align: left;
    cursor: pointer;
    font: inherit;
    color: inherit;
    transition: border-color 0.15s, background 0.15s;
}

.captured-preview-scene-row-btn:hover {
    border-color: var(--c-accent, #4f46e5);
    background: var(--c-bg, #f8f9fb);
}

.captured-preview-scene-row--selected .captured-preview-scene-row-btn {
    border-color: var(--c-accent, #4f46e5);
    background: color-mix(in srgb, var(--c-accent, #4f46e5) 8%, var(--c-surface, #fff));
}

.captured-preview-scene-row-title {
    font-size: 0.9rem;
    font-weight: 500;
    line-height: 1.35;
    flex: 1;
    min-width: 0;
}

.captured-preview-scene-row-date {
    font-size: 0.78rem;
    color: var(--c-muted);
    white-space: nowrap;
    flex-shrink: 0;
}

.captured-preview-scene-viewer {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 0.75rem 0.85rem;
    border: 1px solid var(--c-border, #e2e5ea);
    border-radius: 8px;
    background: var(--c-bg, #f8f9fb);
    max-height: min(42vh, 420px);
    overflow-y: auto;
}

.captured-preview-scene-viewer[hidden] {
    display: none !important;
}

.captured-preview-scene-viewer-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.captured-preview-scene-viewer-head-copy {
    flex: 1 1 12rem;
    min-width: 0;
}

.captured-preview-scene-viewer-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
    flex-shrink: 0;
}

.captured-preview-scene-viewer-actions .workspace-scene-narration-hint {
    flex: 1 1 100%;
    margin: 0;
}

.captured-preview-scene-viewer-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.35;
}

.captured-preview-scene-viewer-date {
    margin: 0;
    font-size: 0.78rem;
    color: var(--c-muted);
}

.captured-preview-scene-viewer-body .workspace-draft-body {
    max-height: none;
}

.captured-quote-blockquote {
    display: block;
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    padding: 0.55rem 0.75rem;
    border-left: 3px solid var(--c-accent, #4f46e5);
    font-size: 0.92rem;
    line-height: 1.45;
    color: var(--c-text);
    background: var(--c-bg, #f8f9fb);
    border-radius: 0 6px 6px 0;
}

.captured-quote-context {
    margin: 0.15rem 0 0;
    font-size: 0.78rem;
    color: var(--c-muted);
}

.captured-quote-source-backdrop {
    z-index: 1300;
}

.captured-quote-source-dialog {
    max-width: min(42rem, 94vw);
    height: auto;
    min-height: 0;
    max-height: min(82dvh, calc(100dvh - 2rem));
}

.captured-quote-source-body {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.captured-quote-source-quote {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.captured-quote-source-focus {
    margin: 0;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--c-muted);
}

.captured-quote-source-label {
    margin: 0 0 0.25rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--c-muted);
}

.captured-quote-source-turn .workspace-talk-bubble {
    max-width: none;
}

.captured-quote-source-turn .workspace-talk-turn-label {
    display: none;
}

.workspace-graph-editor-row--highlight {
    outline: 2px solid var(--c-accent, #4f46e5);
    outline-offset: 2px;
    border-radius: 8px;
}

.captured-editor-section {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.captured-editor-section-head {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.captured-editor-section-title {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--c-text);
}

.captured-editor-section-count {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--c-muted);
    background: var(--c-bg, #f1f2f6);
    border-radius: 999px;
    padding: 0.05rem 0.45rem;
}

.captured-editor-section-hint {
    margin: 0;
    font-size: 0.78rem;
    line-height: 1.4;
    color: var(--c-muted);
}

/* Nested lists inside sections should not scroll independently */
.captured-edit-dialog-body.workspace-graph-editor--dialog .captured-editor .workspace-graph-editor-list {
    flex: 0 0 auto;
    overflow: visible;
    min-height: 0;
    padding: 0;
    gap: 0.75rem;
}

.captured-insight-approve {
    border: 1px solid rgba(30, 126, 70, 0.4);
    color: #1e7e46;
    background: transparent;
}

.captured-insight-approve--on {
    background: rgba(30, 126, 70, 0.12);
    border-color: rgba(30, 126, 70, 0.5);
}

.workspace-graph-editor-row--approved {
    border-color: rgba(30, 126, 70, 0.45);
    box-shadow: 0 0 0 1px rgba(30, 126, 70, 0.12);
}

.workspace-graph-editor-row--insight .workspace-graph-editor-type {
    color: #1e7e46;
    background: rgba(30, 126, 70, 0.1);
    border-color: rgba(30, 126, 70, 0.2);
    text-transform: none;
    letter-spacing: 0;
}

/* Session Summary (ghostwriter recap) */
.workspace-session-recap {
    padding: 0.15rem 0 0.35rem;
}

.workspace-session-recap--compact .workspace-session-recap-title {
    font-size: 0.92rem;
    margin-bottom: 0.5rem;
}

.workspace-session-recap-title {
    margin: 0 0 0.65rem;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
}

.workspace-session-recap-section {
    margin-bottom: 0.85rem;
}

.workspace-session-recap-section:last-child {
    margin-bottom: 0;
}

.workspace-session-recap-section-label {
    margin: 0 0 0.35rem;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--c-muted);
}

.workspace-session-recap-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.workspace-session-recap-list--discoveries li {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    font-size: 0.88rem;
    line-height: 1.4;
}

.workspace-session-recap-check {
    color: var(--c-success, #2e7d32);
    font-weight: 700;
    flex-shrink: 0;
}

.workspace-session-recap-list--connections li {
    font-size: 0.86rem;
    line-height: 1.4;
    padding-left: 0.65rem;
    position: relative;
}

.workspace-session-recap-list--connections li::before {
    content: '•';
    position: absolute;
    left: 0;
    color: var(--c-muted);
}

.workspace-session-recap-quote {
    margin: 0;
    font-size: 0.88rem;
    font-style: italic;
    line-height: 1.45;
    border-left: 3px solid var(--c-primary, #5b4fd6);
    padding-left: 0.65rem;
    color: var(--c-text);
}

.workspace-session-recap-quote-context {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.78rem;
    color: var(--c-muted);
    font-style: normal;
}

.workspace-session-recap-readiness-line {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.45;
}

.session-recap-dialog {
    max-width: min(40rem, 94vw);
    height: auto;
    min-height: 0;
    max-height: min(90dvh, calc(100dvh - 1rem));
}

.session-recap-dialog-body {
    padding-top: 0.65rem;
}

.step3-assignment-draft-bridge {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--c-border);
    text-align: left;
}

.step3-assignment-draft-bridge-copy {
    margin: 0 0 0.65rem;
    font-size: 0.85rem;
    color: var(--c-muted);
}

.step3-assignment-draft-bridge-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    justify-content: center;
}

.workspace-draft-step3-bridge {
    margin-top: 0.75rem;
}

/* Discuss — authoritative fill chain (Story Session stretches to split height) */
.step2-assignments-main .workspace-split.workspace-split--discuss {
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    align-items: stretch;
}

.step2-assignments-main .workspace-split.workspace-split--discuss .workspace-session-col > .workspace-lens-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 0;
    min-width: 0;
    min-height: 0;
    height: 100%;
    overflow: hidden;
    padding: 0.35rem 0 0.65rem;
}

.step2-assignments-main .workspace-split.workspace-split--discuss .outline-qa-panel--discuss {
    display: flex;
    flex-direction: column;
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    overflow: hidden;
    padding: 0;
}

.step2-assignments-main .workspace-split.workspace-split--discuss .outline-qa-panel--discuss > .workspace-talk-panel--discuss {
    display: flex;
    flex-direction: column;
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    overflow: hidden;
    gap: 0;
    padding: 0;
}

.step2-assignments-main .workspace-split.workspace-split--discuss .workspace-talk-agent-window--discuss {
    display: flex;
    flex-direction: column;
    flex: 1 1 0;
    min-height: 0;
    max-height: none;
    height: 100%;
    overflow: hidden;
}

.step2-assignments-main .workspace-split.workspace-split--discuss .workspace-talk-agent-window--discuss .workspace-talk-thread {
    flex: 1 1 0;
    min-height: 0;
    max-height: none;
    overflow-y: auto;
}

.step2-assignments-main .workspace-split.workspace-split--discuss .workspace-talk-agent-window--discuss > .workspace-talk-agent-head,
.step2-assignments-main .workspace-split.workspace-split--discuss .workspace-talk-agent-window--discuss > .workspace-talk-composer-stack,
.step2-assignments-main .workspace-split.workspace-split--discuss .workspace-talk-agent-window--discuss > .workspace-talk-composer {
    flex-shrink: 0;
}

/* ── Step 3 — Plan My Book ─────────────────────────────────────────────────── */

.step3-plan-shell {
    flex: 1 1 0;
    min-height: 0;
    width: 100%;
    max-width: none;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.step3-plan-col {
    display: flex;
    flex-direction: column;
    min-height: 0;
    flex: 1 1 0;
}

.step3-plan-host {
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.plan-workspace {
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* Same element carries outline-two-col — keep grid, not flex column stacking. */
.plan-workspace.outline-two-col {
    display: grid;
    grid-template-columns: minmax(268px, 22rem) minmax(0, 1fr);
}

.plan-workspace.outline-two-col--resizable {
    grid-template-columns: var(--outline-left-col-width, 22rem) 14px minmax(0, 1fr);
    gap: 0;
}

.plan-two-col {
    flex: 1 1 0;
    min-height: 0;
    align-items: stretch;
}

.plan-two-col--fill {
    min-height: 0;
    height: auto;
}

.plan-workspace-col-head {
    flex-shrink: 0;
    padding: .55rem 1.25rem .45rem;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--c-muted);
    border-bottom: 1px solid var(--c-border);
    background: var(--c-surface);
}

.plan-workspace-col-head--ghost {
    color: var(--c-primary);
    background: rgba(79, 70, 229, .06);
    border-bottom-color: rgba(79, 70, 229, .18);
}

.plan-two-col--fill .plan-panel-head .plan-eyebrow {
    display: none;
}

.plan-col,
.plan-ghost-col {
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.plan-col.outline-left-col {
    padding: 0;
    overflow: hidden;
}

.plan-two-col--fill .plan-col > .plan-panel,
.plan-two-col--fill .plan-col > .plan-panel--loading,
.plan-two-col--fill .plan-col > .plan-panel--empty {
    flex: 1 1 0;
    min-height: 0;
    overflow-y: auto;
    padding: .85rem 1.25rem 1.15rem;
}

/* Opaque footer bar — must fully cover any scrolled chapter text behind it. */
.plan-two-col--fill .plan-actions {
    flex-shrink: 0;
    position: relative;
    z-index: 3;
    margin-top: 0;
    padding: .75rem 1.25rem 1rem;
    border-top: 1px solid var(--c-border, #e2dfd8);
    background-color: #fff;
    background-color: var(--c-surface, #fff);
    box-shadow: 0 -10px 20px rgba(15, 23, 42, 0.08);
    isolation: isolate;
}

.plan-two-col--fill .plan-actions::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background-color: #fff;
    background-color: var(--c-surface, #fff);
    pointer-events: none;
}

.plan-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: .45rem;
    margin-top: .25rem;
    width: 100%;
    max-width: none;
}

.plan-actions--pending {
    flex-direction: column;
    align-items: stretch;
}

.plan-actions--pending .btn {
    flex: 0 0 auto;
    width: 100%;
}

.plan-actions--approved {
    flex-wrap: wrap;
}

.plan-actions .btn {
    flex: 1 1 auto;
    min-width: 0;
    padding: .55rem .85rem;
    font-size: .88rem;
    line-height: 1.25;
    white-space: normal;
}

.plan-approve-hint {
    margin: 0;
    font-size: .78rem;
    line-height: 1.4;
    color: var(--c-muted);
}

#plan-continue-write.plan-continue-write--pulse {
    box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.35);
}

.plan-panel {
    display: flex;
    flex-direction: column;
    gap: .65rem;
    min-height: 0;
    overflow-y: auto;
    padding-right: .15rem;
}

.plan-eyebrow {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--c-muted);
}

.plan-title {
    font-size: 1.15rem;
    font-weight: 700;
    margin: .15rem 0 0;
}

.plan-lead {
    color: var(--c-muted);
    font-size: .9rem;
    line-height: 1.5;
}

/* Pet Plan concept cards (fast follow after D4) */
.plan-panel--concepts .plan-lead {
    margin: 0 0 0.85rem;
}

.plan-concept-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: 0.75rem;
    margin: 0 0 0.85rem;
}

.plan-concept-card {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 0.9rem 1rem;
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    background: var(--c-surface);
}

.plan-concept-card-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
}

.plan-concept-card-thesis,
.plan-concept-card-teaser,
.plan-concept-card-why {
    margin: 0;
    font-size: 0.86rem;
    line-height: 1.45;
    color: var(--c-text, #1f2937);
}

.plan-concept-card-teaser,
.plan-concept-card-why {
    color: var(--c-muted);
}

.plan-concept-card-meta {
    display: grid;
    gap: 0.25rem;
    margin: 0;
    font-size: 0.78rem;
}

.plan-concept-card-meta div {
    display: grid;
    grid-template-columns: 3.5rem 1fr;
    gap: 0.35rem;
}

.plan-concept-card-meta dt {
    color: var(--c-muted);
    font-weight: 600;
}

.plan-concept-card-meta dd {
    margin: 0;
}

.plan-concept-card-pick {
    margin-top: auto;
    align-self: flex-start;
}

.plan-concept-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.plan-card {
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    padding: .85rem 1rem;
}

.plan-card-label {
    font-size: .78rem;
    color: var(--c-muted);
    margin-bottom: .35rem;
}

.plan-thesis {
    font-size: .92rem;
    font-weight: 600;
    line-height: 1.45;
    margin: 0;
}

.plan-through-lines {
    margin: 0;
    padding-left: 1.1rem;
    font-size: .85rem;
    line-height: 1.45;
}

.plan-chapter-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(7rem, 1fr));
    gap: .5rem;
}

.plan-chapter-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .2rem;
    padding: .55rem .45rem;
    border: 1px solid var(--c-border);
    border-radius: 8px;
    background: var(--c-surface);
    font-size: .75rem;
    cursor: pointer;
    text-align: center;
}

.plan-chapter-card--active {
    border-color: var(--c-primary);
    background: rgba(79, 70, 229, .08);
}

.plan-chapter-card-num {
    font-weight: 700;
    color: var(--c-primary);
}

.plan-chapter-card-title {
    color: var(--c-text);
    line-height: 1.25;
}

.plan-chapter-purpose {
    font-size: .88rem;
    line-height: 1.5;
    margin: 0;
}

.plan-chapter-arc {
    font-size: .8rem;
    color: var(--c-muted);
    margin: .5rem 0 0;
}

.step4-mode-tabs {
    display: flex;
    gap: .35rem;
    margin: 0 0 .45rem;
    flex-shrink: 0;
}

.step4-mode-tab {
    border: 1px solid var(--c-border, #e2dfd8);
    background: var(--c-surface, #fff);
    color: var(--c-text, #1c1a2e);
    border-radius: 999px;
    padding: .35rem .9rem;
    font-size: .85rem;
    cursor: pointer;
}

.step4-mode-tab--active {
    border-color: var(--c-primary, #4f46e5);
    background: rgba(79, 70, 229, 0.08);
    font-weight: 600;
}

/* Fill remaining viewport so the draft panel scrolls instead of clipping. */
.step4-single-col > .step4-main,
.step4-main {
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.step4-write-layout {
    flex: 1 1 0;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(200px, 240px) 1fr;
    gap: 1.25rem;
    align-items: stretch;
    overflow: hidden;
}

@media (max-width: 880px) {
    .step4-write-layout {
        grid-template-columns: 1fr;
        overflow-y: auto;
    }
}

.step4-chapter-map {
    min-height: 0;
    overflow-y: auto;
}

.step4-write-panel {
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.step4-draft-host.outline-brief-host,
.step4-write-panel .step4-draft-host {
    flex: 1 1 0;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.step4-draft-host .chapter-draft-panel {
    flex: 1 1 0;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

/* Put H1/H2/Narrate on the same row as the draft's leading "Chapter n:" heading. */
.step4-draft-host .chapter-draft-header {
    position: sticky;
    top: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0;
    height: 1.9rem;
    margin: 0 0 -1.9rem;
    padding: 0;
    background: transparent;
    pointer-events: none;
}

.step4-draft-host .chapter-draft-header .chapter-draft-tools {
    margin-left: 0;
    pointer-events: auto;
    padding-left: 0.65rem;
    background: linear-gradient(
        90deg,
        color-mix(in srgb, var(--c-surface, #fff) 0%, transparent) 0%,
        var(--c-surface, #fff) 18%
    );
}

/* Stage shell — shared intro for Interviews / Plan / Write */
.stage-shell {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem 1.25rem;
    margin: 0 0 0.85rem;
    padding: 0 0.15rem;
}

.stage-shell-title {
    margin: 0 0 0.2rem;
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--c-text, #1f2937);
}

.stage-shell-purpose,
.stage-shell-progress {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.4;
    color: var(--c-muted, #6b7280);
}

.stage-shell-progress {
    margin-top: 0.35rem;
    font-weight: 600;
    color: var(--c-text, #1f2937);
}

.workspace-assignment-nav--simple {
    margin-bottom: 0.5rem;
}

/* Pet Gather — inviting next conversation (experience gatherPresentation) */
.pet-gather-home {
    margin-top: 0.35rem;
    padding-top: 0.65rem;
    border-top: 1px solid color-mix(in srgb, var(--c-border, #e5e7eb) 85%, transparent);
}

.pet-gather-primary-label {
    margin: 0 0 0.2rem;
    font-size: 0.95rem;
    font-weight: 650;
    color: var(--c-text, #1f2937);
}

.pet-gather-primary-support {
    margin: 0 0 0.65rem;
    font-size: 0.85rem;
    line-height: 1.4;
    color: var(--c-muted, #6b7280);
}

.pet-gather-suggestions-title {
    margin: 0 0 0.25rem;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--c-muted, #6b7280);
}

.pet-gather-suggestions-support {
    margin: 0 0 0.45rem;
    font-size: 0.8rem;
    line-height: 1.35;
    color: var(--c-muted, #6b7280);
}

.pet-gather-prompt-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.pet-gather-prompt-chip {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    padding: 0.35rem 0.7rem;
    border: 1px solid color-mix(in srgb, var(--c-border, #d1d5db) 90%, transparent);
    border-radius: 999px;
    background: color-mix(in srgb, var(--c-surface, #fff) 92%, var(--c-accent, #c4a484) 8%);
    color: var(--c-text, #1f2937);
    font: inherit;
    font-size: 0.82rem;
    line-height: 1.3;
    cursor: pointer;
    text-align: left;
}

.pet-gather-prompt-chip:hover,
.pet-gather-prompt-chip:focus-visible {
    border-color: color-mix(in srgb, var(--c-accent, #c4a484) 55%, var(--c-border, #d1d5db));
    outline: none;
}

.pet-gather-prompt-chip--active,
.pet-gather-prompt-chip--active:hover,
.pet-gather-prompt-chip--active:focus-visible {
    cursor: default;
    border-color: color-mix(in srgb, var(--c-accent, #c4a484) 70%, var(--c-border, #d1d5db));
    background: color-mix(in srgb, var(--c-accent, #c4a484) 22%, var(--c-surface, #fff));
    font-weight: 650;
}

.pet-gather-prompt-chip--active:disabled {
    opacity: 1;
    color: var(--c-text, #1f2937);
}

.pet-gather-prompt-chip--hint {
    cursor: default;
    opacity: 0.92;
}

.plan-review-chips {
    margin-top: 0.55rem;
}

/* Bundle D — Pet Write human revision chips */
.step4-review-chips {
    margin: 0.35rem 0 0.65rem;
    padding: 0 0.15rem;
}

.step4-review-chips-label {
    margin: 0 0 0.4rem;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--c-muted, #6b7280);
}

.step4-review-chips-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 0.45rem;
}

.step4-review-chip {
    appearance: none;
    border: 1px solid color-mix(in srgb, var(--c-border, #d1d5db) 85%, transparent);
    background: color-mix(in srgb, var(--c-surface-2, #f8fafc) 92%, #fff);
    color: var(--c-text, #1f2937);
    font: inherit;
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.25;
    padding: 0.42rem 0.75rem;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.12s ease, border-color 0.12s ease;
}

.step4-review-chip:hover,
.step4-review-chip:focus-visible {
    background: color-mix(in srgb, var(--c-accent, #4f46e5) 10%, #fff);
    border-color: color-mix(in srgb, var(--c-accent, #4f46e5) 45%, var(--c-border, #d1d5db));
    outline: none;
}

.step4-review-chip--approve {
    border-color: color-mix(in srgb, var(--c-accent, #4f46e5) 55%, var(--c-border, #d1d5db));
    background: color-mix(in srgb, var(--c-accent, #4f46e5) 12%, #fff);
}

.workspace-remembers--photo-first .align-discover-add-source-btn--photo-first {
    border-color: color-mix(in srgb, var(--c-accent, #4f46e5) 40%, var(--c-border, #d1d5db));
}

.step4-draft-host .chapter-draft-body > :first-child {
    margin-top: 0;
    padding-right: min(48%, 24rem);
    min-height: 1.9rem;
    box-sizing: border-box;
}

.step4-chapter-map-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin: 0 0 .5rem;
    min-height: 1.6rem;
}

.step4-chapter-map-head .plan-eyebrow {
    min-width: 0;
}

.step4-approve-all-chapters {
    flex: 0 0 auto;
    white-space: nowrap;
    padding: 0.2rem 0.55rem;
    font-size: 0.72rem;
    min-height: 1.55rem;
}

.step4-chapter-map-label {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--c-muted);
    margin: 0;
}

.step4-search-slot {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    min-width: 8rem;
    max-width: none;
}

.step4-search-bar,
.step4-search-bar--prominent {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0.2rem;
    width: 100%;
    max-width: 100%;
    height: 32px;
    padding: 0 0.25rem 0 0.4rem;
    border: 1px solid var(--c-border, #e2dfd8);
    border-radius: 8px;
    background: var(--c-surface, #fff);
    box-shadow: inset 0 1px 2px rgba(28, 26, 46, 0.04);
}

.step4-search-icon {
    flex: 0 0 auto;
    font-size: 0.9rem;
    color: var(--c-muted);
    line-height: 1;
    transform: translateY(-0.04em);
}

.step4-search-input {
    flex: 1 1 auto;
    min-width: 0;
    max-width: none;
    height: 28px;
    font-size: 0.8rem !important;
    padding: 0.15rem 0.25rem !important;
    border: none !important;
    border-radius: 6px;
    background: transparent !important;
    box-shadow: none !important;
    margin-bottom: 0 !important;
}

.step4-search-input:focus {
    outline: none;
}

.step4-search-status {
    font-size: 0.68rem;
    color: var(--c-muted);
    white-space: nowrap;
    min-width: 2.4rem;
}

.step4-search-nav,
.step4-search-close {
    font-size: 0.85rem !important;
    padding: 0.1rem 0.35rem !important;
    min-height: 26px;
    min-width: 1.6rem;
    line-height: 1;
    border-radius: 5px;
}

mark.chapter-draft-search-hit {
    background: #fde68a;
    color: inherit;
    padding: 0 0.05em;
    border-radius: 2px;
}

mark.chapter-draft-search-hit--active {
    background: #f59e0b;
    color: #1f2937;
    box-shadow: 0 0 0 1px rgba(146, 64, 14, 0.35);
}

.step4-chapter-grid {
    display: flex;
    flex-direction: column;
    gap: .45rem;
}

.step4-chapter-card {
    display: grid;
    gap: .15rem;
    text-align: left;
    border: 1px solid var(--c-border, #e2dfd8);
    background: var(--c-surface, #fff);
    border-radius: 10px;
    padding: .65rem .75rem;
    cursor: pointer;
}

.step4-chapter-card:focus-visible {
    outline: 2px solid var(--c-primary, #4f46e5);
    outline-offset: 2px;
}

.step4-chapter-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem;
    min-width: 0;
}

.step4-chapter-card-approve {
    flex: 0 0 auto;
    padding: 0.15rem 0.5rem;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.2;
    min-height: 1.4rem;
    border-radius: 999px;
}

.step4-chapter-card--drafted {
    background: #dcfce7;
    border-color: #bbf7d0;
}

.step4-chapter-card--drafted .step4-chapter-card-status {
    color: #166534;
    font-weight: 600;
}

.step4-chapter-card--approved .step4-chapter-card-num {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.step4-chapter-card-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.05rem;
    height: 1.05rem;
    border-radius: 999px;
    background: #166534;
    color: #fff;
    font-size: .7rem;
    font-weight: 700;
    line-height: 1;
}

.step4-chapter-card--active {
    border-color: var(--c-primary, #4f46e5);
    box-shadow: inset 0 0 0 1px var(--c-primary, #4f46e5);
}

.step4-chapter-card--drafted.step4-chapter-card--active {
    background: #bbf7d0;
}

.step4-chapter-card-num {
    font-size: .72rem;
    font-weight: 700;
    color: var(--c-muted);
}

.step4-chapter-card-title {
    font-size: .9rem;
    font-weight: 600;
}

.step4-chapter-card-status {
    font-size: .75rem;
    color: var(--c-muted);
}

.step4-inventory-brief {
    margin: 0 0 .35rem;
    font-size: .8rem;
    color: var(--c-muted);
}

.plan-chapter-episodes-wrap {
    margin-top: .55rem;
}

.plan-chapter-episodes-label {
    display: block;
    font-size: .75rem;
    font-weight: 600;
    color: var(--c-muted);
    margin-bottom: .25rem;
}

.plan-chapter-episodes {
    margin: 0;
    padding-left: 1.1rem;
    font-size: .85rem;
}

.step4-write-toolbar {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.4rem 0.75rem;
    margin-bottom: 0.4rem;
    flex-shrink: 0;
    width: 100%;
}

.step4-write-heading {
    min-width: 0;
    flex: 1 1 12rem;
}

.step4-write-toolbar-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.2rem;
    width: auto;
    max-width: 100%;
    flex: 1 1 16rem;
}

.step4-write-toolbar-row {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.45rem;
    width: 100%;
    min-width: 0;
}

.step4-write-toolbar-btns {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.4rem;
    flex: 0 0 auto;
}

.step4-write-toolbar-btns .btn-sm {
    white-space: nowrap;
    padding: 0.28rem 0.65rem;
    font-size: 0.78rem;
    min-height: 32px;
}

.btn-split {
    position: relative;
    display: inline-flex;
    align-items: stretch;
    vertical-align: middle;
    flex: 0 0 auto;
}

.btn-split-main {
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

.btn-split-toggle {
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    border-left: 1px solid rgba(255, 255, 255, 0.28) !important;
    padding-left: 0.4rem !important;
    padding-right: 0.4rem !important;
    min-width: 1.7rem;
}

.btn-split--sm .btn-sm.btn-split-toggle {
    padding-left: 0.35rem !important;
    padding-right: 0.35rem !important;
    min-width: 1.55rem;
}

.btn-split-menu {
    position: absolute;
    top: calc(100% + 0.3rem);
    right: 0;
    z-index: 40;
    min-width: 100%;
    padding: 0.3rem;
    border: 1px solid var(--c-border, #e2dfd8);
    border-radius: 10px;
    background: var(--c-surface, #fff);
    box-shadow: 0 10px 28px rgba(28, 26, 46, 0.14);
}

.btn-split-menu-item {
    display: block;
    width: 100%;
    text-align: left;
    border: none;
    background: transparent;
    color: var(--c-text, #1c1a2e);
    border-radius: 8px;
    padding: 0.45rem 0.6rem;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}

.btn-split-menu-item:hover,
.btn-split-menu-item:focus-visible {
    background: rgba(79, 70, 229, 0.08);
    outline: none;
}

.step4-narration-hint {
    margin: 0;
    text-align: right;
    font-size: 0.72rem;
    color: var(--c-muted);
}

@media (max-width: 720px) {
    .step4-write-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .step4-write-toolbar-actions {
        width: 100%;
        flex: 1 1 auto;
    }
}

@media (max-width: 560px) {
    .step4-write-toolbar-row {
        flex-wrap: wrap;
    }

    .step4-search-slot {
        flex: 1 1 100%;
    }

    .step4-write-toolbar-btns {
        width: 100%;
        justify-content: flex-end;
    }
}

.step4-write-title {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.25;
}

.step4-write-purpose {
    margin: .2rem 0 0;
    color: var(--c-muted);
    font-size: .82rem;
}

.step4-gate-card {
    max-width: 32rem;
    padding: 1.25rem;
    border: 1px solid var(--c-border, #e2dfd8);
    border-radius: 12px;
    background: var(--c-surface, #fff);
}

.step4-soft-gate {
    max-width: 40rem;
    margin: 0 0 1rem;
    padding: .85rem 1rem;
    border: 1px solid var(--c-border, #e2dfd8);
    border-radius: 10px;
    background: color-mix(in srgb, var(--c-primary, #4f46e5) 6%, var(--c-surface, #fff));
}

.step4-soft-gate p {
    margin: 0 0 .65rem;
    color: var(--c-text, #1f2937);
    font-size: .9rem;
}

.step4-soft-gate-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
}

.step4-chapter-ready-hint {
    margin: .35rem 0 0;
    font-size: .8rem;
    color: var(--c-muted, #6b7280);
}

.step4-chapter-card--waiting {
    border-style: dashed;
}

.step4-chapter-card--waiting .step4-chapter-card-status {
    color: #92400e;
}

.step4-chapter-card--ready:not(.step4-chapter-card--drafted) .step4-chapter-card-status {
    color: #166534;
}

.step4-gate-card p {
    margin: 0 0 1rem;
    color: var(--c-muted);
}

.step4-gate-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    align-items: center;
}

.plan-empty {
    color: var(--c-muted);
    font-size: .88rem;
    margin: 0;
}

.plan-panel--loading {
    flex: 1 1 0;
    min-height: 0;
}

.plan-synth-status {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: .55rem;
    padding: .15rem 0 0;
    flex: 1 1 0;
    min-height: 0;
}

.plan-synth-head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .4rem;
    flex-shrink: 0;
}

.plan-synth-meta {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: 0;
    font-size: .78rem;
    color: var(--c-muted);
    line-height: 1.4;
}

.plan-synth-spinner {
    width: .95rem;
    height: .95rem;
    border-width: 2px;
    flex: 0 0 auto;
}

.plan-synth-elapsed {
    font-size: inherit;
    color: inherit;
    margin: 0;
}

.plan-synth-stats {
    color: var(--c-muted);
}

.plan-synth-hints {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    width: 100%;
    min-height: 2.75rem;
}

.plan-synth-hint {
    font-size: .78rem;
    color: var(--c-muted);
    margin: 0;
    line-height: 1.4;
    visibility: hidden;
}

.plan-synth-hint--visible {
    visibility: visible;
}

.plan-synth-hint--warn {
    color: var(--c-warning, #d97706);
}

.plan-synth-copy {
    color: var(--c-muted);
    font-size: .88rem;
    margin: 0;
    line-height: 1.45;
}

.plan-synth-log {
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1 1 0;
    min-height: 8rem;
    max-height: none;
    overflow-y: auto;
    width: 100%;
    border: 1px solid var(--c-border);
    border-radius: 8px;
    background: var(--c-surface);
}

.plan-synth-log-item {
    font-size: .78rem;
    line-height: 1.4;
    padding: .45rem .65rem;
    border-bottom: 1px solid var(--c-border);
    color: var(--c-muted);
}

.plan-synth-log-item:last-child {
    border-bottom: none;
}

.plan-synth-log-item--active {
    color: var(--c-text);
    background: rgba(79, 70, 229, .06);
    font-weight: 500;
}

.plan-synth-log-time {
    display: inline-block;
    min-width: 4.5rem;
    color: var(--c-subtle, #9ca3af);
    margin-right: .35rem;
    font-variant-numeric: tabular-nums;
}

.plan-synth-cancel {
    margin-top: .15rem;
    padding: .55rem 1.25rem;
    font-size: .92rem;
}

.plan-ghost-panel {
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: .75rem;
    background: rgba(79, 70, 229, .08);
    border: 1px solid rgba(79, 70, 229, .22);
    border-radius: var(--radius);
    padding: 1rem;
    margin: .85rem 1rem 1rem;
}

.plan-two-col--fill .plan-ghost-col {
    background: rgba(79, 70, 229, .04);
}

.plan-two-col--fill .plan-ghost-panel {
    margin: 0;
    border: none;
    border-radius: 0;
    padding: .85rem 1rem 1rem;
    background: transparent;
}

.plan-ghost-panel .workspace-talk-composer {
    margin-top: .85rem;
}

.plan-ghost-panel .plan-talk-composer-row {
    margin-top: .85rem;
    flex-shrink: 0;
    align-items: flex-end;
}

.plan-ghost-panel .plan-talk-composer-row .workspace-talk-composer {
    margin-top: 0;
}

.plan-two-col--fill .plan-ghost-panel .workspace-talk-composer {
    margin-top: auto;
    flex-shrink: 0;
}

.plan-two-col--fill .plan-ghost-panel .plan-talk-composer-row {
    margin-top: auto;
}

.plan-ghost-label {
    font-size: .72rem;
    font-weight: 700;
    color: var(--c-primary);
}

.plan-talk-thread {
    flex: 1 1 0;
    min-height: 120px;
    max-height: 360px;
    overflow-y: auto;
}

.plan-two-col--fill .plan-talk-thread {
    max-height: none;
}

.step2-assignments-main .workspace-split.workspace-split--discuss .outline-qa-panel--discuss > #workspace-discuss-gap-slot,
.step2-assignments-main .workspace-split.workspace-split--discuss .outline-qa-panel--discuss > #workspace-discuss-themes-slot,
.step2-assignments-main .workspace-split.workspace-split--discuss .outline-qa-panel--discuss > .workspace-talk-onboarding,
.step2-assignments-main .workspace-split.workspace-split--discuss .workspace-talk-panel--discuss > #workspace-readiness-bridge-slot {
    flex-shrink: 0;
}

/* Tablet hero — Call My Ghostwriter CTA (769–1024px) */
.wmb-call-hero {
    margin: 0.65rem 0.85rem 0;
    padding: 0.75rem 0.85rem;
    border-radius: 12px;
    background: linear-gradient(135deg, #312e81 0%, #1e1b4b 100%);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: #f8fafc;
}

.wmb-call-hero-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.wmb-call-hero-copy {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    font-size: 0.86rem;
    line-height: 1.35;
}

.wmb-call-hero-copy strong {
    font-size: 0.95rem;
}

.wmb-call-hero-btn {
    border: none;
    border-radius: 999px;
    padding: 0.5rem 1rem;
    font-weight: 650;
    font-size: 0.82rem;
    background: #22c55e;
    color: #052e16;
    cursor: pointer;
    white-space: nowrap;
}


/* ── Discover: conversation primary; study rail secondary ───────────────── */
.discover-stage {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-height: 0;
    flex: 1;
}
.discover-stage > .discover-conversation {
    flex: 1 1 auto;
    min-height: 0;
}
.discover-study {
    flex: 0 0 auto;
    border-top: 1px solid var(--c-border);
    background: var(--c-surface);
    padding: 0.55rem 0.75rem 0.75rem;
}
.discover-study-rail {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.discover-study-toggle {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
    border: 1px solid var(--c-border);
    background: var(--c-chrome-surface);
    border-radius: 10px;
    padding: 0.55rem 0.75rem;
    cursor: pointer;
    text-align: left;
    color: var(--c-text);
    font: inherit;
}
.discover-study-toggle-label {
    font-weight: 600;
    font-size: 0.9rem;
}
.discover-study-toggle-meta {
    color: var(--c-muted);
    font-size: 0.8rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.discover-study-chevron {
    margin-left: auto;
    color: var(--c-subtle);
    transition: transform 0.15s ease;
}
.discover-prep.is-study-open .discover-study-chevron {
    transform: rotate(180deg);
}
.discover-study-prepare {
    flex: 0 0 auto;
    white-space: nowrap;
}
.discover-study-body {
    margin-top: 0.65rem;
    padding-top: 0.15rem;
}
.discover-study-hint {
    color: var(--c-muted);
    font-size: 0.85rem;
    line-height: 1.4;
    margin-bottom: 0.55rem;
}
.discover-prep-status {
    margin-top: 0.5rem;
    padding: 0.45rem 0.65rem;
    border-radius: 8px;
    background: var(--c-chrome-surface);
    color: var(--c-text);
    font-size: 0.85rem;
}
.discover-prep-status.is-error {
    background: rgba(220, 38, 38, 0.08);
    color: var(--c-danger);
}
.discover-prep-tools {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}
.discover-prep-file-btn { align-self: flex-start; cursor: pointer; }
.discover-prep-url-row {
    display: flex;
    gap: 0.45rem;
    align-items: center;
}
.discover-prep-url-row .auth-field { flex: 1; }
.discover-prep-paste {
    width: 100%;
    resize: vertical;
    min-height: 4rem;
}
.discover-prep-source-list {
    list-style: none;
    margin-top: 0.55rem;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}
.discover-prep-source-item {
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
}
.discover-prep-source-row {
    display: flex;
    align-items: stretch;
    gap: 0.2rem;
    min-width: 0;
}
.discover-prep-source-btn {
    flex: 1 1 auto;
    min-width: 0;
    box-sizing: border-box;
    margin: 0;
    padding: 0.45rem 0.55rem;
    border-radius: 8px;
    border: 1px solid transparent;
    background: var(--c-chrome-surface);
    font: inherit;
    font-size: 0.85rem;
    color: inherit;
    text-align: left;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.15rem;
}
.discover-prep-source-btn:hover,
.discover-prep-source-btn:focus-visible {
    border-color: rgba(79, 70, 229, 0.35);
    background: #fff;
    outline: none;
}
.discover-prep-source-delete {
    flex: 0 0 auto;
    align-self: center;
    width: 1.85rem;
    height: 1.85rem;
    margin: 0;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: var(--c-muted);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
}
.discover-prep-source-delete:hover,
.discover-prep-source-delete:focus-visible {
    color: #b42318;
    background: rgba(180, 35, 24, 0.08);
    border-color: rgba(180, 35, 24, 0.2);
    outline: none;
}
.discover-prep-source-title {
    font-weight: 600;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.discover-prep-source-meta {
    color: var(--c-muted);
    font-size: 0.78rem;
}
.discover-source-detail-actions {
    display: flex;
    flex: 0 0 auto;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 0.35rem;
    padding-top: 0.55rem;
    border-top: 1px solid var(--c-border);
}
.discover-source-delete-btn {
    color: #b42318;
}
.discover-source-delete-btn:hover:not(:disabled) {
    background: rgba(180, 35, 24, 0.08);
}
/* Source viewer — whole detail region scrolls (Key points + Full text), like Brief. */
.discover-source-detail {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    min-height: 0;
    flex: 1 1 auto;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    padding-right: 0.15rem;
}
.discover-source-detail-meta {
    margin: 0;
    flex: 0 0 auto;
    font-size: 0.82rem;
    color: var(--c-muted);
}
.discover-source-detail-url {
    margin: 0;
    flex: 0 0 auto;
    font-size: 0.85rem;
    word-break: break-all;
}
.discover-source-detail-subhead {
    margin: 0.35rem 0 0;
    flex: 0 0 auto;
    font-size: 0.88rem;
    font-weight: 650;
}
.discover-source-detail-facts {
    margin: 0;
    flex: 0 0 auto;
    padding-left: 1.1rem;
    font-size: 0.88rem;
    line-height: 1.4;
}
.discover-source-detail-body {
    /* Grow with content so the parent `.discover-source-detail` is the sole scroller. */
    flex: 0 0 auto;
    min-height: 0;
    margin: 0;
    padding: 0.75rem 0.85rem;
    border: 1px solid var(--c-border);
    border-radius: 10px;
    background: #fafaf8;
    font: inherit;
    font-size: 0.88rem;
    line-height: 1.45;
    white-space: pre-wrap;
    word-break: break-word;
    overflow: visible;
}
.discover-source-detail-note {
    margin: 0;
    font-size: 0.85rem;
    color: var(--c-muted);
    line-height: 1.4;
}
.discover-source-pdf-card {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--c-border);
    border-radius: 12px;
    background: linear-gradient(180deg, #fbfcfe 0%, #f3f6fa 100%);
}
.discover-source-pdf-icon {
    flex: 0 0 auto;
    line-height: 0;
}
.discover-source-pdf-copy {
    flex: 1 1 auto;
    min-width: 0;
}
.discover-source-pdf-name {
    margin: 0 0 0.2rem;
    font-size: 0.95rem;
    font-weight: 650;
    word-break: break-word;
}
.discover-source-pdf-hint {
    margin: 0;
    font-size: 0.82rem;
    color: var(--c-muted);
    line-height: 1.35;
}
.discover-source-pdf-open {
    flex: 0 0 auto;
    white-space: nowrap;
}
.discover-prep-briefing {
    margin-top: 0.75rem;
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    padding: 0.85rem 1rem;
    background: #fafaf8;
}
.discover-briefing-kicker {
    font-weight: 650;
    margin-bottom: 0.5rem;
}
.discover-briefing-phase {
    margin-bottom: 0.85rem;
    font-size: 0.92rem;
}
.discover-briefing h3 {
    font-size: 0.95rem;
    margin: 0.75rem 0 0.35rem;
}
.discover-briefing-list {
    list-style: disc;
    padding-left: 1.2rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}
.discover-briefing-bullet {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
    justify-content: space-between;
}
.discover-briefing-bullet.is-not-right .discover-briefing-bullet-text {
    text-decoration: line-through;
    color: var(--c-muted);
}
.discover-briefing-not-right,
.btn-link.discover-briefing-not-right {
    border: 0;
    background: none;
    color: var(--c-danger);
    cursor: pointer;
    font-size: 0.8rem;
    text-decoration: underline;
    white-space: nowrap;
}
.discover-briefing-undo,
.btn-link.discover-briefing-undo {
    color: var(--c-muted);
}
.discover-briefing-flag {
    font-size: 0.75rem;
    color: var(--c-danger);
    font-weight: 600;
}
.discover-briefing-ready-wrap {
    margin-top: 1.25rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
}
.discover-briefing-ready {
    font-size: 1.05rem;
    font-weight: 650;
}
.discover-briefing-ready-hint {
    margin: 0;
    font-size: 0.8rem;
    color: var(--c-subtle);
}
.discover-briefing-note {
    margin-top: 0.35rem;
    font-size: 0.8rem;
    color: var(--c-subtle);
}
@media (max-width: 720px) {
    .discover-study-rail {
        flex-wrap: wrap;
    }
    .discover-study-prepare {
        width: 100%;
    }
}

/* Qualitative mission readiness + artifact approval ceremony (Decision 5 / 8) */
.gw-readiness-slot {
    margin: .35rem 0 .55rem;
}
.gw-readiness-slot--discover {
    margin: .25rem .65rem .4rem;
}
.gw-readiness {
    border-left: 3px solid var(--c-border, #d4d0c8);
    padding: .45rem .7rem .5rem;
    background: color-mix(in srgb, var(--c-surface, #fff) 92%, var(--c-muted, #888) 8%);
    border-radius: 0 6px 6px 0;
}
.gw-readiness--enough { border-left-color: #3d8b6e; }
.gw-readiness--partial { border-left-color: #b0893a; }
.gw-readiness--not_yet { border-left-color: #9a6b6b; }
.gw-readiness--loading {
    color: var(--c-muted);
    font-size: .82rem;
}
.gw-readiness-kicker {
    margin: 0;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
    color: var(--c-muted);
}
.gw-readiness-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .5rem;
}
.gw-readiness-state {
    display: inline-block;
    font-size: .72rem;
    font-weight: 700;
    color: var(--c-ink, #1c1917);
}
.gw-readiness-headline {
    margin: .2rem 0 0;
    font-size: .88rem;
    line-height: 1.35;
    color: var(--c-ink, #1c1917);
}
.gw-readiness-gap-one {
    margin: .25rem 0 0;
    font-size: .8rem;
    color: var(--c-muted);
    line-height: 1.35;
}
.gw-readiness-block {
    margin-top: .4rem;
}
.gw-readiness-block-label {
    margin: 0 0 .15rem;
    font-size: .72rem;
    font-weight: 700;
    color: var(--c-muted);
}
.gw-readiness-list {
    margin: 0;
    padding-left: 1.05rem;
    font-size: .8rem;
    line-height: 1.4;
    color: var(--c-ink, #1c1917);
}
.gw-readiness-next {
    margin: .35rem 0 0;
    font-size: .78rem;
    color: var(--c-muted);
}
.gw-readiness-footnote {
    margin: .35rem 0 0;
    font-size: .7rem;
    color: var(--c-muted);
    font-style: italic;
}
.gw-readiness--compact .gw-readiness-headline {
    font-size: .82rem;
}
.gw-approval-slot {
    margin: .55rem 0;
}
.gw-approval-slot--manuscript {
    margin-top: .75rem;
}
.gw-approval {
    padding: .55rem .7rem .65rem;
    border: 1px solid var(--c-border, #d4d0c8);
    border-radius: 8px;
    background: var(--c-surface, #fff);
}
.gw-approval--approved {
    border-color: #3d8b6e;
    background: color-mix(in srgb, #3d8b6e 8%, var(--c-surface, #fff));
}
.gw-approval--pending_visible_confirmation {
    border-color: #b0893a;
    background: color-mix(in srgb, #b0893a 10%, var(--c-surface, #fff));
}
.gw-approval-kicker {
    margin: 0;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
    color: var(--c-muted);
}
.gw-approval-label {
    margin: .25rem 0 .4rem;
    font-size: .9rem;
    font-weight: 650;
    line-height: 1.35;
    color: var(--c-ink, #1c1917);
}
.gw-approval-copy,
.gw-approval-hint,
.gw-approval-receipt {
    margin: .35rem 0 0;
    font-size: .78rem;
    line-height: 1.4;
    color: var(--c-muted);
}
.gw-approval .btn {
    margin-top: .35rem;
}
.plan-approval-ceremony {
    flex: 1 1 100%;
    width: 100%;
}
.step4-soft-gate-hint {
    margin: .35rem 0 0;
    font-size: .75rem;
    color: var(--c-muted);
}


/* ── My Voice (writing style) ─────────────────────────────────────────────── */
/* Find My Voice (preview + 5 sliders + actions) needs more vertical room than other large dialogs. */
.discover-dialog-backdrop .discover-dialog--large:has(.my-voice-hub) {
    height: min(56rem, calc(100vh - 1.5rem));
    max-height: calc(100vh - 1.5rem);
}
.my-voice-hub { display: flex; flex-direction: column; gap: 1rem; }
.my-voice-summary-panel { display: flex; flex-direction: column; gap: 0.65rem; }
.my-voice-empty { color: var(--muted, #6b6560); margin: 0; }
.my-voice-summary-text { margin: 0; line-height: 1.45; }
.my-voice-bullets { margin: 0; padding-left: 1.15rem; }
.my-voice-exemplar {
  margin: 0;
  padding: 0.65rem 0.85rem;
  border-left: 3px solid rgba(40, 35, 30, 0.18);
  font-style: italic;
  color: #3a342e;
}
.my-voice-actions { display: flex; flex-wrap: wrap; gap: 0.55rem; align-items: center; }
.my-voice-reset { margin-left: auto; }
.my-voice-panel { margin-top: 0.25rem; }
.my-voice-find-lead { margin: 0 0 0.75rem; color: var(--muted, #6b6560); }
.my-voice-preview {
  min-height: 5.5rem;
  padding: 0.9rem 1rem;
  border-radius: 10px;
  background: rgba(40, 35, 30, 0.04);
  border: 1px solid rgba(40, 35, 30, 0.08);
  line-height: 1.5;
  margin-bottom: 1rem;
}
.my-voice-preview.is-loading { opacity: 0.65; }
.my-voice-dims { display: flex; flex-direction: column; gap: 0.85rem; margin-bottom: 1rem; }
.my-voice-dim { display: flex; flex-direction: column; gap: 0.3rem; }
.my-voice-dim-ends {
  display: flex;
  justify-content: space-between;
  font-size: 0.85rem;
  color: #4a433c;
}
.my-voice-dim input[type="range"] { width: 100%; }
.my-voice-find-actions,
.my-voice-learn-actions,
.my-voice-pending-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  align-items: center;
}
.my-voice-pending {
  padding: 0.85rem 1rem;
  border-radius: 10px;
  background: rgba(120, 90, 40, 0.08);
  border: 1px solid rgba(120, 90, 40, 0.18);
}
.my-voice-delta { margin: 0.25rem 0 0; font-size: 0.9rem; color: #5a534c; }
.my-voice-meta-line { margin: 0; font-size: 0.88rem; color: var(--muted, #6b6560); }
