/**
 * Hilanaw Community — Frontend Styles
 * Covers: profiles, discovery directory, pitch board, pitch form,
 *         shared components (buttons, tags, filters, modals, pagination),
 *         and dark mode overrides.
 *
 * Naming convention: .hc- prefix (hilanaw-community) — no conflicts
 * with Chat UI (.hilanaw-) or Elementor classes.
 *
 * @package Hilanaw_Community
 * @version 1.0.0
 */

/* ============================================================
   CUSTOM PROPERTIES
   ============================================================ */
:root {
    --hc-blue:        #0046a0;
    --hc-blue-light:  #eff6ff;
    --hc-blue-mid:    #3b82f6;
    --hc-green:       #16a34a;
    --hc-red:         #dc2626;
    --hc-amber:       #d97706;

    --hc-text:        #111827;
    --hc-text-mid:    #374151;
    --hc-text-soft:   #6b7280;
    --hc-text-faint:  #9ca3af;

    --hc-border:      #e5e7eb;
    --hc-border-mid:  #d1d5db;
    --hc-surface:     #ffffff;
    --hc-surface-alt: #f9fafb;
    --hc-surface-hover: #f3f4f6;

    --hc-radius:      12px;
    --hc-radius-sm:   8px;
    --hc-radius-lg:   16px;

    --hc-shadow:      0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);
    --hc-shadow-md:   0 4px 12px rgba(0,0,0,.1);
    --hc-shadow-lg:   0 8px 24px rgba(0,0,0,.12);

    --hc-transition:  0.18s ease;
    --hc-max-width:   1100px;
}

/* ============================================================
   SHARED LAYOUT
   ============================================================ */
.hc-profile-wrap,
.hc-discovery-wrap,
.hc-pitches-wrap,
.hc-pitch-form-wrap {
    max-width: var(--hc-max-width);
    margin: 0 auto;
    padding: 0 20px 60px;
    color: var(--hc-text);
    font-family: inherit;
    box-sizing: border-box;
}

.hc-page-header {
    padding: 40px 0 32px;
    border-bottom: 1px solid var(--hc-border);
    margin-bottom: 32px;
}

.hc-page-title {
    font-size: clamp(22px, 3vw, 32px);
    font-weight: 800;
    color: var(--hc-text);
    margin: 0 0 8px;
    line-height: 1.2;
}

.hc-page-subtitle {
    font-size: clamp(14px, 1.6vw, 16px);
    color: var(--hc-text-soft);
    margin: 0 0 16px;
}

.hc-gate-notice {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--hc-blue-light);
    border: 1px solid #bfdbfe;
    border-radius: var(--hc-radius-sm);
    padding: 10px 16px;
    font-size: 14px;
    color: var(--hc-blue);
    margin: 0;
}

.hc-gate-notice--upgrade {
    background: #fffbeb;
    border-color: #fcd34d;
    color: var(--hc-amber);
}

.hc-link {
    color: var(--hc-blue);
    font-weight: 600;
    text-decoration: none;
}
.hc-link:hover { text-decoration: underline; }

/* ============================================================
   BUTTONS
   ============================================================ */
.hc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px 20px;
    border-radius: var(--hc-radius-sm);
    font-size: 14px;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    border: 2px solid transparent;
    transition: background var(--hc-transition), border-color var(--hc-transition),
                color var(--hc-transition), box-shadow var(--hc-transition);
    text-decoration: none;
    white-space: nowrap;
    line-height: 1;
}

.hc-btn--primary {
    background: var(--hc-blue);
    color: #fff;
    border-color: var(--hc-blue);
}
.hc-btn--primary:hover {
    background: #003580;
    border-color: #003580;
}

.hc-btn--outline {
    background: transparent;
    color: var(--hc-blue);
    border-color: var(--hc-blue);
}
.hc-btn--outline:hover {
    background: var(--hc-blue-light);
}

.hc-btn--ghost {
    background: transparent;
    color: var(--hc-text-mid);
    border-color: var(--hc-border-mid);
}
.hc-btn--ghost:hover {
    background: var(--hc-surface-hover);
}

.hc-btn--danger {
    background: var(--hc-red);
    color: #fff;
    border-color: var(--hc-red);
}
.hc-btn--danger:hover { background: #b91c1c; }

.hc-btn--sm { padding: 7px 14px; font-size: 13px; }
.hc-btn:disabled { opacity: 0.5; cursor: not-allowed; }

/* ============================================================
   TAGS
   ============================================================ */
.hc-tag {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 100px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
}

.hc-tag--sector   { background: #dbeafe; color: #1e40af; }
.hc-tag--stage    { background: #dcfce7; color: #15803d; }
.hc-tag--capital  { background: #fef9c3; color: #854d0e; font-weight: 700; }

/* ============================================================
   FILTERS
   ============================================================ */
.hc-filters {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 28px;
    align-items: center;
}

.hc-filters__search { flex: 2; min-width: 0; }

.hc-filters__selects {
    display: flex;
    flex: 3;
    gap: 10px;
    flex-wrap: wrap;
}

.hc-search-input,
.hc-select {
    width: 100%;
    padding: 10px 14px;
    border: 1.5px solid var(--hc-border-mid);
    border-radius: var(--hc-radius-sm);
    font-size: 14px;
    font-family: inherit;
    color: var(--hc-text);
    background: var(--hc-surface);
    transition: border-color var(--hc-transition), box-shadow var(--hc-transition);
    box-sizing: border-box;
}

.hc-select { min-width: 160px; cursor: pointer; }

.hc-search-input:focus,
.hc-select:focus {
    outline: none;
    border-color: var(--hc-blue);
    box-shadow: 0 0 0 3px rgba(0,70,160,.12);
}

/* ============================================================
   GRID
   ============================================================ */
.hc-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 20px;
    margin-bottom: 32px;
}

/* ── Universal avatar image fix ─────────────────────────────────────
 * Ensures all profile/avatar images are always circular and cropped
 * correctly regardless of the image dimensions. Without this, tall
 * portrait images create non-uniform avatar sizes across dashboards.
 * ─────────────────────────────────────────────────────────────────── */
.hcd-interest-card__avatar img,
.hcp-request-card__photo,
.hcr-request-row__photo,
.hcr-identity__avatar img,
.hcd-report-request-card__avatar img,
.hcd-member-avatar img,
.hcpd-entrepreneur-card__photo,
.hcr-consent__funder-avatar img {
    border-radius: 50%;
    object-fit: cover;
    width: 100%;
    height: 100%;
    display: block;
}

/* ============================================================
   PROFILE CARD (discovery directory)
   ============================================================ */
.hc-profile-card {
    background: var(--hc-surface);
    border: 1.5px solid var(--hc-border);
    border-radius: var(--hc-radius);
    overflow: hidden;
    transition: box-shadow var(--hc-transition), border-color var(--hc-transition);
    display: flex;
    flex-direction: column;
}

.hc-profile-card:hover {
    box-shadow: var(--hc-shadow-md);
    border-color: var(--hc-border-mid);
}

.hc-profile-card__photo-link {
    display: block;
}

.hc-profile-card__photo {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    background: linear-gradient(135deg, #dbeafe 0%, #eff6ff 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 48px;
    font-weight: 700;
    color: var(--hc-blue);
    border-radius: 0;
}

.hc-profile-card__body {
    padding: 16px 18px 12px;
    flex: 1;
}

.hc-profile-card__name-link { text-decoration: none; }

.hc-profile-card__name {
    font-size: 17px;
    font-weight: 700;
    color: var(--hc-text);
    margin: 0 0 4px;
    line-height: 1.3;
}

.hc-profile-card__business {
    font-size: 13px;
    color: var(--hc-text-soft);
    margin: 0 0 10px;
}

.hc-profile-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 8px;
}

.hc-profile-card__location {
    font-size: 12px;
    color: var(--hc-text-faint);
    margin: 0 0 8px;
}

.hc-profile-card__bio {
    font-size: 13px;
    color: var(--hc-text-mid);
    line-height: 1.5;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.hc-profile-card__footer {
    padding: 12px 18px 16px;
    border-top: 1px solid var(--hc-border);
}

/* ============================================================
   PITCH CARD (pitch board)
   ============================================================ */
.hc-pitches-grid {
    grid-template-columns: repeat(auto-fill, minmax(min(340px, 100%), 1fr));
}

.hc-pitch-card {
    background: var(--hc-surface);
    border: 1.5px solid var(--hc-border);
    border-radius: var(--hc-radius);
    display: flex;
    flex-direction: column;
    transition: box-shadow var(--hc-transition), border-color var(--hc-transition);
    overflow: hidden;
}

.hc-pitch-card:hover {
    box-shadow: var(--hc-shadow-md);
    border-color: var(--hc-border-mid);
}

.hc-pitch-card__header {
    padding: 16px 18px 12px;
    border-bottom: 1px solid var(--hc-border);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
}

.hc-pitch-card__entrepreneur {
    display: flex;
    align-items: center;
    gap: 10px;
}

.hc-pitch-card__avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--hc-blue-light);
    overflow: hidden;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 14px;
    color: var(--hc-blue);
}

.hc-pitch-card__entrepreneur-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--hc-text);
    text-decoration: none;
    display: block;
    line-height: 1.3;
}

.hc-pitch-card__entrepreneur-name:hover { color: var(--hc-blue); }

.hc-pitch-card__location {
    font-size: 11px;
    color: var(--hc-text-faint);
    display: block;
}

.hc-pitch-card__tags {
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.hc-pitch-card__body {
    padding: 16px 18px;
    flex: 1;
}

.hc-pitch-card__name {
    font-size: 18px;
    font-weight: 700;
    color: var(--hc-text);
    margin: 0 0 6px;
    line-height: 1.3;
}

.hc-pitch-card__tagline {
    font-size: 14px;
    color: var(--hc-text-soft);
    margin: 0 0 16px;
    line-height: 1.5;
}

.hc-pitch-card__details { margin-bottom: 12px; }

.hc-pitch-detail-section { margin-bottom: 14px; }

.hc-pitch-detail-section h3 {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--hc-text-faint);
    margin: 0 0 6px;
}

.hc-pitch-card__description,
.hc-pitch-card__use-of-funds {
    font-size: 13px;
    color: var(--hc-text-mid);
    line-height: 1.6;
    margin: 0;
}

.hc-pitch-card__traction {
    margin: 0;
    padding: 0 0 0 16px;
}

.hc-pitch-card__traction li {
    font-size: 13px;
    color: var(--hc-text-mid);
    line-height: 1.5;
    margin-bottom: 4px;
}

/* Locked overlay (guest view) */
.hc-pitch-card__locked {
    background: var(--hc-surface-alt);
    border-radius: var(--hc-radius-sm);
    padding: 24px;
}

.hc-pitch-lock-overlay {
    text-align: center;
}

.hc-pitch-lock-overlay span { font-size: 28px; display: block; margin-bottom: 8px; }
.hc-pitch-lock-overlay p { font-size: 14px; color: var(--hc-text-soft); margin: 0 0 14px; }

.hc-pitch-card__footer {
    padding: 14px 18px 16px;
    border-top: 1px solid var(--hc-border);
    background: var(--hc-surface-alt);
}

.hc-pitch-card__financials {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 12px;
    font-size: 13px;
}

.hc-pitch-card__capital-label,
.hc-pitch-card__offering-label {
    color: var(--hc-text-faint);
}

.hc-pitch-card__capital-amount {
    color: var(--hc-text);
    font-weight: 700;
    font-size: 15px;
}

.hc-pitch-card__offering { color: var(--hc-text-mid); }
.hc-pitch-card__offering-sep { color: var(--hc-border-mid); }

.hc-pitch-card__actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

/* Pitch deck button — unavailable state (no deck uploaded) */
.hc-pitch-deck-btn--unavailable,
.hc-pitch-deck-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    pointer-events: none;
    filter: grayscale(1);
}

/* Pitch card — prevent content overflowing on narrow screens */
.hc-pitch-card__name,
.hc-pitch-card__tagline,
.hc-pitch-card__description,
.hc-pitch-card__use-of-funds,
.hc-pitch-card__entrepreneur-name {
    overflow-wrap: break-word;
    word-break: break-word;
}

/* Inline pitch card (on profile page) */
.hc-pitch-card--inline {
    padding: 16px 18px;
    border-radius: var(--hc-radius);
}

.hc-pitch-card--inline .hc-pitch-card__name { font-size: 16px; margin-bottom: 4px; }
.hc-pitch-card--inline .hc-pitch-card__tagline { margin-bottom: 10px; }
.hc-pitch-card--inline .hc-pitch-card__meta { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }

/* ============================================================
   INDIVIDUAL PROFILE PAGE
   ============================================================ */
.hc-profile-header {
    display: flex;
    gap: 28px;
    align-items: flex-start;
    padding: 36px 0 32px;
    border-bottom: 1px solid var(--hc-border);
    margin-bottom: 32px;
}

.hc-profile-photo-wrap { flex-shrink: 0; }

.hc-profile-photo {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--hc-border);
}

.hc-profile-photo--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--hc-blue-light);
    color: var(--hc-blue);
    font-size: 36px;
    font-weight: 700;
}

.hc-profile-name {
    font-size: clamp(20px, 2.5vw, 28px);
    font-weight: 800;
    margin: 0 0 4px;
    color: var(--hc-text);
}

.hc-profile-business {
    font-size: 15px;
    color: var(--hc-text-soft);
    margin: 0 0 12px;
}

.hc-profile-meta-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 14px;
}

.hc-profile-location { font-size: 13px; color: var(--hc-text-soft); }

.hc-profile-socials {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
}

.hc-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: var(--hc-surface-alt);
    border: 1.5px solid var(--hc-border);
    color: var(--hc-text-mid);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    transition: background var(--hc-transition), border-color var(--hc-transition);
}

.hc-social-link:hover {
    background: var(--hc-blue-light);
    border-color: var(--hc-blue);
    color: var(--hc-blue);
}

.hc-profile-investor-actions { margin-bottom: 14px; }

.hc-profile-section {
    padding: 28px 0;
    border-bottom: 1px solid var(--hc-border);
}

.hc-profile-section:last-child { border-bottom: none; }

.hc-profile-section-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--hc-text);
    margin: 0 0 14px;
}

.hc-profile-bio {
    font-size: 15px;
    color: var(--hc-text-mid);
    line-height: 1.7;
    margin: 0;
    white-space: pre-line;
}

/* Profile edit panel */
.hc-profile-edit-panel {
    margin-top: 32px;
    padding: 28px;
    background: var(--hc-surface-alt);
    border: 1.5px solid var(--hc-border);
    border-radius: var(--hc-radius);
}

/* ============================================================
   FORMS (shared between profile edit and pitch form)
   ============================================================ */
.hc-field-group {
    margin-bottom: 18px;
}

.hc-field-group label,
.hc-field-group legend {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--hc-text-mid);
    margin-bottom: 6px;
}

.hc-field-group input[type="text"],
.hc-field-group input[type="url"],
.hc-field-group input[type="number"],
.hc-field-group input[type="email"],
.hc-field-group select,
.hc-field-group textarea {
    width: 100%;
    padding: 10px 14px;
    border: 1.5px solid var(--hc-border-mid);
    border-radius: var(--hc-radius-sm);
    font-size: 14px;
    font-family: inherit;
    color: var(--hc-text);
    background: var(--hc-surface);
    transition: border-color var(--hc-transition), box-shadow var(--hc-transition);
    box-sizing: border-box;
}

.hc-field-group input:focus,
.hc-field-group select:focus,
.hc-field-group textarea:focus {
    outline: none;
    border-color: var(--hc-blue);
    box-shadow: 0 0 0 3px rgba(0,70,160,.12);
}

.hc-field-group textarea { resize: vertical; min-height: 100px; }

.hc-field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.hc-field-hint {
    display: block;
    font-size: 12px;
    color: var(--hc-text-faint);
    margin-top: 5px;
    line-height: 1.4;
}

.hc-field-group--required label::after {
    content: ' *';
    color: var(--hc-red);
}

.hc-optional { color: var(--hc-text-faint); font-weight: 400; font-size: 12px; }

.hc-toggle-label {
    display: flex !important;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    font-weight: 500 !important;
}

.hc-toggle-label input { width: auto; margin: 0; }

.hc-social-inputs { display: flex; flex-direction: column; gap: 8px; }

.hc-form-section {
    padding: 28px 0;
    border-bottom: 1px solid var(--hc-border);
}

.hc-form-section:last-of-type { border-bottom: none; }

.hc-form-section-title {
    font-size: 17px;
    font-weight: 700;
    color: var(--hc-text);
    margin: 0 0 20px;
}

.hc-form-actions {
    display: flex;
    gap: 12px;
    padding-top: 24px;
    flex-wrap: wrap;
}

.hc-edit-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 20px; }

.hc-form-feedback {
    margin-top: 14px;
    font-size: 14px;
    min-height: 20px;
}

.hc-form-feedback.is-success { color: var(--hc-green); }
.hc-form-feedback.is-error   { color: var(--hc-red); }

/* Capital input with currency prefix */
.hc-input-with-prefix {
    display: flex;
    gap: 0;
}

.hc-input-prefix-select {
    width: auto !important;
    border-right: none !important;
    border-radius: var(--hc-radius-sm) 0 0 var(--hc-radius-sm) !important;
    background: var(--hc-surface-alt) !important;
    flex-shrink: 0;
}

.hc-input-with-prefix input {
    border-radius: 0 var(--hc-radius-sm) var(--hc-radius-sm) 0 !important;
}

/* Traction inputs */
.hc-traction-inputs { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; }
.hc-traction-input { width: 100%; }

/* File input */
.hc-file-input {
    display: block;
    font-size: 14px;
    padding: 8px 0;
    color: var(--hc-text-mid);
}

/* Deck current indicator */
.hc-deck-current {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--hc-green);
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: var(--hc-radius-sm);
    padding: 10px 14px;
    margin-bottom: 14px;
}

/* Pitch status bar */
.hc-pitch-status-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    padding: 12px 16px;
    border-radius: var(--hc-radius-sm);
    font-size: 14px;
    margin-top: 16px;
}

.hc-pitch-status-bar--active {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    color: var(--hc-green);
}

.hc-pitch-status-bar--closed {
    background: #fafafa;
    border: 1px solid var(--hc-border);
    color: var(--hc-text-soft);
}

.hc-status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.hc-status-dot--active { background: var(--hc-green); }
.hc-status-dot--closed { background: var(--hc-text-faint); }

/* ============================================================
   SPINNER
   ============================================================ */
.hc-spinner {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    animation: hc-spin .7s linear infinite;
    opacity: .7;
    flex-shrink: 0;
}

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

.hc-loading-state {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 60px 20px;
    color: var(--hc-text-soft);
    font-size: 15px;
}

/* ============================================================
   EMPTY STATE
   ============================================================ */
.hc-empty-state {
    grid-column: 1 / -1;
    text-align: center;
    padding: 60px 20px;
    color: var(--hc-text-soft);
    font-size: 15px;
}

/* ============================================================
   PAGINATION
   ============================================================ */
.hc-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 24px 0;
}

.hc-pagination-info {
    font-size: 14px;
    color: var(--hc-text-soft);
    min-width: 80px;
    text-align: center;
}

/* ============================================================
   MODAL
   ============================================================ */
.hc-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.hc-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.5);
    cursor: pointer;
}

.hc-modal__box {
    position: relative;
    background: var(--hc-surface);
    border-radius: var(--hc-radius-lg);
    padding: 32px;
    max-width: 480px;
    width: 100%;
    box-shadow: var(--hc-shadow-lg);
    z-index: 1;
}

.hc-modal__box h2 { font-size: 20px; font-weight: 700; margin: 0 0 12px; }
.hc-modal__box p  { font-size: 15px; color: var(--hc-text-soft); line-height: 1.6; margin: 0 0 20px; }

.hc-modal__actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* ── Modal header (requests modal) ──────────────────────────────── */
.hc-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}
.hc-modal__header h2 {
    font-size: 20px;
    font-weight: 700;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}
.hc-modal__close {
    background: none;
    border: none;
    font-size: 18px;
    cursor: pointer;
    color: var(--hc-text-faint);
    padding: 4px 8px;
    border-radius: var(--hc-radius);
    line-height: 1;
    transition: background 0.15s;
}
.hc-modal__close:hover { background: var(--hc-bg); color: var(--hc-text); }

/* ── Requests modal box — taller, scrollable list ───────────────── */
.hc-modal__box--requests {
    max-width: 520px;
    max-height: 85vh;
    display: flex;
    flex-direction: column;
    padding: 24px 24px 0;
}
.hcp-requests-list {
    overflow-y: auto;
    flex: 1;
    padding-bottom: 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* ── Request card ───────────────────────────────────────────────── */
.hcp-request-card {
    display: flex;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--hc-border);
    border-radius: var(--hc-radius-lg);
    background: var(--hc-bg);
    transition: opacity 0.3s, transform 0.3s;
}
.hcp-request-card.is-actioned {
    opacity: 0.45;
    pointer-events: none;
}
.hcp-request-card__avatar { flex-shrink: 0; }
.hcp-request-card__photo {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
}
.hcp-request-card__photo--placeholder {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--hc-blue);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    font-weight: 700;
}
.hcp-request-card__body { flex: 1; min-width: 0; }
.hcp-request-card__name {
    font-size: 15px;
    font-weight: 700;
    color: var(--hc-text);
    text-decoration: none;
    display: block;
    margin-bottom: 2px;
}
.hcp-request-card__name:hover { color: var(--hc-blue); text-decoration: underline; }
.hcp-request-card__business {
    font-size: 13px;
    color: var(--hc-text-soft);
    margin: 0 0 6px;
}
.hcp-request-card__message {
    font-size: 13px;
    color: var(--hc-text-soft);
    font-style: italic;
    margin: 0 0 10px;
    line-height: 1.5;
    border-left: 2px solid var(--hc-border);
    padding-left: 8px;
}
.hcp-request-card__actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.hcp-request-card__feedback {
    font-size: 12px;
    margin-top: 6px;
    min-height: 16px;
}

/* ── Empty / all caught up state ────────────────────────────────── */
.hcp-requests-empty {
    text-align: center;
    padding: 40px 20px;
    color: var(--hc-text-soft);
}
.hcp-requests-empty__icon { font-size: 36px; display: block; margin-bottom: 8px; }
.hcp-requests-empty p { margin: 0; font-size: 15px; }

/* ── Requests badge on button ───────────────────────────────────── */
.hc-requests-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--hc-blue);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    min-width: 18px;
    height: 18px;
    border-radius: 9px;
    padding: 0 5px;
    margin-left: 4px;
    line-height: 1;
}
.hc-requests-badge--modal {
    font-size: 13px;
    min-width: 22px;
    height: 22px;
    border-radius: 11px;
}

.hc-requests-badge--modal {
    font-size: 13px;
    min-width: 22px;
    height: 22px;
    border-radius: 11px;
}

/* ── Pitch detail page (/pitch/?id=N) ────────────────────────────── */
.hcpd-wrap {
    max-width: 960px;
    margin: 0 auto;
    padding: 24px 20px 60px;
}

.hcpd-breadcrumb {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--hc-text-faint);
    margin-bottom: 24px;
}

.hcpd-breadcrumb__link {
    color: var(--hc-blue);
    text-decoration: none;
}
.hcpd-breadcrumb__link:hover { text-decoration: underline; }
.hcpd-breadcrumb__sep { color: var(--hc-border-mid); }
.hcpd-breadcrumb__current { color: var(--hc-text-soft); }

/* Loading state */
.hcpd-loading {
    text-align: center;
    padding: 60px 20px;
    color: var(--hc-text-faint);
}

.hcpd-loading__spinner {
    width: 36px;
    height: 36px;
    border: 3px solid var(--hc-border);
    border-top-color: var(--hc-blue);
    border-radius: 50%;
    animation: hcpd-spin 0.8s linear infinite;
    margin: 0 auto 16px;
}

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

/* Error state */
.hcpd-error-state {
    text-align: center;
    padding: 60px 20px;
    color: var(--hc-text-soft);
}
.hcpd-error-state__msg { margin-bottom: 20px; }

/* Two-column layout on wide screens */
.hcpd-content {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 24px;
    align-items: start;
}

/* ── Entrepreneur card (left column) ────────────────────────────── */
.hcpd-entrepreneur-card {
    background: var(--hc-surface);
    border: 1px solid var(--hc-border);
    border-radius: var(--hc-radius-lg);
    padding: 24px;
    position: sticky;
    top: 24px;
}

.hcpd-entrepreneur-card__identity {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 16px;
}

.hcpd-entrepreneur-card__avatar {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
}

.hcpd-entrepreneur-card__photo {
    width: 56px !important;
    height: 56px !important;
    min-width: 56px;
    min-height: 56px;
    max-width: 56px !important;
    max-height: 56px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    flex-shrink: 0;
    display: block;
}

.hcpd-entrepreneur-card__photo--placeholder {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--hc-blue);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    font-weight: 700;
    flex-shrink: 0;
}

.hcpd-entrepreneur-card__info { flex: 1; min-width: 0; }

.hcpd-entrepreneur-card__name {
    display: block;
    font-size: 15px;
    font-weight: 700;
    color: var(--hc-text);
    text-decoration: none;
    margin-bottom: 2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.hcpd-entrepreneur-card__name:hover { color: var(--hc-blue); text-decoration: underline; }

.hcpd-entrepreneur-card__location {
    font-size: 12px;
    color: var(--hc-text-faint);
    margin: 0 0 6px;
}

.hcpd-entrepreneur-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.hcpd-entrepreneur-card__bio {
    font-size: 13px;
    color: var(--hc-text-soft);
    line-height: 1.6;
    margin: 0 0 14px;
    overflow-wrap: break-word;
}

.hcpd-entrepreneur-card__socials {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--hc-border);
}

.hcpd-social-link {
    font-size: 12px;
    color: var(--hc-blue);
    text-decoration: none;
}
.hcpd-social-link:hover { text-decoration: underline; }

.hcpd-entrepreneur-card__actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.hcpd-entrepreneur-card__actions .hc-btn { width: 100%; justify-content: center; }

/* ── Pitch card (right column) ───────────────────────────────────── */
.hcpd-pitch-card {
    background: var(--hc-surface);
    border: 1px solid var(--hc-border);
    border-radius: var(--hc-radius-lg);
    overflow: hidden;
    position: relative;
}

.hcpd-pitch-card__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    padding: 28px 28px 20px;
    border-bottom: 1px solid var(--hc-border);
    flex-wrap: wrap;
}

.hcpd-pitch-card__title {
    font-size: 24px;
    font-weight: 800;
    color: var(--hc-text);
    margin: 0 0 6px;
    line-height: 1.2;
    overflow-wrap: break-word;
}

.hcpd-pitch-card__tagline {
    font-size: 15px;
    color: var(--hc-text-soft);
    font-style: italic;
    margin: 0;
    line-height: 1.5;
}

.hcpd-pitch-card__header-tags {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    flex-shrink: 0;
}

/* Financials bar */
.hcpd-financials-bar {
    display: flex;
    gap: 0;
    border-bottom: 1px solid var(--hc-border);
}

.hcpd-fin-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 16px 28px;
    border-right: 1px solid var(--hc-border);
}
.hcpd-fin-item:last-child { border-right: none; }

.hcpd-fin-item__label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--hc-text-faint);
}
.hcpd-fin-item__value {
    font-size: 20px;
    font-weight: 800;
    color: var(--hc-text);
}

/* Body */
.hcpd-pitch-body {
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.hcpd-pitch-section__title {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--hc-text-faint);
    margin: 0 0 10px;
}

.hcpd-pitch-section__content {
    font-size: 15px;
    color: var(--hc-text-soft);
    line-height: 1.75;
    margin: 0;
    white-space: pre-wrap;
    overflow-wrap: break-word;
}

.hcpd-traction-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.hcpd-traction-list li {
    font-size: 15px;
    color: var(--hc-text-soft);
    padding-left: 22px;
    position: relative;
    line-height: 1.5;
}

.hcpd-traction-list li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--hc-blue);
    font-weight: 700;
}

.hcpd-external-link {
    font-size: 14px;
    color: var(--hc-blue);
    word-break: break-all;
}

/* Locked overlay */
.hcpd-locked {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent 30%, var(--hc-surface) 60%);
    display: flex;
    align-items: flex-end;
    padding: 40px;
}

.hcpd-locked[hidden] { display: none !important; }

.hcpd-locked__inner {
    background: var(--hc-surface);
    border: 1px solid var(--hc-border);
    border-radius: var(--hc-radius-lg);
    padding: 28px;
    text-align: center;
    width: 100%;
    box-shadow: var(--hc-shadow-md);
}

.hcpd-locked__icon { font-size: 32px; display: block; margin-bottom: 12px; }
.hcpd-locked__msg  { font-size: 14px; color: var(--hc-text-soft); margin: 0 0 16px; }

/* Pitch footer actions */
.hcpd-pitch-footer {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    padding: 20px 28px;
    border-top: 1px solid var(--hc-border);
    background: var(--hc-surface-alt);
}

/* ── Mobile — stack to single column ────────────────────────────── */
@media (max-width: 760px) {
    .hcpd-content {
        grid-template-columns: 1fr;
    }

    .hcpd-entrepreneur-card {
        position: static;
    }

    .hcpd-entrepreneur-card__actions .hc-btn {
        width: auto;
    }

    .hcpd-pitch-card__header { padding: 20px 20px 16px; }
    .hcpd-pitch-card__title  { font-size: 20px; }
    .hcpd-financials-bar     { flex-wrap: wrap; }
    .hcpd-fin-item           { padding: 12px 20px; border-right: none; border-bottom: 1px solid var(--hc-border); }
    .hcpd-fin-item:last-child { border-bottom: none; }
    .hcpd-pitch-body         { padding: 20px; gap: 20px; }
    .hcpd-pitch-footer       { padding: 16px 20px; }
    .hcpd-locked             { padding: 20px; }
}

/* ── Funder / investor / org profile cards ──────────────────────── */
.hcp-zone--funder {
    padding: 32px 0;
    border-top: 1px solid var(--hc-border);
}

.hcp-zone--funder .hcp-zone-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--hc-text);
    margin: 0 0 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.hcp-funder-stats {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 24px;
    padding: 16px 20px;
    background: var(--hc-surface);
    border: 1px solid var(--hc-border);
    border-radius: var(--hc-radius-lg);
}

.hcp-funder-stat {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 80px;
}

.hcp-funder-stat__value {
    font-size: 22px;
    font-weight: 800;
    color: var(--hc-text);
    line-height: 1;
}

.hcp-funder-stat__label {
    font-size: 11px;
    color: var(--hc-text-faint);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.hcp-funder-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(200px, 100%), 1fr));
    gap: 12px;
    margin-bottom: 20px;
}

.hcp-funder-card {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 16px;
    background: var(--hc-surface);
    border: 1px solid var(--hc-border);
    border-radius: var(--hc-radius-lg);
    transition: border-color var(--hc-transition), box-shadow var(--hc-transition);
}

.hcp-funder-card:hover {
    border-color: var(--hc-border-mid);
    box-shadow: var(--hc-shadow-sm);
}

.hcp-funder-card__icon { font-size: 22px; flex-shrink: 0; line-height: 1; }
.hcp-funder-card__body { min-width: 0; }
.hcp-funder-card__label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--hc-text-faint);
    margin: 0 0 4px;
}
.hcp-funder-card__value {
    font-size: 14px;
    font-weight: 600;
    color: var(--hc-text);
    margin: 0;
    overflow-wrap: break-word;
}

.hcp-funder-sectors { margin-top: 20px; }
.hcp-funder-sectors__label {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--hc-text-faint);
    margin: 0 0 12px;
}

.hcp-funder-mission,
.hcp-funder-criteria {
    margin-top: 20px;
    padding: 20px;
    background: var(--hc-surface);
    border: 1px solid var(--hc-border);
    border-left: 3px solid var(--hc-blue);
    border-radius: var(--hc-radius-lg);
}

.hcp-funder-mission__label,
.hcp-funder-criteria__label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--hc-text-faint);
    margin: 0 0 10px;
    display: block;
}

.hcp-funder-mission__text,
.hcp-funder-criteria__text {
    font-size: 14px;
    color: var(--hc-text-soft);
    line-height: 1.7;
    margin: 0;
    white-space: pre-wrap;
    overflow-wrap: break-word;
}

.hcp-funder-empty {
    font-size: 14px;
    color: var(--hc-text-faint);
    font-style: italic;
    margin: 0;
    padding: 24px;
    text-align: center;
    background: var(--hc-surface);
    border: 1px dashed var(--hc-border);
    border-radius: var(--hc-radius-lg);
}

/* Funder profile — no pitch/journey below, so add a comfortable bottom padding */
.hcpd-wrap + .hcp-zone--funder,
.hcp-zone--funder:last-child {
    padding-bottom: 48px;
}

.hc-not-found,
.hc-private,
.hc-access-notice {
    text-align: center;
    padding: 60px 20px;
    color: var(--hc-text-soft);
    font-size: 15px;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 680px) {
    .hc-profile-header { flex-direction: column; gap: 16px; }
    .hc-profile-photo  { width: 72px; height: 72px; }
    .hc-field-row      { grid-template-columns: 1fr; }
    .hc-select         { min-width: auto; }
    .hc-form-actions   { flex-direction: column; }

    /* ── Discovery filters: single row — search 60% / sector 40% ──── */
    .hc-discovery-wrap .hc-filters          { flex-wrap: nowrap; align-items: stretch; }
    .hc-discovery-wrap .hc-filters__search  { flex: 0 0 60%; min-width: 0; }
    .hc-discovery-wrap .hc-filters__selects { flex: 0 0 calc(40% - 12px); }

    /* ── Pitch board filters ───────────────────────────────────────────
     *  Row 1: search (60%) + sector (40%)
     *  Row 2: stage (50%) + order (50%)
     *
     *  The __selects div holds all 3 selects. We lay the whole filter
     *  area as a 10-column grid so we can place each child precisely:
     *    col 1-6  = search
     *    col 7-10 = sector   (row 1)
     *    col 1-5  = stage    (row 2)
     *    col 6-10 = order    (row 2)
     * ──────────────────────────────────────────────────────────────── */
    .hc-pitches-wrap .hc-filters {
        display: grid;
        grid-template-columns: repeat(10, 1fr);
        gap: 10px;
    }
    .hc-pitches-wrap .hc-filters__search {
        grid-column: 1 / 7;
    }
    .hc-pitches-wrap .hc-filters__selects {
        grid-column: 7 / 11;
        display: contents; /* children participate directly in parent grid */
    }
    .hc-pitches-wrap .hc-filters__selects .hc-select:nth-child(1) { grid-column: 7 / 11; }
    .hc-pitches-wrap .hc-filters__selects .hc-select:nth-child(2) { grid-column: 1 / 6;  }
    .hc-pitches-wrap .hc-filters__selects .hc-select:nth-child(3) { grid-column: 6 / 11; }

    /* Pitch card — prevent horizontal overflow on mobile */
    .hc-pitch-card { min-width: 0; max-width: 100%; }
    .hc-pitch-card__header { flex-wrap: wrap; }
    .hc-pitch-card__financials { font-size: 12px; }
    .hc-pitch-card__actions {
        flex-direction: column;
        gap: 8px;
    }
    .hc-pitch-card__actions .hc-btn {
        width: 100%;
        text-align: center;
        justify-content: center;
    }
}

/* ============================================================
   DARK MODE
   ============================================================ */
body.hilanaw-dark-mode {
    --hc-text:          #f3f4f6;
    --hc-text-mid:      #d1d5db;
    --hc-text-soft:     #9ca3af;
    --hc-text-faint:    #6b7280;
    --hc-border:        #374151;
    --hc-border-mid:    #4b5563;
    --hc-surface:       #1f2937;
    --hc-surface-alt:   #111827;
    --hc-surface-hover: #263346;
    --hc-blue-light:    #1e3a5f;
    --hc-shadow:        0 1px 3px rgba(0,0,0,.3);
    --hc-shadow-md:     0 4px 12px rgba(0,0,0,.4);
    --hc-shadow-lg:     0 8px 24px rgba(0,0,0,.5);
}

body.hilanaw-dark-mode .hc-gate-notice {
    background: #1e3a5f;
    border-color: #1d4ed8;
    color: #93c5fd;
}

body.hilanaw-dark-mode .hc-gate-notice--upgrade {
    background: #292524;
    border-color: #78350f;
    color: #fcd34d;
}

body.hilanaw-dark-mode .hc-tag--sector   { background: #1e3a5f; color: #93c5fd; }
body.hilanaw-dark-mode .hc-tag--stage    { background: #14532d; color: #86efac; }
body.hilanaw-dark-mode .hc-tag--capital  { background: #292524; color: #fcd34d; }

body.hilanaw-dark-mode .hc-pitch-card__footer { background: #111827; }

body.hilanaw-dark-mode .hc-deck-current {
    background: #14532d;
    border-color: #166534;
    color: #86efac;
}

body.hilanaw-dark-mode .hc-pitch-status-bar--active {
    background: #14532d;
    border-color: #166534;
    color: #86efac;
}

body.hilanaw-dark-mode .hc-pitch-status-bar--closed {
    background: #1f2937;
    border-color: #374151;
    color: #9ca3af;
}

body.hilanaw-dark-mode .hc-profile-edit-panel {
    background: #111827;
    border-color: #374151;
}

body.hilanaw-dark-mode .hc-pitch-lock-overlay p { color: #9ca3af; }
body.hilanaw-dark-mode .hc-pitch-card__locked   { background: #111827; }

/* ============================================================
   PROFILE PAGE — MILESTONE 5 ADDITIONS
   Zone-based layout: Identity, Journey, Certificates, Actions
   ============================================================ */

/* ── Wrap ────────────────────────────────────────────────────────── */
.hcp-wrap {
    max-width: var(--hc-max-width);
    margin: 0 auto;
    padding: 0 20px 60px;
    box-sizing: border-box;
}

/* ── Identity zone ───────────────────────────────────────────────── */
.hcp-identity {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 24px;
    align-items: start;
    padding: 36px 0 28px;
    border-bottom: 1px solid var(--hc-border);
    margin-bottom: 0;
}

/* .hcp-identity__photo-col — defined in PHOTO UPLOAD section below */

.hcp-identity__photo-wrap {
    position: relative;
    display: inline-block;
    width: 96px;
    height: 96px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
}

.hcp-identity__photo {
    width: 96px !important;
    height: 96px !important;
    min-width: 96px;
    min-height: 96px;
    max-width: 96px !important;
    max-height: 96px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    border: 3px solid var(--hc-border);
    display: block;
    flex-shrink: 0;
}

.hcp-identity__photo--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--hc-blue-light);
    color: var(--hc-blue);
    font-size: 36px;
    font-weight: 700;
}

/* Investor badge variant */
.hcp-stage-badge--investor {
    background: #0f766e; /* teal */
}

/* Organisation badge variant */
.hcp-stage-badge--org {
    background: #7c3aed; /* violet */
}

.hcp-stage-badge {
    position: absolute;
    bottom: -6px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--hc-blue);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 100px;
    white-space: nowrap;
}

.hcp-identity__name {
    font-size: clamp(20px, 2.5vw, 28px);
    font-weight: 800;
    margin: 0 0 4px;
    color: var(--hc-text);
    line-height: 1.2;
}

.hcp-identity__business {
    font-size: 14px;
    color: var(--hc-text-soft);
    margin: 0 0 10px;
}

.hcp-identity__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    align-items: center;
    margin-bottom: 12px;
}

.hcp-cert-count {
    font-size: 12px;
    font-weight: 600;
    color: #b45309;
    background: #fef9c3;
    padding: 3px 10px;
    border-radius: 100px;
}

.hcp-identity__location {
    font-size: 13px;
    color: var(--hc-text-soft);
}

.hcp-identity__bio {
    font-size: 14px;
    color: var(--hc-text-mid);
    line-height: 1.7;
    margin: 0 0 12px;
    white-space: pre-line;
}

.hcp-identity__socials {
    display: flex;
    gap: 7px;
}

.hcp-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: var(--hc-surface-alt);
    border: 1.5px solid var(--hc-border);
    color: var(--hc-text-mid);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    transition: background var(--hc-transition), color var(--hc-transition), border-color var(--hc-transition);
}

.hcp-social-link:hover {
    background: var(--hc-blue-light);
    border-color: var(--hc-blue);
    color: var(--hc-blue);
}

/* Action zone */
.hcp-action-zone {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: flex-end;
    min-width: 160px;
}

.hcp-action-hint {
    font-size: 11px;
    color: var(--hc-text-faint);
    text-align: right;
    margin: 0;
    line-height: 1.4;
    max-width: 160px;
}

/* ── Profile zones ───────────────────────────────────────────────── */
.hcp-zone {
    padding: 32px 0;
    border-top: 1px solid var(--hc-border);
}

.hcp-zone-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--hc-text);
    margin: 0 0 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.hcp-zone-count {
    background: var(--hc-blue);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    border-radius: 100px;
    min-width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 7px;
}

.hcp-subsection-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--hc-text-mid);
    text-transform: uppercase;
    letter-spacing: .05em;
    margin: 24px 0 12px;
}

/* ── Journey zone ────────────────────────────────────────────────── */
.hcp-stage-progress {
    background: var(--hc-surface-alt);
    border: 1.5px solid var(--hc-border);
    border-radius: var(--hc-radius);
    padding: 20px;
    margin-bottom: 20px;
}

.hcp-stage-progress__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 12px;
    gap: 12px;
}

.hcp-stage-progress__current {
    font-size: 15px;
    font-weight: 700;
    color: var(--hc-text);
    display: block;
    margin-bottom: 4px;
}

.hcp-stage-progress__module {
    font-size: 12px;
    color: var(--hc-text-soft);
    display: block;
}

.hcp-stage-progress__pct {
    font-size: 22px;
    font-weight: 800;
    color: var(--hc-blue);
    flex-shrink: 0;
}

.hcp-progress-bar {
    height: 8px;
    background: var(--hc-border);
    border-radius: 100px;
    overflow: hidden;
    margin-bottom: 16px;
}

.hcp-progress-bar__fill {
    height: 100%;
    background: linear-gradient(90deg, var(--hc-blue) 0%, #3b82f6 100%);
    border-radius: 100px;
    transition: width .6s ease;
}

/* Stage dots */
.hcp-stage-dots {
    display: flex;
    gap: 0;
    position: relative;
}

.hcp-stage-dots::before {
    content: '';
    position: absolute;
    top: 7px;
    left: 7px;
    right: 7px;
    height: 2px;
    background: var(--hc-border);
    z-index: 0;
}

.hcp-stage-dot {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    position: relative;
    z-index: 1;
}

.hcp-stage-dot::before {
    content: '';
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--hc-border);
    border: 2px solid var(--hc-surface-alt);
    flex-shrink: 0;
}

.hcp-stage-dot.is-complete::before {
    background: var(--hc-blue);
    border-color: var(--hc-blue);
}

.hcp-stage-dot.is-current::before {
    background: var(--hc-blue);
    border-color: #fff;
    box-shadow: 0 0 0 3px var(--hc-blue);
}

.hcp-stage-dot__label {
    font-size: 10px;
    color: var(--hc-text-faint);
    text-align: center;
    line-height: 1.2;
    white-space: nowrap;
}

.hcp-stage-dot.is-current .hcp-stage-dot__label,
.hcp-stage-dot.is-complete .hcp-stage-dot__label {
    color: var(--hc-blue);
    font-weight: 600;
}

/* Journey stats */
.hcp-journey-stats {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 12px;
    margin-bottom: 24px;
}

.hcp-journey-stat {
    background: var(--hc-surface);
    border: 1.5px solid var(--hc-border);
    border-radius: var(--hc-radius-sm);
    padding: 14px 16px;
    text-align: center;
}

.hcp-journey-stat__value {
    display: block;
    font-size: 24px;
    font-weight: 800;
    color: var(--hc-blue);
    line-height: 1;
    margin-bottom: 5px;
}

.hcp-journey-stat__label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: var(--hc-text-faint);
    text-transform: uppercase;
    letter-spacing: .05em;
}

/* Milestones */
.hcp-milestones {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.hcp-milestone {
    background: var(--hc-surface);
    border: 1.5px solid var(--hc-border);
    border-left: 4px solid var(--hc-blue);
    border-radius: var(--hc-radius-sm);
    padding: 14px 16px;
}

.hcp-milestone__header {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin-bottom: 8px;
}

.hcp-milestone__icon { font-size: 18px; flex-shrink: 0; }

.hcp-milestone__title {
    font-size: 14px;
    font-weight: 700;
    color: var(--hc-text);
    margin: 0 0 3px;
}

.hcp-milestone__meta {
    font-size: 12px;
    color: var(--hc-text-faint);
    margin: 0;
}

.hcp-milestone__summary {
    font-size: 13px;
    color: var(--hc-text-soft);
    line-height: 1.5;
    margin: 0 0 8px;
}

.hcp-milestone__skills {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

/* Skills cloud */
.hcp-skills-cloud {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.hcp-skill-tag {
    background: var(--hc-blue-light);
    color: var(--hc-blue);
    font-size: 12px;
    font-weight: 600;
    padding: 4px 12px;
    border-radius: 100px;
    border: 1px solid #bfdbfe;
}

/* Pitch preview strip */
.hcp-pitch-preview {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    background: var(--hc-surface-alt);
    border: 1.5px solid var(--hc-border);
    border-radius: var(--hc-radius-sm);
    padding: 12px 16px;
    margin-top: 20px;
}

.hcp-pitch-preview__label {
    font-size: 12px;
    font-weight: 700;
    color: var(--hc-text-faint);
    text-transform: uppercase;
    letter-spacing: .05em;
}

.hcp-pitch-preview__name {
    font-size: 14px;
    font-weight: 700;
    color: var(--hc-text);
}

.hcp-pitch-preview__link {
    font-size: 13px;
    color: var(--hc-blue);
    text-decoration: none;
    margin-left: auto;
    white-space: nowrap;
}

.hcp-pitch-preview__link:hover { text-decoration: underline; }

/* ── Certificates zone ───────────────────────────────────────────── */
.hcp-certs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 16px;
}

.hcp-cert-card {
    background: var(--hc-surface);
    border: 2px solid var(--hc-border);
    border-radius: var(--hc-radius);
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    transition: box-shadow var(--hc-transition);
}

.hcp-cert-card:hover { box-shadow: var(--hc-shadow-md); }

.hcp-cert-card--stage  { border-top: 4px solid #16a34a; }
.hcp-cert-card--track  { border-top: 4px solid #1e3a8a; }
.hcp-cert-card--master { border-top: 4px solid #b45309; }

.hcp-cert-card__icon { font-size: 28px; }

.hcp-cert-card__tier {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--hc-text-faint);
    margin: 0;
}

.hcp-cert-card--stage  .hcp-cert-card__tier { color: #16a34a; }
.hcp-cert-card--track  .hcp-cert-card__tier { color: #1e3a8a; }
.hcp-cert-card--master .hcp-cert-card__tier { color: #b45309; }

.hcp-cert-card__title {
    font-size: 14px;
    font-weight: 700;
    color: var(--hc-text);
    margin: 0;
    line-height: 1.3;
}

.hcp-cert-card__entity {
    font-size: 12px;
    color: var(--hc-text-soft);
    margin: 0;
}

.hcp-cert-card__date {
    font-size: 12px;
    color: var(--hc-text-faint);
    margin: 0;
}

.hcp-cert-card__footer { margin-top: auto; }

.hcp-cert-verify-link {
    font-size: 13px;
    font-weight: 600;
    color: var(--hc-blue);
    text-decoration: none;
}

.hcp-cert-verify-link:hover { text-decoration: underline; }

/* ── Responsive ──────────────────────────────────────────────────── */
@media (max-width: 680px) {
    .hcp-identity {
        grid-template-columns: auto 1fr;
        grid-template-rows: auto auto;
    }
    .hcp-action-zone {
        grid-column: 1 / -1;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 8px;
    }
    .hcp-action-hint { text-align: left; }
    .hcp-stage-dot__label { display: none; }
}

/* ── Dark mode additions ─────────────────────────────────────────── */
body.hilanaw-dark-mode .hcp-stage-progress { background: #111827; border-color: #374151; }
body.hilanaw-dark-mode .hcp-progress-bar   { background: #374151; }
body.hilanaw-dark-mode .hcp-journey-stat   { background: #1f2937; border-color: #374151; }
body.hilanaw-dark-mode .hcp-milestone      { background: #1f2937; border-color: #374151; border-left-color: #3b82f6; }
body.hilanaw-dark-mode .hcp-skill-tag      { background: #1e3a5f; color: #93c5fd; border-color: #1d4ed8; }
body.hilanaw-dark-mode .hcp-cert-card      { background: #1f2937; border-color: #374151; }
body.hilanaw-dark-mode .hcp-cert-card--stage  { border-top-color: #16a34a; }
body.hilanaw-dark-mode .hcp-cert-card--track  { border-top-color: #3b82f6; }
body.hilanaw-dark-mode .hcp-cert-card--master { border-top-color: #d97706; }
body.hilanaw-dark-mode .hcp-pitch-preview  { background: #111827; border-color: #374151; }
body.hilanaw-dark-mode .hcp-stage-dots::before { background: #374151; }
body.hilanaw-dark-mode .hcp-stage-dot::before  { background: #374151; border-color: #111827; }

/* ============================================================
   PHOTO UPLOAD — profile page + dashboards
   ============================================================ */

/* Photo column centres the avatar + button + feedback vertically */
.hcp-identity__photo-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
}

.hcp-photo-upload-btn,
.hcd-photo-upload-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-top: 8px;
    padding: 4px 10px;
    border-radius: 20px;
    background: var(--hc-blue);
    color: #fff;
    border: none;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: background var(--hc-transition);
    line-height: 1.4;
}

.hcp-photo-upload-btn:hover,
.hcd-photo-upload-btn:hover { background: #003580; }

.hcp-photo-feedback {
    font-size: 13px;
    min-height: 18px;
    margin-bottom: 14px;
}
.hcp-photo-feedback.is-success { color: var(--hc-green); }
.hcp-photo-feedback.is-error   { color: var(--hc-red); }

/* ── Profile photo lightbox ──────────────────────────────────────── */
.hcp-photo-lightbox {
    position: fixed;
    inset: 0;
    z-index: 999999;
    background: rgba(0, 0, 0, 0.85);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: zoom-out;
    animation: hcp-lightbox-in 0.2s ease;
}

@keyframes hcp-lightbox-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.hcp-photo-lightbox img {
    max-width: 90vw;
    max-height: 90vh;
    object-fit: contain;
    border-radius: var(--hc-radius);
    box-shadow: 0 25px 60px rgba(0,0,0,0.5);
    cursor: default;
}

.hcp-photo-lightbox__close {
    position: absolute;
    top: 16px;
    right: 16px;
    background: rgba(255,255,255,0.15);
    border: none;
    color: #fff;
    font-size: 22px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s;
}

.hcp-photo-lightbox__close:hover { background: rgba(255,255,255,0.3); }

/* Make the avatar clickable */
.hcp-identity__photo-wrap--clickable { cursor: zoom-in; }

/* Access denied message */
.hcd-access-denied {
    text-align: center;
    padding: 80px 20px;
    max-width: 400px;
    margin: 0 auto;
}
.hcd-access-denied__icon { font-size: 48px; margin-bottom: 16px; }
.hcd-access-denied h2    { font-size: 22px; font-weight: 700; margin: 0 0 10px; color: var(--hc-text); }
.hcd-access-denied p     { font-size: 15px; color: var(--hc-text-soft); margin: 0 0 24px; }

/* Dark mode */
body.hilanaw-dark-mode .hcp-photo-upload-btn,
body.hilanaw-dark-mode .hcd-photo-upload-btn { background: #1d4ed8; }

/* ============================================================
   CRITICAL: Force [hidden] elements to always be invisible.
   Some WordPress themes reset [hidden] via CSS which breaks
   all our modals and panels that rely on the hidden attribute.
   This rule must have highest specificity to win.
   ============================================================ */
.hc-modal[hidden],
.hcp-zone[hidden],
.hcd-profile-edit[hidden],
#hcp-profile-edit[hidden],
#hcd-profile-edit[hidden],
[hidden].hc-modal,
[hidden].hcp-zone,

/* Cohort board */
#hcb-empty[hidden],
#hcb-error[hidden],

/* Cohort detail — skeleton, content panel, error, apply states */
#hccd-skeleton[hidden],
#hccd-content[hidden],
#hccd-error[hidden],
#hccd-status-pending[hidden],
#hccd-status-active[hidden],
#hccd-status-declined[hidden],
#hccd-status-full[hidden],
#hccd-apply-form-wrap[hidden],
#hccd-cap-wrap[hidden],
#hccd-org-link[hidden] {
    display: none !important;
}

/* White text for access denied button (overrides theme heading colour) */
.hc-btn--white-text,
.hc-btn--white-text:visited,
.hc-btn--white-text:hover {
    color: #ffffff !important;
}

/* Member list styles (loaded into modal) */
.hcd-members-list { display: flex; flex-direction: column; gap: 12px; }
.hcd-member-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px;
    background: var(--hc-surface-alt);
    border-radius: var(--hc-radius-sm);
    border: 1px solid var(--hc-border);
}
.hcd-member-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--hc-blue-light);
    color: var(--hc-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    flex-shrink: 0;
    overflow: hidden;
    font-size: 16px;
}
.hcd-member-info { flex: 1; }
.hcd-member-name {
    font-size: 14px;
    font-weight: 700;
    color: var(--hc-text);
    text-decoration: none;
    display: block;
    margin-bottom: 2px;
}
.hcd-member-name:hover { color: var(--hc-blue); }
.hcd-member-location { font-size: 12px; color: var(--hc-text-faint); display: block; margin-bottom: 4px; }
.hcd-member-note { font-size: 13px; color: var(--hc-text-soft); margin: 4px 0 0; line-height: 1.5; }
.hcd-member-actions { display: flex; gap: 8px; flex-shrink: 0; }

/* ============================================================
   FIX BATCH — Blue text on blue button backgrounds
   ============================================================ */

/* Force white text on all primary buttons regardless of theme */
.hc-btn--primary,
.hc-btn--primary:visited,
.hc-btn--primary:hover,
.hc-btn--primary:focus,
a.hc-btn--primary,
a.hc-btn--primary:visited,
a.hc-btn--primary:hover {
    color: #ffffff !important;
}

/* Access denied button specifically */
.hcd-access-denied .hc-btn--primary {
    color: #ffffff !important;
}

/* ============================================================
   SECTOR CHECKBOXES — investor dashboard edit form
   ============================================================ */
.hcd-sector-checkboxes {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 8px;
    margin-top: 8px;
    padding: 12px;
    background: var(--hc-surface-alt);
    border: 1.5px solid var(--hc-border-mid);
    border-radius: var(--hc-radius-sm);
}

.hcd-checkbox-label {
    display: flex !important;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 500 !important;
    color: var(--hc-text-mid);
    cursor: pointer;
    padding: 4px 0;
}

.hcd-checkbox-label input[type="checkbox"] {
    width: 15px;
    height: 15px;
    margin: 0;
    flex-shrink: 0;
    accent-color: var(--hc-blue);
}

/* ============================================================
   AVATAR UPLOAD FEEDBACK — visible overlay on avatar
   ============================================================ */
.hcp-identity__photo-wrap,
.hcd-header__avatar {
    position: relative;
}

.hcp-avatar-uploading::after,
.hcd-avatar-uploading::after {
    content: '⏳';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    border-radius: 50%;
    color: #fff;
}

/* Pitch preview link — white text on blue background */
.hcp-pitch-preview .hc-btn--primary {
    color: #ffffff !important;
}

/* Dark mode */
body.hilanaw-dark-mode .hcd-sector-checkboxes {
    background: #111827;
    border-color: #374151;
}

body.hilanaw-dark-mode .hcd-checkbox-label {
    color: #d1d5db;
}

/* ================================================================
   REPORT PAGE — hcr-*
   ================================================================ */

/* Shared wrap */
.hcr-wrap {
    max-width: 860px;
    margin: 0 auto;
    padding: 32px 20px 64px;
}

/* ── Hub header ─────────────────────────────────────────────────── */
.hcr-hub-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 28px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--hc-border);
}

.hcr-hub-title {
    font-size: clamp(20px, 2.5vw, 26px);
    font-weight: 800;
    color: var(--hc-text);
    margin: 0;
}

/* ── Credit strip (funder) ──────────────────────────────────────── */
.hcr-credit-strip {
    display: flex;
    align-items: baseline;
    gap: 6px;
    padding: 8px 16px;
    background: var(--hc-blue-light);
    border: 1px solid var(--hc-blue);
    border-radius: 100px;
}

.hcr-credit-strip__value {
    font-size: 20px;
    font-weight: 800;
    color: var(--hc-blue);
    line-height: 1;
}

.hcr-credit-strip__label {
    font-size: 13px;
    color: var(--hc-blue);
}

/* ── Status badges ──────────────────────────────────────────────── */
.hcr-status-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 100px;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
    text-transform: capitalize;
}

.hcr-status-badge--pending    { background: #fef3c7; color: #92400e; }
.hcr-status-badge--approved   { background: #d1fae5; color: #065f46; }
.hcr-status-badge--generated  { background: #d1fae5; color: #065f46; }
.hcr-status-badge--declined   { background: #fee2e2; color: #991b1b; }

/* ── Request rows ───────────────────────────────────────────────── */
.hcr-request-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.hcr-request-row {
    display: grid;
    grid-template-columns: 48px 1fr auto;
    gap: 14px;
    align-items: start;
    padding: 18px;
    background: var(--hc-surface);
    border: 1px solid var(--hc-border);
    border-radius: var(--hc-radius-lg);
    transition: box-shadow var(--hc-transition);
}

.hcr-request-row:hover {
    box-shadow: var(--hc-shadow-sm);
}

.hcr-request-row--declined {
    opacity: 0.7;
}

.hcr-request-row__photo {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
}

.hcr-request-row__photo--placeholder {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--hc-blue);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    font-weight: 700;
}

.hcr-request-row__info { min-width: 0; }

.hcr-request-row__name {
    display: block;
    font-size: 15px;
    font-weight: 700;
    color: var(--hc-text);
    text-decoration: none;
    margin-bottom: 2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.hcr-request-row__name:hover { color: var(--hc-blue); text-decoration: underline; }

.hcr-request-row__meta {
    font-size: 12px;
    color: var(--hc-text-faint);
    display: block;
    margin-bottom: 4px;
}

.hcr-request-row__message {
    font-size: 13px;
    color: var(--hc-text-soft);
    font-style: italic;
    margin: 6px 0 0;
    padding-left: 8px;
    border-left: 2px solid var(--hc-border);
    line-height: 1.5;
    overflow-wrap: break-word;
}

.hcr-request-row__views {
    font-size: 12px;
    color: var(--hc-text-faint);
    margin: 4px 0 0;
}

.hcr-request-row__actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: flex-end;
    min-width: 110px;
}

.hcr-request-row__feedback {
    font-size: 12px;
    min-height: 14px;
}

/* ── Empty state ────────────────────────────────────────────────── */
.hcr-empty-state {
    text-align: center;
    padding: 56px 24px;
    background: var(--hc-surface);
    border: 1px dashed var(--hc-border);
    border-radius: var(--hc-radius-lg);
}

.hcr-empty-state__icon {
    font-size: 40px;
    display: block;
    margin-bottom: 12px;
}

.hcr-empty-state p {
    font-size: 15px;
    color: var(--hc-text-soft);
    max-width: 380px;
    margin: 0 auto 20px;
    line-height: 1.6;
}

/* ── Guest view ─────────────────────────────────────────────────── */
.hcr-guest { text-align: center; }

.hcr-guest__inner {
    max-width: 480px;
    margin: 60px auto 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.hcr-guest__icon { font-size: 48px; }

.hcr-guest h1 {
    font-size: 24px;
    font-weight: 800;
    margin: 0;
    color: var(--hc-text);
}

.hcr-guest p {
    font-size: 15px;
    color: var(--hc-text-soft);
    line-height: 1.7;
    margin: 0;
}

/* ── Token report view ──────────────────────────────────────────── */
.hcr-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 24px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--hc-border);
}

.hcr-header__badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--hc-blue);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    padding: 4px 12px;
    border-radius: 100px;
    margin-bottom: 8px;
}

.hcr-header__meta {
    font-size: 13px;
    color: var(--hc-text-faint);
    margin: 0;
}

.hcr-identity {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 24px;
    padding: 20px;
    background: var(--hc-surface);
    border: 1px solid var(--hc-border);
    border-radius: var(--hc-radius-lg);
    flex-wrap: wrap;
}

.hcr-identity__avatar {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: var(--hc-blue);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: 700;
    flex-shrink: 0;
    overflow: hidden;
}

.hcr-identity__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hcr-identity__info { flex: 1; min-width: 0; }

.hcr-identity__name {
    font-size: 20px;
    font-weight: 800;
    margin: 0 0 4px;
    color: var(--hc-text);
}

.hcr-identity__business {
    font-size: 14px;
    color: var(--hc-text-soft);
    margin: 0 0 8px;
}

.hcr-identity__tags {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    align-items: center;
}

.hcr-location {
    font-size: 13px;
    color: var(--hc-text-faint);
}

.hcr-identity__profile-link { margin-left: auto; }

.hcr-redaction-notice {
    padding: 12px 16px;
    background: #fef3c7;
    border: 1px solid #f59e0b;
    border-radius: var(--hc-radius);
    font-size: 13px;
    color: #92400e;
    margin-bottom: 24px;
}

.hcr-sections {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-bottom: 32px;
}

.hcr-section {
    padding: 24px;
    background: var(--hc-surface);
    border: 1px solid var(--hc-border);
    border-radius: var(--hc-radius-lg);
}

.hcr-section--featured {
    border-left: 4px solid var(--hc-blue);
    background: var(--hc-surface-alt);
}

.hcr-section--strengths    { border-left: 4px solid #10b981; }
.hcr-section--considerations { border-left: 4px solid #f59e0b; }
.hcr-section--recommendation { border-left: 4px solid var(--hc-blue); background: var(--hc-blue-light); }

.hcr-section__title {
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--hc-text-faint);
    margin: 0 0 14px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.hcr-section__icon { font-size: 16px; }

.hcr-section__text {
    font-size: 15px;
    color: var(--hc-text-soft);
    line-height: 1.75;
    margin: 0;
    white-space: pre-wrap;
    overflow-wrap: break-word;
}

.hcr-two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.hcr-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.hcr-list li {
    font-size: 14px;
    color: var(--hc-text-soft);
    padding-left: 20px;
    position: relative;
    line-height: 1.5;
}

.hcr-list--strengths li::before     { content: '✓'; position: absolute; left: 0; color: #10b981; font-weight: 700; }
.hcr-list--considerations li::before { content: '·'; position: absolute; left: 0; color: #f59e0b; font-weight: 700; }

.hcr-footer {
    border-top: 1px solid var(--hc-border);
    padding-top: 24px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
}

.hcr-footer__disclaimer {
    font-size: 12px;
    color: var(--hc-text-faint);
    max-width: 520px;
    line-height: 1.6;
    margin: 0;
    font-style: italic;
}

/* ── Consent modal ──────────────────────────────────────────────── */
.hc-modal__box--consent {
    max-width: 580px;
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    padding: 24px 24px 0;
}

.hcr-consent-content {
    overflow-y: auto;
    flex: 1;
    padding-bottom: 24px;
}

.hcr-consent__intro {
    font-size: 14px;
    color: var(--hc-text-soft);
    line-height: 1.6;
    margin: 0 0 20px;
}

.hcr-consent__section-title {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--hc-text-faint);
    margin: 0 0 10px;
}

.hcr-redact-list {
    list-style: none;
    padding: 0;
    margin: 0 0 20px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 240px;
    overflow-y: auto;
    border: 1px solid var(--hc-border);
    border-radius: var(--hc-radius);
    padding: 12px;
}

.hcr-redact-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--hc-text-soft);
    cursor: pointer;
}

.hcr-redact-checkbox {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    cursor: pointer;
}

.hcr-consent__note-label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--hc-text);
    margin-bottom: 6px;
}

.hcr-consent__feedback { margin-top: 12px; min-height: 16px; }

.hcr-consent__actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    padding: 16px 0 20px;
    border-top: 1px solid var(--hc-border);
    margin-top: 8px;
}

/* ── Reports modal footer ───────────────────────────────────────── */
.hcp-reports-modal__footer {
    padding: 14px 0 20px;
    border-top: 1px solid var(--hc-border);
    margin-top: 4px;
    text-align: center;
}

/* ── Report badge colour ────────────────────────────────────────── */
.hc-requests-badge--report {
    background: #7c3aed;
}

/* ── Loading state ──────────────────────────────────────────────── */
.hc-loading-state {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 32px;
    color: var(--hc-text-faint);
    font-size: 14px;
    justify-content: center;
}

/* ── Mobile adjustments ─────────────────────────────────────────── */
@media (max-width: 680px) {
    .hcr-two-col { grid-template-columns: 1fr; }

    .hcr-request-row {
        grid-template-columns: 40px 1fr;
        grid-template-rows: auto auto;
    }

    .hcr-request-row__actions {
        grid-column: 1 / -1;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        min-width: 0;
    }

    .hcr-identity { flex-direction: column; text-align: center; }
    .hcr-identity__tags { justify-content: center; }
    .hcr-identity__profile-link { margin: 0; }

    .hcr-hub-header { flex-direction: column; align-items: flex-start; }
    .hcr-footer { flex-direction: column; }
}

/* ============================================================
   COHORT BOARD  (/cohorts/)
   ============================================================ */

.hcb-wrap {
    max-width: 1100px;
    margin: 0 auto;
    padding: 32px 20px 60px;
}

/* ── Header ─────────────────────────────────────────────────── */
.hcb-header {
    margin-bottom: 28px;
}

.hcb-header__title {
    font-size: 28px;
    font-weight: 800;
    color: var(--hc-text);
    margin: 0 0 8px;
}

.hcb-header__subtitle {
    font-size: 16px;
    color: var(--hc-text-soft);
    margin: 0;
}

/* ── Filters ─────────────────────────────────────────────────── */
.hcb-filters {
    display: flex;
    gap: 12px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.hcb-search-wrap { flex: 1; min-width: 200px; }

.hcb-search {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--hc-border);
    border-radius: var(--hc-radius);
    font-size: 15px;
    background: var(--hc-surface);
    color: var(--hc-text);
    outline: none;
    transition: border-color 0.15s;
}

.hcb-search:focus { border-color: var(--hc-blue); }

.hcb-select {
    padding: 10px 14px;
    border: 1px solid var(--hc-border);
    border-radius: var(--hc-radius);
    font-size: 15px;
    background: var(--hc-surface);
    color: var(--hc-text);
    cursor: pointer;
    outline: none;
}

/* ── Results count ───────────────────────────────────────────── */
.hcb-results-count {
    font-size: 13px;
    color: var(--hc-text-faint);
    margin: 0 0 16px;
}

/* ── Grid ────────────────────────────────────────────────────── */
.hcb-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 20px;
    margin-bottom: 32px;
}

/* ── Cohort card ─────────────────────────────────────────────── */
.hcb-card {
    background: var(--hc-surface);
    border: 1px solid var(--hc-border);
    border-radius: var(--hc-radius-lg);
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    transition: box-shadow 0.15s, border-color 0.15s;
}

.hcb-card:hover {
    box-shadow: var(--hc-shadow);
    border-color: var(--hc-blue-light);
}

.hcb-card__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.hcb-card__org {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.hcb-card__org-avatar,
.hcb-card__org-avatar--placeholder {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px;
    min-height: 32px;
    max-width: 32px !important;
    max-height: 32px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    display: block;
    flex-shrink: 0;
}

.hcb-card__org-avatar--placeholder {
    background: var(--hc-blue-light);
    color: var(--hc-blue);
    font-size: 14px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hcb-card__org-name {
    font-size: 13px;
    color: var(--hc-text-soft);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hcb-card__name {
    font-size: 18px;
    font-weight: 700;
    color: var(--hc-text);
    margin: 0;
    line-height: 1.3;
}

.hcb-card__description {
    font-size: 14px;
    color: var(--hc-text-soft);
    margin: 0;
    line-height: 1.5;
    flex: 1;
}

.hcb-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: auto;
}

.hcb-card__stats {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.hcb-card__stat {
    font-size: 13px;
    color: var(--hc-text-soft);
}

.hcb-card__full-badge {
    font-size: 11px;
    background: #fee2e2;
    color: #991b1b;
    padding: 2px 8px;
    border-radius: 99px;
    font-weight: 600;
}

.hcb-card__my-status {
    font-size: 12px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 99px;
}

.hcb-card__my-status--pending  { background: #fef9c3; color: #854d0e; }
.hcb-card__my-status--active   { background: #dcfce7; color: #15803d; }
.hcb-card__my-status--declined { background: #fee2e2; color: #991b1b; }
.hcb-card__my-status--left     { background: var(--hc-surface-alt); color: var(--hc-text-faint); }

.hcb-card__cta { font-size: 14px; padding: 8px 14px; white-space: nowrap; }

/* ── Skeleton ────────────────────────────────────────────────── */
.hcb-skeleton-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 20px;
    width: 100%;
}

.hcb-skeleton-card {
    background: var(--hc-surface);
    border: 1px solid var(--hc-border);
    border-radius: var(--hc-radius-lg);
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.hcb-skeleton-line {
    height: 14px;
    background: linear-gradient(90deg, var(--hc-surface-alt) 25%, var(--hc-border) 50%, var(--hc-surface-alt) 75%);
    background-size: 200% 100%;
    animation: hcb-shimmer 1.4s infinite;
    border-radius: 6px;
}

.hcb-skeleton-line--title { height: 20px; width: 70%; }
.hcb-skeleton-line--sub   { height: 12px; width: 45%; }
.hcb-skeleton-line--short { width: 55%; }

@keyframes hcb-shimmer {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* ── Empty / error / pagination ──────────────────────────────── */
.hcb-empty,
.hcb-error {
    text-align: center;
    padding: 60px 20px;
    color: var(--hc-text-soft);
}

.hcb-empty__icon { font-size: 48px; margin-bottom: 12px; }
.hcb-empty h3    { font-size: 20px; font-weight: 700; color: var(--hc-text); margin: 0 0 8px; }
.hcb-empty p     { margin: 0; }

.hcb-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-top: 8px;
}

.hcb-page-info { font-size: 14px; color: var(--hc-text-soft); }

/* ============================================================
   COHORT DETAIL  (/cohort/?id=N)
   ============================================================ */

.hccd-wrap {
    max-width: 900px;
    margin: 0 auto;
    padding: 28px 20px 60px;
}

/* ── Breadcrumb ──────────────────────────────────────────────── */
.hccd-breadcrumb {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 24px;
    font-size: 14px;
}

.hccd-breadcrumb__back {
    color: var(--hc-blue);
    text-decoration: none;
    font-weight: 500;
}

.hccd-breadcrumb__back:hover { text-decoration: underline; }

.hccd-breadcrumb__sep { color: var(--hc-text-faint); }

.hccd-breadcrumb__current {
    color: var(--hc-text-soft);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 300px;
}

/* ── Skeleton ────────────────────────────────────────────────── */
.hccd-skeleton { display: flex; flex-direction: column; gap: 16px; }

.hccd-skeleton__header,
.hccd-skeleton__body { display: flex; flex-direction: column; gap: 10px; }

.hccd-skeleton-line {
    height: 14px;
    background: linear-gradient(90deg, var(--hc-surface-alt) 25%, var(--hc-border) 50%, var(--hc-surface-alt) 75%);
    background-size: 200% 100%;
    animation: hcb-shimmer 1.4s infinite;
    border-radius: 6px;
}

.hccd-skeleton-line--title { height: 28px; width: 60%; }
.hccd-skeleton-line--sub   { height: 14px; width: 35%; }
.hccd-skeleton-line--short { width: 50%; }

/* ── Hero ────────────────────────────────────────────────────── */
.hccd-hero {
    background: var(--hc-surface);
    border: 1px solid var(--hc-border);
    border-radius: var(--hc-radius-lg);
    padding: 32px;
    margin-bottom: 24px;
}

.hccd-hero__meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}

.hccd-hero__sector {
    font-size: 12px;
    font-weight: 600;
    background: var(--hc-blue-light);
    color: var(--hc-blue);
    padding: 3px 10px;
    border-radius: 99px;
}

.hccd-hero__status {
    font-size: 12px;
    font-weight: 600;
    background: #dcfce7;
    color: #15803d;
    padding: 3px 10px;
    border-radius: 99px;
}

.hccd-hero__title {
    font-size: 28px;
    font-weight: 800;
    color: var(--hc-text);
    margin: 0 0 12px;
    line-height: 1.2;
}

.hccd-hero__description {
    font-size: 16px;
    color: var(--hc-text-soft);
    line-height: 1.6;
    margin: 0 0 24px;
}

.hccd-hero__stats {
    display: flex;
    gap: 32px;
    flex-wrap: wrap;
    border-top: 1px solid var(--hc-border);
    padding-top: 20px;
}

.hccd-stat { display: flex; flex-direction: column; gap: 4px; }

.hccd-stat__value {
    font-size: 22px;
    font-weight: 800;
    color: var(--hc-text);
}

.hccd-stat__label {
    font-size: 12px;
    color: var(--hc-text-faint);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* ── Body layout ─────────────────────────────────────────────── */
.hccd-body {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 24px;
    align-items: start;
}

/* ── Apply panel ─────────────────────────────────────────────── */
.hccd-apply-box {
    background: var(--hc-surface);
    border: 1px solid var(--hc-border);
    border-radius: var(--hc-radius-lg);
    padding: 28px;
}

.hccd-apply-box__title {
    font-size: 20px;
    font-weight: 700;
    color: var(--hc-text);
    margin: 0 0 16px;
}

.hccd-apply-box__hint {
    font-size: 14px;
    color: var(--hc-text-soft);
    margin: 0 0 16px;
    line-height: 1.5;
}

.hccd-apply-btn { width: 100%; justify-content: center; margin-top: 12px; }

.hccd-apply-status {
    text-align: center;
    padding: 24px 16px;
}

.hccd-apply-status__icon { font-size: 36px; margin-bottom: 12px; }

.hccd-apply-status p {
    font-size: 15px;
    color: var(--hc-text-soft);
    line-height: 1.5;
    margin: 0;
}

/* Gate blocks (login / role) */
.hccd-gate {
    background: var(--hc-surface);
    border: 1px solid var(--hc-border);
    border-radius: var(--hc-radius-lg);
    padding: 32px 24px;
    text-align: center;
}

.hccd-gate__icon { font-size: 36px; margin-bottom: 12px; }

.hccd-gate h3 {
    font-size: 18px;
    font-weight: 700;
    color: var(--hc-text);
    margin: 0 0 8px;
}

.hccd-gate p {
    font-size: 14px;
    color: var(--hc-text-soft);
    margin: 0 0 20px;
    line-height: 1.5;
}

/* ── Org card ────────────────────────────────────────────────── */
.hccd-org-card {
    background: var(--hc-surface);
    border: 1px solid var(--hc-border);
    border-radius: var(--hc-radius-lg);
    padding: 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 10px;
    position: sticky;
    top: 80px;
}

.hccd-org-card__heading {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--hc-text-faint);
    margin: 0;
    align-self: flex-start;
}

.hccd-org-card__avatar { width: 64px; height: 64px; border-radius: 50%; overflow: hidden; }

.hccd-org-card__photo,
.hccd-org-card__photo--placeholder {
    width: 64px !important;
    height: 64px !important;
    min-width: 64px;
    min-height: 64px;
    max-width: 64px !important;
    max-height: 64px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    display: block;
}

.hccd-org-card__photo--placeholder {
    background: var(--hc-blue-light);
    color: var(--hc-blue);
    font-size: 26px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hccd-org-card__name {
    font-size: 16px;
    font-weight: 700;
    color: var(--hc-text);
    margin: 0;
}

.hccd-org-card__bio {
    font-size: 13px;
    color: var(--hc-text-soft);
    line-height: 1.5;
    margin: 0;
}

.hccd-org-card__link { width: 100%; justify-content: center; }

/* ── Error state ─────────────────────────────────────────────── */
.hccd-error {
    text-align: center;
    padding: 60px 20px;
    color: var(--hc-text-soft);
}

/* ── Dark mode ───────────────────────────────────────────────── */
body.hilanaw-dark-mode .hcb-card,
body.hilanaw-dark-mode .hcb-skeleton-card,
body.hilanaw-dark-mode .hccd-hero,
body.hilanaw-dark-mode .hccd-apply-box,
body.hilanaw-dark-mode .hccd-gate,
body.hilanaw-dark-mode .hccd-org-card {
    background: #1e293b;
    border-color: #334155;
}

body.hilanaw-dark-mode .hcb-search,
body.hilanaw-dark-mode .hcb-select {
    background: #1e293b;
    border-color: #334155;
    color: #f1f5f9;
}

body.hilanaw-dark-mode .hcb-card__full-badge { background: #450a0a; color: #fca5a5; }
body.hilanaw-dark-mode .hcb-card__my-status--pending  { background: #422006; color: #fcd34d; }
body.hilanaw-dark-mode .hcb-card__my-status--active   { background: #14532d; color: #86efac; }
body.hilanaw-dark-mode .hcb-card__my-status--declined { background: #450a0a; color: #fca5a5; }
body.hilanaw-dark-mode .hccd-hero__status { background: #14532d; color: #86efac; }

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 700px) {
    .hcb-filters { flex-direction: column; }
    .hcb-select  { width: 100%; }

    .hccd-body {
        grid-template-columns: 1fr;
    }

    .hccd-org-card { position: static; }

    .hccd-hero { padding: 20px; }
    .hccd-hero__title { font-size: 22px; }
    .hccd-hero__stats { gap: 20px; }
    .hccd-stat__value { font-size: 18px; }

    .hccd-apply-box { padding: 20px; }
}

/* ── Pitch detail upgrade notice ─────────────────────────────────── */
.hcpd-upgrade-notice {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #fffbeb;
    border: 1px solid #fcd34d;
    border-radius: var(--hc-radius);
    padding: 16px 20px;
    margin: 20px 28px;
    flex-wrap: wrap;
}

.hcpd-upgrade-notice__icon { font-size: 20px; flex-shrink: 0; }

.hcpd-upgrade-notice p {
    font-size: 14px;
    color: #92400e;
    margin: 0;
    flex: 1;
    line-height: 1.5;
}

body.hilanaw-dark-mode .hcpd-upgrade-notice {
    background: #1c1507;
    border-color: #92400e;
}

body.hilanaw-dark-mode .hcpd-upgrade-notice p { color: #fcd34d; }

/* ============================================================
   GUEST PROMPT — shared across /investors, /organizations,
   /messages, /profile and any other gated page
   ============================================================ */
.hcm-guest {
    min-height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hcm-guest__inner {
    text-align: center;
    max-width: 400px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.hcm-guest__icon { font-size: 48px; }

.hcm-guest h1 {
    font-size: 24px;
    font-weight: 800;
    color: var(--hc-text);
    margin: 0;
}

.hcm-guest p {
    font-size: 15px;
    color: var(--hc-text-soft);
    margin: 0;
    line-height: 1.6;
}
