/* The dashboard's exercise-book language, shared by its full-page workspaces.
   Load after page styles. Scope keeps marketing and sign-in branding intact. */
.gm-notebook {
    --gm-paper-ink: #13233f;
    --gm-paper-fill: #fbf6ea;
    --gm-muted: #686451;
    --gm-gold-ink: #806020;
    --book-rule: rgba(19, 35, 63, .16);
    --book-margin: #ba795f;
    --book-sheet: 6px 6px 0 var(--gm-gold-soft), 6px 6px 0 1.5px var(--gm-paper-ink);
    --book-tab: 3px 3px 0 var(--gm-paper-ink);
    --book-selected: #edcf83;
    --lc-navy: var(--gm-paper-fill);
    --lc-navy-soft: #f1e6cb;
    --lc-navy-line: rgba(19, 35, 63, .25);
    --lc-on-navy: var(--gm-paper-ink);
    --lc-on-navy-dim: #46566b;
    accent-color: var(--gm-paper-ink);
    caret-color: var(--gm-paper-ink);
    scrollbar-color: #9a8f76 var(--gm-paper-fill);
    scrollbar-width: thin;
}
.gm-notebook ::selection { background: #edcf83; color: #13233f; }
.gm-notebook :is(button, a, input, textarea, select, summary):focus-visible {
    outline: 2px solid var(--gm-paper-ink);
    outline-offset: 4px;
}
.gm-notebook :where(button, input, textarea, select) { accent-color: var(--gm-paper-ink); }
/* The composer itself carries focus, not a second rectangle around its text. */
.gm-notebook .gm-askbox-input:focus-visible { outline: none; box-shadow: none; }
/* The dashboard coach entry uses the same paper island as the chat screens. */
.gm-notebook .gm-askbox-form {
    height: auto;
    min-height: 64px;
    padding: 8px;
    gap: 10px;
    background: var(--gm-paper-fill);
    border: 2px solid var(--gm-paper-ink);
    border-radius: 12px;
    box-shadow: 4px 4px 0 var(--gm-paper-ink);
}
.gm-notebook .gm-askbox-form:focus-within {
    border-color: var(--gm-paper-ink);
    box-shadow: 4px 4px 0 var(--gm-paper-ink);
    outline: 2px solid var(--gm-gold-ink);
    outline-offset: 3px;
}
.gm-notebook :is(.gm-askbox-attach, .gm-askbox-send) {
    width: 44px;
    height: 44px;
    border: 1.5px solid var(--gm-paper-ink);
    border-radius: 9px;
    color: var(--gm-paper-ink);
    background: var(--gm-paper-fill);
}
.gm-notebook .gm-askbox-send { background: var(--book-selected); box-shadow: 2px 2px 0 var(--gm-paper-ink); }
.gm-notebook :is(.gm-askbox-attach, .gm-askbox-send):hover { background: var(--gm-gold-soft); transform: none; }
.gm-notebook .gm-askbox-send:active { transform: translate(1px, 1px); box-shadow: 1px 1px 0 var(--gm-paper-ink); }
.gm-notebook .gm-askbox-attach-menu { border: 1.5px solid var(--gm-paper-ink); background: var(--gm-paper-fill); box-shadow: var(--book-tab); }
.gm-notebook .gm-askbox-foot { justify-content: flex-start; gap: 12px 28px; }
.gm-notebook .gm-askbox-coach { min-width: 0; max-width: 100%; flex-wrap: wrap; }
.gm-notebook .gm-askbox-picker { min-width: 0; max-width: 100%; }
.gm-notebook .gm-askbox-picker-label { white-space: normal; }
.gm-notebook .gm-askbox-threads { background: var(--gm-paper-fill); text-underline-offset: .22em; }
.gm-notebook :is(.lc-field input, .lc-field textarea)::placeholder { color: #687080; opacity: 1; }
.gm-notebook :where(a, summary) { text-underline-offset: .22em; }

/* The binding: paper margin, punched holes, and a double gold edge. */
.gm-notebook .lc-topbar {
    background: var(--gm-paper-fill);
    border-bottom: 1.5px solid var(--gm-paper-ink);
    box-shadow: 0 4px 0 var(--gm-gold-soft);
}
.gm-notebook .lc-brand-mark { mix-blend-mode: multiply; }
.gm-notebook .lc-control {
    background: var(--gm-paper-fill);
    border-right: 1.5px solid var(--gm-paper-ink);
    box-shadow: inset -6px 0 0 var(--gm-gold-soft), inset -7px 0 0 var(--book-rule);
}
.gm-notebook .lc-control::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 22px;
    pointer-events: none;
    background:
        radial-gradient(circle at 9px 48px, var(--gm-bg) 0 4px, var(--gm-paper-ink) 4.5px 5.5px, transparent 6px) 0 0 / 22px 192px repeat-y;
    border-right: 1px solid var(--book-margin);
}
.gm-notebook .lc-control-inner {
    padding-left: 42px;
    scrollbar-color: #9a8f76 transparent;
}
.gm-notebook .lc-control-inner::-webkit-scrollbar-thumb { background: #9a8f76; }
.gm-notebook .lc-arc { display: none; }
.gm-notebook .lc-control-head { padding-top: 10px; }
.gm-notebook :is(.lc-control-title, .lc-block-head h3) { color: var(--gm-paper-ink); }
.gm-notebook .lc-control-title { font-size: clamp(1.6rem, 2.1vw, 1.9rem); line-height: 1.18; }
.gm-notebook .lc-eyebrow { display: none; }
.gm-notebook :is(.lc-control-head, .lc-result-head, .nt-list-head) {
    padding-bottom: 22px;
    border-bottom: 0;
    background: var(--gm-margin-rule);
}
.gm-notebook .lc-control--flat .lc-block + .lc-block { border-top-color: var(--book-rule); }
.gm-notebook :is(.lc-hint, .lc-chapter-empty, .lc-brain-subhint, .lc-credit-note) { color: #586274; opacity: 1; }
.gm-notebook :is(.lc-collapse, .lc-rail-expand) {
    width: 36px;
    height: 36px;
    color: var(--gm-paper-ink);
    background: var(--gm-gold-soft);
    border: 1px solid var(--gm-paper-ink);
    border-radius: 8px;
}
.gm-notebook .lc-collapse { top: 12px; right: 12px; }
.gm-notebook .lc-shell.is-collapsed .lc-control::before { display: none; }

/* Inputs are writing spaces; selected modes are index tabs. */
.gm-notebook :is(.lc-field input, .lc-field textarea, .lc-select, .lc-brain-textarea) {
    min-width: 0;
    border: 1.5px solid var(--gm-paper-ink);
    border-radius: 8px;
    background: var(--gm-surface);
    color: var(--gm-paper-ink);
    box-shadow: inset 0 -3px 0 var(--gm-gold-soft);
}
.gm-notebook :is(.lc-field input, .lc-field textarea, .lc-select, .lc-brain-textarea):focus {
    background: #fffdf8;
    border-color: var(--gm-paper-ink);
    outline: 2px solid var(--gm-gold);
    outline-offset: 2px;
}
.gm-notebook .lc-field input[type="file"]::file-selector-button {
    padding: 6px 9px;
    margin-right: 10px;
    border: 1px solid var(--gm-paper-ink);
    border-radius: 5px;
    background: var(--gm-gold-soft);
    color: var(--gm-paper-ink);
    font: inherit;
    cursor: pointer;
}
.gm-notebook .lc-mode-toggle {
    gap: 6px;
    padding: 0 0 3px;
    border: 0;
    border-bottom: 1.5px solid var(--gm-paper-ink);
    border-radius: 0;
    background: none;
}
.gm-notebook .lc-mode-btn {
    min-height: 44px;
    border: 1px solid var(--book-rule);
    border-radius: 9px 9px 2px 2px;
    background: var(--gm-surface);
    color: var(--gm-ink-2);
}
.gm-notebook .lc-mode-btn:is(.is-active, [aria-pressed="true"]) {
    border-color: var(--gm-paper-ink);
    background: #edcf83;
    color: var(--gm-paper-ink);
    box-shadow: 2px 2px 0 var(--gm-paper-ink);
}
.gm-notebook :is(.lc-primary, .lc-generate, .lc-ghost, .nt-ghost, .gm-ghost-button, .gm-secondary-button,
    .lc-brain-generate, .lc-brain-test, .lc-brain-view, .lc-test-option-go, .lc-test-chooser-cancel, .lc-level-pill),
.gm-notebook .gm-note-modal-actions > button {
    min-height: 40px;
    border: 1.5px solid var(--gm-paper-ink);
    border-radius: 8px;
    background: var(--gm-paper-fill);
    color: var(--gm-paper-ink);
    box-shadow: var(--book-tab);
    transition: background .16s ease, box-shadow .16s ease, transform .16s ease;
}
.gm-notebook :is(.lc-primary, .lc-generate, .lc-brain-generate, .lc-test-option-go),
.gm-notebook .gm-note-modal-actions > .gm-iris-go { background: var(--book-selected); min-height: 44px; }
.gm-notebook :is(.lc-primary, .lc-generate, .lc-ghost, .nt-ghost, .gm-ghost-button, .gm-secondary-button,
    .lc-brain-generate, .lc-brain-test, .lc-brain-view, .lc-test-option-go, .lc-test-chooser-cancel, .lc-level-pill):not(:disabled):hover,
.gm-notebook .gm-note-modal-actions > button:not(:disabled):hover {
    color: var(--gm-paper-ink);
    background: #f1e6cb;
    border-color: var(--gm-paper-ink);
    box-shadow: var(--book-tab);
    transform: translateY(-1px);
}
.gm-notebook :is(.lc-primary, .lc-generate, .lc-ghost, .nt-ghost, .gm-ghost-button, .gm-secondary-button,
    .lc-brain-generate, .lc-brain-test, .lc-brain-view, .lc-test-option-go, .lc-test-chooser-cancel, .lc-level-pill):not(:disabled):active,
.gm-notebook .gm-note-modal-actions > button:not(:disabled):active {
    transform: translate(2px, 2px);
    box-shadow: 1px 1px 0 var(--gm-paper-ink);
}
.gm-notebook :is(.lc-primary, .lc-generate, .lc-ghost, .nt-ghost, .gm-ghost-button, .gm-secondary-button,
    .lc-brain-generate, .lc-brain-test, .lc-brain-view, .lc-test-option-go, .lc-test-chooser-cancel, .lc-level-pill):disabled,
.gm-notebook .gm-note-modal-actions > button:disabled {
    background: #e8ddc6;
    color: #606574;
    border-color: #939185;
    box-shadow: none;
    opacity: 1;
    cursor: not-allowed;
}
.gm-notebook :is(.nt-danger, .nt-danger:hover) { color: var(--gm-danger); }
.gm-notebook :is(.lc-link, .nt-back) { color: var(--gm-gold-ink); }
.gm-notebook :is(.lc-cost, .gm-credit-pill, .lc-chip, .gm-note-tag, .mock-clock) {
    border: 1px solid var(--gm-paper-ink);
    border-radius: 6px;
}
.gm-notebook .gm-credit-pill { box-shadow: var(--book-tab); }
.gm-notebook .lc-chapter-row { background: var(--gm-surface); border: 1.5px solid var(--gm-paper-ink); border-radius: 8px; }
.gm-notebook .lc-chapter-actions { gap: 12px; padding-bottom: 3px; }

/* Complete the same test/notes path, including dynamically mounted dialogs. */
.gm-notebook .gm-note-modal {
    background: var(--gm-paper-fill);
    border: 1.5px solid var(--gm-paper-ink);
    border-radius: 12px;
    box-shadow: var(--book-sheet);
}
.gm-notebook .lc-test-options { gap: 0; }
.gm-notebook .lc-test-option {
    padding: 22px 0;
    border: 0;
    border-top: 1px solid var(--book-rule);
    border-radius: 0;
    background: transparent;
}
.gm-notebook .lc-test-option-head { flex-wrap: wrap; gap: 6px 16px; }
.gm-notebook .lc-test-option-cost { white-space: normal; }
.gm-notebook :is(.lc-test-option-go, .lc-test-chooser-cancel, .lc-level-pill) { padding: 8px 16px; }
.gm-notebook .lc-level-pill { min-width: 44px; }
.gm-notebook .lc-level-pill[data-active="true"] { background: var(--book-selected); border-color: var(--gm-paper-ink); }
.gm-notebook .lc-test-chooser-cancel { align-self: flex-start; }
.gm-notebook .lc-test-option-arrow { color: inherit; }
.gm-notebook :is(.lc-version-select, .gm-note-field input, .gm-note-field textarea, .gm-note-field select) {
    background: var(--gm-surface);
    color: var(--gm-paper-ink);
    border: 1.5px solid var(--gm-paper-ink);
    border-radius: 8px;
    min-height: 40px;
}
.gm-notebook .lc-version-row { flex-wrap: wrap; }
.gm-notebook .lc-version-select { max-width: 100%; }
.gm-notebook .lc-version-note { color: var(--gm-ink-2); }
.gm-notebook .lc-concept-picker { border-color: var(--gm-paper-ink); background: var(--gm-surface); }
.gm-notebook .lc-concept-pick { padding: 10px 6px; color: var(--gm-paper-ink); }
.gm-notebook .lc-concept-pick:has(input:checked) { background: var(--gm-gold-soft); }

/* A sheet on the desk. Ruled decoration stays outside dense reading content. */
.gm-notebook .lc-display {
    min-width: 0;
    background: var(--gm-bg);
    padding-bottom: 64px;
}
.gm-notebook :is(.lc-result, .lc-brain-panel:not(.lc-brain-panel--pg), .brain-content > .pg-card, .nt-card) {
    background: var(--gm-paper-fill);
    border: 1.5px solid var(--gm-paper-ink);
    border-radius: 12px;
    box-shadow: var(--book-sheet);
}
.gm-notebook :is(.lc-result, .lc-brain-panel) { position: relative; }
/* Chapter progress is a page on the desk, not an outlined test/result sheet. */
.gm-notebook .lc-brain-panel--pg > .pg-card { padding-block: 16px 32px; }
.gm-notebook .lc-brain-panel--pg .pg-head { align-items: flex-start; gap: 28px 40px; }
.gm-notebook .lc-brain-panel--pg .pg-head > :first-child { flex: 1 1 360px; min-width: 0; }
.gm-notebook .lc-brain-panel--pg .pg-title {
    margin: 0;
    font-size: clamp(26px, 2.2vw, 30px);
    line-height: 1.25;
    overflow-wrap: anywhere;
}
.gm-notebook .lc-brain-panel--pg .pg-sub { font-size: 15px; margin-top: 10px; }
.gm-notebook .lc-brain-panel--pg .pg-stats { flex-wrap: wrap; gap: 24px; padding: 0; }
.gm-notebook .lc-brain-panel--pg .pg-stat { text-align: left; }
.gm-notebook .lc-brain-panel--pg .pg-stat-num { font-size: 27px; }
.gm-notebook .lc-brain-panel--pg .pg-stat-label { font-size: 12px; }
.gm-notebook .lc-brain-panel--pg .pg-step { flex-wrap: wrap; gap: 8px 14px; }
.gm-notebook .lc-brain-panel--pg .pg-step-title { font-size: 22px; line-height: 1.3; margin: 0; }
.gm-notebook .lc-brain-panel--pg .pg-step-hint { font-size: 15px; }
.gm-notebook .lc-brain-panel--pg .pg-rule { margin-top: 40px; }
.gm-notebook .lc-brain-panel--pg .pg-rule--mid { margin: 48px 0 32px; }
.gm-notebook .lc-brain-panel--pg .pg-step2head { align-items: center; }
.gm-notebook .lc-brain-panel--pg .pg-actions { margin: 18px 0 24px; gap: 12px; }
.gm-notebook .lc-brain-panel--pg .lc-retest-cta {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    gap: 12px 20px;
}
.gm-notebook .lc-brain-panel--pg .lc-retest-msg { color: var(--gm-paper-ink); }
.gm-notebook .lc-brain-panel--pg .pg-bucket,
.gm-notebook .lc-brain-panel--pg .pg-tile { font: inherit; }
.gm-notebook .lc-brain-panel--pg .pg-tile { min-width: 0; padding: 0; }
.gm-notebook .lc-brain-panel--pg .pg-bucket { width: 100%; text-align: left; border: 0; border-bottom: 1px solid var(--book-rule); }
.gm-notebook .lc-brain-panel--pg .pg-mistake-text { max-width: 75ch; overflow-wrap: anywhere; }
.gm-notebook .lc-brain-panel--pg :is(.pg-bucket, .pg-tile):focus-visible { outline: 2px solid var(--gm-gold-ink); outline-offset: 3px; }
@media (max-width: 560px) {
    .gm-notebook .lc-brain-panel--pg .pg-head > :first-child { flex-basis: 100%; }
    .gm-notebook .lc-brain-panel--pg .pg-stats { width: 100%; justify-content: space-between; gap: 12px; }
    .gm-notebook .lc-brain-panel--pg .pg-stat { flex: 1 1 80px; }
    .gm-notebook .lc-brain-panel--pg .pg-stat-label { font-size: 11px; letter-spacing: .04em; }
    .gm-notebook .lc-brain-panel--pg .pg-step-title { font-size: 20px; }
    .gm-notebook .lc-brain-panel--pg .lc-retest-cta { align-items: flex-start; flex-direction: column; }
    .gm-notebook .lc-brain-panel--pg .lc-retest-cta .lc-brain-generate { max-width: 100%; white-space: normal; }
}
.gm-notebook .lc-empty {
    max-width: 510px;
    padding: clamp(28px, 4vw, 48px) clamp(22px, 3vw, 36px);
    background: var(--gm-paper-fill);
    border: 1.5px solid var(--gm-paper-ink);
    border-radius: 12px;
    box-shadow: var(--book-sheet);
    position: relative;
}
.gm-notebook .lc-empty::before {
    content: "";
    position: absolute;
    top: -12px;
    left: calc(50% - 34px);
    width: 68px;
    height: 24px;
    background: #edcf83;
    border: 1px solid var(--gm-paper-ink);
    transform: rotate(-4deg);
    pointer-events: none;
}
.gm-notebook .lc-empty-mark { width: 64px; height: 64px; stroke: var(--gm-paper-ink); }
.gm-notebook .lc-empty h2 { line-height: 1.2; }
.gm-notebook .nt-grid { gap: 28px; padding: 0 8px 8px 0; }
.gm-notebook .nt-card {
    border-top: 6px double var(--gm-paper-ink);
    padding-top: 22px;
}
.gm-notebook .nt-card:hover { transform: translateY(-2px); box-shadow: var(--book-sheet); border-color: var(--gm-paper-ink); }
.gm-notebook .nt-switch-track { background: #ded4bc; border-color: var(--gm-paper-ink); }
.gm-notebook .nt-switch input:checked ~ .nt-switch-track { background: #edcf83; border-color: var(--gm-paper-ink); }
.gm-notebook .nt-switch-track::after { background: var(--gm-paper-ink); }
.gm-notebook :is(.nt-switch-text, .nt-check, .nt-switch:hover .nt-switch-text) { color: var(--gm-ink-2); }
.gm-notebook .nt-editor-actions { flex-wrap: wrap; }
.gm-notebook :is(.lc-result-actions, .lc-chapter-actions) { flex-wrap: wrap; }
.gm-notebook .lc-result-head { flex-wrap: wrap; }
.gm-notebook :is(.lc-question, .lc-grade-row) { border: 0; border-top: 1px solid var(--book-rule); border-radius: 0; background: none; }
.gm-notebook .lc-question { padding-inline: 0; }
.gm-notebook .lc-option { border: 1.5px solid var(--gm-paper-ink); border-radius: 8px; min-height: 44px; }
.gm-notebook .lc-option:has(input:checked) { border-color: var(--gm-paper-ink); background: var(--book-selected); }
.gm-notebook .lc-option:has(input:focus-visible) { outline: 2px solid var(--gm-paper-ink); outline-offset: 3px; }
.gm-notebook .lc-option-text { min-width: 0; overflow-wrap: anywhere; }
.gm-notebook :is(.lc-flashcard, .lc-flashcard-face) { border-color: var(--gm-paper-ink); background-color: var(--gm-paper-fill); }
.gm-notebook .lc-notes pre { background: #15263b; color: #fffdf8; }

/* Analyze Me reads as a marked progress report, preserving chart semantics. */
.gm-notebook .pg-rule { height: 6px; background: var(--gm-margin-rule); }
.gm-notebook :is(.pg-stat-num, .pg-bucket-count, .pg-hover-pct, .pg-donut-big) { font-variant-numeric: tabular-nums; }
.gm-notebook :is(.pg-sub, .pg-note, .pg-empty, .pg-stat-label, .pg-step-hint, .pg-legend-desc, .pg-legend-lead, .pg-hover-idle, .pg-hover-label, .pg-donut-label, .pg-bd-idle, .pg-bd-group-meta, .pg-mistake-skill, .pg-mistakes-more, .brain-loading) { color: #606574; }
/* Brain 2.0 secondary text. These classes arrived after the list above and kept
   brain.css's #A69D89 (2.49:1 on the paper), #A08F55 (2.97:1), #8C8370 (3.48:1)
   and #6E8593 (3.58:1), all at 9.5 to 13px. #606574 is 5.39:1 on the paper fill
   and 5.72:1 on the writing surface. */
.gm-notebook :is(.pg-stat-sub, .pg-pulse-note, .pg-bd-topic-label, .pg-bd-topic-meta, .pg-bd-topic-pct, .pg-bd-empty, .pg-chapter-meta, .pg-km-topic-count, .pg-km-average, .pg-km-note, .pg-km-topic-score-label, .pg-paper-meta, .pg-perbook-meta, .pg-history-when, .pg-history-level, .pg-readiness-note, .pg-readiness-range-copy, .pg-predict-what, .pg-predict-cover, .pg-predict-coverage-label, .pg-grade-latest, .pg-craft-label, .pg-craft-meta, .pg-craft-criterion-path) { color: #606574; }
.gm-notebook :is(.pg-trend-ylabel, .pg-trend-xlabel) { fill: #606574; }
/* Gold small caps and gold controls take the notebook's gold ink: 5.39:1 on the
   paper, 4.86:1 on the readiness tint (brain.css golds were 2.97 to 4.2:1). */
.gm-notebook :is(.pg-readiness-label, .pg-predict-label, .pg-pulse-eyebrow, .pg-readiness-band, .pg-bd-toggle-text, .pg-bd-caret, .pg-chapter-idx) { color: var(--gm-gold-ink); }
/* Semantic labels keep their meaning in a darker tone: 5.40:1, 5.96:1, 5.65:1. */
.gm-notebook .pg-insight-item--strong .pg-insight-label { color: #256B45; }
.gm-notebook .pg-paper-meta[data-tone="up"] { color: #256B45; }
.gm-notebook .pg-insight-item--focus .pg-insight-label { color: var(--gm-danger, #AA2E25); }
.gm-notebook .pg-step-num { color: var(--gm-gold-ink); }
.gm-notebook .pg-chip { border-color: var(--gm-paper-ink); background: var(--gm-surface); border-radius: 6px; }
.gm-notebook .pg-chip-count { color: #606574; }
.gm-notebook .pg-bucket { border-radius: 0; border-bottom-color: var(--book-rule); }
.gm-notebook .pg-bucket:hover { background: var(--gm-gold-soft); }
.gm-notebook .pg-mistake { border-bottom-color: var(--book-rule); }
.gm-notebook :is(.pg-insight-item, .pg-focus) { border: 1px solid var(--book-rule); border-radius: 6px; }

@media (max-width: 900px) {
    .gm-notebook .lc-control { border-right: 0; border-bottom: 1.5px solid var(--gm-paper-ink); box-shadow: inset 0 -5px 0 var(--gm-gold-soft); }
    .gm-notebook .lc-control-inner { min-width: 0; padding-right: 26px; }
    .gm-notebook .lc-shell.is-collapsed .lc-control { min-height: 64px; }
}
@media (max-width: 560px) {
    .gm-notebook .lc-display { padding: 28px 20px 48px 14px; }
    .gm-notebook .lc-control-inner { padding-left: 36px; }
    .gm-notebook .lc-topbar { padding-inline: 12px; gap: 8px; }
    .gm-notebook .lc-brand { gap: 6px; }
    .gm-notebook .lc-brand-mark { width: 38px; height: 38px; }
    .gm-notebook .lc-back { padding-inline: 10px; }
    .gm-notebook .lc-empty { margin: 40px auto; }
    .gm-notebook .lc-result-actions { width: 100%; }
    .gm-notebook .lc-chapter-row { flex-wrap: wrap; }
    .gm-notebook .nt-grid { grid-template-columns: minmax(0, 1fr); }
    .gm-notebook .pg-buckets { min-width: 0; width: 100%; }
    .gm-notebook .pg-overview { gap: 24px; }
    .gm-notebook .pg-stats { flex-wrap: wrap; gap: 18px; }
}
@media (prefers-reduced-motion: reduce) {
    .gm-notebook :is(.lc-brain-generate, .lc-brain-test, .lc-brain-view, .lc-test-option-go, .lc-test-chooser-cancel, .lc-level-pill, .gm-note-modal-actions > button) { transition: none; }
    .gm-notebook :is(.lc-brain-generate, .lc-brain-test, .lc-brain-view, .lc-test-option-go, .lc-test-chooser-cancel, .lc-level-pill, .gm-note-modal-actions > button):not(:disabled):hover { transform: none; }
    .gm-notebook :is(.lc-primary, .lc-generate, .lc-ghost, .nt-ghost, .gm-ghost-button, .gm-secondary-button, .nt-card) { transition: none; }
    .gm-notebook :is(.lc-primary, .lc-generate, .lc-ghost, .nt-ghost, .gm-ghost-button, .gm-secondary-button, .nt-card):not(:disabled):hover { transform: none; }
}

/* Index tabs connect the full workspaces like sections of one exercise book. */
.gm-notebook .book-index {
    display: flex;
    align-items: end;
    gap: 8px;
    height: 52px;
    padding: 10px clamp(16px, 3vw, 28px) 0;
    overflow-x: auto;
    background: #e8ddc6;
    border-bottom: 1.5px solid var(--gm-paper-ink);
    scrollbar-width: thin;
}
.gm-notebook .book-index-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-height: 40px;
    padding: 0 18px;
    border: 1px solid #8d8c80;
    border-bottom: 0;
    border-radius: 10px 10px 0 0;
    background: #f4ecd8;
    color: #46566b;
    font-size: .85rem;
    font-weight: 600;
    text-decoration: none;
}
.gm-notebook .book-index-tab:hover { background: var(--gm-surface); color: var(--gm-paper-ink); }
.gm-notebook .book-index-tab[aria-disabled="true"] { color: var(--gm-muted); cursor: default; background: #f4ecd8; }
.gm-notebook .book-index-tab[aria-current="page"] {
    background: var(--gm-paper-fill);
    color: var(--gm-paper-ink);
    border-color: var(--gm-paper-ink);
    border-top: 3px solid var(--gm-paper-ink);
    font-weight: 800;
}
.gm-notebook .book-index-tab:focus-visible { outline-offset: -5px; }
.gm-notebook .brain-content > .pg-card { padding: clamp(22px, 3vw, 40px); }
@media (min-width: 901px) {
    .gm-notebook .book-index + .lc-shell { height: calc(100dvh - var(--lc-topbar-h) - 52px); }
}
@media (max-width: 560px) {
    .gm-notebook .book-index { gap: 5px; padding-inline: 12px; }
    .gm-notebook .book-index-tab { padding-inline: 12px; font-size: .8rem; }
}

@media (max-width: 560px) {
    .gm-notebook .lc-topbar { height: auto; min-height: 66px; flex-wrap: wrap; padding-block: 10px; }
    .gm-notebook .lc-topbar-right { margin-left: auto; }
    .gm-notebook .gm-note-modal.lc-test-chooser { padding: 24px 20px; }
    .gm-notebook .gm-note-modal-actions { flex-wrap: wrap; }
}

/* Keep chapter identity and generation status, set as metadata below titles. */
.gm-notebook :is(.lc-result-meta, .pg-head > :first-child) { display: flex; flex-direction: column; }
.gm-notebook :is(.lc-result-kicker, .pg-eyebrow) {
    order: 1;
    margin: 8px 0 0;
    color: #586274;
    font-family: var(--gm-font);
    font-size: .85rem;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}
.gm-notebook .pg-head .pg-sub { order: 2; }
@media (max-width: 560px) {
    .gm-notebook .pg-overview { flex-direction: column; align-items: stretch; }
    .gm-notebook .pg-donut { align-self: center; }
    .gm-notebook .pg-buckets { flex: 0 0 auto; min-width: 0; width: 100%; }
    .gm-notebook .pg-bucket-name { min-width: 0; overflow-wrap: anywhere; }
    .gm-notebook .pg-bucket-count { flex-shrink: 0; }
}

/* Generated notes are chapters on the same sheet, rather than nested cards. */
.gm-notebook .lc-result .lc-notes .note-card {
    margin: 24px 0 0;
    padding: 24px 0 0;
    border: 0;
    border-top: 1px solid var(--book-rule);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.gm-notebook .lc-result .lc-notes .note-card:first-child { margin-top: 0; }
.gm-notebook .lc-notes .gm-table :is(th, td) { overflow-wrap: anywhere; }
@media (max-width: 560px) {
    .gm-notebook .mock-cover-row { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    .gm-notebook .mock-cover-instr { min-width: 0; }
    .gm-notebook .mock-cover-instr-row { grid-template-columns: 22px minmax(0, 1fr); }
}
/* Indeterminate work is ink moving across a page, never a fake percentage. */
.gm-notebook .gm-thinking { padding: 18px 4px; gap: 14px; }
.gm-notebook .gm-thinking-icon { position: relative; width: 38px; height: 44px; border: 1.5px solid #13233f;
  border-radius: 3px 7px 7px 3px; background: #edcf83; color: #13233f; box-shadow: 3px 3px 0 #13233f; animation: none; }
.gm-notebook .gm-thinking-icon::after { content: ""; position: absolute; top: 0; bottom: 0; left: 7px; border-left: 1px solid #806020; }
.gm-notebook .gm-thinking-text { font-family: "Space Grotesk", sans-serif; }
.gm-notebook .gm-thinking-bar { height: 2px; border-radius: 0; background: #ddd2b9; overflow: hidden; }
.gm-notebook .gm-thinking-bar span { left: 0; width: 28%; border-radius: 0; background: #13233f; animation: gmNotebookInk 2.6s cubic-bezier(.65,0,.35,1) infinite; }
@keyframes gmNotebookInk { 0%, 100% { transform: translateX(-105%); } 60%, 85% { transform: translateX(360%); } }
@media (prefers-reduced-motion: reduce) { .gm-notebook .gm-thinking-bar span { animation: none; transform: none; } }
/* Shared coaching upload roles, including the dashboard handoff. */
.gm-notebook .gm-upload-role { font: inherit; font-size: 16px; max-width: 100%; min-width: 0; padding: 8px; border: 1px solid var(--gm-paper-ink, #13233F); border-radius: 6px; background: var(--gm-paper-fill, #FBF6EA); color: var(--gm-paper-ink, #13233F); }
.gm-notebook .gm-askbox-file { flex-wrap: wrap; overflow-wrap: anywhere; }
.gm-notebook .gm-askbox-attach-menu .gm-upload-role { margin: 8px; max-width: calc(100% - 16px); }

/* Shared Brain pattern cards: subject overview and chapter progress. */
.pg-misconception-groups { display: grid; gap: 16px; margin-top: 14px; }
.pg-misconception-group-title {
    margin: 0 0 4px; color: #6E8593; font-size: 11px; font-weight: 700;
    letter-spacing: .07em; text-transform: uppercase;
}
.pg-misconception-group .pg-mistakes { margin-top: 0; }
.pg-mistake[data-status="resolved"] .pg-mistake-dot { background: #3E8E5A; }
.pg-mistake[data-status="resolved"] .pg-mistake-text { color: #3E7A55; }

.pg-mistake-fix { margin: 2px 0 0; font-size: 0.84rem; color: #2F5D3F; }
.pg-mistake-scale { margin: 2px 0 0; font-size: 0.76rem; color: #9A927E; }
.pg-mistake-retest {
    display: inline-block; margin-top: 4px; font-size: 0.8rem; font-weight: 600;
    color: #1B3A4B; text-decoration: underline;
}
