.family-portal-hero{display:grid;grid-template-columns:140px 1fr;gap:20px;padding:24px;background:#fff;border:1px solid #e2e8f0;border-radius:18px;box-shadow:0 8px 24px rgba(15,23,42,.05);margin-bottom:24px}.family-portal-hero-media img{width:140px;height:140px;object-fit:cover;border-radius:18px;display:block}.family-portal-hero-title{margin:0 0 8px;font-size:32px;line-height:1.15}.family-portal-badge{display:inline-block;padding:6px 10px;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:12px;font-weight:600;margin-bottom:10px}.family-portal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:24px}.family-portal-panel{background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:20px;box-shadow:0 8px 24px rgba(15,23,42,.04)}.family-portal-meta-list,.family-portal-relation-list,.family-portal-content-list,.family-portal-event-list{list-style:none;padding:0;margin:0}.family-portal-meta-list li,.family-portal-relation-list li,.family-portal-content-list li,.family-portal-event-list li{padding:8px 0;border-bottom:1px solid #edf2f7}.family-portal-form{display:grid;gap:14px}.family-portal-form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.family-portal-field label{display:block;font-weight:600;margin-bottom:6px}.family-portal-field input,.family-portal-field textarea,.family-portal-field select{width:100%;padding:10px 12px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;font:inherit;box-sizing:border-box}.family-portal-field textarea{min-height:120px;resize:vertical}.family-portal-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.family-portal-button{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;border:0;border-radius:10px;background:#111827;color:#fff;text-decoration:none;cursor:pointer;font-weight:600}.family-portal-button.is-secondary{background:#e5e7eb;color:#111827}.family-portal-inline-note{font-size:13px;color:#475569}.family-portal-search-form{display:grid;gap:14px;margin-bottom:24px}


.family-portal-media-uploader-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.family-portal-media-uploader-card{display:grid;gap:12px;padding:14px;border:1px solid var(--fp-color-border,#e2e8f0);border-radius:16px;background:var(--fp-color-surface-soft,#f8fafc)}
.family-portal-media-uploader-card h4{margin:0}
.family-portal-media-preview{border:1px dashed var(--fp-color-border,#e2e8f0);border-radius:14px;background:var(--fp-color-surface,#fff);min-height:180px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.family-portal-media-preview.has-media{border-style:solid}
.family-portal-media-preview--image img,.family-portal-media-preview--cover img{width:100%;height:180px;object-fit:cover;display:block}
.family-portal-media-preview--audio{min-height:90px;padding:14px}
.family-portal-media-preview--audio audio{width:100%}
.family-portal-media-preview--video{min-height:140px;padding:10px}
.family-portal-media-preview--video video{width:100%;max-height:240px;border-radius:12px;display:block}
.family-portal-media-preview--gallery{min-height:140px;padding:12px;align-items:stretch;justify-content:stretch}
.family-portal-gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:10px;width:100%}
.family-portal-gallery-thumb{border-radius:12px;overflow:hidden;background:var(--fp-color-surface-soft,#f8fafc);border:1px solid var(--fp-color-border,#e2e8f0);min-height:90px}
.family-portal-gallery-thumb img{width:100%;height:100px;object-fit:cover;display:block}
.family-portal-media-placeholder{padding:18px;text-align:center;color:var(--fp-color-text-soft,#64748b);font-size:14px}
.family-portal-upload-media-stack{display:grid;gap:18px}
.family-portal-event-cover{margin:-20px -20px 16px;border-radius:18px 18px 0 0;overflow:hidden}
.family-portal-event-cover img{width:100%;max-height:360px;object-fit:cover;display:block}
.family-portal-event-card-media img{height:180px;object-fit:cover}
.family-portal-upload-v2 .family-portal-button,.family-portal-media-uploader-card .family-portal-button,.family-portal-event-editor .family-portal-button{min-height:44px}
@media (max-width:680px){.family-portal-media-uploader-grid{grid-template-columns:1fr}.family-portal-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}



/* v4 merged layout fixes */
.family-portal-search-v2,
.family-portal-events-hub,
.family-portal-guide,
.family-portal-dashboard-home,
.family-portal-profile{display:block;color:var(--fp-color-text,#1F2A44)}
.family-portal-search-hero,.family-portal-events-hero,.family-portal-dashboard-hero,.family-portal-guide-hero{background:linear-gradient(135deg,var(--fp-color-surface-soft,#F4EFE7) 0%,var(--fp-color-surface,#fff) 100%)}
.family-portal-search-filter-bar{display:grid;gap:16px}
.family-portal-result-card-grid,.family-portal-guide-grid,.family-portal-dashboard-actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.family-portal-result-card{height:100%}
.family-portal-empty-state{text-align:center}
.family-portal-events-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:20px}
.family-portal-events-sidebar,.family-portal-events-stack,.family-portal-dashboard-mini-stack{display:grid;gap:16px}
.family-portal-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.family-portal-calendar-day-name{padding:10px;text-align:center;font-weight:700;border:1px solid var(--fp-color-border,#E6E2DB);border-radius:10px;background:var(--fp-color-surface-soft,#F4EFE7)}
.family-portal-calendar-cell{min-height:110px;padding:10px;border-radius:14px;border:1px solid var(--fp-color-border,#E6E2DB);background:var(--fp-color-surface,#fff);display:flex;flex-direction:column;gap:8px;box-shadow:0 4px 12px rgba(31,42,68,.04)}
.family-portal-calendar-cell.is-muted{opacity:.5}
.family-portal-calendar-cell.is-today{border-color:var(--fp-color-primary,#0055A4);box-shadow:0 0 0 2px rgba(0,85,164,.12)}
.family-portal-calendar-cell-top{display:flex;align-items:center;justify-content:space-between}
.family-portal-calendar-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--fp-color-secondary,#C8102E);color:#fff;font-size:12px;font-weight:700}
.family-portal-calendar-event-list{list-style:none;margin:0;padding:0;font-size:12px;display:grid;gap:4px}
.family-portal-guide-card,.family-portal-dashboard-action-card{display:flex;flex-direction:column;gap:10px}
.family-portal-guide-icon,.family-portal-dashboard-action-icon{font-size:32px;line-height:1}
.family-portal-guide-help{margin-top:24px}
.family-portal-message{padding:12px 16px;border-radius:10px;margin-bottom:16px}
.family-portal-message.is-success{background:#ecf7ed;border:1px solid #b8dfbc;color:#155724}
.family-portal-message.is-error{background:#fbeaea;border:1px solid #f1b3b3;color:#7a1f1f}
@media (max-width: 980px){.family-portal-events-layout{grid-template-columns:1fr}}
@media (max-width: 680px){.family-portal-calendar-grid{gap:6px}.family-portal-calendar-cell{min-height:88px;padding:8px}.family-portal-result-card-grid,.family-portal-guide-grid,.family-portal-dashboard-actions-grid{grid-template-columns:1fr}}

/* t5 polish */
:root{--fp-primary:#0055A4;--fp-secondary:#C8102E;--fp-accent:#D7A63B;--fp-success:#4E8B57;--fp-ink:#1F2A44;--fp-soft-ink:#5A6476;--fp-surface:#FFFFFF;--fp-surface-soft:#FAF6EE;--fp-surface-tint:#F4EFE4;--fp-border:#E5DED1;--fp-shadow:0 14px 34px rgba(31,42,68,.08)}
.family-portal-theme-heritage-classic{--fp-primary:#0055A4;--fp-secondary:#C8102E;--fp-accent:#D7A63B;--fp-surface-soft:#FAF6EE;--fp-surface-tint:#F4EFE4}
.family-portal-theme-island-celebration{--fp-primary:#2B74B7;--fp-secondary:#C8102E;--fp-accent:#D7A63B;--fp-surface-soft:#F2F8FA;--fp-surface-tint:#EAF2F4}
.family-portal-theme-elegant-archive{--fp-primary:#1F2A44;--fp-secondary:#8D1F2D;--fp-accent:#C9A35D;--fp-surface-soft:#F7F3EB;--fp-surface-tint:#EFE7DA}
.family-portal-profile,.family-portal-search,.family-portal-event,.family-portal-events-hub,.family-portal-dashboard-home,.family-portal-guide,.family-portal-upload{color:var(--fp-ink)}
.family-portal-panel{background:var(--fp-surface);border:1px solid var(--fp-border);box-shadow:var(--fp-shadow);border-radius:22px}
.family-portal-guide-hero,.family-portal-dashboard-hero,.family-portal-events-hero,.family-portal-search-hero{background:radial-gradient(circle at top right,rgba(215,166,59,.18),transparent 32%),linear-gradient(135deg,var(--fp-surface-soft),var(--fp-surface))}
.family-portal-button{background:var(--fp-primary);border-radius:14px;padding:12px 18px;font-weight:700;min-height:46px}
.family-portal-button.is-secondary{background:var(--fp-secondary)}
.family-portal-inline-note,.family-portal-panel p,.family-portal-meta-list li,.family-portal-relation-list li{color:var(--fp-soft-ink)}
.family-portal-hero{background:linear-gradient(135deg,var(--fp-surface-soft),var(--fp-surface))}
.family-portal-badge{background:linear-gradient(135deg,var(--fp-accent),#f0c97a);color:#382f19;box-shadow:0 8px 18px rgba(215,166,59,.18)}
.family-portal-flag-list{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0 10px}
.family-portal-flag-chip{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;background:linear-gradient(135deg,var(--fp-surface-soft),var(--fp-surface));border:1px solid var(--fp-border);box-shadow:0 8px 18px rgba(31,42,68,.06);color:var(--fp-ink);font-weight:700;line-height:1.2;white-space:normal}
.family-portal-result-card,.family-portal-guide-card,.family-portal-dashboard-action-card,.family-portal-event-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.family-portal-result-card:hover,.family-portal-guide-card:hover,.family-portal-dashboard-action-card:hover,.family-portal-event-card:hover{transform:translateY(-2px);box-shadow:0 18px 34px rgba(31,42,68,.11);border-color:#d8ccba}
.family-portal-search-filter-bar{background:linear-gradient(135deg,var(--fp-surface),var(--fp-surface-soft));border:1px solid var(--fp-border)}
.family-portal-field input,.family-portal-field textarea,.family-portal-field select{border:1px solid #d7cfbf;border-radius:14px;min-height:46px;background:#fff}
.family-portal-field input:focus,.family-portal-field textarea:focus,.family-portal-field select:focus{outline:none;border-color:var(--fp-primary);box-shadow:0 0 0 4px rgba(0,85,164,.08)}
.family-portal-calendar-grid{gap:12px}
.family-portal-calendar-day-name{background:var(--fp-surface-tint);border:1px solid var(--fp-border);border-radius:12px;font-size:13px}
.family-portal-calendar-cell{min-height:124px;background:linear-gradient(180deg,var(--fp-surface),var(--fp-surface-soft));border:1px solid var(--fp-border);border-radius:18px}
.family-portal-calendar-cell.has-events{box-shadow:0 10px 22px rgba(0,85,164,.08)}
.family-portal-calendar-cell.is-today{border-color:var(--fp-primary);box-shadow:0 0 0 3px rgba(0,85,164,.10)}
.family-portal-calendar-badge{background:var(--fp-secondary)}
.family-portal-event-card.is-featured{border-color:var(--fp-accent);box-shadow:0 16px 32px rgba(215,166,59,.18)}
.family-portal-guide-v2{display:grid;gap:24px}
.family-portal-guide-hero{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:20px;align-items:stretch}
.family-portal-guide-lead{font-size:1.08rem;font-weight:600;color:var(--fp-ink)}
.family-portal-guide-highlight{height:100%;padding:22px;border-radius:18px;background:linear-gradient(145deg,rgba(0,85,164,.95),rgba(43,116,183,.92));color:#fff;box-shadow:0 18px 36px rgba(0,85,164,.22)}
.family-portal-guide-highlight h3,.family-portal-guide-highlight p{color:#fff}
.family-portal-guide-highlight .family-portal-button{background:#fff;color:var(--fp-primary)}
.family-portal-guide-highlight-icon{font-size:34px;display:inline-flex;margin-bottom:8px}
.family-portal-guide-section{display:grid;gap:14px}
.family-portal-guide-section-heading h3{margin-bottom:6px}
.family-portal-guide-grid,.family-portal-dashboard-actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}
.family-portal-guide-card{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--fp-surface),var(--fp-surface-soft))}
.family-portal-guide-card:before{content:"";position:absolute;inset:0 auto auto 0;width:100%;height:4px;background:linear-gradient(90deg,var(--fp-primary),var(--fp-accent))}
.family-portal-step-card{padding-top:26px}
.family-portal-step-number{width:34px;height:34px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--fp-surface-tint);color:var(--fp-primary);font-weight:800;font-size:14px}
.family-portal-guide-icon,.family-portal-dashboard-action-icon{width:52px;height:52px;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;background:var(--fp-surface-tint);font-size:26px;line-height:1}
.family-portal-guide-feature-card,.family-portal-dashboard-action-card{background:linear-gradient(180deg,var(--fp-surface),var(--fp-surface-soft))}
.family-portal-guide-upload-panel,.family-portal-guide-help{background:linear-gradient(135deg,var(--fp-surface),var(--fp-surface-soft))}
.family-portal-guide-privacy{margin-top:16px;padding-top:16px;border-top:1px solid var(--fp-border)}
.family-portal-search-results>.family-portal-panel,.family-portal-events-sidebar>.family-portal-panel{background:linear-gradient(180deg,var(--fp-surface),var(--fp-surface-soft))}
.family-portal-result-card-media img,.family-portal-event-cover img{border-radius:20px 20px 0 0}
.family-portal-media-uploader-card{background:linear-gradient(180deg,var(--fp-surface),var(--fp-surface-soft))}
.family-portal-media-preview{border-radius:18px}
@media (max-width:980px){.family-portal-guide-hero{grid-template-columns:1fr}}
@media (max-width:680px){.family-portal-flag-list{gap:10px}.family-portal-flag-chip{padding:9px 12px;font-size:13px}.family-portal-guide-grid,.family-portal-dashboard-actions-grid{grid-template-columns:1fr}.family-portal-calendar-grid{gap:8px}.family-portal-calendar-cell{min-height:96px}}


.family-portal-dashboard-announcements-card { background: linear-gradient(135deg, var(--fp-color-surface) 0%, var(--fp-color-surface-soft) 100%); }
.family-portal-announcement-card { display:flex; flex-direction:column; gap:10px; height:100%; }
.family-portal-announcement-card-top { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.family-portal-announcement-card h4 { margin:0; }


/* t8 fixes */
.family-portal-dashboard-home,.family-portal-events-hub,.family-portal-upload,.family-portal-profile,.family-portal-search{width:100%;max-width:100%}
.family-portal-form-row--three{grid-template-columns:repeat(3,minmax(0,1fr))}
.family-portal-form-row--two{grid-template-columns:repeat(2,minmax(0,1fr))}
.family-portal-dashboard-main-grid{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);align-items:start}
.family-portal-dashboard-sidebar-stack,.family-portal-favorites-grid{display:grid;gap:16px}
.family-portal-favorites-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-top:18px}
.family-portal-favorite-card{padding:14px;border:1px solid var(--fp-border);border-radius:16px;background:linear-gradient(180deg,var(--fp-surface),var(--fp-surface-soft))}
.family-portal-favorite-card h4{margin:0 0 6px;font-size:15px}
.family-portal-mini-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(76px,1fr));gap:10px;margin:12px 0}
.family-portal-mini-gallery img{width:100%;height:76px;object-fit:cover;border-radius:14px;border:1px solid var(--fp-border)}
.family-portal-panel-header-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.family-portal-collapsible-panel summary{cursor:pointer;font-weight:700;list-style:none}
.family-portal-collapsible-panel summary::-webkit-details-marker{display:none}
.family-portal-collapsible-body{margin-top:16px}
.family-portal-calendar-empty{font-size:12px;color:var(--fp-soft-ink);opacity:.7}
.family-portal-button{background:#fff;color:var(--fp-primary);border:1px solid var(--fp-primary)}
.family-portal-button:hover,.family-portal-button:focus{background:#111827;color:#fff;border-color:#111827}
.family-portal-button.is-secondary{background:#fff;color:var(--fp-secondary);border:1px solid var(--fp-secondary)}
.family-portal-button.is-secondary:hover,.family-portal-button.is-secondary:focus{background:#111827;color:#fff;border-color:#111827}
.family-portal-actions .family-portal-button[disabled]{opacity:.55}
.family-portal-media-uploader-card h4{margin-bottom:10px}
.family-portal-upload-form .family-portal-panel{overflow:hidden}
@media (max-width: 1024px){.family-portal-dashboard-main-grid,.family-portal-events-layout,.family-portal-guide-hero{grid-template-columns:1fr}.family-portal-form-row--three,.family-portal-form-row--two{grid-template-columns:1fr 1fr}.family-portal-calendar-cell{min-height:102px}}
@media (max-width: 782px){.family-portal-form-row--three,.family-portal-form-row--two,.family-portal-grid,.family-portal-dashboard-actions-grid,.family-portal-result-card-grid,.family-portal-guide-grid{grid-template-columns:1fr}.family-portal-calendar-grid{gap:6px}.family-portal-calendar-cell{min-height:86px;padding:8px}.family-portal-calendar-event-list{display:none}.family-portal-panel-header-row{align-items:flex-start}}


.family-portal-protected-media,
.family-portal-protected-media img {
    -webkit-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
}


/* t11 elementor + events + spacing */
.family-portal-elementor-safe,
.elementor-widget-shortcode .family-portal-elementor-safe,
.elementor-widget-container .family-portal-elementor-safe,
.family-portal-profile,
.family-portal-dashboard-home,
.family-portal-guide,
.family-portal-events-hub {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
}

.family-portal-events-hub .family-portal-panel,
.family-portal-profile .family-portal-panel,
.family-portal-dashboard-home .family-portal-panel {
    overflow: hidden;
}

.family-portal-quick-links {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    margin-top: 16px;
}

.family-portal-quick-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 12px 14px;
    text-align: center;
    text-decoration: none;
    background: #fff;
    color: var(--fp-color-secondary, #C8102E);
    border: 1px solid var(--fp-color-secondary, #C8102E);
    border-radius: 14px;
    font-weight: 600;
}

.family-portal-quick-link:hover,
.family-portal-quick-link:focus {
    background: #111827;
    color: #fff;
    border-color: #111827;
}

.family-portal-profile-save-bar {
    margin: 18px 0 28px;
    padding-top: 8px;
}

.family-portal-events-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr) !important;
    gap: 20px;
    align-items: start;
}

.family-portal-events-calendar-panel {
    min-width: 0;
}

.family-portal-calendar-grid {
    display: grid !important;
    width: 100%;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    gap: 8px;
    align-items: stretch;
}

.family-portal-calendar-grid-main {
    grid-auto-rows: minmax(110px, auto);
}

.family-portal-calendar-day-name,
.family-portal-calendar-cell {
    min-width: 0;
}

.family-portal-calendar-cell.has-events {
    border-color: var(--fp-color-primary, #0055A4);
    background: linear-gradient(180deg, #fff, #f9fbff);
}

.family-portal-calendar-event-list li {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.family-portal-button {
    background: #fff;
    color: var(--fp-color-secondary, #C8102E);
    border: 1px solid var(--fp-color-secondary, #C8102E);
}

.family-portal-button:hover,
.family-portal-button:focus {
    background: #111827;
    color: #fff;
    border-color: #111827;
}

.family-portal-button.is-secondary {
    background: #fff;
    color: var(--fp-color-secondary, #C8102E);
    border: 1px solid var(--fp-color-secondary, #C8102E);
}

.family-portal-button.is-secondary:hover,
.family-portal-button.is-secondary:focus {
    background: #111827;
    color: #fff;
    border-color: #111827;
}

.family-portal-admin-overview-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 16px;
    margin: 16px 0 20px;
}
.family-portal-admin-overview-card {
    background: #fff;
    border: 1px solid #dcdcde;
    border-radius: 16px;
    padding: 18px;
}
.family-portal-admin-overview-card h3 { margin: 0 0 8px; }
.family-portal-admin-overview-card p { margin: 0; font-size: 28px; font-weight: 700; }
.family-portal-admin-actions-row { display:flex; gap:12px; flex-wrap:wrap; margin: 12px 0 18px; }

@media (max-width: 1200px) {
    .family-portal-events-layout {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 782px) {
    .family-portal-calendar-grid {
        gap: 6px;
    }
    .family-portal-calendar-grid-main {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .family-portal-calendar-days {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .family-portal-calendar-day-name {
        text-align: left;
    }
    .family-portal-quick-links {
        grid-template-columns: 1fr;
    }
}


/* t12b events usability */
.family-portal-calendar-cell{position:relative;text-decoration:none;color:inherit}
.family-portal-calendar-cell.has-events{cursor:pointer}
.family-portal-calendar-cell.has-events:hover{border-color:var(--fp-color-secondary,#C8102E);box-shadow:0 0 0 2px rgba(200,16,46,.10),0 6px 16px rgba(31,42,68,.08)}
.family-portal-calendar-cell.has-events .family-portal-calendar-event-list li{font-weight:600}
.family-portal-calendar-open-link{margin-top:auto;font-size:12px;font-weight:700;color:var(--fp-color-secondary,#C8102E)}
.family-portal-event-settings-row{display:grid;gap:8px;margin-top:8px}
.family-portal-checkbox-row{display:inline-flex !important;align-items:center;gap:10px;font-weight:600;margin:0}
.family-portal-checkbox-row input[type="checkbox"]{width:18px;height:18px;margin:0;accent-color:var(--fp-color-primary,#0055A4);flex:0 0 18px}
.family-portal-sticky-actions{margin-top:18px;margin-bottom:18px}
.family-portal-sticky-actions .family-portal-button{min-width:180px}
@media (max-width: 782px){
  .family-portal-calendar-grid{gap:6px}
  .family-portal-calendar-cell{min-height:96px;padding:8px}
  .family-portal-calendar-event-list{display:block}
}

.family-portal-button{background:#fff;color:#a12626;border:1px solid #a12626}
.family-portal-button:hover,.family-portal-button:focus{background:#111827;color:#fff;border-color:#111827}
.family-portal-button.is-secondary{background:#fff;color:#a12626;border:1px solid #a12626}
.family-portal-button.is-secondary:hover,.family-portal-button.is-secondary:focus{background:#111827;color:#fff;border-color:#111827}
.family-portal-profile .family-portal-sticky-actions,.family-portal-profile-save-actions{margin:18px 0 28px}
.family-portal-calendar-grid-main{grid-template-columns:repeat(7,minmax(0,1fr))}
.family-portal-calendar-cell{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:inherit;min-height:128px}
.family-portal-calendar-open-link{margin-top:auto;font-size:12px;font-weight:700;color:#a12626}
.family-portal-checkbox-row--compact{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid #d6d3d1;border-radius:12px;background:#fff;width:auto}
.family-portal-checkbox-row--compact input{width:18px !important;height:18px !important;min-width:18px;margin:0}
.family-portal-event-settings-row{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.family-portal-mini-gallery--interactive{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
.family-portal-image-card{display:grid;gap:8px}
.family-portal-image-card img{width:100%;height:120px;object-fit:cover;border-radius:14px;border:1px solid #e5e7eb}
.family-portal-reaction-bar{display:flex;flex-wrap:wrap;gap:8px}
.family-portal-reaction-button{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid #d1d5db;border-radius:999px;background:#fff;color:#1f2937;cursor:pointer;font:inherit}
.family-portal-reaction-button.is-active{border-color:#a12626;color:#a12626;background:#fff5f5}
.family-portal-reaction-count{font-weight:700}
@media (max-width: 900px){.family-portal-calendar-grid-main,.family-portal-calendar-days{grid-template-columns:repeat(7,minmax(0,1fr))}.family-portal-calendar-cell{min-height:96px}}
@media (max-width: 680px){.family-portal-calendar-grid-main,.family-portal-calendar-days{grid-template-columns:repeat(7,minmax(0,1fr))}.family-portal-calendar-day-name{font-size:12px;padding:8px 4px}.family-portal-calendar-cell{min-height:84px;padding:8px}.family-portal-calendar-event-list li{font-size:11px}.family-portal-calendar-open-link{font-size:11px}}

.family-portal-button--small{padding:8px 12px;font-size:13px;min-width:auto}
.family-portal-actions--inline{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.family-portal-event-settings-row--aligned{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}
.family-portal-checkbox-row--compact{padding:0;margin:0}
.family-portal-checkbox-input{width:16px !important;height:16px !important;flex:0 0 16px}
.family-portal-sticky-actions{margin-top:28px;margin-bottom:32px}
.family-portal-profile .family-portal-sticky-actions{padding-top:10px}
.family-portal-calendar-cell.has-events{cursor:pointer;position:relative}
.family-portal-calendar-cell.has-events:hover{border-color:var(--fp-primary);box-shadow:0 0 0 2px rgba(0,85,164,.08)}
.family-portal-calendar-cell.has-events::after{content:'View event →';position:absolute;right:10px;bottom:8px;font-size:11px;color:var(--fp-primary);font-weight:600}
@media (max-width:782px){
    .family-portal-event-settings-row--aligned{display:grid;grid-template-columns:1fr}
}


.family-portal-calendar-links {
    display: grid;
    gap: 6px;
    margin-top: 8px;
}

.family-portal-calendar-open-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    line-height: 1.35;
    color: var(--fp-primary);
    text-decoration: none;
    font-weight: 600;
}

.family-portal-calendar-open-link:hover,
.family-portal-calendar-open-link:focus {
    text-decoration: underline;
}

.family-portal-calendar-event-list {
    margin: 8px 0 0;
    padding: 0;
    list-style: none;
}

.family-portal-calendar-event-list li {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.family-portal-calendar-event-dot {
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: var(--fp-primary);
    flex: 0 0 7px;
}

.family-portal-calendar-event-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.family-portal-events-calendar-header {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
    flex-wrap: wrap;
}

.family-portal-button--small {
    padding: 8px 12px;
    min-height: auto;
}

@media (max-width: 782px) {
    .family-portal-calendar-links {
        display: none;
    }

    .family-portal-events-calendar-header {
        flex-direction: column;
        align-items: stretch;
    }
}


/* EK-1 phase 3: Elementor compatibility + spacing cleanup */
.family-portal-elementor-safe,
.family-portal-elementor-safe * {
	box-sizing: border-box;
}

.family-portal-elementor-safe {
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.elementor .family-portal-elementor-safe .family-portal-grid,
.elementor .family-portal-elementor-safe .family-portal-result-card-grid,
.elementor .family-portal-elementor-safe .family-portal-dashboard-actions-grid,
.elementor .family-portal-elementor-safe .family-portal-guide-grid,
.elementor .family-portal-elementor-safe .family-portal-form-row,
.elementor .family-portal-elementor-safe .family-portal-dashboard-main-grid,
.elementor .family-portal-elementor-safe .family-portal-events-layout,
.elementor .family-portal-elementor-safe .family-portal-events-sidebar {
	min-width: 0;
	max-width: 100%;
}

.elementor .family-portal-elementor-safe .family-portal-panel,
.elementor .family-portal-elementor-safe .family-portal-field,
.elementor .family-portal-elementor-safe .family-portal-event-card,
.elementor .family-portal-elementor-safe .family-portal-guide-card {
	min-width: 0;
}

.elementor .family-portal-elementor-safe img,
.elementor .family-portal-elementor-safe video,
.elementor .family-portal-elementor-safe audio {
	max-width: 100%;
	height: auto;
}

.family-portal-elementor-safe .family-portal-button {
	white-space: normal;
	text-align: center;
	line-height: 1.25;
}

.family-portal-elementor-safe .family-portal-actions {
	align-items: center;
}

.family-portal-elementor-safe .family-portal-panel > h2,
.family-portal-elementor-safe .family-portal-panel > h3,
.family-portal-elementor-safe .family-portal-panel > h4 {
	margin-top: 0;
	margin-bottom: 12px;
	line-height: 1.25;
}

.family-portal-profile .family-portal-sticky-actions {
	margin-top: 4px;
	margin-bottom: 28px;
	padding-top: 8px;
	border-top: 1px solid var(--fp-color-border, #e2e8f0);
}

.family-portal-profile .family-portal-sticky-actions .family-portal-button {
	min-width: 180px;
}

.family-portal-portal-links-panel {
	margin-bottom: 24px;
}

.family-portal-quick-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.family-portal-quick-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 14px;
	border: 1px solid var(--fp-color-border, #e2e8f0);
	border-radius: 999px;
	background: #fff;
	color: var(--fp-color-text, #1f2a44);
	text-decoration: none;
	font-weight: 600;
}

.family-portal-quick-link:hover,
.family-portal-quick-link:focus {
	background: #111827;
	color: #fff;
	border-color: #111827;
}

.family-portal-dashboard-home .family-portal-panel,
.family-portal-events-hub .family-portal-panel,
.family-portal-guide .family-portal-panel,
.family-portal-upload .family-portal-panel,
.family-portal-profile .family-portal-panel {
	overflow: hidden;
}

.family-portal-dashboard-actions-grid > *,
.family-portal-result-card-grid > *,
.family-portal-guide-grid > * {
	min-width: 0;
}

.family-portal-events-layout {
	align-items: start;
}

.family-portal-events-calendar-panel {
	min-width: 0;
}

.family-portal-calendar-grid {
	width: 100%;
}

.family-portal-calendar-cell {
	min-width: 0;
}

.family-portal-calendar-event-list a {
	display: inline-block;
	max-width: 100%;
	overflow-wrap: anywhere;
}

.family-portal-form-row--two,
.family-portal-form-row--three {
	align-items: start;
}

.family-portal-upload-form .family-portal-actions,
.family-portal-events-hub .family-portal-actions,
.family-portal-guide .family-portal-actions {
	margin-top: 12px;
}

.family-portal-guide-hero,
.family-portal-events-hero,
.family-portal-dashboard-hero {
	gap: 18px;
}

@media (max-width: 1180px) {
	.family-portal-dashboard-main-grid,
	.family-portal-events-layout {
		grid-template-columns: 1fr;
	}

	.family-portal-events-sidebar,
	.family-portal-dashboard-sidebar-stack {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 900px) {
	.family-portal-hero {
		grid-template-columns: 1fr;
	}

	.family-portal-hero-media img {
		width: 120px;
		height: 120px;
	}

	.family-portal-hero-content {
		min-width: 0;
	}

	.family-portal-form-row--three,
	.family-portal-form-row--two {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 767px) {
	.family-portal-elementor-safe .family-portal-grid,
	.family-portal-elementor-safe .family-portal-result-card-grid,
	.family-portal-elementor-safe .family-portal-dashboard-actions-grid,
	.family-portal-elementor-safe .family-portal-guide-grid,
	.family-portal-elementor-safe .family-portal-form-row,
	.family-portal-elementor-safe .family-portal-dashboard-main-grid,
	.family-portal-elementor-safe .family-portal-events-layout {
		grid-template-columns: 1fr !important;
	}

	.family-portal-quick-links {
		flex-direction: column;
	}

	.family-portal-quick-link,
	.family-portal-elementor-safe .family-portal-button {
		width: 100%;
	}

	.family-portal-profile .family-portal-sticky-actions {
		margin-bottom: 22px;
	}
}

.family-portal-gallery-grid--social{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:14px 0}
.family-portal-gallery-item{display:grid;gap:8px}
.family-portal-gallery-item img{width:100%;height:150px;object-fit:cover;border-radius:16px;border:1px solid #e2e8f0;display:block}
.family-portal-lightbox-link{display:block;position:relative}
.family-portal-tag-list{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 12px}
.family-portal-tag-chip{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;background:#f8fafc;border:1px solid #e2e8f0;font-size:13px;font-weight:600;color:#334155}
.family-portal-inline-comments{margin-top:16px;padding-top:14px;border-top:1px solid #e2e8f0}
.family-portal-inline-comments h5{margin:0 0 12px;font-size:15px}
.family-portal-comment-list{display:grid;gap:10px;margin-bottom:14px}
.family-portal-comment-item{padding:12px 14px;border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc}
.family-portal-comment-item p{margin:8px 0 0}
.family-portal-inline-comment-form textarea{min-height:96px}
.family-portal-reaction-bar{display:flex;flex-wrap:wrap;gap:8px}
.family-portal-reaction-button{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;color:#334155;font-size:12px;font-weight:600;cursor:pointer}
.family-portal-reaction-button.is-active{background:#111827;color:#fff;border-color:#111827}
.family-portal-reaction-count{display:inline-flex;min-width:18px;justify-content:center}
.family-portal-lightbox{position:fixed;inset:0;background:rgba(15,23,42,.88);display:none;align-items:center;justify-content:center;padding:24px;z-index:99999}
.family-portal-lightbox.is-open{display:flex}
.family-portal-lightbox-inner{max-width:min(92vw,1000px);max-height:90vh;display:grid;gap:12px}
.family-portal-lightbox-image{max-width:100%;max-height:78vh;border-radius:18px;display:block;margin:auto}
.family-portal-lightbox-close{justify-self:end;padding:8px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#fff;cursor:pointer}
@media (max-width:782px){.family-portal-gallery-grid--social{grid-template-columns:repeat(2,minmax(0,1fr))}.family-portal-gallery-item img{height:132px}.family-portal-reaction-bar{gap:6px}.family-portal-reaction-button{padding:7px 8px;font-size:11px}}

.family-portal-comment-thread{display:grid;gap:12px}
.family-portal-comment-item{padding:14px;border:1px solid #e5e7eb;border-radius:14px;background:#fff}
.family-portal-comment-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.family-portal-comment-children{margin-top:12px;margin-left:18px;display:grid;gap:10px;border-left:2px solid #f1f5f9;padding-left:12px}
.family-portal-comment-actions{margin-top:8px}
.family-portal-button--tiny{padding:6px 10px;font-size:12px;line-height:1.2}
.family-portal-inline-reply-target{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #fecaca;border-radius:12px;background:#fff7f7;margin-bottom:10px}
.family-portal-comment-mentions{display:grid;gap:8px}
.family-portal-comment-mention{display:inline-block;padding:1px 6px;border-radius:999px;background:#eef2ff;color:#3730a3;font-weight:600}
.family-portal-tag-chip--button{cursor:pointer;border:1px solid #fecaca;background:#fff}
.family-portal-tag-chip--button:hover,.family-portal-tag-chip--button:focus{background:#111827;color:#fff;border-color:#111827}
.family-portal-lightbox-overlay{position:fixed;inset:0;background:rgba(15,23,42,.82);display:flex;align-items:center;justify-content:center;padding:24px;z-index:9999}
.family-portal-lightbox-inner{position:relative;max-width:min(92vw,980px);max-height:88vh}
.family-portal-lightbox-inner img{max-width:100%;max-height:88vh;border-radius:18px;display:block}
.family-portal-lightbox-close{position:absolute;top:10px;right:10px;width:40px;height:40px;border-radius:999px;border:0;background:#111827;color:#fff;font-size:28px;line-height:1;cursor:pointer}
body.family-portal-lightbox-open{overflow:hidden}


.family-portal-activity-feed-panel{margin-bottom:24px}
.family-portal-activity-feed-list{display:grid;gap:14px}
.family-portal-activity-card{display:grid;grid-template-columns:56px minmax(0,1fr);gap:16px;align-items:start;padding:16px;border:1px solid #e2e8f0;border-radius:18px;background:linear-gradient(180deg,#fff,#f8fafc)}
.family-portal-activity-icon{width:56px;height:56px;border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:26px;background:#fff;border:1px solid #e2e8f0}
.family-portal-activity-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.family-portal-activity-content h4{margin:0 0 6px;font-size:18px}
.family-portal-activity-content p{margin:0 0 10px}
.family-portal-activity-card--memory .family-portal-activity-icon{background:#eff6ff}
.family-portal-activity-card--tribute .family-portal-activity-icon{background:#fef2f2}
.family-portal-activity-card--event .family-portal-activity-icon{background:#ecfdf5}
.family-portal-activity-card--announcement .family-portal-activity-icon{background:#fff7ed}
.family-portal-activity-card--birthday .family-portal-activity-icon{background:#faf5ff}
@media (max-width: 782px){
  .family-portal-activity-card{grid-template-columns:1fr}
  .family-portal-activity-icon{width:48px;height:48px}
}


.family-portal-notifications-panel {
    margin-bottom: 24px;
}
.family-portal-notification-list {
    display: grid;
    gap: 14px;
}
.family-portal-notification-card {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 14px;
    padding: 14px;
    border: 1px solid var(--fp-border);
    border-radius: 16px;
    background: linear-gradient(180deg, var(--fp-surface), var(--fp-surface-soft));
}
.family-portal-notification-icon {
    width: 48px;
    height: 48px;
    border-radius: 999px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,.75);
    font-size: 24px;
}
.family-portal-notification-content h4 {
    margin: 8px 0 6px;
}
@media (max-width: 782px) {
    .family-portal-notification-card {
        grid-template-columns: 40px minmax(0, 1fr);
        padding: 12px;
    }
    .family-portal-notification-icon {
        width: 40px;
        height: 40px;
        font-size: 20px;
    }
}

.family-portal-gallery-grid--feature{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}
.family-portal-gallery-feature-card{display:grid;gap:10px;padding:10px;border:1px solid #e2e8f0;border-radius:18px;background:linear-gradient(180deg,#fff,#f8fafc)}
.family-portal-gallery-feature-card img{width:100%;height:180px;object-fit:cover;border-radius:14px;display:block}
.family-portal-gallery-feature-meta{display:grid;gap:8px}
.family-portal-gallery-title-link{font-weight:700;color:#111827;text-decoration:none}
.family-portal-gallery-title-link:hover{text-decoration:underline}
.family-portal-tag-list--linked{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0}
.family-portal-tag-chip--linked{text-decoration:none}
.family-portal-tag-chip--linked:hover{background:#111827;color:#fff}


.family-portal-social-home .family-portal-dashboard-hero--social{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:20px;align-items:stretch}
.family-portal-dashboard-hero-main .family-portal-actions{margin-top:14px}
.family-portal-dashboard-hero-side{display:grid;grid-template-columns:1fr;gap:12px}
.family-portal-social-stat{padding:16px;border:1px solid #e2e8f0;border-radius:16px;background:linear-gradient(180deg,#fff,#f8fafc);text-align:center}
.family-portal-social-stat strong{display:block;font-size:28px;line-height:1;margin-bottom:6px}
.family-portal-social-stat span{font-size:14px;color:#475569}
.family-portal-social-top-grid{grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr)}
.family-portal-social-mid-grid{grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr)}
.family-portal-spotlight-card{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:18px;align-items:stretch}
.family-portal-spotlight-media{border-radius:18px;overflow:hidden;background:#f8fafc;min-height:220px}
.family-portal-spotlight-media img{width:100%;height:100%;object-fit:cover;display:block}
.family-portal-spotlight-content{display:flex;flex-direction:column;justify-content:center}
.family-portal-share-prompt-list,.family-portal-popular-list{display:grid;gap:14px}
.family-portal-share-prompt-card,.family-portal-popular-card{display:grid;grid-template-columns:auto 1fr;gap:14px;padding:14px;border:1px solid #e2e8f0;border-radius:16px;background:#fff}
.family-portal-popular-card{grid-template-columns:1fr}
.family-portal-share-prompt-icon{width:44px;height:44px;border-radius:14px;background:#111827;color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px}
.family-portal-share-prompt-content h4,.family-portal-popular-card h4,.family-portal-spotlight-content h4{margin:0 0 6px}
.family-portal-share-prompt-content p,.family-portal-popular-card p,.family-portal-spotlight-content p{margin:0 0 10px}
.family-portal-activity-feed-list--rich{display:grid;gap:14px}
.family-portal-activity-card,.family-portal-notification-card{border:1px solid #e2e8f0;border-radius:16px;padding:14px;background:#fff}
.family-portal-popular-top{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
@media (max-width: 1024px){
  .family-portal-social-home .family-portal-dashboard-hero--social,
  .family-portal-social-top-grid,
  .family-portal-social-mid-grid,
  .family-portal-spotlight-card{grid-template-columns:1fr}
  .family-portal-dashboard-hero-side{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width: 782px){
  .family-portal-dashboard-hero-side{grid-template-columns:1fr}
  .family-portal-share-prompt-card{grid-template-columns:1fr}
}

.family-portal-count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 8px;margin-left:8px;border-radius:999px;background:#111827;color:#fff;font-size:12px;font-weight:700}
.family-portal-notification-card.is-unread{border-color:#c7d2fe;box-shadow:0 10px 28px rgba(79,70,229,.08);background:linear-gradient(180deg,#fff,#f8faff)}
.family-portal-notification-card.is-read{opacity:.92}
.family-portal-unread-dot{display:inline-flex;align-items:center;justify-content:center;padding:3px 8px;border-radius:999px;background:#dcfce7;color:#166534;font-size:12px;font-weight:700}
.family-portal-button.is-ghost{background:#fff;color:#111827;border:1px dashed #cbd5e1}
.family-portal-button.is-ghost:hover,.family-portal-button.is-ghost:focus{background:#111827;color:#fff;border-color:#111827}
.family-portal-engagement-panel .family-portal-activity-card{border:1px solid #e2e8f0;border-radius:16px;padding:14px;background:#fff}
.family-portal-engagement-panel .family-portal-activity-card--engagement{display:grid;grid-template-columns:52px 1fr;gap:14px}
.family-portal-engagement-panel .family-portal-activity-icon{width:52px;height:52px;border-radius:16px;background:#f8fafc;display:flex;align-items:center;justify-content:center;font-size:24px}


.family-portal-albums-browser,
.family-portal-album-detail {
    display: grid;
    gap: 20px;
}

.family-portal-album-card {
    display: grid;
    gap: 12px;
}

.family-portal-gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 14px;
}

.family-portal-gallery-grid img {
    width: 100%;
    height: 140px;
    object-fit: cover;
    border-radius: 16px;
    border: 1px solid var(--fp-border);
}

.family-portal-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.family-portal-chip {
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    border-radius: 999px;
    background: var(--fp-surface-soft);
    border: 1px solid var(--fp-border);
    font-size: 12px;
    line-height: 1.2;
}

.family-portal-chip--accent {
    background: rgba(0,0,0,0.04);
}

@media (max-width: 782px) {
    .family-portal-gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


/* EK-3 notification QA + responsive stabilization */
.family-portal-elementor-safe,
.family-portal-elementor-safe * {
    box-sizing: border-box;
}

.family-portal-dashboard-home,
.family-portal-profile,
.family-portal-upload,
.family-portal-guide,
.family-portal-events-hub,
.family-portal-search {
    width: 100%;
    max-width: 100%;
}

.family-portal-panel-header-row .family-portal-actions,
.family-portal-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
}

.family-portal-actions .family-portal-button,
.family-portal-panel-header-row .family-portal-button {
    max-width: 100%;
}

.family-portal-dashboard-hero--social {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(260px, 1fr);
    gap: 18px;
}

.family-portal-social-top-grid,
.family-portal-social-mid-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(280px, 1fr);
    gap: 20px;
    align-items: start;
}

.family-portal-notification-list,
.family-portal-dashboard-mini-stack,
.family-portal-activity-list {
    display: grid;
    gap: 14px;
}

.family-portal-notification-card,
.family-portal-activity-card,
.family-portal-announcement-card,
.family-portal-share-prompt-card,
.family-portal-spotlight-card,
.family-portal-guide-card {
    overflow: hidden;
}

.family-portal-notification-card {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
}

.family-portal-notification-content,
.family-portal-activity-content,
.family-portal-share-prompt-card > div {
    min-width: 0;
}

.family-portal-notification-card h4,
.family-portal-activity-card h4,
.family-portal-guide-card h4,
.family-portal-spotlight-card h4 {
    overflow-wrap: anywhere;
}

.family-portal-hero,
.family-portal-dashboard-hero,
.family-portal-events-hero {
    overflow: hidden;
}

.family-portal-profile .family-portal-sticky-actions {
    margin: 8px 0 28px;
    padding-top: 8px;
    justify-content: flex-start;
}

.family-portal-profile .family-portal-sticky-actions .family-portal-button {
    min-width: 180px;
}

.family-portal-quick-links {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 14px;
}

.family-portal-quick-link {
    display: inline-flex;
    align-items: center;
    padding: 9px 12px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid #e2e8f0;
    text-decoration: none;
}

.family-portal-events-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(300px, 1fr);
    gap: 20px;
    align-items: start;
}

.family-portal-events-sidebar {
    display: grid;
    gap: 18px;
}

.family-portal-events-calendar-panel {
    overflow-x: auto;
}

.family-portal-calendar-grid {
    min-width: 0;
}

.family-portal-calendar-cell {
    min-height: 120px;
}

.family-portal-calendar-event-links {
    display: grid;
    gap: 6px;
    margin-top: 10px;
}

.family-portal-calendar-event-links a {
    font-size: 12px;
    line-height: 1.35;
    text-decoration: none;
    overflow-wrap: anywhere;
}

.family-portal-gallery-grid,
.family-portal-mini-gallery {
    align-items: start;
}

.family-portal-lightbox-inner {
    max-width: min(92vw, 1080px);
    max-height: 90vh;
}

.family-portal-lightbox-image {
    max-width: 100%;
    max-height: calc(90vh - 60px);
    object-fit: contain;
}

.family-portal-guide-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(280px, 1fr);
    gap: 20px;
    align-items: start;
}

.family-portal-guide-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 18px;
}

.family-portal-form-row > .family-portal-field {
    min-width: 0;
}

.family-portal-upload-form .family-portal-grid,
.family-portal-profile .family-portal-grid {
    align-items: start;
}

.family-portal-chip-row {
    align-items: center;
}

.family-portal-comment-thread,
.family-portal-comment-children {
    overflow-wrap: anywhere;
}

.family-portal-button,
.family-portal-quick-link {
    white-space: normal;
    text-align: center;
}

@media (max-width: 1280px) {
    .family-portal-dashboard-hero--social,
    .family-portal-social-top-grid,
    .family-portal-social-mid-grid,
    .family-portal-events-layout,
    .family-portal-guide-hero {
        grid-template-columns: 1fr;
    }

    .family-portal-dashboard-hero-side {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1024px) {
    .family-portal-hero {
        grid-template-columns: 112px 1fr;
    }

    .family-portal-hero-media img {
        width: 112px;
        height: 112px;
    }

    .family-portal-panel {
        padding: 18px;
    }

    .family-portal-calendar-cell {
        min-height: 104px;
    }

    .family-portal-grid,
    .family-portal-result-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 782px) {
    .family-portal-grid,
    .family-portal-result-card-grid,
    .family-portal-guide-grid,
    .family-portal-dashboard-actions-grid,
    .family-portal-social-top-grid,
    .family-portal-social-mid-grid {
        grid-template-columns: 1fr;
    }

    .family-portal-hero,
    .family-portal-notification-card,
    .family-portal-activity-card--engagement,
    .family-portal-share-prompt-card {
        grid-template-columns: 1fr;
    }

    .family-portal-hero-media img {
        width: 96px;
        height: 96px;
    }

    .family-portal-dashboard-hero-side {
        grid-template-columns: 1fr;
    }

    .family-portal-profile .family-portal-sticky-actions .family-portal-button,
    .family-portal-actions .family-portal-button {
        width: 100%;
    }

    .family-portal-calendar-days {
        display: none;
    }

    .family-portal-calendar-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .family-portal-calendar-cell {
        min-height: 92px;
        padding: 10px;
    }

    .family-portal-calendar-event-list {
        display: none;
    }

    .family-portal-calendar-event-links a {
        font-size: 11px;
    }
}

@media (max-width: 560px) {
    .family-portal-panel {
        padding: 16px;
        border-radius: 16px;
    }

    .family-portal-hero-title,
    .family-portal-dashboard-hero h2 {
        font-size: 28px;
    }

    .family-portal-form-row {
        grid-template-columns: 1fr;
    }

    .family-portal-gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .family-portal-calendar-grid {
        grid-template-columns: 1fr;
    }

    .family-portal-quick-link,
    .family-portal-button {
        width: 100%;
        justify-content: center;
    }
}


.family-portal-brand-row{margin:0 0 18px;display:flex;align-items:center}
.family-portal-brand-row--center{justify-content:center}
.family-portal-brand-logo{max-width:320px;width:100%;height:auto;display:block}
.family-portal-brand-logo--gold{max-width:300px}
@media (max-width:782px){
  .family-portal-brand-logo,.family-portal-brand-logo--gold{max-width:220px}
}

.family-portal-brand-banner{display:flex;justify-content:center;align-items:center;margin:0 auto 20px;padding:12px 16px}
.family-portal-brand-banner-image{display:block;max-width:min(560px,100%);height:auto}
.family-portal-brand-banner--compact .family-portal-brand-banner-image{max-width:min(260px,88vw)}
.family-portal-direct-upload-input{display:none}
.family-portal-upload-media-stack{display:grid;gap:18px}
.family-portal-media-uploader-card .family-portal-inline-note{margin:.5rem 0 0;color:#6b7280}
@media (max-width: 782px){
  .family-portal-brand-banner{padding:8px 12px;margin-bottom:16px}
  .family-portal-brand-banner-image{max-width:min(320px,92vw)}
  .family-portal-actions{flex-wrap:wrap}
}


.family-portal-brand-banner{
  width:100%;
  max-width:100%;
  display:flex;
  justify-content:center;
  align-items:center;
  margin:0 auto 20px;
  padding:12px 16px;
  box-sizing:border-box;
}
.family-portal-brand-banner-image{
  display:block;
  width:auto;
  max-width:min(560px,100%);
  height:auto;
}
.family-portal-brand-banner--compact .family-portal-brand-banner-image{
  max-width:min(320px,100%);
}
.family-portal-elementor-safe,
.family-portal-dashboard-home,
.family-portal-events-hub,
.family-portal-guide,
.family-portal-search,
.family-portal-profile,
.family-portal-upload,
.family-portal-albums-browser{
  width:100%;
  max-width:1180px;
  margin-left:auto;
  margin-right:auto;
  box-sizing:border-box;
}
@media (max-width: 782px){
  .family-portal-brand-banner{
    padding:10px 12px;
    margin-bottom:16px;
  }
  .family-portal-brand-banner-image{
    max-width:min(260px,100%);
  }
  .family-portal-elementor-safe,
  .family-portal-dashboard-home,
  .family-portal-events-hub,
  .family-portal-guide,
  .family-portal-search,
  .family-portal-profile,
  .family-portal-upload,
  .family-portal-albums-browser{
    padding-left:12px;
    padding-right:12px;
  }
}


/* v7 shared shell stabilization */
.family-portal-page-shell{
  width:100%;
  max-width:1200px;
  margin:0 auto 32px;
  padding:0 16px 32px;
  box-sizing:border-box;
}
.family-portal-theme-heritage-classic,
.family-portal-theme-heritage-modern,
.family-portal-theme-heritage-warm,
[class*="family-portal-theme-"]{
  width:100%;
  max-width:100%;
  display:block;
  box-sizing:border-box;
}
.family-portal-page-shell .family-portal-panel,
.family-portal-page-shell .family-portal-events-layout,
.family-portal-page-shell .family-portal-grid,
.family-portal-page-shell .family-portal-guide-grid,
.family-portal-page-shell .family-portal-dashboard-actions-grid,
.family-portal-page-shell .family-portal-result-card-grid{
  min-width:0;
}
.family-portal-page-shell .family-portal-panel{
  overflow-wrap:anywhere;
}
.family-portal-page-shell .family-portal-brand-row{
  justify-content:flex-start;
}
.family-portal-dashboard-home .family-portal-dashboard-hero,
.family-portal-guide .family-portal-guide-hero,
.family-portal-events-hub .family-portal-events-hero,
.family-portal-search-v2 .family-portal-search-hero,
.family-portal-upload-v2 .family-portal-panel:first-child,
.family-portal-profile .family-portal-panel:first-child{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.family-portal-guide .family-portal-guide-grid,
.family-portal-guide .family-portal-grid{
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
}
.family-portal-dashboard-home .family-portal-grid{
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
}
.family-portal-events-layout{
  align-items:start;
}
.family-portal-brand-banner + .family-portal-page-shell{
  margin-top:0;
}
@media (max-width:1024px){
  .family-portal-page-shell{
    padding:0 14px 28px;
  }
}
@media (max-width:782px){
  .family-portal-page-shell{
    padding:0 12px 24px;
    margin-bottom:24px;
  }
  .family-portal-guide .family-portal-guide-grid,
  .family-portal-guide .family-portal-grid,
  .family-portal-dashboard-home .family-portal-grid,
  .family-portal-result-card-grid,
  .family-portal-dashboard-actions-grid{
    grid-template-columns:1fr;
  }
  .family-portal-events-layout{
    grid-template-columns:1fr;
  }
  .family-portal-panel{
    padding:16px;
  }
}

.family-portal-moments-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}
.family-portal-moment-card img,.family-portal-moment-card video{width:100%;height:auto;display:block;border-radius:12px}
.family-portal-notice{margin:0 0 1rem;padding:.75rem 1rem;border:1px solid rgba(0,0,0,.08);border-radius:10px;background:#fff}

.family-portal-moment-composer{margin-bottom:24px}
.family-portal-moment-card img,.family-portal-moment-card video{width:100%;display:block;border-top-left-radius:16px;border-top-right-radius:16px;max-height:420px;object-fit:cover;background:#000}
.family-portal-moment-comments{margin-top:14px;padding-top:14px;border-top:1px solid #e5e7eb}
.family-portal-comment-thread{display:grid;gap:10px;margin-bottom:12px}
.family-portal-comment{padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px}
.family-portal-chip-row{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.family-portal-chip{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#f3f4f6;color:#111827;text-decoration:none;font-size:13px}
.family-portal-reaction-bar{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.family-portal-reaction-button{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid #e5e7eb;border-radius:999px;background:#fff;cursor:pointer}
.family-portal-reaction-button.is-active{border-color:#111827}


.family-portal-guide-step-heading,
.family-portal-guide-card-heading{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:10px;
}
.family-portal-guide-step-heading h4,
.family-portal-guide-card-heading h4{
  margin:0;
}
.family-portal-guide-step-icon{
  flex:0 0 auto;
  width:40px;
  height:40px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  border:1px solid #e5e7eb;
  font-size:20px;
}
.family-portal-guide-card-icon{
  flex:0 0 auto;
  font-size:22px;
}
.family-portal-guide-separator{
  height:1px;
  margin:20px 0 24px;
  background:#e5e7eb;
}
.family-portal-guide-step .family-portal-button{
  margin-top:8px;
}
.family-portal-empty-state{
  padding:20px;
  border:1px dashed #d1d5db;
  border-radius:16px;
  background:#fff;
}
.family-portal-empty-state h4{
  margin-top:0;
  margin-bottom:8px;
}
.family-portal-panel-header-inline{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:14px;
}
.family-portal-panel-header-inline h3{
  margin:0;
}
.family-portal-moments-intro .family-portal-inline-note--success{
  color:#166534;
}
.family-portal-moment-upload-hints{
  margin-top:10px;
}
@media (max-width: 782px){
  .family-portal-panel-header-inline{
    flex-direction:column;
  }
  .family-portal-guide-step-icon{
    width:36px;
    height:36px;
    font-size:18px;
  }
  .family-portal-guide-separator{
    margin:16px 0 20px;
  }
}



/* v7.02.9 centered page header */
.family-portal-page-header-title-wrap{
  display:flex;
  justify-content:center;
  align-items:center;
  width:100%;
  margin:-8px auto 28px;
  padding:0 16px;
  box-sizing:border-box;
  text-align:center;
}

.family-portal-page-header-title-inner{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  flex-wrap:nowrap;
}
.family-portal-page-header-mark{
  width:30px;
  height:30px;
  object-fit:contain;
  flex:0 0 auto;
  border-radius:8px;
}
.family-portal-page-header-title{
  margin:0;
  text-align:center;
  font-size:clamp(1.5rem, 2.4vw, 2.2rem);
  line-height:1.2;
  color:#111827;
}
.family-portal-page-shell > .family-portal-panel:first-of-type,
.family-portal-page-shell > section.family-portal-panel:first-of-type{
  margin-top:0;
}
.family-portal-guide-step{
  padding:4px 0 10px;
}
.family-portal-guide-step-heading,
.family-portal-guide-card-heading{
  gap:14px;
  margin-bottom:14px;
}
.family-portal-guide-step-icon{
  width:44px;
  height:44px;
}
.family-portal-guide-separator{
  margin:28px 0;
}
.family-portal-guide-step .family-portal-button{
  margin-top:12px;
}
.family-portal-moment-upload-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:10px;
}
.family-portal-moment-upload-actions .family-portal-button{
  width:auto;
}
.family-portal-moment-selected-file{
  margin-top:10px;
  color:#374151;
  font-size:.95rem;
}
@media (max-width: 782px){
  .family-portal-page-header-title-wrap{
    margin:-4px auto 22px;
    padding:0 12px;
  }
  .family-portal-guide-separator{
    margin:24px 0;
  }
  .family-portal-moment-upload-actions .family-portal-button{
    width:100%;
  }
}


/* v7.03.0 support guide redesign */
.family-portal-support-guide{display:grid;gap:28px}
.family-portal-support-guide-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 30px;background:linear-gradient(135deg,var(--fp-surface-soft,#FAF6EE) 0%,var(--fp-surface,#fff) 100%)}
.family-portal-support-guide-copy{max-width:760px}
.family-portal-support-guide-kicker{display:inline-block;margin-bottom:10px;font-size:.85rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--fp-primary,#0055A4)}
.family-portal-support-guide-hero h2,
.family-portal-support-section-heading h2,
.family-portal-support-help-copy h2,
.family-portal-support-cta-strip h2{margin:0 0 10px;font-size:clamp(1.55rem,2.2vw,2.1rem);line-height:1.15;color:var(--fp-ink,#1F2A44)}
.family-portal-support-guide-hero p,
.family-portal-support-section-heading p,
.family-portal-support-help-copy p,
.family-portal-support-card p,
.family-portal-support-cta-strip p{margin:0;color:var(--fp-soft-ink,#5A6476);line-height:1.75}
.family-portal-support-guide-actions{display:flex;flex-direction:column;gap:12px;min-width:220px}
.family-portal-support-section{display:grid;gap:18px}
.family-portal-support-section-heading{display:grid;gap:8px}
.family-portal-support-card-grid{display:grid;gap:18px}
.family-portal-support-card-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}
.family-portal-support-card-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}
.family-portal-support-card-grid--leadership{grid-template-columns:repeat(4,minmax(0,1fr))}
.family-portal-support-card{padding:24px}
.family-portal-support-card--step,
.family-portal-support-card--action{height:100%}
.family-portal-support-card-title{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}
.family-portal-support-card-icon{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;font-size:1.4rem;line-height:1}
.family-portal-support-card h3{margin:0;font-size:1.2rem;line-height:1.25;color:var(--fp-ink,#1F2A44)}
.family-portal-support-card .family-portal-button{margin-top:18px}
.family-portal-support-role{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:4px 12px;border-radius:999px;background:var(--fp-surface-soft,#FAF6EE);color:var(--fp-primary,#0055A4);font-size:.85rem;font-weight:700;margin-bottom:14px}
.family-portal-support-help-layout{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);gap:24px;padding:28px 30px}
.family-portal-support-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.family-portal-support-form label{display:grid;gap:8px;font-weight:600;color:var(--fp-ink,#1F2A44)}
.family-portal-support-form label span{font-size:.95rem}
.family-portal-support-form label:nth-child(4),
.family-portal-support-form label:nth-child(5){grid-column:1 / -1}
.family-portal-support-form input,
.family-portal-support-form select,
.family-portal-support-form textarea{width:100%;padding:13px 14px;border:1px solid var(--fp-border,#E5DED1);border-radius:16px;background:var(--fp-surface,#fff);color:var(--fp-ink,#1F2A44);box-sizing:border-box}
.family-portal-support-form textarea{resize:vertical;min-height:132px}
.family-portal-support-form .family-portal-button{justify-self:start}
.family-portal-support-cta-strip{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px 28px}
.family-portal-support-cta-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}
@media (max-width:1180px){
  .family-portal-support-card-grid--leadership{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:980px){
  .family-portal-support-guide-hero,
  .family-portal-support-help-layout,
  .family-portal-support-cta-strip{grid-template-columns:1fr;display:grid}
  .family-portal-support-guide-actions,
  .family-portal-support-cta-actions{justify-content:flex-start}
  .family-portal-support-card-grid--three{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:782px){
  .family-portal-support-guide{gap:22px}
  .family-portal-support-guide-hero,
  .family-portal-support-help-layout,
  .family-portal-support-card,
  .family-portal-support-cta-strip{padding:20px}
  .family-portal-support-card-grid--three,
  .family-portal-support-card-grid--two,
  .family-portal-support-card-grid--leadership,
  .family-portal-support-form{grid-template-columns:1fr}
  .family-portal-support-guide-actions{min-width:0}
  .family-portal-support-cta-actions .family-portal-button,
  .family-portal-support-guide-actions .family-portal-button,
  .family-portal-support-form .family-portal-button{width:100%}
}


/* v7.03.1 event + announcements routing cleanup */
.family-portal-announcements-layout{display:grid;grid-template-columns:minmax(320px,.95fr) minmax(0,1.05fr);gap:20px;align-items:start}
.family-portal-announcements-hero{margin-bottom:0}
.family-portal-announcement-detail .family-portal-content{margin-top:14px}
@media (max-width:980px){
  .family-portal-announcements-layout{grid-template-columns:1fr}
}


/* v7.03.2 follow foundation */
.family-portal-profile-follow-panel{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
  padding:18px 20px;
}
.family-portal-profile-follow-panel h3{
  margin:0 0 8px;
  font-size:1.1rem;
}
.family-portal-profile-follow-panel p{
  margin:0;
  color:var(--fp-soft-ink,#5A6476);
}
.family-portal-profile-follow-form{
  flex-shrink:0;
}
@media (max-width:782px){
  .family-portal-profile-follow-panel{
    flex-direction:column;
    align-items:flex-start;
  }
  .family-portal-profile-follow-form,
  .family-portal-profile-follow-form .family-portal-button{
    width:100%;
  }
}


/* v7.03.3 notifications and calendar polish */
.family-portal-checkbox-stack{display:grid;gap:10px;margin-top:12px}
.family-portal-checkbox-row{display:flex;align-items:flex-start;gap:10px;color:var(--fp-ink,#1F2A44)}
.family-portal-checkbox-row input{margin-top:3px}
.family-portal-calendar-callout{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:16px;padding:14px 16px;border:1px solid var(--fp-border,#E5DED1);border-radius:18px;background:var(--fp-surface-soft,#FAF6EE)}
.family-portal-calendar-callout p{margin:0;color:var(--fp-soft-ink,#5A6476)}
@media (max-width:782px){
  .family-portal-calendar-callout{align-items:flex-start}
  .family-portal-calendar-callout .family-portal-button{width:100%}
}

@media (max-width: 782px){
  .family-portal-page-header-title-inner{
    gap:10px;
  }
  .family-portal-page-header-mark{
    width:26px;
    height:26px;
  }
}


/* v7.03.6 header system polish + premium branding prep */
.family-portal-page-header-title-wrap{
  margin:-2px auto 24px;
  padding:0 18px;
}
.family-portal-page-header-title-inner{
  min-height:40px;
  gap:10px;
}
.family-portal-page-header-mark{
  width:24px;
  height:24px;
  border-radius:6px;
}
.family-portal-page-header-title{
  font-size:clamp(1.35rem,2vw,2rem);
  letter-spacing:-0.01em;
}
.family-portal-page-shell{
  max-width:1160px;
}
.family-portal-brand-banner{
  margin:0 auto 14px;
}
.family-portal-support-guide .family-portal-page-header-title,
.family-portal-dashboard-home .family-portal-page-header-title,
.family-portal-events-hub .family-portal-page-header-title,
.family-portal-profile .family-portal-page-header-title,
.family-portal-events-hub .family-portal-page-header-title{
  color:var(--fp-ink,#1F2A44);
}
@media (max-width:782px){
  .family-portal-page-header-title-wrap{
    margin:0 auto 18px;
    padding:0 12px;
  }
  .family-portal-page-header-title-inner{
    gap:8px;
  }
  .family-portal-page-header-mark{
    width:20px;
    height:20px;
    border-radius:5px;
  }
  .family-portal-page-header-title{
    font-size:clamp(1.2rem,5vw,1.5rem);
  }
}


/* v7.03.7 floating help launcher */
.family-portal-help-launcher{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:9999;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:10px;
}
.family-portal-help-launcher-toggle{
  display:inline-flex;
  align-items:center;
  gap:10px;
  border:1px solid var(--fp-border,#E5DED1);
  border-radius:999px;
  background:var(--fp-surface,#fff);
  color:var(--fp-ink,#1F2A44);
  box-shadow:0 14px 34px rgba(31,42,68,.12);
  padding:10px 14px;
  cursor:pointer;
  font:inherit;
  font-weight:700;
}
.family-portal-help-launcher-toggle img{
  width:24px;
  height:24px;
  display:block;
  border-radius:999px;
}
.family-portal-help-launcher-panel{
  width:min(320px, calc(100vw - 32px));
  background:var(--fp-surface,#fff);
  border:1px solid var(--fp-border,#E5DED1);
  border-radius:20px;
  box-shadow:0 16px 42px rgba(31,42,68,.16);
  padding:18px;
}
.family-portal-help-launcher-panel h3{
  margin:0 0 8px;
  font-size:1.05rem;
  color:var(--fp-ink,#1F2A44);
}
.family-portal-help-launcher-panel p{
  margin:0 0 12px;
  color:var(--fp-soft-ink,#5A6476);
  line-height:1.6;
}
.family-portal-help-launcher-links{
  display:grid;
  gap:8px;
}
.family-portal-help-launcher-links a{
  display:block;
  padding:10px 12px;
  border-radius:12px;
  background:var(--fp-surface-soft,#FAF6EE);
  color:var(--fp-primary,#0055A4);
  text-decoration:none;
  font-weight:600;
}
.family-portal-help-launcher-links a:hover{
  background:var(--fp-surface-tint,#F4EFE4);
}
@media (max-width:782px){
  .family-portal-help-launcher{
    right:12px;
    bottom:12px;
  }
  .family-portal-help-launcher-toggle{
    padding:10px 12px;
  }
  .family-portal-help-launcher-toggle span{
    font-size:.95rem;
  }
}
