.matcher-content {
    max-width: 760px;
    margin: 2rem auto;
    padding: 3rem;
    background: var(--section-overlay);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
}
.matcher-content h1 { color: var(--primary-color, #1c3b2a); margin-bottom: 1rem; }
.matcher-content .intro { font-size: 1.1rem; line-height: 1.7; margin-bottom: 1.5rem; }
.matcher-form-box {
    background: var(--card-background, #fff);
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 8px;
    padding: 1.75rem;
    margin-bottom: 2rem;
}
.matcher-textarea {
    width: 100%;
    min-height: 6rem;
    padding: 0.75rem;
    font: inherit;
    border: 1px solid rgba(0,0,0,0.15);
    border-radius: 6px;
    resize: vertical;
}
.matcher-char-count {
    font-size: 0.85rem;
    color: var(--text-mid, #445040);
    text-align: right;
    margin: 0.35rem 0 1rem;
}
.matcher-char-count.is-over-limit { color: var(--color-error, #9a2e1f); font-weight: 600; }
.matcher-results {
    margin-top: 2rem;
}
.matcher-results[hidden] { display: none; }
.matcher-results h2 { font-size: 1.2rem; margin-bottom: 1rem; }
.matcher-result-card {
    background: var(--background-warm, #f3ede2);
    border-radius: 8px;
    padding: 1rem 1.25rem;
    margin-bottom: 0.75rem;
}
.matcher-result-card p { margin: 0 0 0.5rem; }
.matcher-result-card a { font-weight: 600; }
.matcher-error {
    background: var(--color-surface-warm, #fdf0ea);
    border-left: 3px solid var(--color-error, #9a2e1f);
    border-radius: 4px;
    padding: 0.85rem 1rem;
    margin-top: 1rem;
}
.matcher-error[hidden] { display: none; }
.matcher-empty {
    color: var(--text-mid, #445040);
}
.matcher-plan-button {
    margin-top: 0.5rem;
}
fieldset.form-group { border: none; padding: 0; margin: 0 0 1.25rem 0; }
fieldset.form-group legend { font-weight: 600; margin-bottom: 0.5rem; padding: 0; }
.matcher-radio-label { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.5rem; font-weight: normal; }
.matcher-radio-label input[type="radio"] { width: auto; padding: 0; border: none; flex-shrink: 0; accent-color: var(--primary-color); cursor: pointer; }
.sessionplan-form-box[hidden] { display: none; }
.sessionplan-form-box { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(0,0,0,0.08); }
.sessionplan-block {
    background: var(--background-warm, #f3ede2);
    border-radius: 8px;
    padding: 1.25rem 1.5rem;
    margin-bottom: 1rem;
}
.sessionplan-block h3 { margin-top: 0; color: var(--primary-color, #1c3b2a); }
.sessionplan-step { margin-bottom: 0.75rem; }
.sessionplan-step .sessionplan-step-duration { font-size: 0.85rem; color: var(--text-mid, #445040); }
.sessionplan-invitation {
    border-left: 3px solid var(--primary-color, #1c3b2a);
    padding-left: 1rem;
    margin: 1rem 0;
    font-style: italic;
}
.sessionplan-total { font-weight: 600; margin-bottom: 1rem; }
.sessionplan-warning {
    background: var(--color-surface-warm, #fdf0ea);
    border-left: 3px solid var(--color-error, #9a2e1f);
    border-radius: 4px;
    padding: 0.85rem 1rem;
    margin-bottom: 1rem;
}
.sessionplan-tight-note {
    background: var(--color-surface-cool, #e8f0eb);
    border-left: 3px solid var(--accent-color, #4a6b52);
    border-radius: 4px;
    padding: 0.85rem 1rem;
    margin-bottom: 1rem;
}
.sessionplan-save-box[hidden] { display: none; }
.sessionplan-save-box {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(0,0,0,0.08);
}
.sessionplan-save-box h3 { font-size: 1.05rem; margin-bottom: 0.75rem; }
.matcher-consent-text { font-size: 0.8rem; color: #5e6e5a; margin-top: 0.75rem; } /* WCAG AA: 4.6:1, matches .canvas-consent-text */
.matcher-consent-text a { color: #5e6e5a; text-decoration: underline; }
@media (max-width: 768px) {
    .matcher-content { padding: 2rem 1.25rem; }
}
