/* Comedy CRM — Public Styles
   ---------------------------------------------------------------------------
   The application forms are rendered via shortcode inside arbitrary themes,
   whose background could be any color (including dark). To guarantee the form
   text is always legible, each form is a SELF-CONTAINED CARD: it sets its own
   light background and dark text explicitly, so it never inherits (and never
   gets washed out by) the surrounding theme. Every text element inside sets an
   explicit color rather than relying on inheritance.
   --------------------------------------------------------------------------- */
.ccrm-form {
    max-width: 700px;
    margin: 0 auto;
    /* Self-contained card so contrast holds on any theme background */
    background: #ffffff !important;
    color: #1f2937 !important;      /* dark body text, always legible on white */
    padding: 28px 30px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    box-shadow: 0 4px 24px rgba(0,0,0,.08);
    font-family: inherit;
    font-size: 16px;
    line-height: 1.5;
}

/* Force a readable color on every text element inside the card, so a dark
   (or unusual) theme can't override them through inheritance. */
.ccrm-form,
.ccrm-form p,
.ccrm-form span,
.ccrm-form div,
.ccrm-form li,
.ccrm-form legend,
.ccrm-form label {
    color: #1f2937 !important;
}

.ccrm-form h2,
.ccrm-form h3 {
    color: #111827 !important;
}

.ccrm-form h2 {
    font-size: 1.6rem;
    margin-bottom: 8px;
}

.ccrm-required-note { color: #6b7280 !important; font-size: .875rem; margin-bottom: 20px; }
.ccrm-required-note .req { color: #dc2626 !important; }
.ccrm-form-subhead { font-size: 1.05rem; margin: 26px 0 4px; padding-top: 18px; border-top: 1px solid #e5e7eb; color: #111827 !important; }
.ccrm-form-subhead .ccrm-optional { font-size: .8rem; font-weight: 400; color: #9ca3af !important; }
.ccrm-demo-note { color: #6b7280 !important; font-size: .85rem; margin: 0 0 14px; line-height: 1.5; }
.ccrm-download-link { display: inline-block; font-size: .85rem; color: #2563eb !important; text-decoration: none; font-weight: 600; }
.ccrm-download-link:hover { text-decoration: underline; }

.ccrm-field { margin-bottom: 16px; }
.ccrm-field label { display: block; font-weight: 600; margin-bottom: 5px; color: #374151 !important; }
.ccrm-field input,
.ccrm-field textarea,
.ccrm-field select {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 1rem;
    box-sizing: border-box;
    transition: border-color .2s;
    /* Explicit input colors (with !important) so even themes that aggressively
       style form fields can't make typed text or the field invisible. */
    background: #ffffff !important;
    color: #111827 !important;
}
.ccrm-field input::placeholder,
.ccrm-field textarea::placeholder { color: #9ca3af; }
.ccrm-field input:focus,
.ccrm-field textarea:focus,
.ccrm-field select:focus {
    border-color: #7c3aed;
    outline: none;
    box-shadow: 0 0 0 2px rgba(124,58,237,.2);
}
span.req { color: #dc2626 !important; margin-left: 2px; }

.ccrm-contact-group {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 14px 16px;
    margin-bottom: 14px;
}
.ccrm-contact-group legend { font-weight: 700; padding: 0 6px; color: #374151 !important; }

.ccrm-btn {
    background: #7c3aed;
    color: #fff !important;
    border: none;
    padding: 12px 28px;
    border-radius: 6px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .2s;
}
.ccrm-btn:hover { background: #6d28d9; }

.ccrm-success {
    background: #dcfce7;
    border: 1px solid #86efac;
    color: #166534 !important;
    padding: 12px 18px;
    border-radius: 6px;
    margin-bottom: 20px;
    font-weight: 600;
}

/* Calendar public */
.ccrm-calendar { font-family: inherit; }
.ccrm-cal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #7c3aed;
    color: #fff;
    padding: 12px 20px;
    border-radius: 8px 8px 0 0;
}
.ccrm-cal-header h2 { margin: 0; font-size: 1.2rem; color: #fff; }
.ccrm-cal-nav { color: #e0d7ff; text-decoration: none; font-weight: 700; }
.ccrm-cal-table { width: 100%; border-collapse: collapse; }
.ccrm-cal-table th { background: #f3f4f6; padding: 8px; text-align: center; border: 1px solid #e5e7eb; font-size: .8rem; }
.ccrm-cal-day { border: 1px solid #e5e7eb; vertical-align: top; padding: 4px; height: 70px; }
.ccrm-cal-day.ccrm-today { background: #faf5ff; border-color: #7c3aed; }
.ccrm-cal-empty { background: #f9fafb; border: 1px solid #e5e7eb; }
.ccrm-cal-daynum { display: block; font-weight: 700; font-size: .85rem; color: #374151; }
.ccrm-cal-event { background: #7c3aed; border-radius: 3px; padding: 2px 5px; margin-bottom: 2px; font-size: .72rem; }
.ccrm-cal-event a { color: #fff; text-decoration: none; }

/* ---- Profile update form ---- */
.ccrm-incomplete-notice {
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 6px;
    padding: 12px 16px;
    margin-bottom: 20px;
    color: #92400e !important;
}
.ccrm-incomplete-notice strong { display: block; margin-bottom: 6px; color: #92400e !important; }
.ccrm-incomplete-notice ul { margin: 0 0 0 1.2em; }
.ccrm-incomplete-notice li { font-size: .875rem; color: #92400e !important; }
.ccrm-notice-warn {
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 6px;
    padding: 12px 16px;
    color: #92400e !important;
}
