/* ============================================================
   home-native.css — Hardcoded "Native" Home Page styles
   Matches the EFF-branded landing layout.
   Selectors prefixed with .hn- so they don't collide with
   the customizable builder's .hv2- selectors.
   ============================================================ */

.home-native-root {
    padding: 22px 24px 60px;
    color: #1f2937;
    font-family: 'Futura PT', 'Jost', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
}

/* ──────────────────────────────────────────────
   1. WELCOME / HERO BAR
   ────────────────────────────────────────────── */
.hn-welcome-card {
    background: #fff;
    border-radius: 16px;
    border: 1px solid #e5e1da;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
    padding: 28px 32px;
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 32px;
    align-items: center;
    margin-bottom: 22px;
}

.hn-greet-block .hn-greet-small {
    font-size: 17px;        /* was 15px */
    color: #4b5563;          /* was #6b7280 — darker for legibility */
    margin: 0 0 6px 0;
    font-weight: 500;
}

.hn-greet-block .hn-greet-name {
    font-size: 42px;        /* was 38px */
    font-weight: 700;
    color: #111827;
    margin: 0 0 10px 0;
    line-height: 1.1;
    letter-spacing: -0.02em;
}

.hn-greet-block .hn-greet-name .hn-wave {
    display: inline-block;
    margin-left: 6px;
    transform-origin: 70% 70%;
    animation: hnWave 2.6s ease-in-out infinite;
}

@keyframes hnWave {
    0%, 60%, 100% { transform: rotate(0deg); }
    10%, 30% { transform: rotate(14deg); }
    20% { transform: rotate(-8deg); }
    40% { transform: rotate(10deg); }
    50% { transform: rotate(0deg); }
}

.hn-greet-block .hn-greet-sub {
    font-size: 15.5px;       /* was 14px */
    color: #4b5563;          /* was #6b7280 — darker for legibility */
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    transition: opacity 250ms ease;
}
.hn-greet-block .hn-greet-sub--fade { opacity: 0; }

.hn-greet-block .hn-greet-sub-text {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    line-height: 1.4;
}

.hn-greet-block .hn-greet-sub-icon {
    font-size: 17px;
    line-height: 1;
}

/* Contextual treatments — subtle color pops for special-day messages so
   they read as a moment, not just another line. Birthday wins on style
   too: warm gold; holidays get a gentle amber; first-time gets brand green. */
.hn-greet-block .hn-greet-sub.greet-birthday        { color: #92400e; font-weight: 600; }
.hn-greet-block .hn-greet-sub.greet-birthday-soon   { color: #b45309; font-weight: 500; }
.hn-greet-block .hn-greet-sub.greet-holiday         { color: #1E6332; font-weight: 500; }
.hn-greet-block .hn-greet-sub.greet-firsttime       { color: #1E6332; font-weight: 500; }

/* Refresh button — small, unobtrusive, brand-tinted on hover. Sits inline
   with the greeting text so users discover it naturally. */
.hn-greet-block .hn-greet-refresh {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 1px solid transparent;
    background: transparent;
    color: #9ca3af;
    cursor: pointer;
    padding: 0;
    font-size: 11px;
    transition: all 180ms ease;
    flex-shrink: 0;
}
.hn-greet-block .hn-greet-refresh:hover {
    color: #1E6332;
    border-color: #d1e0d0;
    background: #f4f0e9;
    transform: rotate(180deg);
}
.hn-greet-block .hn-greet-refresh:active {
    transform: rotate(360deg);
    transition-duration: 600ms;
}
@media (prefers-reduced-motion: reduce) {
    .hn-greet-block .hn-greet-refresh,
    .hn-greet-block .hn-greet-refresh:hover,
    .hn-greet-block .hn-greet-refresh:active { transform: none; transition: none; }
    .hn-greet-block .hn-greet-sub { transition: none; }
}

.hn-greet-stats {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.hn-greet-stat {
    display: flex;
    align-items: center;
    gap: 14px;
    background: #fff;
    border: 1px solid #e5e1da;
    border-radius: 12px;
    padding: 14px 18px;
    min-width: 240px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
}

.hn-greet-stat-icon {
    width: 44px;             /* was 38px */
    height: 44px;
    border-radius: 11px;
    background: #F4F0E9;
    color: #1E6332;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;         /* was 16px */
    flex-shrink: 0;
}

.hn-greet-stat-body {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.hn-greet-stat-label {
    font-size: 14px;         /* was 12px */
    color: #4b5563;          /* was #6b7280 */
    margin-bottom: 4px;
    font-weight: 500;
}

.hn-greet-stat-row {
    display: flex;
    align-items: baseline;
    gap: 10px;
}

.hn-greet-stat-value {
    font-size: 28px;         /* was 22px */
    font-weight: 700;
    color: #111827;
}

.hn-greet-stat-trend {
    font-size: 13px;         /* was 11px */
    font-weight: 700;
    color: #1E6332;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.hn-greet-stat-trend.hn-trend-down { color: #b91c1c; }
.hn-greet-stat-trend-sub {
    font-size: 12px;         /* was 10px */
    color: #6b7280;          /* was #9ca3af — darker */
    margin-left: 3px;
    font-weight: 500;
}

/* Weather chip */
.hn-weather-chip {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 0 28px;
    border-left: 1px solid #e5e1da;
    border-right: 1px solid #e5e1da;
    min-height: 76px;
}

.hn-weather-icon {
    font-size: 40px;
    color: #f59e0b;
    line-height: 1;
    display: inline-block; /* required for transform animations */
    transform-origin: center center;
}

/* ──────────────────────────────────────────────────────────────────────────
   PER-CONDITION WEATHER ICON ANIMATIONS
   Each icon gets a subtle, looping animation that matches the weather it
   represents — sun rotates + glows, clouds drift sideways, rain bounces,
   snow rotates slowly, bolt flickers, fog pulses. All animations are
   GPU-friendly transform/opacity tweens so they don't repaint heavily.
   ────────────────────────────────────────────────────────────────────── */

/* Clear sun — slow rotation + warm glow pulse */
.hn-weather-icon .fa-sun {
    color: #f59e0b;
    animation: hnWxSunSpin 18s linear infinite, hnWxSunGlow 3.2s ease-in-out infinite;
    filter: drop-shadow(0 0 6px rgba(245, 158, 11, 0.35));
}
@keyframes hnWxSunSpin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}
@keyframes hnWxSunGlow {
    0%, 100% { filter: drop-shadow(0 0 4px rgba(245, 158, 11, 0.30)); }
    50%      { filter: drop-shadow(0 0 12px rgba(245, 158, 11, 0.60)); }
}

/* Clear moon — soft pulsing glow (no rotation, the moon doesn't spin visibly) */
.hn-weather-icon .fa-moon {
    color: #93c5fd;
    animation: hnWxMoonGlow 3.6s ease-in-out infinite;
}
@keyframes hnWxMoonGlow {
    0%, 100% { filter: drop-shadow(0 0 3px rgba(147, 197, 253, 0.40)); transform: scale(1); }
    50%      { filter: drop-shadow(0 0 10px rgba(147, 197, 253, 0.70)); transform: scale(1.04); }
}

/* Solid cloud — gentle horizontal drift + subtle vertical bob */
.hn-weather-icon .fa-cloud {
    color: #94a3b8;
    animation: hnWxCloudDrift 6s ease-in-out infinite;
}
@keyframes hnWxCloudDrift {
    0%, 100% { transform: translate(0, 0); }
    25%      { transform: translate(3px, -2px); }
    50%      { transform: translate(0, 1px); }
    75%      { transform: translate(-3px, -1px); }
}

/* Sun behind cloud — combine cloud drift with a subtle scale pulse */
.hn-weather-icon .fa-cloud-sun {
    color: #f59e0b;
    animation: hnWxCloudSunBob 5s ease-in-out infinite;
    filter: drop-shadow(0 0 4px rgba(245, 158, 11, 0.25));
}
@keyframes hnWxCloudSunBob {
    0%, 100% { transform: translateX(0) scale(1); }
    50%      { transform: translateX(3px) scale(1.04); }
}

/* Moon behind cloud — same drift pattern, cooler color */
.hn-weather-icon .fa-cloud-moon {
    color: #94a3b8;
    animation: hnWxCloudDrift 6s ease-in-out infinite;
}

/* Drizzle / Rain — gentle vertical bounce mimicking droplets */
.hn-weather-icon .fa-cloud-rain,
.hn-weather-icon .fa-cloud-showers-heavy {
    color: #3b82f6;
    animation: hnWxRainBounce 1.4s ease-in-out infinite;
}
@keyframes hnWxRainBounce {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-3px); }
}

/* Snow — slow rotation, mimicking falling/spinning snowflake */
.hn-weather-icon .fa-snowflake {
    color: #93c5fd;
    animation: hnWxSnowSpin 8s linear infinite;
}
@keyframes hnWxSnowSpin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

/* Thunderstorm — sharp flicker, like distant lightning */
.hn-weather-icon .fa-bolt {
    color: #f59e0b;
    animation: hnWxBoltFlicker 2.4s ease-in-out infinite;
}
@keyframes hnWxBoltFlicker {
    0%, 100%       { opacity: 1; filter: drop-shadow(0 0 6px rgba(245, 158, 11, 0.55)); transform: scale(1); }
    8%             { opacity: 0.55; transform: scale(0.95); }
    12%            { opacity: 1; transform: scale(1.08); filter: drop-shadow(0 0 12px rgba(253, 224, 71, 0.85)); }
    18%            { opacity: 0.7; }
    25%            { opacity: 1; }
}

/* Fog — slow scale + opacity pulse, evoking thinning/thickening fog */
.hn-weather-icon .fa-smog {
    color: #94a3b8;
    animation: hnWxFogPulse 4s ease-in-out infinite;
}
@keyframes hnWxFogPulse {
    0%, 100% { opacity: 0.85; transform: scale(1); }
    50%      { opacity: 1;    transform: scale(1.05); }
}

/* Honor users who prefer reduced motion — disable all of the looping
   animations so we're not animating against their accessibility setting. */
@media (prefers-reduced-motion: reduce) {
    .hn-weather-icon i,
    .hn-weather-icon .fa-sun,
    .hn-weather-icon .fa-moon,
    .hn-weather-icon .fa-cloud,
    .hn-weather-icon .fa-cloud-sun,
    .hn-weather-icon .fa-cloud-moon,
    .hn-weather-icon .fa-cloud-rain,
    .hn-weather-icon .fa-cloud-showers-heavy,
    .hn-weather-icon .fa-snowflake,
    .hn-weather-icon .fa-bolt,
    .hn-weather-icon .fa-smog {
        animation: none !important;
        filter: none !important;
    }
}

.hn-weather-text { display: flex; flex-direction: column; }
.hn-weather-temp { font-size: 32px; font-weight: 700; color: #111827; line-height: 1; }   /* was 28px */
.hn-weather-cond { font-size: 14.5px; color: #4b5563; margin-top: 5px; font-weight: 500; }  /* was 13px / #6b7280 */
.hn-weather-loc  { font-size: 13.5px; color: #6b7280; margin-top: 7px; display: flex; align-items: center; gap: 5px; } /* was 12px / #9ca3af */

.hn-weather-empty {
    font-size: 12px;
    color: #9ca3af;
    text-align: center;
    padding: 8px 12px;
}

.hn-weather-btn {
    background: transparent;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    color: #1E6332;
    font-size: 12px;
    font-weight: 600;
    padding: 6px 10px;
    cursor: pointer;
    margin-top: 4px;
}
.hn-weather-btn:hover { background: #F4F0E9; border-color: #1E6332; }

/* Date / time */
.hn-datetime-block { padding-left: 16px; min-width: 175px; }
.hn-dt-day  { font-size: 15.5px; color: #4b5563; font-weight: 600; margin-bottom: 5px; }  /* was 14px / #6b7280 */
.hn-dt-date { font-size: 25px; font-weight: 700; color: #111827; line-height: 1.15; }      /* was 22px */
.hn-dt-time { font-size: 19px; color: #4b5563; margin-top: 7px; font-weight: 500; }        /* was 18px / #6b7280 */

/* ──────────────────────────────────────────────
   2. ROW LAYOUTS — two columns 1.4fr / 1fr
   ────────────────────────────────────────────── */
.hn-row {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 20px;
    margin-bottom: 22px;
}

.hn-row-equal { grid-template-columns: 1fr 1fr; }

.hn-card {
    background: #fff;
    border: 1px solid #e5e1da;
    border-radius: 14px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
    padding: 26px 28px;       /* was 22px 24px — more breathing room for the bigger fonts */
}

.hn-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.hn-card-title {
    font-size: 18px;             /* was 16px */
    font-weight: 700;
    color: #111827;
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0;
}

.hn-card-title i {
    color: #1E6332;
    font-size: 17px;             /* was 15px */
}

.hn-card-link {
    font-size: 14.5px;           /* was 13px */
    color: #1E6332;
    text-decoration: none;
    font-weight: 600;
    cursor: pointer;
}
.hn-card-link:hover { text-decoration: underline; }

/* ──────────────────────────────────────────────
   3. CONTINUE WHERE YOU LEFT OFF
   ────────────────────────────────────────────── */
.hn-recent-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.hn-recent-item {
    display: grid;
    grid-template-columns: 1fr auto auto auto;
    align-items: center;
    gap: 14px;
    padding: 9px 4px;        /* tighter so 5 rows fit comfortably (was 12px) */
    border-bottom: 1px solid #f1ede7;
    cursor: pointer;
    transition: background-color 0.15s ease;
}
.hn-recent-item:hover { background: #fafaf8; }
.hn-recent-item:last-child { border-bottom: none; }

/* Draft variant — accent stripe + pen icon to distinguish from claim rows */
.hn-recent-item--draft {
    border-left: 3px solid #C19A6B;
    padding-left: 10px;
    background: #fdfaf3;
}
.hn-recent-item--draft:hover { background: #f7f0e1; }
.hn-recent-draft-icon {
    color: #C19A6B;
    font-size: 12px;
    margin-right: 4px;
}
.hn-status-draft-pill {
    background: #f5ecdc;
    color: #8a6a3b;
}

.hn-recent-name {
    font-size: 15.5px;        /* was 14px */
    font-weight: 600;
    color: #111827;
    line-height: 1.3;
}

.hn-recent-id {
    font-size: 13px;          /* was 12px */
    color: #6b7280;           /* was #9ca3af — darker */
    margin-top: 3px;
    font-weight: 500;
}

.hn-status-pill {
    display: inline-flex;
    align-items: center;
    padding: 5px 12px;        /* slightly more padding */
    border-radius: 999px;
    font-size: 12.5px;        /* was 11px */
    font-weight: 700;          /* was 600 — bolder reads better at small size */
    text-transform: none;
    white-space: nowrap;
}

.hn-status-review     { background: #d1fae5; color: #065f46; }
.hn-status-pending    { background: #fef3c7; color: #92400e; }
.hn-status-draft      { background: #e5e7eb; color: #374151; }
.hn-status-completed  { background: #dbeafe; color: #1e40af; }
.hn-status-funded     { background: #d1fae5; color: #065f46; }

.hn-recent-time {
    font-size: 13px;          /* was 12px */
    color: #6b7280;           /* was #9ca3af */
    font-weight: 500;
}

.hn-recent-arrow {
    color: #6b7280;
    font-size: 14px;
}

.hn-recent-empty {
    text-align: center;
    padding: 28px 12px;
    color: #6b7280;
    font-size: 14px;          /* was 13px */
}

.hn-view-all-row {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 18px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #f1ede7;
    flex-wrap: wrap;
}
.hn-card-link--alt { color: #8a6a3b; }
.hn-card-link--alt:hover { color: #6b4f24; }

/* ──────────────────────────────────────────────
   4. QUICK ACTIONS
   ────────────────────────────────────────────── */
.hn-actions-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.hn-action-tile {
    background: #fff;
    border: 1px solid #e5e1da;
    border-radius: 12px;
    padding: 22px 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    cursor: pointer;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
    text-align: center;
}

.hn-action-tile:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 18px rgba(30, 99, 50, 0.10);
    border-color: #1E6332;
}

.hn-action-icon-circle {
    width: 52px;            /* was 46px */
    height: 52px;
    border-radius: 50%;
    background: #F4F0E9;
    color: #1E6332;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;        /* was 18px */
}

.hn-action-tile.hn-action-primary .hn-action-icon-circle {
    background: #1E6332;
    color: #fff;
}

.hn-action-label {
    font-size: 14.5px;      /* was 13px */
    font-weight: 600;
    color: #111827;
}

/* ──────────────────────────────────────────────
   5. CLAIM OVERVIEW (KPIs + DONUT)
   ────────────────────────────────────────────── */
.hn-kpi-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-bottom: 18px;
}

.hn-kpi-tile {
    background: #fafaf7;
    border: 1px solid #f0ebe2;
    border-radius: 10px;
    padding: 18px 12px;       /* was 14px 10px */
    text-align: center;
}

.hn-kpi-label {
    font-size: 13px;          /* was 11px */
    color: #4b5563;           /* was #6b7280 — darker */
    margin-bottom: 8px;
    font-weight: 600;
    letter-spacing: 0.01em;
}

.hn-kpi-value {
    font-size: 28px;          /* was 22px */
    font-weight: 700;
    color: #111827;
    line-height: 1;
}

.hn-kpi-trend {
    font-size: 12px;          /* was 10px */
    margin-top: 8px;
    color: #1E6332;
    font-weight: 600;
}

.hn-kpi-trend.hn-trend-down { color: #b91c1c; }

.hn-donut-block {
    display: grid;
    grid-template-columns: 180px 1fr;
    align-items: center;
    gap: 24px;
    padding-top: 6px;
}

.hn-donut-wrap {
    position: relative;
    width: 180px;
    height: 180px;
}

.hn-donut-wrap svg {
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}

.hn-donut-center {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.hn-donut-num {
    font-size: 36px;          /* was 32px */
    font-weight: 700;
    color: #111827;
    line-height: 1;
}

.hn-donut-lbl {
    font-size: 13px;          /* was 12px */
    color: #4b5563;           /* was #6b7280 */
    margin-top: 4px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 600;
}

.hn-legend {
    display: flex;
    flex-direction: column;
    gap: 11px;
    flex: 1;
}

.hn-legend-row {
    display: grid;
    grid-template-columns: 14px 1fr auto auto;
    align-items: center;
    gap: 12px;
    font-size: 14.5px;        /* was 13px */
}

.hn-legend-dot {
    width: 12px;              /* was 10px */
    height: 12px;
    border-radius: 50%;
    flex-shrink: 0;
}

.hn-legend-label { color: #1f2937; font-weight: 500; }   /* was #374151 — slightly bolder */
.hn-legend-count { font-weight: 700; color: #111827; }
.hn-legend-pct   { color: #6b7280; font-size: 13px; min-width: 48px; text-align: right; font-weight: 500; }   /* was #9ca3af / 12px */

/* Status colors used by donut + legend */
.hn-color-review     { background: #1E6332; }   /* deep green */
.hn-color-pending    { background: #f59e0b; }   /* amber */
.hn-color-draft      { background: #C19A6B; }   /* caramel */
.hn-color-completed  { background: #6b7280; }   /* gray */

/* ──────────────────────────────────────────────
   6. UPCOMING EVENTS
   ────────────────────────────────────────────── */
.hn-events-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.hn-event-section-header {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #1E6332;
    padding: 8px 4px 6px;
    border-bottom: 1px solid #e8e3da;
    margin-bottom: 2px;
}
.hn-event-section-header i { font-size: 11px; opacity: 0.8; }
.hn-event-section-header--past { color: #6b7280; margin-top: 14px; }

.hn-event-section-list { display: flex; flex-direction: column; }

.hn-event-section-empty {
    font-size: 13px;
    color: #9ca3af;
    padding: 8px 4px 12px;
    font-style: italic;
}

.hn-event-item {
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 14px;
    align-items: center;
    padding: 10px 4px;
    border-bottom: 1px solid #f1ede7;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

.hn-event-item:hover { background: #fafaf8; }
.hn-event-item:last-child { border-bottom: none; }

.hn-event-item--past { opacity: 0.62; }
.hn-event-item--past:hover { opacity: 0.85; background: #f7f5f1; }
.hn-event-item--past .hn-event-date-box { filter: grayscale(0.6); }
.hn-event-item--past .hn-event-title { color: #4b5563; font-weight: 500; }

.hn-event-date-box {
    background: #F4F0E9;
    border-radius: 10px;
    padding: 8px 6px;
    text-align: center;
    line-height: 1;
}

.hn-event-month {
    font-size: 11px;          /* was 10px */
    font-weight: 700;
    color: #1E6332;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.hn-event-day {
    font-size: 24px;          /* was 22px */
    font-weight: 700;
    color: #111827;
    margin-top: 4px;
}

.hn-event-title {
    font-size: 15.5px;        /* was 14px */
    font-weight: 600;
    color: #111827;
    line-height: 1.35;
    margin: 0 0 5px 0;
}

.hn-event-meta {
    font-size: 13.5px;        /* was 12px */
    color: #4b5563;           /* was #6b7280 */
    display: flex;
    align-items: center;
    gap: 6px;
    font-weight: 500;
}

.hn-event-meta i { color: #6b7280; font-size: 12px; }

.hn-event-add-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 14px;
    margin-top: 10px;
    border-top: 1px solid #f1ede7;
}

.hn-event-add-btn {
    background: transparent;
    border: none;
    color: #1E6332;
    font-size: 14.5px;        /* was 13px */
    font-weight: 600;
    cursor: pointer;
    padding: 0;
}
.hn-event-add-btn:hover { text-decoration: underline; }

/* ──────────────────────────────────────────────
   7. LATEST NEWS
   ────────────────────────────────────────────── */
.hn-news-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.hn-news-item {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 16px;
    padding: 12px 4px;
    border-bottom: 1px solid #f1ede7;
    cursor: pointer;
    transition: background-color 0.15s ease;
    align-items: center;
}

.hn-news-item:hover { background: #fafaf8; }
.hn-news-item:last-child { border-bottom: none; }

.hn-news-thumb {
    width: 110px;
    height: 76px;
    border-radius: 10px;
    background: #F4F0E9 center center / cover no-repeat;
    flex-shrink: 0;
    color: #1E6332;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
}

.hn-news-title {
    font-size: 16px;          /* was 14px */
    font-weight: 600;
    color: #111827;
    line-height: 1.35;
    margin: 0 0 6px 0;
}

.hn-news-desc {
    font-size: 13.5px;        /* was 12px */
    color: #4b5563;           /* was #6b7280 — darker */
    line-height: 1.5;
    margin: 0 0 6px 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.hn-news-date {
    font-size: 12.5px;        /* was 11px */
    color: #6b7280;           /* was #9ca3af — darker */
    font-weight: 500;
}

.hn-news-footer {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #f1ede7;
    text-align: right;
}

/* ──────────────────────────────────────────────
   8. TOOLS & RESOURCES (6 tiles)
   ────────────────────────────────────────────── */
.hn-tools-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.hn-tool-tile {
    background: #fff;
    border: 1px solid #e5e1da;
    border-radius: 10px;
    padding: 16px;
    display: flex;
    align-items: center;
    gap: 14px;
    cursor: pointer;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.hn-tool-tile:hover {
    transform: translateY(-2px);
    border-color: #1E6332;
    box-shadow: 0 8px 16px rgba(30, 99, 50, 0.08);
}

.hn-tool-icon {
    width: 44px;              /* was 38px */
    height: 44px;
    border-radius: 9px;
    background: #F4F0E9;
    color: #1E6332;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;          /* was 16px */
    flex-shrink: 0;
}

.hn-tool-label {
    font-size: 14.5px;        /* was 13px */
    font-weight: 600;
    color: #111827;
    line-height: 1.35;
}

/* ──────────────────────────────────────────────
   9. OUR FAMILY OF COMPANIES
   ────────────────────────────────────────────── */
.hn-family-card {
    background: #fff;
    border: 1px solid #e5e1da;
    border-radius: 14px;
    padding: 18px 22px;
    margin-bottom: 22px;
}

.hn-family-title {
    font-size: 15px;          /* was 13px */
    font-weight: 600;
    color: #6b7280;
    margin: 0 0 14px 0;
    font-style: italic;
}

.hn-family-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}

.hn-family-tile {
    border: 1px solid #f0ebe2;
    border-radius: 12px;
    padding: 22px 16px 18px;
    text-align: center;
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
    background: #fff;
    display: flex;
    flex-direction: column;
}

.hn-family-tile:hover {
    transform: translateY(-2px);
    border-color: #1E6332;
    box-shadow: 0 6px 14px rgba(30, 99, 50, 0.08);
}

.hn-family-logo-wrap {
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
}

.hn-family-logo {
    max-height: 64px;
    max-width: 80%;
    object-fit: contain;
    transition: transform 0.18s ease;
}

.hn-family-tile:hover .hn-family-logo {
    transform: scale(1.04);
}

/* Fallback when the image fails to load — onerror swap in the renderer */
.hn-family-logo-fallback {
    font-size: 18px;
    font-weight: 700;
    color: #1E6332;
    background: #F4F0E9;
    padding: 14px 12px;
    border-radius: 8px;
    line-height: 1.2;
}

.hn-family-name {
    font-size: 17px;          /* was 16px */
    font-weight: 700;
    color: #111827;
    margin-bottom: 8px;
}

.hn-family-desc {
    font-size: 14px;          /* was 13px */
    color: #374151;            /* was #4b5563 — even darker for body copy */
    line-height: 1.5;
    margin-bottom: 14px;
    min-height: 40px;
}

.hn-family-link {
    color: #1E6332;
    font-size: 14px;          /* was 13px */
    font-weight: 600;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.hn-family-link:hover { text-decoration: underline; }

/* ──────────────────────────────────────────────
   10. RESPONSIVE
   ────────────────────────────────────────────── */
@media (max-width: 1100px) {
    .hn-welcome-card {
        grid-template-columns: 1fr;
        gap: 18px;
    }
    .hn-weather-chip { border-left: none; border-right: none; padding: 12px 0; }
    .hn-datetime-block { padding-left: 0; }
    .hn-row, .hn-row-equal {
        grid-template-columns: 1fr;
    }
    .hn-family-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .home-native-root { padding: 12px; }
    .hn-welcome-card { padding: 18px; }
    .hn-greet-block .hn-greet-name { font-size: 28px; }
    .hn-greet-stats { flex-direction: column; }
    .hn-greet-stat { min-width: 0; width: 100%; }
    .hn-kpi-row { grid-template-columns: repeat(2, 1fr); }
    .hn-donut-block { grid-template-columns: 1fr; justify-items: center; }
    .hn-tools-grid { grid-template-columns: 1fr; }
    .hn-actions-grid { grid-template-columns: 1fr 1fr; }
    .hn-family-grid { grid-template-columns: repeat(2, 1fr); }
    .hn-news-item { grid-template-columns: 80px 1fr; }
    .hn-news-thumb { width: 80px; height: 60px; }
}

/* Dark theme support */
body.dark-theme .home-native-root { color: #e2e8f0; }
body.dark-theme .hn-card,
body.dark-theme .hn-welcome-card,
body.dark-theme .hn-action-tile,
body.dark-theme .hn-tool-tile,
body.dark-theme .hn-family-tile,
body.dark-theme .hn-family-card {
    background: #1e293b;
    border-color: #334155;
}
body.dark-theme .hn-kpi-tile { background: #0f172a; border-color: #334155; }
body.dark-theme .hn-greet-stat { background: #1e293b; border-color: #334155; }
body.dark-theme .hn-greet-block .hn-greet-name,
body.dark-theme .hn-card-title,
body.dark-theme .hn-recent-name,
body.dark-theme .hn-event-title,
body.dark-theme .hn-news-title,
body.dark-theme .hn-event-day,
body.dark-theme .hn-kpi-value,
body.dark-theme .hn-donut-num,
body.dark-theme .hn-greet-stat-value,
body.dark-theme .hn-weather-temp,
body.dark-theme .hn-dt-date,
body.dark-theme .hn-tool-label,
body.dark-theme .hn-action-label,
body.dark-theme .hn-family-name,
body.dark-theme .hn-legend-count {
    color: #f1f5f9;
}
body.dark-theme .hn-recent-item { border-color: #334155; }
body.dark-theme .hn-recent-item--draft {
    background: #1a1810;
    border-left-color: #d4a574;
}
body.dark-theme .hn-recent-item--draft:hover { background: #221f15; }
body.dark-theme .hn-recent-draft-icon { color: #d4a574; }
body.dark-theme .hn-status-draft-pill { background: #4a3a20; color: #d4b88a; }
body.dark-theme .hn-card-link--alt { color: #d4a574; }
body.dark-theme .hn-card-link--alt:hover { color: #e6c89a; }
body.dark-theme .hn-recent-item:hover,
body.dark-theme .hn-event-item:hover,
body.dark-theme .hn-news-item:hover { background: #0f172a; }
body.dark-theme .hn-event-date-box,
body.dark-theme .hn-greet-stat-icon,
body.dark-theme .hn-action-icon-circle,
body.dark-theme .hn-tool-icon,
body.dark-theme .hn-news-thumb { background: #0f172a; }
body.dark-theme .hn-event-section-header { color: #34d399; border-color: #334155; }
body.dark-theme .hn-event-section-header--past { color: #94a3b8; }
body.dark-theme .hn-event-section-empty { color: #64748b; }
body.dark-theme .hn-event-item--past:hover { background: #0b1322; }
body.dark-theme .hn-event-item--past .hn-event-title { color: #cbd5e1; }

/* Dark theme — smart greeting subtitle */
body.dark-theme .hn-greet-block .hn-greet-sub { color: #cbd5e1; }
body.dark-theme .hn-greet-block .hn-greet-sub.greet-birthday      { color: #fbbf24; }
body.dark-theme .hn-greet-block .hn-greet-sub.greet-birthday-soon { color: #fcd34d; }
body.dark-theme .hn-greet-block .hn-greet-sub.greet-holiday       { color: #34d399; }
body.dark-theme .hn-greet-block .hn-greet-sub.greet-firsttime     { color: #34d399; }
body.dark-theme .hn-greet-block .hn-greet-refresh { color: #64748b; }
body.dark-theme .hn-greet-block .hn-greet-refresh:hover { color: #34d399; background: #0f172a; border-color: #334155; }

/* ============================================================
   INTERACTIVE CLAIM OVERVIEW
   ============================================================ */
.hn-chart-hint {
    font-size: 12.5px;        /* was 11px */
    color: #6b7280;           /* was #9ca3af — darker */
    font-weight: 500;
}

.hn-kpi-tile.hn-kpi-clickable {
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
}
.hn-kpi-tile.hn-kpi-clickable:hover {
    transform: translateY(-2px);
    border-color: #1E6332;
    background: #fff;
    box-shadow: 0 6px 14px rgba(30, 99, 50, 0.10);
}
.hn-kpi-tile.hn-kpi-clickable:hover .hn-kpi-value { color: #1E6332; }

.hn-donut-seg {
    cursor: pointer;
    transition: stroke-width 0.15s ease, opacity 0.15s ease;
}
.hn-donut-wrap:hover .hn-donut-seg { opacity: 0.6; }
.hn-donut-seg:hover { opacity: 1 !important; stroke-width: 26 !important; }

.hn-legend-row.hn-legend-clickable {
    cursor: pointer;
    padding: 4px 6px;
    margin: 0 -6px;
    border-radius: 6px;
    transition: background-color 0.15s ease;
}
.hn-legend-row.hn-legend-clickable:hover {
    background: #F4F0E9;
}

.hn-completed-chip-row {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px dashed #e5e1da;
}

.hn-completed-chip {
    display: grid;
    grid-template-columns: 38px 1fr auto auto;
    gap: 14px;
    align-items: center;
    background: linear-gradient(135deg, #F4F0E9 0%, #fafaf7 100%);
    border: 1px solid #e5e1da;
    border-radius: 12px;
    padding: 12px 16px;
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.hn-completed-chip:hover {
    transform: translateY(-2px);
    border-color: #1E6332;
    box-shadow: 0 8px 16px rgba(30, 99, 50, 0.10);
}

.hn-completed-icon {
    width: 44px;              /* was 38px */
    height: 44px;
    border-radius: 11px;
    background: #1E6332;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;          /* was 18px */
}

.hn-completed-body { display: flex; flex-direction: column; line-height: 1.3; }
.hn-completed-label { font-size: 15.5px; font-weight: 700; color: #111827; }   /* was 14px */
.hn-completed-sub   { font-size: 12.5px; color: #4b5563; margin-top: 3px; font-weight: 500; }   /* was 11px / #6b7280 */

.hn-completed-count {
    font-size: 26px;          /* was 22px */
    font-weight: 700;
    color: #1E6332;
    padding-right: 6px;
}

.hn-completed-arrow { color: #6b7280; font-size: 16px; }   /* was #9ca3af / 14px */

/* ============================================================
   UPCOMING EVENTS — header actions + body styles
   ============================================================ */
.hn-events-actions {
    display: flex;
    gap: 6px;
}

.hn-event-mini-btn {
    background: transparent;
    border: 1px solid #e5e1da;
    color: #1E6332;
    font-size: 12px;
    font-weight: 600;
    padding: 5px 10px;
    border-radius: 7px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}
.hn-event-mini-btn:hover {
    background: #F4F0E9;
    border-color: #1E6332;
}
.hn-event-mini-btn.hn-event-mini-add {
    background: #1E6332;
    color: #fff;
    border-color: #1E6332;
}
.hn-event-mini-btn.hn-event-mini-add:hover {
    background: #214A3E;
    border-color: #214A3E;
}
.hn-event-mini-btn.hn-event-mini-view {
    background: #fff;
    color: #1E6332;
    border-color: #d4cdc0;
}
.hn-event-mini-btn.hn-event-mini-view:hover {
    background: #F4F0E9;
    border-color: #1E6332;
    color: #214A3E;
}

/* ============================================================
   FULL CALENDAR MODAL — opened by "View All" on the events card
   Hosts the existing calendar widget from the custom home page so
   the look + behavior is identical (single source of truth).
   ============================================================ */
.hn-fullcal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.6);
    z-index: 10110;          /* above event-manager modal */
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px;
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    animation: hnEmFadeIn 0.18s ease;
}

.hn-fullcal-modal {
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 28px 70px rgba(0, 0, 0, 0.35);
    width: 100%;
    max-width: 1480px;          /* wide enough for big calendar + side panel */
    max-height: 94vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    animation: hnEmSlideUp 0.22s ease;
}

/* Two-column body: calendar + side panel */
.hn-fullcal-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

.hn-fullcal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 24px;
    background: linear-gradient(135deg, #1E6332 0%, #2F8542 100%);
    color: #fff;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    flex-shrink: 0;
}

.hn-fullcal-head-left {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}

.hn-fullcal-head-icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    flex-shrink: 0;
}

.hn-fullcal-title {
    font-size: 19px;
    font-weight: 700;
    margin: 0;
    line-height: 1.15;
    color: #fff;
}

.hn-fullcal-sub {
    font-size: 12.5px;
    color: rgba(255, 255, 255, 0.85);
    margin-top: 2px;
}

.hn-fullcal-close {
    background: rgba(255, 255, 255, 0.18);
    border: none;
    color: #fff;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.15s ease, transform 0.15s ease;
    flex-shrink: 0;
}
.hn-fullcal-close:hover {
    background: rgba(255, 255, 255, 0.30);
    transform: scale(1.05);
}

.hn-fullcal-body {
    padding: 22px 28px;
    overflow-y: auto;
    flex: 1;
    background: #fafaf8;
}

/* ──── Filter chip bar — sits between the green header and the calendar ──── */
.hn-fullcal-filterbar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 14px 28px;
    background: #fff;
    border-bottom: 1px solid #efece6;
    flex-shrink: 0;
}

.hn-fcf-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 14px;
    border: 1.5px solid #e5e1da;
    background: #fff;
    color: #4b5563;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.15s ease;
    line-height: 1;
    user-select: none;
}
.hn-fcf-chip:hover { background: #F4F0E9; border-color: #c4bba9; }
.hn-fcf-chip.is-on { color: #1E6332; border-color: #1E6332; background: #F4F0E9; }
.hn-fcf-chip.is-on:hover { background: #ece4d4; }
.hn-fcf-chip i { font-size: 11px; }

.hn-fcf-chip.hn-fcf-chip--all.is-on {
    background: linear-gradient(135deg, #1E6332 0%, #2F8542 100%);
    color: #fff;
    border-color: #1E6332;
}
.hn-fcf-chip.hn-fcf-chip--all.is-on:hover {
    background: linear-gradient(135deg, #1B5A2C 0%, #267237 100%);
}

.hn-fcf-dot {
    display: inline-block;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    flex-shrink: 0;
}
.hn-fcf-dot--event  { background: #2563eb; box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.20); }
.hn-fcf-dot--ann    { background: #C19A6B; box-shadow: 0 0 0 2px rgba(193, 154, 107, 0.25); }
.hn-fcf-dot--funded { background: #1E6332; box-shadow: 0 0 0 2px rgba(30, 99, 50, 0.20); }

/* ──── Today button + clickable month label inside the calendar head ──── */
.hn-fullcal-body .eff-calwx-head {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
}
.hn-fcal-today-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    font-size: 12px;
    font-weight: 600;
    background: #fff;
    color: #1E6332;
    border: 1.5px solid #1E6332;
    border-radius: 999px;
    cursor: pointer;
    transition: all 0.15s ease;
    line-height: 1;
    flex-shrink: 0;
    margin-left: 8px;
}
.hn-fcal-today-btn:hover { background: #1E6332; color: #fff; }
.hn-fcal-today-btn i { font-size: 9px; }
/* When already on current month, dim the button — still clickable but
   visually de-emphasized. */
.hn-fcal-today-btn.is-current { opacity: 0.5; }
.hn-fcal-today-btn.is-current:hover { opacity: 1; }

.hn-fcal-month-clickable {
    cursor: pointer;
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    padding: 4px 14px;
    border-radius: 10px;
    transition: background-color 0.15s ease;
    user-select: none;
}
.hn-fcal-month-clickable:hover { background: #F4F0E9; }
.hn-fcal-month-caret {
    font-size: 12px;
    color: #9ca3af;
}
.hn-fcal-month-clickable:hover .hn-fcal-month-caret { color: #1E6332; }

/* When viewing past or future month, the title gets a subtle accent so
   users notice they're not on the current month. */
.hn-fcal-on-past .hn-fullcal-body .eff-calwx-month::after,
.hn-fcal-on-future .hn-fullcal-body .eff-calwx-month::after {
    content: '';
    display: inline-block;
    margin-left: 6px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #C19A6B;
    vertical-align: middle;
    box-shadow: 0 0 0 2px rgba(193, 154, 107, 0.25);
}

/* Out-of-month cells — much more dimmed inside the modal so the current
   month visually dominates. */
.hn-fullcal-body .eff-calwx-cell--other {
    opacity: 0.35;
    background: transparent !important;
    box-shadow: none !important;
}
.hn-fullcal-body .eff-calwx-cell--other .eff-calwx-num { color: #d1d5db; font-weight: 400; }

/* Month/year picker popover — opens below the month label */
.hn-fcal-month-picker {
    position: fixed;
    z-index: 10300;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.18), 0 2px 6px rgba(0, 0, 0, 0.08);
    border: 1px solid #efece6;
    padding: 12px;
    animation: hnEmFadeIn 0.15s ease;
}
.hn-fcal-mp-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
    padding: 0 4px;
}
.hn-fcal-mp-yarrow {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    border: 1px solid #efece6;
    background: #fff;
    color: #4b5563;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    transition: all 0.15s ease;
}
.hn-fcal-mp-yarrow:hover { background: #F4F0E9; color: #1E6332; border-color: #1E6332; }
.hn-fcal-mp-year {
    font-size: 16px;
    font-weight: 700;
    color: #1f2937;
}
.hn-fcal-mp-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
}
.hn-fcal-mp-month {
    padding: 9px 4px;
    border: 1px solid transparent;
    background: #fafaf8;
    color: #4b5563;
    border-radius: 7px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s ease;
}
.hn-fcal-mp-month:hover {
    background: #F4F0E9;
    color: #1E6332;
    border-color: #1E6332;
}
.hn-fcal-mp-month.is-active {
    background: #1E6332;
    color: #fff;
    border-color: #1E6332;
}
.hn-fcal-mp-month.is-today:not(.is-active) {
    border-color: #1E6332;
    color: #1E6332;
}

/* ──── Legend strip below the calendar ──── */
.hn-fullcal-legend {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 18px;
    padding: 12px 28px;
    background: #fff;
    border-top: 1px solid #efece6;
    font-size: 12px;
    color: #4b5563;
    flex-shrink: 0;
}
.hn-fcl-row { display: inline-flex; align-items: center; gap: 7px; }
.hn-fcl-tip {
    margin-left: auto;
    color: #6b7280;
    font-style: italic;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.hn-fcl-tip i { color: #1E6332; font-size: 11px; }

/* ──── Inside-modal calendar widget — bigger and more noticeable ────
   The calendar widget itself comes from home.css. Inside this modal we
   bump cell sizing so it reads as a real calendar, and we amplify the
   "this day has stuff" treatment with a tinted background + subtle ring
   so users can see event days from across the room. */
.hn-fullcal-body .eff-calwx {
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05), 0 0 0 1px #efece6;
    overflow: hidden;
    padding: 10px;
}
.hn-fullcal-body .eff-calwx-cell {
    min-height: 92px;            /* even taller — gives breathing room for dots+counts */
    border-radius: 9px;
}
.hn-fullcal-body .eff-calwx-num {
    font-size: 14px;
    font-weight: 600;
    color: #1f2937;
}
.hn-fullcal-body .eff-calwx-cell--other .eff-calwx-num { color: #cbd5e1; font-weight: 500; }
.hn-fullcal-body .eff-calwx-month { font-size: 24px; }
.hn-fullcal-body .eff-calwx-today {
    font-size: 13px;
    color: #6b7280;
    margin-top: 3px;
}
.hn-fullcal-body .eff-calwx-dow {
    font-size: 11.5px;
    font-weight: 700;
    color: #9ca3af;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding-bottom: 6px;
}

/* THE big visibility upgrade — event days inside the modal get a soft
   beige tint + faint accent ring + slight lift on hover so they pop. */
.hn-fullcal-body .eff-calwx-cell--has-events {
    background: #fbf8f1;
    box-shadow: inset 0 0 0 1px #ece5d2;
    transition: background-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}
.hn-fullcal-body .eff-calwx-cell--has-events:hover {
    background: #f4ecd8;
    box-shadow: inset 0 0 0 1.5px #d8caa1, 0 4px 14px rgba(193, 154, 107, 0.18);
    transform: translateY(-2px);
}
.hn-fullcal-body .eff-calwx-cell--has-events .eff-calwx-num {
    font-weight: 700;
}
/* Today wins over has-events styling — keep the brand-green pill */
.hn-fullcal-body .eff-calwx-cell--today {
    background: var(--calwx-accent, #1E6332);
    box-shadow: 0 4px 12px rgba(30, 99, 50, 0.30);
}
.hn-fullcal-body .eff-calwx-cell--today .eff-calwx-num { color: #fff; font-weight: 800; }
.hn-fullcal-body .eff-calwx-cell--today.eff-calwx-cell--has-events {
    box-shadow: 0 4px 14px rgba(30, 99, 50, 0.36), inset 0 0 0 2px rgba(255, 255, 255, 0.45);
}

/* In the modal context, hide the compact dots and show the text count chips
   instead. The cell builds BOTH dots and chips DOM so each context picks
   what it wants. */
.hn-fullcal-body .eff-calwx-dots { display: none; }
.hn-fullcal-body .eff-calwx-chips {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-top: 6px;
    padding: 0 4px;
    width: 100%;
    align-items: stretch;
}
.hn-fullcal-body .eff-calwx-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 2px 7px;
    font-size: 10.5px;
    font-weight: 600;
    border-radius: 999px;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    pointer-events: none;
}
.hn-fullcal-body .eff-calwx-chip-dot {
    flex-shrink: 0;
    width: 6px;
    height: 6px;
    border-radius: 50%;
}
.hn-fullcal-body .eff-calwx-chip--event {
    background: #e0ecff;
    color: #1d4ed8;
}
.hn-fullcal-body .eff-calwx-chip--event .eff-calwx-chip-dot { background: #2563eb; }
.hn-fullcal-body .eff-calwx-chip--ann {
    background: #f5ecdc;
    color: #8a6a3b;
}
.hn-fullcal-body .eff-calwx-chip--ann .eff-calwx-chip-dot { background: #C19A6B; }
.hn-fullcal-body .eff-calwx-chip--funded {
    background: #dff2e3;
    color: #166534;
}
.hn-fullcal-body .eff-calwx-chip--funded .eff-calwx-chip-dot { background: #1E6332; }

/* Today cell — chip text inverts on the green pill so it's still readable */
.hn-fullcal-body .eff-calwx-cell--today .eff-calwx-chip {
    background: rgba(255, 255, 255, 0.92);
}

/* (Chips are hidden by default via a low-specificity rule in home.css.
   The .hn-fullcal-body rule above overrides it inside the modal.) */

/* Selected day — the cell user clicked. Strong outline + slight lift. */
.hn-fullcal-body .eff-calwx-cell--selected {
    box-shadow: inset 0 0 0 2px #1E6332, 0 6px 18px rgba(30, 99, 50, 0.22);
    transform: translateY(-2px);
    background: #ece4d4;
}
.hn-fullcal-body .eff-calwx-cell--selected.eff-calwx-cell--today {
    box-shadow: 0 6px 18px rgba(30, 99, 50, 0.36), inset 0 0 0 3px #fff;
}

.hn-fullcal-body .eff-calwx-head {
    padding: 4px 6px 12px;
}
.hn-fullcal-body .eff-calwx-nav {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    color: #4b5563;
}
.hn-fullcal-body .eff-calwx-nav:hover { background: #F4F0E9; color: #1E6332; }

/* ──── Side panel — shows selected day's items ──── */
.hn-fullcal-sidepanel {
    background: #fff;
    border-left: 1px solid #efece6;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}

.hn-fcsp-empty {
    padding: 60px 28px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    color: #6b7280;
    flex: 1;
    justify-content: center;
}
.hn-fcsp-empty--small { padding: 24px 20px; flex: 0; }
.hn-fcsp-empty-icon {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    background: #F4F0E9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #1E6332;
    font-size: 28px;
    margin-bottom: 6px;
}
.hn-fcsp-empty-title {
    font-size: 17px;
    font-weight: 700;
    color: #1f2937;
}
.hn-fcsp-empty-sub {
    font-size: 13px;
    line-height: 1.5;
    color: #6b7280;
    max-width: 280px;
}

.hn-fcsp-header {
    padding: 18px 22px 14px;
    border-bottom: 1px solid #efece6;
    background: linear-gradient(135deg, #F4F0E9 0%, #fff 100%);
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    flex-shrink: 0;
}
.hn-fcsp-header-text { min-width: 0; flex: 1; }
.hn-fcsp-header-date {
    font-size: 16px;
    font-weight: 700;
    color: #1f2937;
    line-height: 1.3;
}
.hn-fcsp-header-sub {
    font-size: 12.5px;
    color: #6b7280;
    margin-top: 3px;
}
.hn-fcsp-clear {
    background: transparent;
    border: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    color: #9ca3af;
    cursor: pointer;
    font-size: 22px;
    line-height: 1;
    transition: background-color 0.15s ease, color 0.15s ease;
    flex-shrink: 0;
}
.hn-fcsp-clear:hover { background: #f3f4f6; color: #1f2937; }

.hn-fcsp-body {
    padding: 14px 18px 22px;
}

.hn-fcsp-section + .hn-fcsp-section { margin-top: 18px; }
.hn-fcsp-section-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    padding-bottom: 6px;
    border-bottom: 1px solid #f1ede7;
}
.hn-fcsp-section-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    flex-shrink: 0;
}
.hn-fcsp-section--event       .hn-fcsp-section-dot { background: #2563eb; }
.hn-fcsp-section--announcement .hn-fcsp-section-dot { background: #C19A6B; }
.hn-fcsp-section--claim_funded .hn-fcsp-section-dot { background: #1E6332; }
.hn-fcsp-section-label {
    font-size: 11px;
    font-weight: 700;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    flex: 1;
}
.hn-fcsp-section-count {
    font-size: 11px;
    font-weight: 700;
    color: #1f2937;
    background: #F4F0E9;
    padding: 2px 8px;
    border-radius: 999px;
}

.hn-fcsp-section-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.hn-fcsp-item {
    display: flex;
    gap: 12px;
    padding: 12px;
    border-radius: 10px;
    background: #fafaf8;
    border: 1px solid #efece6;
    transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}
.hn-fcsp-item:hover {
    background: #fff;
    border-color: #d4cdc0;
    transform: translateX(2px);
}
.hn-fcsp-item-icon {
    width: 38px;
    height: 38px;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 16px;
}
.hn-fcsp-item-body { min-width: 0; flex: 1; }
.hn-fcsp-item-title {
    font-size: 14px;
    font-weight: 600;
    color: #1f2937;
    line-height: 1.3;
    margin-bottom: 3px;
    word-wrap: break-word;
}
.hn-fcsp-item-sub {
    font-size: 12px;
    color: #6b7280;
    margin-bottom: 6px;
    line-height: 1.35;
}
.hn-fcsp-item-desc {
    font-size: 12.5px;
    color: #4b5563;
    line-height: 1.45;
    margin: 4px 0 8px;
    word-wrap: break-word;
}
.hn-fcsp-item-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.hn-fcsp-item-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 10px;
    background: transparent;
    border: 1px solid var(--fcsp-btn-color, #1E6332);
    color: var(--fcsp-btn-color, #1E6332);
    border-radius: 7px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
}
.hn-fcsp-item-btn:hover {
    background: var(--fcsp-btn-color, #1E6332);
    color: #fff;
}
.hn-fcsp-item-btn i { font-size: 10px; }
.hn-fcsp-item-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    color: #6b7280;
    text-decoration: none;
}
.hn-fcsp-item-link:hover { color: #1E6332; text-decoration: underline; }
.hn-fcsp-item-link i { font-size: 10px; }

/* Tablet — side panel narrows */
@media (max-width: 1240px) {
    .hn-fullcal-grid { grid-template-columns: minmax(0, 1fr) 320px; }
    .hn-fullcal-body .eff-calwx-chip { font-size: 9.5px; padding: 1px 6px; }
}

/* Mobile / narrow viewports — full-bleed modal, side panel stacks below calendar */
@media (max-width: 900px) {
    .hn-fullcal-overlay { padding: 0; }
    .hn-fullcal-modal { max-width: none; max-height: 100vh; height: 100vh; border-radius: 0; }
    .hn-fullcal-header { padding: 14px 16px; }
    .hn-fullcal-title { font-size: 17px; }
    .hn-fullcal-sub { font-size: 11.5px; }
    .hn-fullcal-filterbar { padding: 10px 14px; gap: 6px; overflow-x: auto; flex-wrap: nowrap; }
    .hn-fullcal-filterbar::-webkit-scrollbar { display: none; }
    .hn-fcf-chip { padding: 6px 11px; font-size: 12px; flex-shrink: 0; }
    .hn-fullcal-grid { grid-template-columns: 1fr; grid-template-rows: auto auto; overflow-y: auto; }
    .hn-fullcal-body { padding: 14px; }
    .hn-fullcal-body .eff-calwx { padding: 6px; }
    .hn-fullcal-body .eff-calwx-cell { min-height: 60px; }
    .hn-fullcal-body .eff-calwx-num { font-size: 13px; }
    .hn-fullcal-body .eff-calwx-month { font-size: 18px; }
    .hn-fullcal-body .eff-calwx-today { font-size: 11.5px; }
    /* On mobile, fall back to dots inside the cell — chips don't fit */
    .hn-fullcal-body .eff-calwx-dots { display: flex; gap: 3px; height: 6px; margin-top: 4px; }
    .hn-fullcal-body .eff-calwx-dot { width: 6px; height: 6px; }
    .hn-fullcal-body .eff-calwx-chips { display: none; }
    .hn-fullcal-sidepanel {
        border-left: none;
        border-top: 1px solid #efece6;
        max-height: 50vh;
    }
    .hn-fcsp-empty { padding: 30px 20px; }
    .hn-fcsp-empty-icon { width: 56px; height: 56px; font-size: 22px; }
    .hn-fcsp-empty-title { font-size: 15px; }
    .hn-fullcal-legend { padding: 10px 14px; gap: 10px; font-size: 11px; }
    .hn-fcl-tip { display: none; }
}

.hn-event-body { min-width: 0; overflow: hidden; }
.hn-event-body .hn-event-title { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hn-event-body .hn-event-meta { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ============================================================
   EVENT MODALS — detail / form / manager  (shared shell)
   ============================================================ */
.hn-em-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
    z-index: 10100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    animation: hnEmFadeIn 0.18s ease;
}

@keyframes hnEmFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.hn-em-card {
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.30);
    width: 100%;
    max-width: 540px;
    max-height: 90vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    animation: hnEmSlideUp 0.22s ease;
}

@keyframes hnEmSlideUp {
    from { transform: translateY(20px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

.hn-em-header {
    position: relative;
    padding: 24px 28px 20px;
    color: #fff;
}

.hn-em-close {
    position: absolute;
    top: 14px;
    right: 14px;
    background: rgba(255, 255, 255, 0.2);
    border: none;
    color: #fff;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 14px;
    transition: background-color 0.15s ease;
}
.hn-em-close:hover { background: rgba(255, 255, 255, 0.35); }

.hn-em-cat-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255, 255, 255, 0.22);
    color: #fff;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 12px;
}

.hn-em-title {
    font-size: 22px;
    font-weight: 700;
    margin: 0;
    line-height: 1.25;
    color: #fff;
}

.hn-em-body {
    padding: 22px 28px;
    overflow-y: auto;
}

.hn-em-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    font-size: 14px;
    color: #374151;
}
.hn-em-row i { color: #1E6332; width: 18px; text-align: center; }
.hn-em-row a { color: #1E6332; text-decoration: none; word-break: break-all; }
.hn-em-row a:hover { text-decoration: underline; }

.hn-em-desc {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #f1ede7;
    font-size: 14px;
    line-height: 1.6;
    color: #374151;
    white-space: pre-wrap;
}

.hn-em-actions {
    display: flex;
    gap: 8px;
    padding: 14px 28px;
    border-top: 1px solid #f1ede7;
    background: #fafaf7;
    justify-content: flex-end;
}

.hn-em-btn {
    background: #fff;
    border: 1px solid #d1d5db;
    color: #374151;
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}
.hn-em-btn:hover { background: #f3f4f6; }

.hn-em-btn-edit { color: #1E6332; }
.hn-em-btn-edit:hover { background: #F4F0E9; border-color: #1E6332; }
.hn-em-btn-delete { color: #b91c1c; border-color: #fecaca; }
.hn-em-btn-delete:hover { background: #fef2f2; border-color: #dc2626; }

.hn-em-btn-cancel {
    background: transparent;
    border-color: #e5e7eb;
}
.hn-em-btn-cancel:hover { background: #f3f4f6; }

.hn-em-btn-save {
    background: #1E6332;
    color: #fff;
    border-color: #1E6332;
}
.hn-em-btn-save:hover { background: #214A3E; border-color: #214A3E; }
.hn-em-btn-save:disabled { opacity: 0.6; cursor: not-allowed; }

.hn-em-form-card { max-width: 600px; }

.hn-em-form-header {
    background: #1E6332;
    color: #fff;
    padding: 18px 24px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.hn-em-close-light { position: static; background: rgba(255, 255, 255, 0.2); }

.hn-em-form-title {
    font-size: 17px;
    font-weight: 700;
    margin: 0;
    color: #fff;
    display: flex;
    align-items: center;
    gap: 8px;
}
.hn-em-form-title i { font-size: 14px; }

.hn-em-form-body {
    padding: 22px 24px;
    overflow-y: auto;
    flex: 1;
    min-height: 0;
}

.hn-em-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 14px;
}

.hn-em-field label {
    font-size: 12px;
    font-weight: 600;
    color: #374151;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.hn-em-req { color: #dc2626; }
.hn-em-hint { font-weight: 400; color: #9ca3af; text-transform: none; letter-spacing: 0; font-size: 11px; }

.hn-em-field input[type="text"],
.hn-em-field input[type="url"],
.hn-em-field input[type="date"],
.hn-em-field input[type="time"],
.hn-em-field select,
.hn-em-field textarea {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    font-size: 14px;
    font-family: inherit;
    color: #111827;
    background: #fff;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.hn-em-field input:focus,
.hn-em-field select:focus,
.hn-em-field textarea:focus {
    outline: none;
    border-color: #1E6332;
    box-shadow: 0 0 0 3px rgba(30, 99, 50, 0.10);
}

.hn-em-field textarea { resize: vertical; min-height: 70px; }

.hn-em-row-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 14px;
}

.hn-em-allday { margin-bottom: 14px; }

.hn-em-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    text-transform: none;
    letter-spacing: 0;
    font-size: 14px;
    color: #374151;
    font-weight: 500;
}
.hn-em-checkbox input { width: 16px; height: 16px; cursor: pointer; }

.hn-em-error {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
    padding: 10px 12px;
    border-radius: 8px;
    font-size: 13px;
    margin-top: 4px;
}

.hn-em-form-footer {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 14px 24px;
    border-top: 1px solid #f1ede7;
    background: #fafaf7;
}

.hn-em-mgr-card { max-width: 720px; }

.hn-em-mgr-toolbar {
    padding: 14px 24px;
    border-bottom: 1px solid #f1ede7;
    display: flex;
    justify-content: flex-end;
    background: #fafaf7;
}

.hn-em-mgr-body {
    padding: 14px 24px 22px;
    overflow-y: auto;
    flex: 1;
    min-height: 0;
    max-height: 60vh;
}

.hn-em-mgr-section-title {
    font-size: 11px;
    font-weight: 700;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 12px 0 6px;
    border-bottom: 1px solid #f1ede7;
    margin-bottom: 6px;
}
.hn-em-mgr-section-title.hn-em-mgr-past { margin-top: 12px; }

.hn-em-mgr-row {
    display: grid;
    grid-template-columns: 38px 1fr auto;
    gap: 14px;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid #f8f5ef;
}
.hn-em-mgr-row:last-child { border-bottom: none; }

.hn-em-mgr-icon {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
}

.hn-em-mgr-info { min-width: 0; overflow: hidden; }
.hn-em-mgr-title {
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.hn-em-mgr-meta {
    font-size: 12px;
    color: #6b7280;
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hn-em-mgr-archived {
    background: #e5e7eb;
    color: #374151;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 600;
    margin-left: 6px;
}

.hn-em-mgr-actions { display: flex; gap: 4px; }

.hn-em-mgr-btn {
    background: transparent;
    border: 1px solid transparent;
    width: 30px;
    height: 30px;
    border-radius: 7px;
    cursor: pointer;
    color: #6b7280;
    font-size: 12px;
    transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.hn-em-mgr-btn:hover { background: #F4F0E9; color: #1E6332; border-color: #e5e1da; }
.hn-em-mgr-btn-danger:hover { background: #fef2f2; color: #b91c1c; border-color: #fecaca; }

@media (max-width: 768px) {
    .hn-em-overlay { padding: 0; }
    .hn-em-card,
    .hn-em-form-card,
    .hn-em-mgr-card {
        max-width: 100%;
        max-height: 100dvh;
        height: 100dvh;
        border-radius: 0;
    }
    .hn-em-mgr-body { max-height: none; }
    .hn-em-row-grid { grid-template-columns: 1fr; }
}

/* Dark theme */
body.dark-theme .hn-completed-chip,
body.dark-theme .hn-em-card,
body.dark-theme .hn-em-form-card,
body.dark-theme .hn-em-mgr-card { background: #1e293b; border-color: #334155; }
body.dark-theme .hn-completed-label,
body.dark-theme .hn-em-mgr-title { color: #f1f5f9; }
body.dark-theme .hn-completed-sub,
body.dark-theme .hn-em-mgr-meta { color: #94a3b8; }
body.dark-theme .hn-event-mini-btn { background: transparent; color: #4ade80; border-color: #334155; }
body.dark-theme .hn-event-mini-btn:hover { background: #0f172a; }
body.dark-theme .hn-event-mini-btn.hn-event-mini-view { background: transparent; color: #4ade80; border-color: #334155; }
body.dark-theme .hn-event-mini-btn.hn-event-mini-view:hover { background: #0f172a; border-color: #4ade80; color: #4ade80; }
body.dark-theme .hn-fullcal-modal { background: #0b1322; }
body.dark-theme .hn-fullcal-body { background: #0f172a; }
body.dark-theme .hn-fullcal-body .eff-calwx { background: #1e293b; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3), 0 0 0 1px #334155; }
body.dark-theme .hn-fullcal-body .eff-calwx-num { color: #f1f5f9; }
body.dark-theme .hn-fullcal-body .eff-calwx-cell--other .eff-calwx-num { color: #475569; }
body.dark-theme .hn-fullcal-body .eff-calwx-cell--has-events { background: #1c2742; box-shadow: inset 0 0 0 1px #334155; }
body.dark-theme .hn-fullcal-body .eff-calwx-cell--has-events:hover { background: #243254; box-shadow: inset 0 0 0 1.5px #4ade80, 0 4px 14px rgba(74, 222, 128, 0.15); }
body.dark-theme .hn-fullcal-body .eff-calwx-dow { color: #64748b; }
body.dark-theme .hn-fullcal-filterbar { background: #0b1322; border-bottom-color: #334155; }
body.dark-theme .hn-fcf-chip { background: transparent; color: #cbd5e1; border-color: #334155; }
body.dark-theme .hn-fcf-chip:hover { background: #1e293b; border-color: #475569; }
body.dark-theme .hn-fcf-chip.is-on { background: #1c2742; color: #4ade80; border-color: #4ade80; }
body.dark-theme .hn-fullcal-legend { background: #0b1322; border-top-color: #334155; color: #cbd5e1; }
body.dark-theme .hn-fcl-tip { color: #94a3b8; }
body.dark-theme .hn-fcl-tip i { color: #4ade80; }

/* Dark theme — side panel + chips */
body.dark-theme .hn-fullcal-sidepanel { background: #0b1322; border-left-color: #334155; }
body.dark-theme .hn-fcsp-empty { color: #94a3b8; }
body.dark-theme .hn-fcsp-empty-icon { background: #1c2742; color: #4ade80; }
body.dark-theme .hn-fcsp-empty-title { color: #f1f5f9; }
body.dark-theme .hn-fcsp-empty-sub { color: #94a3b8; }
body.dark-theme .hn-fcsp-header { background: linear-gradient(135deg, #1c2742 0%, #0b1322 100%); border-bottom-color: #334155; }
body.dark-theme .hn-fcsp-header-date { color: #f1f5f9; }
body.dark-theme .hn-fcsp-header-sub { color: #94a3b8; }
body.dark-theme .hn-fcsp-clear { color: #64748b; }
body.dark-theme .hn-fcsp-clear:hover { background: #1e293b; color: #f1f5f9; }
body.dark-theme .hn-fcsp-section-header { border-bottom-color: #334155; }
body.dark-theme .hn-fcsp-section-label { color: #94a3b8; }
body.dark-theme .hn-fcsp-section-count { background: #1c2742; color: #f1f5f9; }
body.dark-theme .hn-fcsp-item { background: #0f172a; border-color: #334155; }
body.dark-theme .hn-fcsp-item:hover { background: #1e293b; border-color: #475569; }
body.dark-theme .hn-fcsp-item-title { color: #f1f5f9; }
body.dark-theme .hn-fcsp-item-sub { color: #94a3b8; }
body.dark-theme .hn-fcsp-item-desc { color: #cbd5e1; }
body.dark-theme .hn-fcsp-item-link { color: #94a3b8; }
body.dark-theme .hn-fcsp-item-link:hover { color: #4ade80; }
body.dark-theme .hn-fullcal-body .eff-calwx-chip--event { background: #1e3a8a; color: #93c5fd; }
body.dark-theme .hn-fullcal-body .eff-calwx-chip--ann { background: #4a3a20; color: #d4b88a; }
body.dark-theme .hn-fullcal-body .eff-calwx-chip--funded { background: #14532d; color: #86efac; }
body.dark-theme .hn-fullcal-body .eff-calwx-cell--selected { background: #243254; box-shadow: inset 0 0 0 2px #4ade80, 0 6px 18px rgba(74, 222, 128, 0.20); }

/* Dark theme — Today button + month picker */
body.dark-theme .hn-fcal-today-btn { background: #0b1322; color: #4ade80; border-color: #4ade80; }
body.dark-theme .hn-fcal-today-btn:hover { background: #4ade80; color: #0b1322; }
body.dark-theme .hn-fcal-month-clickable:hover { background: #1e293b; }
body.dark-theme .hn-fcal-month-caret { color: #64748b; }
body.dark-theme .hn-fcal-month-clickable:hover .hn-fcal-month-caret { color: #4ade80; }
body.dark-theme .hn-fcal-month-picker { background: #0b1322; border-color: #334155; }
body.dark-theme .hn-fcal-mp-yarrow { background: #1e293b; color: #cbd5e1; border-color: #334155; }
body.dark-theme .hn-fcal-mp-yarrow:hover { background: #243254; color: #4ade80; border-color: #4ade80; }
body.dark-theme .hn-fcal-mp-year { color: #f1f5f9; }
body.dark-theme .hn-fcal-mp-month { background: #1e293b; color: #cbd5e1; }
body.dark-theme .hn-fcal-mp-month:hover { background: #243254; color: #4ade80; border-color: #4ade80; }
body.dark-theme .hn-fcal-mp-month.is-active { background: #4ade80; color: #0b1322; border-color: #4ade80; }
body.dark-theme .hn-fcal-mp-month.is-today:not(.is-active) { border-color: #4ade80; color: #4ade80; }
body.dark-theme .hn-fullcal-body .eff-calwx-cell--other .eff-calwx-num { color: #475569; }
body.dark-theme .hn-em-form-body,
body.dark-theme .hn-em-mgr-body,
body.dark-theme .hn-em-body { background: #1e293b; }
body.dark-theme .hn-em-field input,
body.dark-theme .hn-em-field select,
body.dark-theme .hn-em-field textarea { background: #0f172a; color: #f1f5f9; border-color: #334155; }
body.dark-theme .hn-em-actions,
body.dark-theme .hn-em-form-footer,
body.dark-theme .hn-em-mgr-toolbar { background: #0f172a; border-color: #334155; }
body.dark-theme .hn-em-btn { background: #1e293b; color: #cbd5e1; border-color: #334155; }
body.dark-theme .hn-em-btn:hover { background: #0f172a; }
body.dark-theme .hn-em-btn-cancel { background: transparent; }
body.dark-theme .hn-em-mgr-row { border-color: #334155; }

/* ============================================================
   EVENT FORM — visual category picker (mirrors home-builder)
   ============================================================ */
.hn-em-cat-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin-top: 4px;
}

.hn-em-cat-card {
    --cat-color: #1E6332;
    --cat-bg: #f0fdf4;
    background: #fff;
    border: 1.5px solid #e5e1da;
    border-radius: 10px;
    padding: 12px 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease, transform 0.15s ease;
    color: #374151;
    font-family: inherit;
    font-size: 12px;
    font-weight: 600;
}
.hn-em-cat-card i {
    font-size: 20px;
    color: var(--cat-color);
}
.hn-em-cat-card:hover {
    border-color: var(--cat-color);
    background: var(--cat-bg);
    transform: translateY(-1px);
}
.hn-em-cat-card--active {
    border-color: var(--cat-color);
    background: var(--cat-bg);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--cat-color) 18%, transparent);
}
.hn-em-cat-card--active i { transform: scale(1.05); }

@media (max-width: 540px) {
    .hn-em-cat-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   EVENT DESCRIPTION RICH TEXT EDITOR
   ============================================================ */
.hn-em-rte-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    padding: 6px 8px;
    border: 1px solid #d1d5db;
    border-bottom: none;
    border-radius: 8px 8px 0 0;
    background: #fafaf7;
}

.hn-em-rte-btn {
    background: transparent;
    border: 1px solid transparent;
    color: #374151;
    width: 30px;
    height: 30px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.hn-em-rte-btn:hover {
    background: #fff;
    color: #1E6332;
    border-color: #e5e1da;
}

.hn-em-rte-sep {
    width: 1px;
    height: 20px;
    background: #e5e1da;
    margin: 0 2px;
}

.hn-em-rte-heading {
    background: #fff;
    border: 1px solid #e5e1da;
    border-radius: 6px;
    padding: 4px 8px;
    font-size: 12px;
    color: #374151;
    cursor: pointer;
    height: 28px;
    font-family: inherit;
}
.hn-em-rte-heading:focus {
    outline: none;
    border-color: #1E6332;
}

/* Color picker */
.hn-em-rte-color-wrap { position: relative; }
.hn-em-rte-color-pop {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    padding: 8px;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 4px;
    z-index: 10101;
    box-shadow: 0 6px 18px rgba(0,0,0,0.12);
    width: 168px;
}
.hn-em-rte-swatch {
    width: 22px;
    height: 22px;
    border-radius: 4px;
    border: 1.5px solid #e5e1da;
    cursor: pointer;
    padding: 0;
    transition: transform 0.12s ease;
}
.hn-em-rte-swatch:hover { transform: scale(1.1); }

/* Editor area */
.hn-em-rte-editor {
    border: 1px solid #d1d5db;
    border-radius: 0 0 8px 8px;
    padding: 12px;
    min-height: 110px;
    max-height: 280px;
    overflow-y: auto;
    background: #fff;
    color: #111827;
    font-size: 14px;
    line-height: 1.55;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.hn-em-rte-editor:focus {
    outline: none;
    border-color: #1E6332;
    box-shadow: 0 0 0 3px rgba(30, 99, 50, 0.10);
}
.hn-em-rte-editor:empty::before {
    content: attr(data-placeholder);
    color: #9ca3af;
    pointer-events: none;
    display: block;
}
.hn-em-rte-editor img { max-width: 100%; height: auto; border-radius: 6px; }
.hn-em-rte-editor h1 { font-size: 22px; margin: 8px 0; font-weight: 700; }
.hn-em-rte-editor h2 { font-size: 18px; margin: 6px 0; font-weight: 700; }
.hn-em-rte-editor h3 { font-size: 16px; margin: 4px 0; font-weight: 700; }
.hn-em-rte-editor ul, .hn-em-rte-editor ol { padding-left: 24px; margin: 6px 0; }
.hn-em-rte-editor a { color: #1E6332; text-decoration: underline; }

/* Inline link/image/video bars */
.hn-em-rte-inline-bar {
    background: #F4F0E9;
    border: 1px solid #e5e1da;
    border-top: none;
    border-radius: 0 0 8px 8px;
    margin-top: -1px;
    padding: 8px 10px;
}
.hn-em-rte-bar-row {
    display: flex;
    align-items: center;
    gap: 6px;
}
.hn-em-rte-bar-icon {
    color: #1E6332;
    font-size: 13px;
    width: 18px;
    text-align: center;
}
.hn-em-rte-bar-input {
    flex: 1;
    padding: 6px 10px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 13px;
    color: #111827;
    background: #fff;
    font-family: inherit;
}
.hn-em-rte-bar-input:focus {
    outline: none;
    border-color: #1E6332;
}
.hn-em-rte-bar-hint {
    margin-top: 5px;
    font-size: 11px;
    color: #6b7280;
}

/* Tiny variant of action buttons used inside the inline bars */
.hn-em-btn.hn-em-btn-xs {
    padding: 5px 8px;
    font-size: 12px;
    min-width: 32px;
    justify-content: center;
}

/* Rich content rendered in the event detail modal */
.hn-em-rich-content { line-height: 1.55; }
.hn-em-rich-content img { max-width: 100%; height: auto; border-radius: 6px; }
.hn-em-rich-content h1 { font-size: 22px; margin: 8px 0; font-weight: 700; }
.hn-em-rich-content h2 { font-size: 18px; margin: 6px 0; font-weight: 700; }
.hn-em-rich-content h3 { font-size: 16px; margin: 4px 0; font-weight: 700; }
.hn-em-rich-content ul, .hn-em-rich-content ol { padding-left: 24px; margin: 6px 0; }
.hn-em-rich-content a { color: #1E6332; text-decoration: underline; }
.hn-em-rich-content iframe { max-width: 100%; }

/* Dark theme — RTE */
body.dark-theme .hn-em-rte-toolbar { background: #0f172a; border-color: #334155; }
body.dark-theme .hn-em-rte-btn { color: #cbd5e1; }
body.dark-theme .hn-em-rte-btn:hover { background: #1e293b; color: #4ade80; border-color: #334155; }
body.dark-theme .hn-em-rte-sep { background: #334155; }
body.dark-theme .hn-em-rte-heading { background: #1e293b; color: #f1f5f9; border-color: #334155; }
body.dark-theme .hn-em-rte-color-pop { background: #1e293b; border-color: #334155; }
body.dark-theme .hn-em-rte-editor { background: #0f172a; color: #f1f5f9; border-color: #334155; }
body.dark-theme .hn-em-rte-inline-bar { background: #0f172a; border-color: #334155; }
body.dark-theme .hn-em-rte-bar-input { background: #1e293b; color: #f1f5f9; border-color: #334155; }
body.dark-theme .hn-em-cat-card { background: #1e293b; color: #cbd5e1; border-color: #334155; }
body.dark-theme .hn-em-cat-card--active { background: #0f172a; }
