/* cl-membership-admin.css */
.cl-mem-admin h1 { display:flex; align-items:center; gap:8px; }
.cl-mem-stats { display:flex; gap:16px; margin:16px 0; }
.cl-mem-stat { background:#fff; border:1px solid #dcdcde; border-radius:4px; padding:12px 20px; min-width:160px; }
.cl-mem-stat-value { display:block; font-size:2em; font-weight:700; color:#224D24; }
.cl-mem-stat-label { display:block; font-size:.8em; color:#777; }
.cl-mem-filter-form { margin:12px 0; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.cl-mem-search-input { min-width:220px; }
.cl-mem-table th { white-space:nowrap; }
.cl-mem-row-warning td:first-child { border-left:3px solid #d63638; }
.cl-mem-badge { display:inline-block; padding:2px 7px; border-radius:10px; font-size:.75em; font-weight:700; }
.cl-mem-badge-existing { background:#fff3cd; color:#856404; }
.cl-mem-badge-new      { background:#d7edd9; color:#1a6b1a; }
.cl-mem-ok      { color:#1a6b1a; font-weight:600; }
.cl-mem-pending { color:#856404; font-weight:600; }
.cl-mem-missing { color:#999; }
.cl-mem-expired { color:#c00; font-weight:600; }
.cl-mem-expiring-soon { color:#d97706; font-weight:600; }
.cl-mem-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:16px; }
@media (max-width:900px) { .cl-mem-detail-grid { grid-template-columns:1fr; } }
.cl-mem-panel { background:#fff; border:1px solid #dcdcde; border-radius:4px; padding:20px 24px; }
.cl-mem-panel h2 { margin-top:0; font-size:1.1em; border-bottom:1px solid #eee; padding-bottom:8px; }

/* cl-membership.css — front-end registration form */

/* ── Y/N sign-up toggle ── */
.cl-signup-wrap { max-width:680px; margin:0 auto; }
.cl-signup-logged-in { padding:20px; text-align:center; }
.cl-signup-question { text-align:center; padding:32px 0; }
.cl-signup-question__heading { font-size:1.6em; margin:0 0 8px; color:#224D24; }
.cl-signup-question__sub { color:#555; margin:0 0 28px; font-size:1.05em; }
.cl-signup-choices { display:flex; gap:20px; justify-content:center; flex-wrap:wrap; }
.cl-signup-choice { display:flex; flex-direction:column; align-items:center; gap:6px;
    padding:24px 32px; min-width:200px; border:2px solid #ddd; border-radius:10px;
    background:#fff; cursor:pointer; transition:all .2s; }
.cl-signup-choice:hover { border-color:#224D24; box-shadow:0 2px 12px rgba(34,77,36,.12); }
.cl-signup-choice--active { border-color:#224D24; background:#f0f7f0; }
.cl-signup-choice--yes .cl-signup-choice__icon { font-size:2em; color:#1a6b1a; }
.cl-signup-choice--no  .cl-signup-choice__icon { font-size:2em; color:#C9A227; }
.cl-signup-choice__label { font-size:1.4em; font-weight:700; color:#1d2327; }
.cl-signup-choice__sub   { font-size:.85em; color:#777; }
.cl-signup-path { padding-top:8px; }
.cl-signup-path__back { margin-bottom:16px; }
.cl-signup-back { background:none; border:none; color:#224D24; cursor:pointer;
    font-size:.9em; padding:0; text-decoration:underline; }
.cl-signup-back:hover { color:#ECD544; }
.cl-signup-new-wrap { max-width:560px; }
.cl-signup-new-wrap h3 { color:#224D24; margin-top:0; }
.cl-signup-benefits { background:#f9f9f9; border-left:4px solid #224D24;
    padding:14px 20px; border-radius:0 6px 6px 0; margin:16px 0 24px; }
.cl-signup-benefits__list { margin:0; padding-left:0; list-style:none; }
.cl-signup-benefits__list li { padding:5px 0; font-size:.95em; }
.cl-signup-join-btn { display:inline-block !important; }
/* Buttons */
.cl-btn { display:inline-block; padding:10px 20px; border-radius:4px; font-weight:700;
    font-size:1em; cursor:pointer; border:2px solid transparent; text-decoration:none;
    transition:background .15s, color .15s; }
.cl-btn--primary { background:#224D24; color:#fff !important; border-color:#224D24; }
.cl-btn--primary:hover { background:#1a3b1c; border-color:#1a3b1c; }
.cl-btn--secondary { background:#fff; color:#224D24 !important; border-color:#224D24; }
.cl-btn--secondary:hover { background:#f0f7f0; }
.cl-btn--large { padding:14px 28px; font-size:1.1em; }

.cl-existing-member-form-wrap { max-width:680px; margin:0 auto; }
.cl-reg-intro { background:#f6f7f7; border-left:4px solid #224D24; padding:16px 20px; margin-bottom:24px; }
.cl-reg-intro h3 { margin:0 0 8px; color:#224D24; }
.cl-reg-fieldset { border:1px solid #ddd; border-radius:6px; padding:20px 24px; margin:0 0 20px; }
.cl-reg-fieldset legend { font-weight:700; padding:0 8px; color:#224D24; font-size:1.05em; }
.cl-reg-row { margin-bottom:16px; }
.cl-reg-row:last-child { margin-bottom:0; }
.cl-reg-row--half { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:540px) { .cl-reg-row--half { grid-template-columns:1fr; } }
.cl-reg-field label { display:block; font-weight:600; margin-bottom:4px; font-size:.9em; }
.cl-reg-field input[type="text"],
.cl-reg-field input[type="email"],
.cl-reg-field input[type="password"],
.cl-reg-field input[type="number"] { width:100%; padding:8px 12px; border:1px solid #ccc; border-radius:4px; font-size:1em; box-sizing:border-box; }
.cl-reg-field input:focus { border-color:#224D24; outline:none; box-shadow:0 0 0 2px rgba(34,77,36,.15); }
.cl-reg-field--narrow { max-width:280px; }
.cl-reg-field--checkbox label { font-weight:normal; display:flex; align-items:flex-start; gap:8px; }
.cl-reg-hint { color:#777; font-size:.85em; margin:4px 0 0; }
.required { color:#c00; }
.optional { color:#999; font-size:.85em; }
.cl-reg-vrm-wrap { display:flex; gap:8px; align-items:center; }
.cl-reg-vrm-input { max-width:160px !important; }
.cl-reg-vehicle-preview { background:#f6f7f7; border:1px solid #ddd; border-radius:4px; padding:14px 18px; margin-top:12px; }
.cl-reg-vehicle-preview h4 { margin:0 0 8px; color:#224D24; }
.cl-reg-vehicle-dl { display:grid; grid-template-columns:120px 1fr; gap:4px 12px; margin:0; }
.cl-reg-vehicle-dl dt { font-weight:600; color:#555; }
.cl-reg-vehicle-dl dd { margin:0; }
.cl-reg-field-status { font-size:.85em; margin-top:4px; min-height:1.2em; }
.cl-reg-ok      { color:#1a6b1a; }
.cl-reg-error   { color:#c00; }
.cl-reg-loading { color:#777; }
.cl-reg-submit-wrap { display:flex; align-items:center; gap:10px; margin-top:8px; }
.cl-reg-notice { padding:14px 18px; border-radius:4px; margin-bottom:16px; border:1px solid; }
.cl-reg-notice--error   { background:#fce8e8; border-color:#f5c6c6; color:#721c24; }
.cl-reg-notice--success { background:#d7edd9; border-color:#a3cfab; color:#1a6b1a; }
.cl-reg-notice ul { margin:4px 0 0; padding-left:20px; }
/* Membership info shortcode */
.cl-membership-info { display:flex; flex-wrap:wrap; gap:16px; padding:14px 18px; background:#f9f9f9; border:1px solid #ddd; border-radius:6px; margin:12px 0; }
.cl-mem-info-number { display:flex; flex-direction:column; min-width:140px; }
.cl-mem-info-dates  { display:flex; flex-wrap:wrap; gap:16px; }
.cl-mem-info-date-item { display:flex; flex-direction:column; }
.cl-mem-info-label  { font-size:.75em; color:#777; text-transform:uppercase; letter-spacing:.04em; }
.cl-mem-info-value  { font-size:1.2em; font-weight:700; }
.cl-mem-info--expired .cl-mem-info-value { color:#c00; }
.cl-mem-soon-badge, .cl-mem-expired-badge { display:inline-block; padding:1px 7px; border-radius:10px; font-size:.7em; font-weight:700; vertical-align:middle; }
.cl-mem-soon-badge    { background:#fff3cd; color:#856404; }
.cl-mem-expired-badge { background:#fce8e8; color:#c00; }
.cl-mem-info-pending  { color:#777; font-style:italic; font-size:.9em; }

/* Video hint link */
.cl-signup-video-hint { margin-top:24px; padding-top:20px; border-top:1px solid #eee; }
.cl-signup-video-link { display:inline-flex; align-items:center; gap:8px; color:#555;
    font-size:.9em; text-decoration:none; transition:color .15s; }
.cl-signup-video-link:hover { color:#224D24; }
.cl-signup-video-icon { display:inline-flex; align-items:center; justify-content:center;
    width:28px; height:28px; border-radius:50%; background:#224D24; color:#ECD544;
    font-size:.7em; flex-shrink:0; transition:background .15s; }
.cl-signup-video-link:hover .cl-signup-video-icon { background:#ECD544; color:#224D24; }
/* ── Vehicle radio groups ────────────────────────────────────────────────── */
.cl-reg-field--radio-group {
    padding: 16px 18px;
    background: #fafaf5;
    border: 1px solid #e6e6de;
    border-radius: 6px;
    margin-bottom: 18px;
}
.cl-reg-question-label {
    display: block;
    font-weight: 600;
    color: #2c541d;
    margin-bottom: 10px;
}
.cl-reg-radio {
    display: block;
    padding: 6px 0;
    cursor: pointer;
}
.cl-reg-radio input[type="radio"] {
    margin-right: 8px;
}
.cl-reg-vehicle-details {
    padding-top: 8px;
    border-top: 1px dashed #e6e6de;
    margin-top: 8px;
}
.cl-reg-vehicle-path {
    padding: 12px 0;
}
.cl-reg-intro-p {
    color: #666;
    font-style: italic;
    margin-bottom: 14px;
}
/* ── Address subsection ─────────────────────────────────────────────────── */
.cl-reg-subsection {
    margin: 18px 0;
    padding: 16px 18px;
    background: #fafaf5;
    border: 1px solid #e6e6de;
    border-radius: 6px;
}
.cl-reg-subheading {
    margin: 0 0 6px;
    color: #2c541d;
    font-size: 1em;
    font-weight: 700;
}

/* ── Password show/hide toggle ──────────────────────────────────────────── */
.cl-reg-password-wrap {
    position: relative;
}
.cl-reg-password-wrap input[type="password"],
.cl-reg-password-wrap input[type="text"] {
    padding-right: 44px;
    width: 100%;
    box-sizing: border-box;
}
.cl-reg-password-toggle {
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: 0;
    padding: 6px 10px;
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    color: #666;
}
.cl-reg-password-toggle:hover {
    color: #2c541d;
}
.cl-reg-eye {
    display: inline-block;
}

/* ── Password strength meter ────────────────────────────────────────────── */
.cl-reg-strength {
    margin-top: 6px;
}
.cl-reg-strength__bar {
    display: flex;
    gap: 4px;
    margin-bottom: 4px;
}
.cl-reg-strength__seg {
    flex: 1;
    height: 6px;
    background: #e6e6de;
    border-radius: 3px;
    transition: background 0.2s ease;
}
.cl-reg-strength__seg--active.cl-reg-strength__seg--weak   { background: #d4483a; }
.cl-reg-strength__seg--active.cl-reg-strength__seg--fair   { background: #e8a530; }
.cl-reg-strength__seg--active.cl-reg-strength__seg--strong { background: #6a9a3a; }
.cl-reg-strength__seg--active.cl-reg-strength__seg--best   { background: #2c541d; }
.cl-reg-strength__label {
    font-size: 0.85em;
    font-weight: 600;
    color: #666;
}
.cl-reg-strength__label--weak   { color: #d4483a; }
.cl-reg-strength__label--strong { color: #6a9a3a; }
.cl-reg-strength__label--best   { color: #2c541d; }
