/* =============================================================================
   Contact Us module — Module.css
   Loaded by every ContactForm .ascx via ClientResourceManager. Deliberately
   self-contained (no inheritance from JobAdmin's Module.css) so the contact
   module can be deployed without the JobAdmin package.

   Class prefix: cf- (Contact Form)
   Pattern: BEM-ish — block__element--modifier
   ============================================================================= */

/* ---------- Headings + base typography ---------- */
.contactform { color: #222; font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; }
.contactform .cf-h2 { font-size: 1.5rem; margin: 0 0 .25rem; color: #1f3864; }
.contactform .cf-h3 { font-size: 1.25rem; margin: 0 0 .25rem; color: #1f3864; }
.contactform .cf-h4 { font-size: 1rem; margin: .5rem 0 .25rem; color: #1f3864; }
.contactform .cf-muted { color: #6b6b6b; font-size: .9rem; }

/* ---------- Common form chrome (Compact + Full + Admin filters) ---------- */
.cf-form .cf-field { margin: 12px 0; }
.cf-label { display: block; font-weight: 600; font-size: .95rem; margin-bottom: 4px; }
.cf-label--required::after { content: " *"; color: #c0392b; }
.cf-label__opt { font-weight: 400; color: #6b6b6b; font-size: .85rem; }

.cf-input {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    font-size: 16px;            /* >= 16px prevents iOS zoom on focus */
    line-height: 1.4;
    border: 1px solid #c5cdd6;
    border-radius: 4px;
    background: #fff;
    color: #222;
    font-family: inherit;
}
.cf-input:focus { outline: 2px solid #2e75b6; outline-offset: 1px; border-color: #2e75b6; }
.cf-input--area { min-height: 100px; resize: vertical; }
.cf-input--select { appearance: none; -webkit-appearance: none; background: #fff; }

.cf-field--check { display: flex; align-items: flex-start; gap: 8px; }
.cf-check { display: flex; gap: 8px; align-items: flex-start; font-size: .95rem; }
.cf-check input { margin-top: 4px; }

.cf-btn {
    display: inline-block;
    padding: 10px 18px;
    font-size: 1rem;
    font-weight: 600;
    border-radius: 4px;
    border: 1px solid transparent;
    cursor: pointer;
    text-decoration: none;
    background: #f4f6f8;
    color: #1f3864;
    border-color: #c5cdd6;
}
.cf-btn:hover { background: #e9eef3; }
.cf-btn:focus { outline: 2px solid #2e75b6; outline-offset: 1px; }
.cf-btn--primary { background: #1f3864; color: #fff; border-color: #1f3864; }
.cf-btn--primary:hover { background: #19304f; }
.cf-btn--secondary { background: #fff; }
.cf-btn--danger { background: #fff; color: #b94a4a; border-color: #d8aaaa; }
.cf-btn--danger:hover { background: #fdf2f2; }

.cf-error { color: #b94a4a; background: #fdf2f2; border: 1px solid #f0c4c4; padding: 10px; border-radius: 4px; margin: 8px 0; }

/* Honeypot — render off-screen but keep focusable for the actual people who hit Tab. */
.cf-honey { position: absolute; left: -10000px; height: 1px; width: 1px; overflow: hidden; }

/* ---------- Compact (home page) ---------- */
.cf-compact { max-width: 520px; margin: 24px 0; padding: 18px 20px; border: 1px solid #e2e6ec; border-radius: 6px; background: #fafbfc; }
.cf-compact__head { margin-bottom: 8px; }
.cf-compact__sub { margin: 0 0 8px; color: #6b6b6b; font-size: .9rem; }
.cf-compact__actions { margin-top: 8px; }

/* ---------- Full (Contact Us page) ---------- */
.cf-full { max-width: 640px; margin: 32px 0; }
.cf-full__head { margin-bottom: 12px; }
.cf-full__sub { margin: 0 0 12px; color: #6b6b6b; font-size: .95rem; }
.cf-full__actions { margin-top: 16px; }

/* ---------- Thank-you confirmation (shared) ---------- */
.cf-confirm { padding: 16px 18px; border: 1px solid #cfe2f3; border-radius: 6px; background: #eef5fb; }
.cf-confirm__ctas { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }

/* ---------- Admin (/Administration/Contact Admin) ---------- */
.cf-admin { margin: 16px 0; }
.cf-admin__denied { padding: 18px; background: #fdf2f2; border: 1px solid #f0c4c4; border-radius: 4px; }
.cf-admin__head { margin-bottom: 16px; }
.cf-admin__sub { color: #6b6b6b; margin: 0 0 6px; }
.cf-admin__back { display: inline-block; margin-bottom: 8px; color: #1f3864; text-decoration: none; }
.cf-admin__back:hover { text-decoration: underline; }
.cf-admin__filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
.cf-admin__filters .cf-input { width: auto; min-width: 200px; }

.cf-admin__table {
    width: 100%; border-collapse: collapse; background: #fff; font-size: .92rem;
}
.cf-admin__table th, .cf-admin__table td {
    padding: 8px 10px; border-bottom: 1px solid #e5e9ee; text-align: left; vertical-align: top;
}
.cf-admin__table th { background: #f4f7fa; color: #1f3864; font-weight: 600; border-bottom: 2px solid #d5e2f0; }
.cf-admin__row { cursor: pointer; }
.cf-admin__row:hover { background: #f9fbfd; }
.cf-admin__empty { color: #6b6b6b; padding: 14px 4px; }
.cf-admin__flags { white-space: nowrap; }
.cf-admin__pager { display: flex; align-items: center; gap: 12px; margin-top: 12px; }
.cf-admin__pager-info { color: #6b6b6b; font-size: .9rem; }

/* status chip */
.cf-status { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: .8rem; font-weight: 600; }
.cf-status--new      { background: #e3f0ff; color: #114c8c; }
.cf-status--read     { background: #e9eef3; color: #4a5260; }
.cf-status--prog     { background: #fff4d6; color: #8a6d3b; }
.cf-status--replied  { background: #def4e1; color: #2a6e3b; }
.cf-status--closed   { background: #e5e9ee; color: #6b6b6b; }
.cf-status--other    { background: #f0e3ff; color: #5b2a8c; }

/* flag badges */
.cf-badge { display: inline-block; margin-right: 4px; padding: 2px 8px; border-radius: 10px; font-size: .75rem; font-weight: 600; }
.cf-badge--known { background: #e3f0ff; color: #114c8c; }
.cf-badge--dup   { background: #fff8e1; color: #8a6d3b; }
.cf-badge--spam  { background: #fdecea; color: #b94a4a; }

/* detail layout: two columns on wide screens, single column on mobile */
.cf-admin__layout { display: grid; gap: 18px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) {
    .cf-admin__layout { grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); }
}
.cf-admin__msg, .cf-admin__panel {
    background: #fff; border: 1px solid #e5e9ee; border-radius: 6px; padding: 14px 16px;
}
.cf-admin__panel { margin-bottom: 12px; }
.cf-admin__panel--reply { background: #f4f7fa; }
.cf-admin__meta { display: grid; grid-template-columns: 110px 1fr; gap: 6px 12px; margin: 8px 0 12px; }
.cf-admin__meta dt { color: #6b6b6b; font-weight: 600; }
.cf-admin__meta dd { margin: 0; }
.cf-admin__body { white-space: pre-wrap; background: #fafafa; border: 1px solid #eee; padding: 10px; border-radius: 4px; }
.cf-admin__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.cf-meta { margin: 6px 0 0 18px; padding: 0; }

/* flash messages on the detail page */
.cf-flash { margin-top: 10px; padding: 8px 12px; border-radius: 4px; font-size: .92rem; }
.cf-flash--ok    { background: #def4e1; color: #2a6e3b; }
.cf-flash--warn  { background: #fff8e1; color: #8a6d3b; }
.cf-flash--error { background: #fdecea; color: #b94a4a; }
