    /* Builder Layout */
    .builder-layout {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 1.5rem;
        max-width: 1400px;
        margin: 0 auto;
        /* align-items: start so grid tracks use content height rather than
           stretching each card to the tallest; this lets the right card
           size itself and use position: sticky independently of the left. */
        align-items: start;
    }

    @media (max-width: 991.98px) {
        .builder-layout {
            grid-template-columns: 1fr;
        }

        .builder-card-output {
            position: static;
            max-height: none;
            overflow: visible;
        }
    }

    /* Builder Card */
    .builder-card {
        background: var(--card-bg);
        border-radius: var(--radius-lg);
        box-shadow: var(--shadow);
        overflow: hidden;
    }

    .builder-card-output {
        position: sticky;
        top: calc(var(--header-height) + 1rem);
        max-height: calc(100vh - var(--header-height) - 2rem);
        overflow: auto;
    }

    .builder-card .card-header {
        background: linear-gradient(135deg, var(--primary-600) 0%, var(--primary-700) 100%);
        color: white;
        padding: 1.25rem 1.5rem;
        border-bottom: none;
    }

    .builder-card .card-header.secondary {
        background: linear-gradient(135deg, var(--success-600) 0%, var(--success-700) 100%);
    }

    .builder-card .card-header h3 {
        margin: 0;
        font-size: 1.25rem;
        font-family: var(--font-display);
        color: white;
    }

    .builder-card .card-body {
        padding: 1.5rem;
    }

    /* Section Styling */
    .builder-section {
        margin-bottom: 1.5rem;
        padding-bottom: 1.5rem;
        border-bottom: 1px solid var(--border-color);
    }

    .builder-section:last-of-type {
        margin-bottom: 0;
        padding-bottom: 0;
        border-bottom: none;
    }

    .section-header {
        display: flex;
        align-items: center;
        gap: 0.75rem;
        margin-bottom: 1rem;
    }

    .section-checkbox {
        width: 20px;
        height: 20px;
        accent-color: var(--primary-600);
        cursor: pointer;
    }

    .section-title {
        font-weight: 600;
        font-size: 1rem;
        color: var(--text-primary);
        margin: 0;
        /* Expand the label to fill the header width so the whole header
           row is a click target for toggling the section. The label's
           `for` attribute already drives the checkbox; widening its hit
           area just makes the affordance obvious. */
        flex: 1;
        cursor: pointer;
        padding: 0.25rem 0;
    }

    .section-title:hover {
        color: var(--primary-600);
    }

    .section-content {
        padding-left: 2rem;
    }

    /* Collapse unchecked sections entirely so the form shrinks as the user
       toggles off sections they don't need. The section header (with its
       checkbox) stays visible — unchecking is reversible. */
    .section-content.disabled {
        display: none;
    }

    /* Phase 3 — lean view (default). The advanced special-scenario workups are
       hidden until needed: an inactive .workup-section (its body still
       .disabled because the section checkbox is off) is hidden entirely. When a
       scenario is selected from the dropdown / case buttons, setSectionState
       activates the relevant section (clears .disabled), so it auto-appears.
       Core sections (antibody findings, patient context, transfusion) are never
       tagged .workup-section, so they always show. Built on :has() — the same
       selector the app already depends on, so the deploy target supports it. */
    .builder-card .workup-section:has(.section-content.disabled) {
        display: none;
    }

    /* "More workups…" disclosure: reveal the whole inactive group so a workup
       can be picked manually. Higher specificity than the hide rule above (the
       :has() argument counts toward specificity) so it wins when expanded.
       (Prewarm keeps its inline display:none / JS-gated visibility regardless,
       so it only surfaces in the cold-antibody context where it applies.) */
    .builder-card.workups-expanded .workup-section:has(.section-content.disabled) {
        display: block;
    }

    /* Phase 3 — "More workups…" disclosure (replaces the old form-compact
       toggle). Sits between Antibody Findings and the advanced workup group;
       the dashed border signals a reveal affordance distinct from the solid
       section cards. */
    .more-workups-row {
        display: flex;
        justify-content: flex-start;
        margin: 0.25rem 0 1.25rem;
    }

    .more-workups-btn {
        display: inline-flex;
        align-items: center;
        gap: 0.375rem;
        padding: 0.3rem 0.7rem;
        background: transparent;
        border: 1px dashed var(--border-color);
        border-radius: var(--radius-md);
        color: var(--text-secondary);
        font-size: 0.78rem;
        cursor: pointer;
        transition: all 0.15s ease;
    }

    .more-workups-btn:hover {
        background: var(--gray-50);
        color: var(--primary-700);
        border-color: var(--primary-400, #60a5fa);
    }

    .more-workups-btn[aria-expanded="true"] {
        background: var(--primary-50, #eff6ff);
        color: var(--primary-700);
        border-style: solid;
        border-color: var(--primary-400, #60a5fa);
    }

    /* ========== Keyboard Shortcuts Help ========== */
    .shortcuts-help-btn {
        position: fixed;
        bottom: 1.5rem;
        right: 1.5rem;
        width: 40px;
        height: 40px;
        border-radius: 50%;
        background: var(--primary-600);
        color: white;
        border: none;
        box-shadow: var(--shadow-lg);
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.125rem;
        transition: transform 0.15s ease, background 0.15s ease;
        z-index: 900;
    }

    .shortcuts-help-btn:hover {
        background: var(--primary-700);
        transform: scale(1.06);
    }

    @media print {
        .shortcuts-help-btn { display: none; }
    }

    .shortcuts-modal-overlay {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.5);
        display: none;
        align-items: center;
        justify-content: center;
        z-index: 1050;
    }

    .shortcuts-modal-overlay.open {
        display: flex;
    }

    .shortcuts-modal {
        background: var(--card-bg);
        border-radius: var(--radius-lg);
        box-shadow: var(--shadow-lg);
        max-width: 420px;
        width: calc(100% - 2rem);
    }

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

    .shortcuts-modal-header h3 {
        margin: 0;
        font-size: 1rem;
        color: var(--text-primary);
    }

    .shortcuts-modal-close {
        background: transparent;
        border: none;
        color: var(--text-secondary);
        cursor: pointer;
        padding: 0.25rem;
    }

    .shortcuts-modal-close:hover {
        color: var(--text-primary);
    }

    .shortcuts-modal-body {
        padding: 1rem 1.25rem;
    }

    .shortcuts-list {
        display: grid;
        grid-template-columns: auto 1fr;
        gap: 0.5rem 1rem;
        margin: 0;
    }

    .shortcuts-list dt {
        text-align: right;
        white-space: nowrap;
        display: flex;
        gap: 0.25rem;
        align-items: center;
        justify-content: flex-end;
    }

    .shortcuts-list dd {
        margin: 0;
        color: var(--text-secondary);
        font-size: 0.85rem;
        align-self: center;
    }

    .shortcuts-list kbd {
        padding: 0.125rem 0.375rem;
        background: var(--gray-100);
        border: 1px solid var(--border-color);
        border-radius: var(--radius-sm);
        font-size: 0.75rem;
        color: var(--text-primary);
        font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    }

    /* Tag Input Container */
    .tag-input-wrapper {
        position: relative;
    }

    .tag-input-container {
        border: 2px solid var(--border-color);
        border-radius: var(--radius-md);
        padding: 0.5rem;
        min-height: 52px;
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
        align-items: center;
        background: var(--input-bg);
        cursor: text;
        transition: border-color 0.2s ease, box-shadow 0.2s ease;
    }

    .tag-input-container:focus-within {
        border-color: var(--primary-500);
        box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
    }

    /* Antigen Tags */
    .antigen-tag {
        display: inline-flex;
        align-items: center;
        gap: 0.375rem;
        background: var(--primary-100);
        color: var(--primary-700);
        padding: 0.375rem 0.625rem;
        border-radius: var(--radius);
        font-size: 0.875rem;
        font-weight: 500;
        white-space: nowrap;
        animation: tagAppear 0.2s ease;
        cursor: pointer;
        transition: all 0.15s ease;
        border: 2px solid transparent;
    }

    .antigen-tag:hover {
        border-color: var(--primary-300);
    }

    /* Previously identified antibody tag styling */
    .antigen-tag.previously-identified {
        background: var(--gray-200);
        color: var(--gray-700);
        border: 2px dashed var(--gray-400);
    }

    .antigen-tag.previously-identified:hover {
        border-color: var(--gray-500);
    }

    .antigen-tag .tag-status-icon {
        font-size: 0.7rem;
        margin-right: 0.125rem;
    }

    .antigen-tag.previously-identified .tag-status-icon {
        color: var(--gray-500);
    }

    /* Hide significance checkbox on tag */
    .antigen-tag .hide-significance-btn {
        display: none;
        width: 16px;
        height: 16px;
        border-radius: 3px;
        background: var(--gray-100);
        border: 1px solid var(--gray-300);
        color: var(--gray-500);
        font-size: 0.6rem;
        cursor: pointer;
        padding: 0;
        margin-left: 0.25rem;
        align-items: center;
        justify-content: center;
    }

    .antigen-tag.previously-identified .hide-significance-btn {
        display: inline-flex;
    }

    .antigen-tag .hide-significance-btn:hover {
        background: var(--gray-200);
        border-color: var(--gray-400);
    }

    .antigen-tag .hide-significance-btn.active {
        background: var(--warning-100);
        border-color: var(--warning-400);
        color: var(--warning-600);
    }

    .antigen-tag .hide-significance-btn.active:hover {
        background: var(--warning-200);
    }

    /* Outside-facility (OSH) toggle button on tag — only meaningful for
       previously-identified antibodies (OSH is a subset of previously ID). */
    .antigen-tag .osh-btn {
        display: none;
        height: 16px;
        border-radius: 3px;
        background: var(--gray-100);
        border: 1px solid var(--gray-300);
        color: var(--gray-500);
        font-size: 0.55rem;
        font-weight: 600;
        letter-spacing: 0.02em;
        cursor: pointer;
        padding: 0 0.25rem;
        margin-left: 0.25rem;
        align-items: center;
        justify-content: center;
    }

    .antigen-tag.previously-identified .osh-btn {
        display: inline-flex;
    }

    .antigen-tag .osh-btn:hover {
        background: var(--gray-200);
        border-color: var(--gray-400);
    }

    .antigen-tag .osh-btn.active {
        background: var(--primary-100);
        border-color: var(--primary-400);
        color: var(--primary-600);
    }

    .antigen-tag .osh-btn.active:hover {
        background: var(--primary-200);
    }

    /* Cold-antibody surgery decision-support prompt */
    .cold-surgery-prompt {
        margin-top: 1rem;
        padding: 0.875rem 1rem;
        border: 1px solid var(--primary-300, #93c5fd);
        border-left: 4px solid var(--primary-500, #3b82f6);
        border-radius: 8px;
        background: var(--primary-50, #eff6ff);
        animation: tagAppear 0.2s ease;
    }
    .cold-surgery-prompt-head {
        display: flex;
        align-items: center;
        gap: 0.4rem;
        font-weight: 700;
        font-size: 0.875rem;
        color: var(--primary-700, #1d4ed8);
    }
    .cold-surgery-prompt-head .bi-snow {
        font-size: 1rem;
    }
    .cold-surgery-prompt-text {
        margin: 0.4rem 0 0.6rem;
        font-size: 0.78rem;
        line-height: 1.45;
        color: var(--text-secondary, #475569);
    }
    .cold-surgery-prompt-toggle {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        cursor: pointer;
        padding: 0.5rem 0.625rem;
        border-radius: 6px;
        background: var(--surface, #ffffff);
        border: 1px solid var(--primary-200, #bfdbfe);
        font-size: 0.85rem;
    }
    .cold-surgery-prompt-toggle:hover {
        border-color: var(--primary-400, #60a5fa);
    }
    .cold-surgery-prompt-toggle input {
        width: 1rem;
        height: 1rem;
        cursor: pointer;
    }

    /* Per-antibody prewarm result rows */
    .prewarm-ab-row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
        padding: 0.4rem 0.5rem;
        border: 1px solid var(--border-color, #e2e8f0);
        border-radius: 6px;
        margin-bottom: 0.4rem;
    }
    .prewarm-ab-name {
        font-size: 0.85rem;
        font-weight: 600;
    }
    .prewarm-ab-select {
        font-size: 0.8rem;
        padding: 0.25rem 0.4rem;
        border-radius: 5px;
        border: 1px solid var(--border-color, #cbd5e1);
        background: var(--surface, #fff);
        min-width: 200px;
    }

    @keyframes tagAppear {
        from { opacity: 0; transform: scale(0.8); }
        to { opacity: 1; transform: scale(1); }
    }

    .antigen-tag .tag-system {
        font-size: 0.75rem;
        opacity: 0.7;
    }

    .antigen-tag .tag-remove {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 18px;
        height: 18px;
        border-radius: 50%;
        background: transparent;
        border: none;
        color: var(--primary-600);
        cursor: pointer;
        padding: 0;
        margin-left: 0.25rem;
        transition: all 0.15s ease;
    }

    .antigen-tag .tag-remove:hover {
        background: var(--primary-200);
        color: var(--primary-800);
    }

    /* Tag Input Field */
    .tag-input-field {
        flex: 1;
        min-width: 120px;
        border: none;
        outline: none;
        font-size: 0.9375rem;
        padding: 0.375rem;
        background: transparent;
        color: var(--text-primary);
    }

    .tag-input-field::placeholder {
        color: var(--text-muted);
    }

    /* Autocomplete Dropdown */
    .autocomplete-dropdown {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        z-index: 1000;
        background: var(--card-bg);
        border: 1px solid var(--border-color);
        border-radius: var(--radius-md);
        box-shadow: var(--shadow-lg);
        max-height: 300px;
        overflow-y: auto;
        display: none;
        margin-top: 0.25rem;
    }

    .autocomplete-dropdown.show {
        display: block;
    }

    .autocomplete-item {
        padding: 0.75rem 1rem;
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        border-bottom: 1px solid var(--border-color);
        transition: background 0.15s ease;
    }

    .autocomplete-item:last-child {
        border-bottom: none;
    }

    .autocomplete-item:hover {
        background: var(--primary-50);
    }

    .autocomplete-item.highlighted {
        background: var(--primary-100);
        border-left: 3px solid var(--primary-500);
    }

    .autocomplete-item.selected {
        background: var(--primary-100);
        opacity: 0.6;
    }

    .autocomplete-item-main {
        display: flex;
        align-items: center;
        gap: 0.75rem;
    }

    .autocomplete-item-name {
        font-weight: 600;
        color: var(--text-primary);
    }

    .autocomplete-item-antibody {
        color: var(--text-secondary);
        font-size: 0.875rem;
    }

    .autocomplete-item-system {
        font-size: 0.75rem;
        padding: 0.25rem 0.5rem;
        background: var(--gray-100);
        border-radius: var(--radius-sm);
        color: var(--text-secondary);
    }

    .no-results {
        padding: 1rem;
        text-align: center;
        color: var(--text-muted);
    }

    /* Mini autocomplete for warm auto inputs */
    .mini-autocomplete-wrapper {
        position: relative;
        display: inline-block;
    }
    .mini-autocomplete-dropdown {
        position: absolute;
        top: 100%;
        left: 0;
        width: 280px;
        z-index: 1001;
        background: var(--card-bg);
        border: 1px solid var(--border-color);
        border-radius: var(--radius-md);
        box-shadow: var(--shadow-lg);
        max-height: 200px;
        overflow-y: auto;
        display: none;
        margin-top: 0.15rem;
    }
    .mini-autocomplete-dropdown.show {
        display: block;
    }
    .mini-autocomplete-dropdown .autocomplete-item {
        padding: 0.4rem 0.6rem;
        font-size: 0.7rem;
    }
    .mini-autocomplete-dropdown .autocomplete-item-name {
        font-size: 0.7rem;
    }
    .mini-autocomplete-dropdown .autocomplete-item-antibody {
        font-size: 0.65rem;
    }
    .mini-autocomplete-dropdown .autocomplete-item-system {
        font-size: 0.6rem;
        padding: 0.1rem 0.3rem;
    }
    .mini-autocomplete-dropdown .no-results {
        padding: 0.5rem;
        font-size: 0.7rem;
    }

    /* Quick Add Buttons */
    .quick-add-section {
        margin-top: 1rem;
    }

    .quick-add-title {
        font-size: 0.75rem;
        font-weight: 600;
        color: var(--text-muted);
        text-transform: uppercase;
        letter-spacing: 0.05em;
        margin-bottom: 0.5rem;
    }

    .quick-add-grid {
        display: flex;
        flex-wrap: wrap;
        gap: 0.375rem;
    }

    .quick-add-btn {
        padding: 0.375rem 0.625rem;
        background: var(--gray-100);
        border: 1px solid var(--border-color);
        border-radius: var(--radius);
        font-size: 0.8125rem;
        font-weight: 500;
        color: var(--text-secondary);
        cursor: pointer;
        transition: all 0.15s ease;
    }

    .quick-add-btn:hover {
        background: var(--primary-100);
        border-color: var(--primary-300);
        color: var(--primary-700);
    }

    .quick-add-btn.selected {
        background: var(--primary-500);
        border-color: var(--primary-500);
        color: white;
    }

    /* Patient Context */
    .context-group {
        margin-bottom: 1rem;
    }

    .context-group:last-child {
        margin-bottom: 0;
    }

    .context-label {
        font-size: 0.75rem;
        font-weight: 600;
        color: var(--text-muted);
        text-transform: uppercase;
        letter-spacing: 0.05em;
        margin-bottom: 0.5rem;
    }

    .radio-group {
        display: flex;
        gap: 0.5rem;
        flex-wrap: wrap;
    }

    .radio-option {
        display: flex;
        align-items: center;
        gap: 0.375rem;
        padding: 0.5rem 0.875rem;
        background: var(--gray-50);
        border: 2px solid var(--border-color);
        border-radius: var(--radius);
        cursor: pointer;
        transition: all 0.15s ease;
    }

    .radio-option:hover {
        border-color: var(--primary-300);
    }

    .radio-option.selected {
        background: var(--primary-50);
        border-color: var(--primary-500);
    }

    .radio-option input[type="radio"] {
        width: 16px;
        height: 16px;
        accent-color: var(--primary-600);
        cursor: pointer;
    }

    .radio-option label {
        font-size: 0.875rem;
        font-weight: 500;
        color: var(--text-primary);
        cursor: pointer;
        margin: 0;
    }

    /* Nonspecific-reactivity provenance radios sit among the compact output
       options, so scope them smaller/lighter than the page's default radios. */
    #nonspecificProvenanceGroup .radio-option,
    #quickNonspecificProvenanceGroup .radio-option {
        padding: 0.3rem 0.6rem;
    }
    #nonspecificProvenanceGroup .radio-option label,
    #quickNonspecificProvenanceGroup .radio-option label {
        font-size: 0.8rem;
        font-weight: 400;
    }
    #nonspecificProvenanceGroup .radio-option input[type="radio"],
    #quickNonspecificProvenanceGroup .radio-option input[type="radio"] {
        width: 14px;
        height: 14px;
    }

    .checkbox-group {
        display: flex;
        gap: 1rem;
        flex-wrap: wrap;
    }

    .checkbox-option {
        display: flex;
        align-items: center;
        gap: 0.5rem;
    }

    .checkbox-option input[type="checkbox"] {
        width: 16px;
        height: 16px;
        accent-color: var(--primary-600);
        cursor: pointer;
    }

    .checkbox-option label {
        font-size: 0.875rem;
        color: var(--text-primary);
        cursor: pointer;
        margin: 0;
    }

    .mini-select {
        font-size: 0.8125rem;
        padding: 0.2rem 0.4rem;
        border: 1px solid var(--border-light, #d1d5db);
        border-radius: 4px;
        background: var(--bg-primary, #fff);
        color: var(--text-primary);
        cursor: pointer;
    }

    .mini-select:disabled {
        opacity: 0.5;
        cursor: not-allowed;
    }

    /* Output Options Grid - compact layout for statement toggles */
    .output-options-grid {
        display: flex;
        flex-direction: column;
        gap: 0.5rem;
    }

    .output-options-grid .checkbox-option {
        padding: 0.5rem 0.75rem;
        background: var(--gray-50);
        border: 1px solid var(--border-color);
        border-radius: var(--radius);
        transition: all 0.15s ease;
    }

    .output-options-grid .checkbox-option:hover {
        background: var(--primary-50);
        border-color: var(--primary-200);
    }

    /* Transfusion Recommendation */
    .recommendation-option {
        display: flex;
        align-items: flex-start;
        gap: 0.75rem;
        padding: 1rem;
        background: var(--info-50);
        border: 1px solid var(--info-200);
        border-radius: var(--radius-md);
    }

    .recommendation-option input[type="checkbox"] {
        width: 18px;
        height: 18px;
        accent-color: var(--primary-600);
        cursor: pointer;
        margin-top: 0.125rem;
    }

    .recommendation-text {
        flex: 1;
    }

    .recommendation-text label {
        display: block;
        font-size: 0.9375rem;
        font-weight: 500;
        color: var(--text-primary);
        cursor: pointer;
        margin: 0 0 0.25rem 0;
    }

    .recommendation-text .help-text {
        font-size: 0.8125rem;
        color: var(--text-muted);
        margin: 0;
    }

    /* Generate Button */
    .generate-btn {
        width: 100%;
        padding: 1rem 1.5rem;
        background: linear-gradient(135deg, var(--primary-500) 0%, var(--primary-600) 100%);
        color: white;
        border: none;
        border-radius: var(--radius-md);
        font-size: 1rem;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.2s ease;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0.5rem;
        margin-top: 1.5rem;
    }

    .generate-btn:hover {
        transform: translateY(-1px);
        box-shadow: var(--shadow-lg);
    }

    .generate-btn:disabled {
        opacity: 0.6;
        cursor: not-allowed;
        transform: none;
    }

    /* Output Panel */
    .output-panel {
        display: none;
    }

    .output-panel.active {
        display: block;
    }

    /* Interpretation Output */
    .interpretation-output {
        background: var(--gray-50);
        border: 1px solid var(--border-color);
        border-radius: var(--radius-md);
        padding: 1.5rem;
        min-height: 300px;
        font-size: 0.9375rem;
        line-height: 1.7;
        white-space: pre-wrap;
        font-family: inherit;
        outline: none;
    }

    .interpretation-output:focus {
        border-color: var(--primary-500);
        box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
    }

    .interpretation-output[contenteditable="true"] {
        cursor: text;
    }

    /* Editable indicator */
    .editable-indicator {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        font-size: 0.75rem;
        color: var(--text-muted);
        margin-bottom: 0.5rem;
    }

    .editable-indicator i {
        color: var(--primary-500);
    }

    /* Titer dropdown for pregnant patients */
    .titer-section {
        margin-top: 1rem;
        padding-top: 1rem;
        border-top: 1px dashed var(--border-color);
    }

    .titer-section label {
        display: block;
        font-size: 0.875rem;
        font-weight: 500;
        color: var(--text-secondary);
        margin-bottom: 0.375rem;
    }

    .titer-section select {
        width: 100%;
        max-width: 200px;
        padding: 0.5rem 0.75rem;
        border: 2px solid var(--border-color);
        border-radius: var(--radius);
        font-size: 0.875rem;
        background: var(--input-bg);
        color: var(--text-primary);
        cursor: pointer;
        transition: border-color 0.2s ease;
    }

    .titer-section select:focus {
        outline: none;
        border-color: var(--primary-500);
        box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
    }

    .titer-ab-toggle {
        display: flex;
        align-items: center;
        gap: 0.25rem;
        padding: 0.25rem 0.5rem;
        background: var(--gray-100);
        border: 1px solid var(--border-color);
        border-radius: var(--radius);
        font-size: 0.75rem;
        cursor: pointer;
        transition: all 0.15s ease;
    }

    .titer-ab-toggle:hover {
        border-color: var(--primary-300);
    }

    .titer-ab-toggle.checked {
        background: var(--primary-50);
        border-color: var(--primary-300);
    }

    .titer-ab-toggle input[type="checkbox"] {
        width: 12px;
        height: 12px;
        accent-color: var(--primary-600);
        cursor: pointer;
        margin: 0;
    }

    .titer-ab-toggle label {
        cursor: pointer;
        margin: 0;
        color: var(--text-secondary);
    }

    .titer-ab-toggle.checked label {
        color: var(--primary-700);
    }

    .titer-entries {
        margin-top: 0.5rem;
        display: flex;
        flex-direction: column;
        gap: 0.5rem;
    }

    .titer-entry-row {
        display: grid;
        grid-template-columns: minmax(74px, 0.45fr) minmax(180px, 1fr);
        align-items: start;
        gap: 0.5rem 0.75rem;
        padding: 0.5rem 0.75rem;
        background: var(--gray-50);
        border: 1px solid var(--border-color);
        border-radius: var(--radius);
    }

    .titer-entry-row.needs-input {
        border-color: var(--warning-400, #f59e0b);
        background: var(--warning-50, #fffbeb);
    }

    .titer-entry-row .titer-ab-name {
        font-weight: 600;
        font-size: 0.8125rem;
        color: var(--text-primary);
        min-width: 60px;
    }

    .titer-entry-row select,
    .titer-entry-row input[type="text"] {
        padding: 0.25rem 0.5rem;
        border: 1px solid var(--border-color);
        border-radius: var(--radius);
        font-size: 0.8125rem;
        background: var(--input-bg);
        color: var(--text-primary);
        cursor: pointer;
        min-width: 100px;
    }

    .titer-entry-row select:focus,
    .titer-entry-row input[type="text"]:focus {
        outline: none;
        border-color: var(--primary-500);
    }

    .pregnancy-status-controls {
        display: flex;
        flex-direction: column;
        gap: 0.45rem;
        min-width: 0;
    }

    .pregnancy-status-line {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .pregnancy-method-grid {
        display: flex;
        flex-wrap: wrap;
        gap: 0.35rem;
    }

    .pregnancy-method-chip {
        display: inline-flex;
        align-items: center;
        gap: 0.25rem;
        padding: 0.18rem 0.45rem;
        border: 1px solid var(--border-color);
        border-radius: var(--radius);
        background: var(--card-bg);
        color: var(--text-secondary);
        font-size: 0.7rem;
        cursor: pointer;
    }

    .pregnancy-method-chip input {
        width: 11px;
        height: 11px;
        margin: 0;
    }

    .pregnancy-method-other {
        max-width: 180px;
    }

    .titer-critical-toggle {
        display: flex;
        align-items: center;
        gap: 0.25rem;
        padding: 0.125rem 0.375rem;
        border: 1px solid var(--border-color);
        border-radius: var(--radius);
        font-size: 0.6875rem;
        cursor: pointer;
        transition: all 0.15s ease;
        background: var(--gray-100);
        color: var(--text-secondary);
    }

    .titer-critical-toggle:hover {
        border-color: var(--danger-300);
    }

    .titer-critical-toggle.critical-active {
        background: var(--danger-50, #fef2f2);
        border-color: var(--danger-400, #f87171);
        color: var(--danger-700, #b91c1c);
    }

    .titer-critical-toggle.threshold-disabled {
        opacity: 0.45;
        cursor: not-allowed;
        background: var(--gray-100);
        color: var(--text-muted);
    }

    .titer-critical-toggle.threshold-disabled:hover {
        border-color: var(--border-color);
    }

    .titer-critical-toggle.threshold-disabled input[type="checkbox"],
    .titer-critical-toggle.threshold-disabled label {
        cursor: not-allowed;
    }

    .titer-threshold-hint {
        font-size: 0.65rem;
        color: var(--text-muted);
        font-style: italic;
        margin-left: 0.25rem;
    }

    .titer-critical-toggle input[type="checkbox"] {
        width: 11px;
        height: 11px;
        accent-color: var(--danger-600, #dc2626);
        cursor: pointer;
        margin: 0;
    }

    .titer-critical-toggle label {
        cursor: pointer;
        margin: 0;
    }

    .quick-titer-entries {
        margin-top: 0.375rem;
        display: flex;
        flex-direction: column;
        gap: 0.375rem;
        width: 100%;
    }

    .quick-titer-entry {
        display: grid;
        grid-template-columns: minmax(46px, 0.35fr) minmax(170px, 1fr);
        align-items: start;
        gap: 0.35rem 0.5rem;
        font-size: 0.8125rem;
    }

    .quick-titer-entry.needs-input {
        padding: 0.35rem;
        border: 1px solid var(--warning-400, #f59e0b);
        border-radius: var(--radius);
        background: var(--warning-50, #fffbeb);
    }

    .quick-titer-entry .titer-ab-name {
        font-weight: 600;
        font-size: 0.75rem;
        color: var(--text-primary);
        min-width: 50px;
    }

    .quick-titer-entry select,
    .quick-titer-entry input[type="text"] {
        padding: 0.25rem 0.375rem;
        border: 1px solid var(--border-color);
        border-radius: var(--radius);
        font-size: 0.75rem;
        background: var(--card-bg);
        color: var(--text-primary);
        cursor: pointer;
        min-width: 80px;
    }

    .quick-titer-entry select:focus,
    .quick-titer-entry input[type="text"]:focus {
        outline: none;
        border-color: var(--primary-500);
    }

    .quick-titer-entry .titer-critical-toggle {
        font-size: 0.625rem;
        padding: 0.125rem 0.25rem;
    }

    /* Quick Settings Panel (above output) */
    .quick-settings-panel {
        background: var(--gray-50);
        border: 1px solid var(--border-color);
        border-radius: var(--radius-md);
        padding: 1rem;
        margin-bottom: 1rem;
    }

    /* Collapsed state — hide the panel entirely when the accordion
       header hasn't been expanded. */
    .quick-settings-panel.quick-settings-collapsed {
        display: none;
    }

    .quick-settings-toggle-btn {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        width: 100%;
        padding: 0.5rem 0.75rem;
        margin-bottom: 0.75rem;
        background: var(--gray-50);
        border: 1px solid var(--border-color);
        border-radius: var(--radius-md);
        color: var(--text-secondary);
        font-size: 0.8rem;
        font-weight: 500;
        cursor: pointer;
        transition: background 0.15s ease, color 0.15s ease;
    }

    .quick-settings-toggle-btn:hover {
        background: var(--gray-100);
        color: var(--text-primary);
    }

    .quick-settings-toggle-btn i {
        transition: transform 0.15s ease;
        font-size: 0.75rem;
    }

    .quick-settings-toggle-btn[aria-expanded="true"] i {
        transform: rotate(90deg);
    }

    .quick-settings-hint {
        color: var(--text-muted);
        font-weight: 400;
        font-size: 0.72rem;
    }

    .quick-settings-row {
        display: flex;
        flex-wrap: wrap;
        gap: 1.5rem;
        align-items: flex-start;
    }

    .quick-settings-group {
        flex: 1;
        min-width: 200px;
    }

    .quick-settings-group-title {
        font-size: 0.75rem;
        font-weight: 600;
        color: var(--text-muted);
        text-transform: uppercase;
        letter-spacing: 0.05em;
        margin-bottom: 0.5rem;
    }

    .quick-settings-options {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .quick-radio-option {
        display: flex;
        align-items: center;
        gap: 0.25rem;
        padding: 0.375rem 0.625rem;
        background: var(--card-bg);
        border: 1px solid var(--border-color);
        border-radius: var(--radius);
        cursor: pointer;
        transition: all 0.15s ease;
        font-size: 0.8125rem;
    }

    .quick-radio-option:hover {
        border-color: var(--primary-300);
    }

    .quick-radio-option.selected {
        background: var(--primary-50);
        border-color: var(--primary-500);
    }

    .quick-radio-option input[type="radio"] {
        width: 14px;
        height: 14px;
        accent-color: var(--primary-600);
        cursor: pointer;
        margin: 0;
    }

    .quick-radio-option label {
        font-size: 0.8125rem;
        color: var(--text-primary);
        cursor: pointer;
        margin: 0;
    }

    .quick-checkbox-option {
        display: flex;
        align-items: center;
        gap: 0.375rem;
        font-size: 0.8125rem;
    }

    .quick-checkbox-option input[type="checkbox"] {
        width: 14px;
        height: 14px;
        accent-color: var(--primary-600);
        cursor: pointer;
    }

    .quick-checkbox-option label {
        color: var(--text-secondary);
        cursor: pointer;
        margin: 0;
    }

    /* Rouleaux phases section */
    .rouleaux-phases-section {
        padding: 0.375rem 0;
    }

    .rouleaux-phases-label {
        font-size: 0.75rem;
        color: var(--text-tertiary);
        margin-bottom: 0.25rem;
    }

    .rouleaux-phases-grid {
        display: flex;
        gap: 0.75rem;
        flex-wrap: wrap;
    }

    .rouleaux-phase-option {
        display: flex;
        align-items: center;
        gap: 0.25rem;
        font-size: 0.75rem;
        color: var(--text-secondary);
        cursor: pointer;
        margin: 0;
    }

    .rouleaux-phase-option input[type="checkbox"] {
        width: 12px;
        height: 12px;
        accent-color: var(--primary-600);
        cursor: pointer;
    }

    /* HDFN highlight when enabled */
    .hdfn-highlight-wrapper {
        padding: 0.25rem 0.5rem;
        border-radius: var(--radius);
        margin: -0.25rem -0.5rem;
        transition: all 0.2s ease;
    }

    .hdfn-highlight-wrapper.hdfn-active {
        background: linear-gradient(135deg, rgba(245, 158, 11, 0.15), rgba(251, 191, 36, 0.1));
        border: 1px solid var(--warning-400);
        box-shadow: 0 0 0 2px rgba(245, 158, 11, 0.1);
    }

    .hdfn-highlight-wrapper.hdfn-active label {
        color: var(--warning-700);
        font-weight: 500;
    }

    .hdfn-highlight-wrapper.hdfn-active::before {
        content: '⚠';
        margin-right: 0.25rem;
        font-size: 0.75rem;
    }

    /* Paternal antibody toggle styles */
    .paternal-antibody-list,
    .quick-paternal-antibody-toggles {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .paternal-ab-toggle {
        display: flex;
        align-items: center;
        gap: 0.25rem;
        padding: 0.25rem 0.5rem;
        background: var(--gray-100);
        border: 1px solid var(--border-color);
        border-radius: var(--radius);
        font-size: 0.75rem;
        cursor: pointer;
        transition: all 0.15s ease;
    }

    .paternal-ab-toggle:hover {
        border-color: var(--primary-300);
    }

    .paternal-ab-toggle.checked {
        background: var(--primary-50);
        border-color: var(--primary-300);
    }

    .paternal-ab-toggle input[type="checkbox"] {
        width: 12px;
        height: 12px;
        accent-color: var(--primary-600);
        cursor: pointer;
        margin: 0;
    }

    .paternal-ab-toggle label {
        cursor: pointer;
        margin: 0;
        color: var(--text-secondary);
    }

    .paternal-ab-toggle.checked label {
        color: var(--primary-700);
    }

    .quick-titer-select {
        padding: 0.375rem 0.5rem;
        border: 1px solid var(--border-color);
        border-radius: var(--radius);
        font-size: 0.8125rem;
        background: var(--card-bg);
        color: var(--text-primary);
        cursor: pointer;
        min-width: 130px;
    }

    .quick-titer-select:focus {
        outline: none;
        border-color: var(--primary-500);
    }

    /* Action Buttons */
    .action-buttons {
        display: flex;
        gap: 0.75rem;
        margin-top: 1.25rem;
        flex-wrap: wrap;
    }

    .action-buttons.top-actions {
        margin-top: 0.75rem;
        margin-bottom: 0.75rem;
        padding-bottom: 0.75rem;
        border-bottom: 1px solid var(--border-color);
    }

    .action-btn {
        display: inline-flex;
        align-items: center;
        gap: 0.5rem;
        padding: 0.625rem 1rem;
        border: 2px solid var(--border-color);
        background: var(--card-bg);
        border-radius: var(--radius);
        font-size: 0.875rem;
        font-weight: 500;
        color: var(--text-secondary);
        cursor: pointer;
        transition: all 0.2s ease;
    }

    .action-btn:hover {
        border-color: var(--primary-400);
        color: var(--primary-600);
    }

    .action-btn.primary {
        background: var(--primary-500);
        border-color: var(--primary-500);
        color: white;
    }

    .action-btn.primary:hover {
        background: var(--primary-600);
        border-color: var(--primary-600);
    }

    /* Compatibility Info Box */
    .compatibility-info {
        background: linear-gradient(135deg, var(--info-50) 0%, var(--primary-50) 100%);
        border: 1px solid var(--info-200);
        border-left: 4px solid var(--info-500);
        border-radius: var(--radius-md);
        padding: 1rem;
        margin-top: 1.25rem;
    }

    .compatibility-info-title {
        font-weight: 600;
        color: var(--info-700);
        font-size: 0.875rem;
        margin-bottom: 0.5rem;
        display: flex;
        align-items: center;
        gap: 0.5rem;
    }

    .compatibility-stats {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 1rem;
    }

    @media (max-width: 575.98px) {
        .compatibility-stats {
            grid-template-columns: 1fr;
        }
    }

    .stat-item {
        text-align: center;
    }

    .stat-label {
        font-size: 0.75rem;
        color: var(--text-muted);
        text-transform: uppercase;
        letter-spacing: 0.05em;
    }

    .stat-value {
        font-size: 1.25rem;
        font-weight: 700;
        color: var(--primary-700);
        font-family: var(--font-display);
    }

    .stat-sublabel {
        font-size: 0.65rem;
        color: var(--text-muted);
        margin-top: 0.15rem;
        line-height: 1.2;
    }

    .compatibility-stats-matched {
        margin-top: 0.75rem;
        padding-top: 0.75rem;
        border-top: 1px dashed var(--border-color, rgba(0, 0, 0, 0.12));
    }

    /* Placeholder States */
    .placeholder-state {
        text-align: center;
        padding: 3rem 1.5rem;
        color: var(--text-muted);
    }

    .placeholder-state i {
        font-size: 3rem;
        margin-bottom: 1rem;
        opacity: 0.5;
    }

    .placeholder-state p {
        margin: 0;
    }

    /* Loading State */
    .loading-state {
        text-align: center;
        padding: 3rem 1.5rem;
    }

    .loading-spinner-lg {
        width: 48px;
        height: 48px;
        border: 4px solid var(--primary-100);
        border-top-color: var(--primary-500);
        border-radius: 50%;
        animation: spin 1s linear infinite;
        margin: 0 auto 1rem;
    }

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

    /* Warnings */
    .warnings-box {
        background: var(--warning-50);
        border: 1px solid var(--warning-200);
        border-left: 4px solid var(--warning-500);
        border-radius: var(--radius-md);
        padding: 1rem;
        margin-top: 1rem;
    }

    .warnings-box-title {
        font-weight: 600;
        color: var(--warning-700);
        font-size: 0.875rem;
        margin-bottom: 0.5rem;
        display: flex;
        align-items: center;
        gap: 0.5rem;
    }

    .warnings-list {
        margin: 0;
        padding-left: 1.25rem;
        font-size: 0.8125rem;
        color: var(--text-secondary);
    }

    /* Clinical Guidance Box */
    .guidance-box {
        background: var(--primary-50, #eff6ff);
        border: 1px solid var(--primary-200, #bfdbfe);
        border-left: 4px solid var(--primary-500, #3b82f6);
        border-radius: var(--radius-md);
        padding: 1rem;
        margin-top: 1rem;
    }

    .guidance-box-title {
        font-weight: 600;
        color: var(--primary-700, #1d4ed8);
        font-size: 0.875rem;
        margin-bottom: 0.75rem;
        display: flex;
        align-items: center;
        gap: 0.5rem;
    }

    .guidance-list {
        font-size: 0.8125rem;
        color: var(--text-secondary);
    }

    .guidance-item {
        margin-bottom: 0.75rem;
        padding-bottom: 0.75rem;
        border-bottom: 1px solid var(--primary-100, #dbeafe);
    }

    .guidance-item:last-child {
        margin-bottom: 0;
        padding-bottom: 0;
        border-bottom: none;
    }

    .guidance-item-antibody {
        font-weight: 600;
        color: var(--text-primary);
        margin-bottom: 0.25rem;
    }

    .guidance-item-note {
        color: var(--text-secondary);
        line-height: 1.5;
    }

    /* References Panel */
    .references-panel {
        margin-top: 1rem;
        border: 1px solid var(--border-color);
        border-radius: var(--radius-md);
        overflow: hidden;
    }

    .references-toggle {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        padding: 0.875rem 1rem;
        background: var(--gray-50);
        border: none;
        cursor: pointer;
        text-align: left;
        font-size: 0.875rem;
        font-weight: 500;
        color: var(--text-secondary);
        transition: all 0.15s ease;
    }

    .references-toggle:hover {
        background: var(--gray-100);
        color: var(--text-primary);
    }

    .references-toggle-icon {
        transition: transform 0.2s ease;
    }

    .references-toggle.expanded .references-toggle-icon {
        transform: rotate(180deg);
    }

    .references-content {
        display: none;
        padding: 1rem;
        background: var(--card-bg);
        border-top: 1px solid var(--border-color);
    }

    .references-content.show {
        display: block;
    }

    .reference-item {
        padding: 0.75rem 0;
        border-bottom: 1px solid var(--border-color);
        font-size: 0.8125rem;
        line-height: 1.6;
    }

    .reference-item:last-child {
        border-bottom: none;
        padding-bottom: 0;
    }

    .reference-citation {
        font-weight: 600;
        color: var(--primary-600);
        display: block;
        margin-bottom: 0.25rem;
    }

    .reference-full {
        color: var(--text-secondary);
    }

    .references-count {
        font-size: 0.75rem;
        padding: 0.125rem 0.5rem;
        background: var(--primary-100);
        color: var(--primary-700);
        border-radius: 999px;
        margin-left: 0.5rem;
    }

    /* Toast Notification */
    .toast-notification {
        position: fixed;
        bottom: 2rem;
        right: 2rem;
        padding: 1rem 1.5rem;
        background: var(--success-600);
        color: white;
        border-radius: var(--radius-md);
        box-shadow: var(--shadow-lg);
        display: flex;
        align-items: center;
        gap: 0.75rem;
        z-index: 9999;
        opacity: 0;
        transform: translateY(1rem);
        transition: all 0.3s ease;
    }

    .toast-notification.show {
        opacity: 1;
        transform: translateY(0);
    }

    /* Audit Trail Panel */
    .audit-trail-panel {
        margin-top: 1rem;
        border: 1px solid var(--border-color);
        border-radius: var(--radius-md);
        overflow: hidden;
    }

    .audit-trail-toggle {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        padding: 0.875rem 1rem;
        background: var(--gray-50);
        border: none;
        cursor: pointer;
        text-align: left;
        font-size: 0.875rem;
        font-weight: 500;
        color: var(--text-secondary);
        transition: all 0.15s ease;
    }

    .audit-trail-toggle:hover {
        background: var(--gray-100);
        color: var(--text-primary);
    }

    .audit-trail-toggle-icon {
        transition: transform 0.2s ease;
    }

    .audit-trail-toggle.expanded .audit-trail-toggle-icon {
        transform: rotate(180deg);
    }

    .audit-trail-content {
        display: none;
        padding: 1rem;
        background: var(--card-bg);
        border-top: 1px solid var(--border-color);
    }

    .audit-trail-content.show {
        display: block;
    }

    .audit-trail-count {
        font-size: 0.75rem;
        padding: 0.125rem 0.5rem;
        background: var(--primary-100);
        color: var(--primary-700);
        border-radius: 999px;
        margin-left: 0.5rem;
    }

    /* Audit Trail Element Cards */
    .audit-element {
        background: var(--gray-50);
        border: 1px solid var(--border-color);
        border-radius: var(--radius-md);
        margin-bottom: 0.75rem;
        overflow: hidden;
    }

    .audit-element:last-child {
        margin-bottom: 0;
    }

    .audit-element-header {
        display: flex;
        align-items: center;
        gap: 0.75rem;
        padding: 0.75rem 1rem;
        background: linear-gradient(135deg, var(--gray-100) 0%, var(--gray-50) 100%);
        border-bottom: 1px solid var(--border-color);
    }

    .audit-element-number {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 24px;
        height: 24px;
        border-radius: 50%;
        background: var(--primary-500);
        color: white;
        font-size: 0.75rem;
        font-weight: 600;
        flex-shrink: 0;
    }

    .audit-element-title {
        font-weight: 600;
        font-size: 0.875rem;
        color: var(--text-primary);
    }

    .audit-element-body {
        padding: 0.75rem 1rem;
    }

    .audit-element-text {
        font-size: 0.8125rem;
        color: var(--text-secondary);
        line-height: 1.5;
        margin-bottom: 0.5rem;
    }

    .audit-element-tags {
        display: flex;
        flex-wrap: wrap;
        gap: 0.375rem;
    }

    .audit-tag {
        display: inline-flex;
        align-items: center;
        gap: 0.25rem;
        padding: 0.25rem 0.5rem;
        background: var(--info-50);
        border: 1px solid var(--info-200);
        border-radius: var(--radius-sm);
        font-size: 0.6875rem;
        color: var(--info-700);
    }

    .audit-tag.active {
        background: var(--success-50);
        border-color: var(--success-200);
        color: var(--success-700);
    }

    .audit-tag.inactive {
        background: var(--gray-100);
        border-color: var(--gray-300);
        color: var(--gray-600);
    }

    /* Prophylactic Suggestion Cards */
    .prophylactic-suggestion {
        background: var(--card-bg);
        border: 1px solid var(--border-color);
        border-radius: var(--radius-md);
        padding: 0.75rem 1rem;
        margin-bottom: 0.5rem;
        transition: border-color 0.15s ease, background 0.15s ease;
    }

    .prophylactic-suggestion.selected {
        border-color: var(--primary-300);
        background: var(--primary-50);
    }

    .prophylactic-suggestion:last-child {
        margin-bottom: 0;
    }

    .prophylactic-suggestion-header {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        margin-bottom: 0.375rem;
    }

    .prophylactic-suggestion-checkbox {
        flex-shrink: 0;
        width: 1.125rem;
        height: 1.125rem;
        cursor: pointer;
        accent-color: var(--primary-500);
    }

    .prophylactic-suggestion-primary {
        font-weight: 600;
        color: var(--text-primary);
    }

    .prophylactic-suggestion-arrow {
        color: var(--warning-500);
    }

    .prophylactic-suggestion-target {
        font-weight: 600;
        color: var(--warning-700);
    }

    .prophylactic-suggestion-reason {
        font-size: 0.8125rem;
        color: var(--text-secondary);
        line-height: 1.5;
        margin-left: 1.625rem;
    }

    /* Template Presets */
    .template-presets {
        margin-bottom: 1.5rem;
        padding-bottom: 1.5rem;
        border-bottom: 1px solid var(--border-color);
    }

    .template-presets-label {
        font-size: 0.8125rem;
        font-weight: 600;
        color: var(--text-secondary);
        margin-bottom: 0.5rem;
    }

    .template-preset-grid {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .template-preset-btn {
        padding: 0.5rem 0.875rem;
        border: 1px solid var(--border-color);
        border-radius: var(--radius);
        background: var(--card-bg);
        font-size: 0.8125rem;
        color: var(--text-secondary);
        cursor: pointer;
        transition: all 0.15s ease;
        display: inline-flex;
        align-items: center;
        gap: 0.375rem;
    }

    .template-preset-btn:hover {
        border-color: var(--primary-300);
        color: var(--primary-600);
        background: var(--primary-50);
    }

    .template-preset-btn i {
        font-size: 0.875rem;
    }

    /* Case setup and workflow controls */
    .case-setup {
        margin-bottom: 1.5rem;
        padding-bottom: 1.5rem;
        border-bottom: 1px solid var(--border-color);
    }

    .case-setup-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 0.75rem;
        margin-bottom: 0.625rem;
    }

    .case-setup-title {
        font-size: 0.8125rem;
        font-weight: 700;
        color: var(--text-secondary);
        text-transform: uppercase;
        letter-spacing: 0.04em;
    }

    .case-mode-grid {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
        margin-bottom: 0.75rem;
    }

    .case-mode-btn {
        display: inline-flex;
        align-items: center;
        gap: 0.375rem;
        padding: 0.5rem 0.75rem;
        border: 1px solid var(--border-color);
        border-radius: var(--radius);
        background: var(--card-bg);
        color: var(--text-secondary);
        font-size: 0.8125rem;
        font-weight: 500;
        cursor: pointer;
        transition: all 0.15s ease;
    }

    .case-mode-btn:hover {
        border-color: var(--primary-300);
        color: var(--primary-700);
        background: var(--primary-50);
    }

    .case-mode-btn.active {
        border-color: var(--primary-500);
        background: var(--primary-50);
        color: var(--primary-700);
        box-shadow: inset 0 0 0 1px var(--primary-500);
    }

    .case-consideration-toggle {
        display: inline-flex;
        align-items: center;
        gap: 0.375rem;
        padding: 0.5rem 0.75rem;
        border: 1px solid var(--border-color);
        border-radius: var(--radius);
        background: var(--gray-50);
        color: var(--text-secondary);
        font-size: 0.8125rem;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.15s ease;
    }

    .case-consideration-toggle:hover {
        border-color: var(--primary-300);
        color: var(--primary-700);
        background: var(--primary-50);
    }

    .case-consideration-toggle:has(input:checked) {
        border-color: var(--primary-500);
        background: var(--primary-50);
        color: var(--primary-700);
        box-shadow: inset 0 0 0 1px var(--primary-500);
    }

    .case-consideration-toggle input {
        width: 1rem;
        height: 1rem;
        margin: 0;
    }

    .special-scenario-row {
        display: grid;
        grid-template-columns: minmax(140px, auto) minmax(0, 1fr);
        gap: 0.75rem;
        align-items: center;
        margin-bottom: 0.75rem;
    }

    .special-scenario-row label {
        margin: 0;
        color: var(--text-secondary);
        font-size: 0.8125rem;
        font-weight: 600;
    }

    .workflow-warning {
        display: none;
        margin-top: 0.5rem;
        padding: 0.625rem 0.75rem;
        border-left: 3px solid var(--warning-500);
        background: var(--warning-50);
        color: var(--text-secondary);
        border-radius: var(--radius-sm);
        font-size: 0.75rem;
        line-height: 1.45;
    }

    .workflow-warning.active {
        display: block;
    }

    .case-details-row {
        display: grid;
        grid-template-columns: 1fr;
        gap: 0.5rem;
    }

    .case-setup-details {
        border: 1px solid var(--border-color);
        border-radius: var(--radius);
        background: var(--gray-50);
        overflow: hidden;
    }

    .case-setup-details summary {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        padding: 0.625rem 0.75rem;
        color: var(--text-secondary);
        font-size: 0.8125rem;
        font-weight: 600;
        cursor: pointer;
        user-select: none;
    }

    .case-setup-details summary::-webkit-details-marker {
        display: none;
    }

    .case-setup-details summary::after {
        content: "\F282";
        font-family: "bootstrap-icons";
        margin-left: auto;
        transition: transform 0.15s ease;
    }

    .case-setup-details[open] summary::after {
        transform: rotate(180deg);
    }

    .case-setup-details-body {
        padding: 0 0.75rem 0.75rem;
    }

    .paste-parser-input {
        width: 100%;
        min-height: 84px;
        resize: vertical;
        border: 1px solid var(--input-border);
        border-radius: var(--radius);
        background: var(--input-bg);
        color: var(--text-primary);
        padding: 0.625rem 0.75rem;
        font-size: 0.875rem;
        line-height: 1.45;
    }

    .paste-parser-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
        align-items: center;
        margin-top: 0.5rem;
    }

    .parser-result {
        display: none;
        margin-top: 0.625rem;
        padding: 0.625rem 0.75rem;
        border: 1px solid var(--border-color);
        border-radius: var(--radius);
        background: var(--card-bg);
        font-size: 0.8125rem;
        color: var(--text-secondary);
    }

    .parser-result.active {
        display: block;
    }

    .parser-chip-row {
        display: flex;
        flex-wrap: wrap;
        gap: 0.375rem;
        margin: 0.5rem 0;
    }

    .parser-chip {
        display: inline-flex;
        align-items: center;
        gap: 0.25rem;
        padding: 0.25rem 0.5rem;
        border: 1px solid var(--primary-300);
        border-radius: var(--radius);
        background: var(--primary-50);
        color: var(--primary-700);
        font-size: 0.75rem;
        font-weight: 600;
    }

    .case-summary-shell {
        margin-bottom: 0.875rem;
    }

    .case-status-strip {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
        width: 100%;
        padding: 0.625rem 0.75rem;
        border: 1px solid var(--border-color);
        border-left: 4px solid var(--primary-500);
        border-radius: var(--radius-md);
        background: var(--card-bg);
        color: var(--text-primary);
        cursor: pointer;
        text-align: left;
        transition: border-color 0.15s ease, background 0.15s ease;
    }

    .case-status-strip:hover {
        border-color: var(--primary-300);
        background: var(--primary-50);
    }

    .case-status-main,
    .case-status-meta {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        min-width: 0;
    }

    .case-status-main {
        flex: 1;
        font-size: 0.8125rem;
        font-weight: 700;
    }

    .case-status-main span {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .case-summary-status {
        font-size: 0.72rem;
        color: var(--text-muted);
        white-space: nowrap;
    }

    .case-summary-card {
        margin-top: 0.5rem;
        padding: 0.75rem 0.875rem;
        border: 1px solid var(--border-color);
        border-radius: var(--radius-md);
        background: var(--card-bg);
        box-shadow: var(--shadow-sm);
    }

    .case-summary-card.collapsed {
        display: none;
    }

    .case-summary-chips {
        display: flex;
        flex-wrap: wrap;
        gap: 0.375rem;
    }

    .case-summary-chip {
        display: inline-flex;
        align-items: center;
        gap: 0.25rem;
        padding: 0.25rem 0.5rem;
        border-radius: var(--radius);
        background: var(--gray-100);
        color: var(--text-secondary);
        font-size: 0.72rem;
        font-weight: 600;
    }

    .case-summary-chip.active {
        background: var(--primary-100);
        color: var(--primary-700);
    }

    .case-summary-chip.warning {
        background: var(--warning-100);
        color: var(--warning-600);
    }

    .case-summary-chip.danger {
        background: var(--danger-100);
        color: var(--danger-600);
    }

    .case-summary-warnings {
        display: none;
        margin-top: 0.625rem;
        padding-top: 0.625rem;
        border-top: 1px dashed var(--border-color);
        color: var(--warning-600);
        font-size: 0.75rem;
        line-height: 1.45;
    }

    .case-summary-warnings.active {
        display: block;
    }

    .review-bar {
        display: none;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 0.75rem;
        align-items: center;
        margin-bottom: 0.875rem;
        padding: 0.75rem 0.875rem;
        border: 1px solid var(--border-color);
        border-radius: var(--radius-md);
        background: var(--gray-50);
    }

    .review-bar.active {
        display: grid;
    }

    .review-bar-title {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        color: var(--text-primary);
        font-size: 0.8125rem;
        font-weight: 700;
        margin-bottom: 0.375rem;
    }

    .review-checklist {
        display: flex;
        flex-wrap: wrap;
        gap: 0.375rem;
    }

    .review-pill {
        display: inline-flex;
        align-items: center;
        gap: 0.25rem;
        padding: 0.2rem 0.45rem;
        border-radius: var(--radius);
        background: var(--success-50);
        color: var(--success-600);
        border: 1px solid var(--success-100);
        font-size: 0.68rem;
        font-weight: 600;
    }

    .review-pill.warning {
        background: var(--warning-50);
        color: var(--warning-600);
        border-color: var(--warning-100);
    }

    .review-pill.muted {
        background: var(--gray-100);
        color: var(--text-muted);
        border-color: var(--border-color);
    }

    .review-bar-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 0.375rem;
        justify-content: flex-end;
    }

    .review-jump-btn,
    .small-action-btn {
        display: inline-flex;
        align-items: center;
        gap: 0.25rem;
        padding: 0.35rem 0.55rem;
        border: 1px solid var(--border-color);
        border-radius: var(--radius);
        background: var(--card-bg);
        color: var(--text-secondary);
        font-size: 0.72rem;
        font-weight: 600;
        cursor: pointer;
    }

    .review-jump-btn:hover,
    .small-action-btn:hover {
        border-color: var(--primary-300);
        color: var(--primary-700);
        background: var(--primary-50);
    }

    .pending-update-banner {
        display: none;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
        margin-bottom: 0.75rem;
        padding: 0.75rem 0.875rem;
        border: 1px solid var(--warning-500);
        border-left: 4px solid var(--warning-600);
        border-radius: var(--radius-md);
        background: var(--warning-50);
        color: var(--text-secondary);
        font-size: 0.8125rem;
    }

    .pending-update-banner.active {
        display: flex;
    }

    .pending-update-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 0.375rem;
        justify-content: flex-end;
    }

    .output-lock-btn.locked {
        border-color: var(--warning-400);
        background: var(--warning-50);
        color: var(--warning-600);
    }

    @media (max-width: 991.98px) {
        .case-status-strip {
            align-items: flex-start;
            flex-direction: column;
        }

        .review-bar {
            grid-template-columns: 1fr;
        }

        .review-bar-actions {
            justify-content: flex-start;
        }
    }

    /* Warm Auto Steps */
    .warm-auto-step {
        position: relative;
        padding-left: 2.25rem;
    }

    .warm-auto-step-number {
        position: absolute;
        left: 0;
        top: 0.125rem;
        width: 1.5rem;
        height: 1.5rem;
        border-radius: 50%;
        background: var(--gray-200);
        color: var(--text-secondary);
        font-size: 0.7rem;
        font-weight: 600;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
    }

    .warm-auto-step-label {
        font-size: 0.7rem;
        font-weight: 600;
        color: var(--text-muted);
        text-transform: uppercase;
        letter-spacing: 0.04em;
        margin-bottom: 0.25rem;
    }

    /* Output font toggle */
    .font-toggle-btn {
        display: inline-flex;
        align-items: center;
        gap: 0.375rem;
        padding: 0.375rem 0.625rem;
        border: 1px solid var(--border-color);
        border-radius: var(--radius);
        background: var(--card-bg);
        font-size: 0.75rem;
        color: var(--text-secondary);
        cursor: pointer;
        transition: all 0.15s ease;
    }

    .font-toggle-btn:hover {
        border-color: var(--primary-300);
        color: var(--primary-600);
    }

    .font-toggle-btn.active {
        border-color: var(--primary-400);
        background: var(--primary-50);
        color: var(--primary-600);
    }

    .interpretation-output.proportional-font {
        font-family: var(--font-sans, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
        font-size: 0.9375rem;
        line-height: 1.6;
    }

    /* Output timestamp */
    .output-meta-bar {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 0.375rem 0;
        margin-bottom: 0.5rem;
        gap: 0.75rem;
        flex-wrap: wrap;
    }

    .output-meta-left {
        display: flex;
        align-items: center;
        gap: 0.75rem;
    }

    .output-timestamp {
        font-size: 0.75rem;
        color: var(--text-muted);
        display: flex;
        align-items: center;
        gap: 0.375rem;
    }

    .output-timestamp .pulse-dot {
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background: var(--success-500);
        animation: pulse 2s ease-in-out infinite;
    }

    @keyframes pulse {
        0%, 100% { opacity: 1; }
        50% { opacity: 0.4; }
    }

    /* Output option tooltips */
    .option-info {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 16px;
        height: 16px;
        border-radius: 50%;
        background: var(--gray-200);
        color: var(--text-muted);
        font-size: 0.6rem;
        cursor: help;
        margin-left: 0.25rem;
        position: relative;
        vertical-align: middle;
    }

    .option-info:hover::after {
        content: attr(data-tooltip);
        position: absolute;
        bottom: calc(100% + 4px);
        left: 50%;
        transform: translateX(-50%);
        padding: 0.5rem 0.75rem;
        background: var(--gray-900);
        color: white;
        font-size: 0.75rem;
        border-radius: var(--radius);
        z-index: 10;
        max-width: 250px;
        white-space: normal;
        line-height: 1.4;
        box-shadow: var(--shadow-lg);
        pointer-events: none;
    }

    /* Citation chips: superscript pills after cited sentences, showing
       the 1-based reference index. Hover reveals the full citation. */
    .citation-chip {
        display: inline-block;
        margin-left: 1px;
        padding: 0 4px;
        font-size: 0.65em;
        font-weight: 600;
        line-height: 1.3;
        vertical-align: super;
        background: var(--primary-100);
        color: var(--primary-700);
        border: 1px solid var(--primary-400, #60a5fa);
        border-radius: 999px;
        cursor: help;
        user-select: none;
        position: relative;
        transition: background 0.15s ease;
    }

    .citation-chip + .citation-chip {
        margin-left: 2px;
    }

    .citation-chip:hover {
        background: var(--primary-200, #bfdbfe);
    }

    .citation-chip:hover::after {
        content: attr(data-citation);
        position: absolute;
        bottom: calc(100% + 4px);
        left: 50%;
        transform: translateX(-50%);
        padding: 0.5rem 0.75rem;
        background: var(--gray-900);
        color: white;
        font-size: 0.75rem;
        font-weight: 400;
        border-radius: var(--radius);
        z-index: 10;
        max-width: 320px;
        min-width: 180px;
        white-space: normal;
        line-height: 1.4;
        box-shadow: var(--shadow-lg);
        pointer-events: none;
        vertical-align: baseline;
    }

    .citations-hidden .citation-chip {
        display: none;
    }

    .inline-reference-marker {
        font-size: 0.68em;
        vertical-align: super;
        line-height: 0;
        font-weight: 600;
        color: var(--text-primary);
    }

    .inline-reference-list {
        margin-top: 0.75rem;
        padding-top: 0.5rem;
        border-top: 1px solid var(--border-color);
        font-size: 0.82rem;
        line-height: 1.35;
    }

    .inline-reference-item {
        margin-bottom: 0.25rem;
        padding-left: 1.5rem;
        text-indent: -1.5rem;
    }

    /* Citation toggle button in output meta bar */
    .citations-toggle-btn {
        display: inline-flex;
        align-items: center;
        gap: 0.25rem;
        padding: 0.25rem 0.5rem;
        background: transparent;
        border: 1px solid var(--border-color);
        border-radius: var(--radius);
        color: var(--text-secondary);
        font-size: 0.7rem;
        cursor: pointer;
        transition: all 0.15s ease;
    }

    .citations-toggle-btn:hover {
        background: var(--bg-tertiary);
        border-color: var(--primary-400, #60a5fa);
        color: var(--primary-700);
    }

    .citations-toggle-btn.citations-off {
        color: var(--text-muted);
    }

    /* SCD phenotype section */
    .scd-phenotype-section {
        margin-top: 0.75rem;
        padding: 0.75rem;
        background: var(--gray-50);
        border: 1px solid var(--border-color);
        border-radius: var(--radius-md);
    }

    .scd-phenotype-label {
        font-size: 0.75rem;
        font-weight: 600;
        color: var(--text-secondary);
        margin-bottom: 0.5rem;
    }

    .scd-phenotype-grid {
        display: flex;
        flex-wrap: wrap;
        gap: 0.375rem;
    }

    .scd-phenotype-toggle {
        display: flex;
        align-items: center;
        gap: 0.25rem;
        padding: 0.25rem 0.5rem;
        background: var(--card-bg);
        border: 1px solid var(--border-color);
        border-radius: var(--radius);
        font-size: 0.75rem;
        cursor: pointer;
        transition: all 0.15s ease;
    }

    .scd-phenotype-toggle:hover {
        border-color: var(--primary-300);
    }

    .scd-phenotype-toggle.negative {
        background: var(--danger-50);
        border-color: var(--danger-200);
    }

    .scd-phenotype-toggle.negative label {
        color: var(--danger-700);
    }

    .scd-phenotype-toggle input[type="checkbox"] {
        width: 12px;
        height: 12px;
        accent-color: var(--danger-500);
        cursor: pointer;
        margin: 0;
    }

    .scd-phenotype-toggle label {
        cursor: pointer;
        margin: 0;
        color: var(--text-secondary);
    }

    /* SCD autoantibody consideration modal */
    .scd-auto-modal-overlay {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.5);
        z-index: 10000;
        align-items: center;
        justify-content: center;
    }

    .scd-auto-modal-overlay.active {
        display: flex;
    }

    .scd-auto-modal {
        background: var(--card-bg);
        border: 1px solid var(--border-color);
        border-radius: var(--radius-lg);
        padding: 1.25rem;
        max-width: 420px;
        width: 90%;
        box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    }

    .scd-auto-modal-title {
        font-size: 0.875rem;
        font-weight: 700;
        color: var(--warning-600);
        margin-bottom: 0.75rem;
        display: flex;
        align-items: center;
        gap: 0.5rem;
    }

    .scd-auto-modal-body {
        font-size: 0.8rem;
        color: var(--text-secondary);
        line-height: 1.5;
        margin-bottom: 1rem;
    }

    .scd-auto-modal-antibody {
        font-weight: 600;
        color: var(--text-primary);
    }

    .scd-auto-modal-actions {
        display: flex;
        gap: 0.5rem;
        justify-content: flex-end;
    }

    .scd-auto-modal-btn {
        padding: 0.375rem 0.75rem;
        border-radius: var(--radius);
        font-size: 0.75rem;
        font-weight: 600;
        cursor: pointer;
        border: 1px solid var(--border-color);
        transition: all 0.15s ease;
    }

    .scd-auto-modal-btn.keep {
        background: var(--card-bg);
        color: var(--text-secondary);
    }

    .scd-auto-modal-btn.keep:hover {
        background: var(--gray-100);
    }

    .scd-auto-modal-btn.switch {
        background: var(--warning-500);
        color: white;
        border-color: var(--warning-600);
    }

    .scd-auto-modal-btn.switch:hover {
        background: var(--warning-600);
    }

    /* Previously ID tag hint */
    .tag-click-hint {
        font-size: 0.7rem;
        color: var(--text-muted);
        display: flex;
        align-items: center;
        gap: 0.25rem;
        margin-top: 0.375rem;
        font-style: italic;
    }

    .tag-click-hint i {
        font-size: 0.75rem;
    }

    /* Keyboard shortcut hint */
    .shortcut-hint {
        font-size: 0.65rem;
        color: var(--text-muted);
        margin-left: 0.25rem;
        display: none;
    }

    @media (min-width: 768px) {
        .shortcut-hint {
            display: inline;
        }
    }

    /* Revert button */
    .action-btn.revert {
        border-color: var(--warning-300);
        color: var(--warning-600);
    }

    .action-btn.revert:hover {
        background: var(--warning-50);
        border-color: var(--warning-400);
    }

    /* Output refresh flash */
    @keyframes outputFlash {
        0% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.4); }
        40% { box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.15); }
        100% { box-shadow: none; }
    }

    .interpretation-output.refreshed {
        animation: outputFlash 0.8s ease-out;
    }

    /* Print Styles */
    @media print {
        .builder-layout {
            display: block;
        }

        /* Undo the sticky/flex output-card constraints so the full
           interpretation prints (the screen rules clamp height + scroll the
           output region, which would otherwise clip print to one viewport). */
        .builder-card-output {
            position: static;
            max-height: none;
            overflow: visible;
            display: block;
        }

        .builder-card-output > .card-body {
            display: block;
            overflow: visible;
            min-height: 0;
        }

        .builder-card-output > .card-body > .output-panel.active {
            overflow: visible;
            min-height: 0;
        }

        .builder-card:first-child {
            display: none;
        }

        .builder-card .card-header {
            background: none !important;
            color: var(--text-primary) !important;
            -webkit-print-color-adjust: exact;
            print-color-adjust: exact;
        }

        .action-buttons {
            display: none;
        }

        .interpretation-output {
            border: 1px solid #ccc;
            padding: 1rem;
        }
    }
