/**
 * SimpleBoards Pro — Announcements (public)
 *
 * Extracted from get_frontend_css() in trait-sbirp-announcements-frontend.php
 * so the public board page doesn't carry ~270 lines of inline <style>.
 * Enqueued by ensure_frontend_assets() when an announcement widget renders.
 */

.sbirp-announcement-badge,
.sbirp-widget-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:18px;
    height:18px;
    padding:0 6px;
    margin-left:8px;
    border-radius:999px;
    font-size:11px;
    font-weight:600;
    background:var(--sbir-primary, #2563eb);
    color:#fff;
}
.sbirp-widget-badge{
    min-width:10px;
    width:10px;
    height:10px;
    padding:0;
    margin-left:8px;
    border-radius:999px;
    background:var(--sbir-primary, #6366f1);
    color:transparent;
    box-shadow:0 0 0 4px rgba(99, 102, 241, 0.12), 0 0 12px rgba(99, 102, 241, 0.45);
    animation: sbirp-dot-pulse 1.8s ease-in-out infinite;
}
@keyframes sbirp-dot-pulse{
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.12); opacity: 0.84; }
}
.sbirp-announcements-wrap{display:flex;flex-direction:column;gap:14px;}
.sbirp-announcements-list{display:flex;flex-direction:column;gap:14px;}

/*
 * Announcement card — Linear/Notion changelog style.
 *
 * THEME RESILIENCE: typography (font-size/weight/line-height/margin),
 * background, border, padding, and layout are pinned with !important and
 * gated by `body:not(.sbir-inherit-theme)` so block themes cannot blow up
 * <h3> titles, body text, or card structure. Site owners who explicitly
 * opt into "Inherit Theme Styles" via plugin settings get `.sbir-inherit-theme`
 * on body, which un-arms these defenses.
 *
 * COMPACT mode: triggered by `.sbirp-announcement-item--compact` on the
 * article (set in PHP when context is widget/dropdown). Same selectors
 * with !important override the base sizes.
 */
body:not(.sbir-inherit-theme) .sbirp-announcement-item,
.sbirp-announcement-item{
    position:relative !important;
    border:1px solid var(--sbir-card-border, #e2e8f0) !important;
    border-radius:var(--sbir-radius, 12px) !important;
    background:var(--sbir-card-bg, #fff) !important;
    color:var(--sbir-foreground, #0f172a) !important;
    padding:16px 18px 16px 22px !important;
    margin:0 !important;
    box-shadow:var(--sbir-shadow, 0 1px 2px rgba(15,23,42,0.04));
    transition:border-color 0.15s ease, box-shadow 0.15s ease;
    overflow:hidden !important;
}
.sbirp-announcement-item::before{
    content:"";
    position:absolute;
    top:0; bottom:0; left:0;
    width:4px;
    background:var(--sbirp-ann-accent, #2563eb);
}
.sbirp-announcement-item:hover{
    border-color:var(--sbir-card-hover-border, #cbd5e1);
    box-shadow:var(--sbir-card-hover-shadow, 0 8px 22px rgba(15, 23, 42, 0.08), 0 1px 4px rgba(15, 23, 42, 0.04));
}

/* Per-type accent colors (also drive the type badge bg/fg via mix) */
.sbirp-announcement-type-release{--sbirp-ann-accent:#2563eb;--sbirp-ann-accent-soft:rgba(37,99,235,0.10);}
.sbirp-announcement-type-improvement{--sbirp-ann-accent:#16a34a;--sbirp-ann-accent-soft:rgba(22,163,74,0.10);}
.sbirp-announcement-type-fix{--sbirp-ann-accent:#d97706;--sbirp-ann-accent-soft:rgba(217,119,6,0.12);}
.sbirp-announcement-type-announcement{--sbirp-ann-accent:#64748b;--sbirp-ann-accent-soft:rgba(100,116,139,0.10);}

/* Header row: type chip + pin on the left, date on the right */
.sbirp-announcement-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:nowrap;
    gap:8px;
    margin-bottom:10px;
}
.sbirp-announcement-meta-row{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}
.sbirp-announcement-meta-left{
    display:flex;
    align-items:center;
    gap:6px;
    min-width:0;
}
.sbirp-announcement-meta-right{
    display:inline-flex;
    align-items:center;
    gap:8px;
    flex-shrink:0;
}

/* Type badge — colored to match the card's accent, not generic muted */
body:not(.sbir-inherit-theme) .sbirp-announcement-type,
.sbirp-announcement-type{
    display:inline-flex !important;
    align-items:center !important;
    padding:3px 10px !important;
    border-radius:999px !important;
    border:0 !important;
    font-size:11px !important;
    font-weight:600 !important;
    line-height:1.4 !important;
    letter-spacing:0.03em !important;
    text-transform:uppercase !important;
    color:var(--sbirp-ann-accent, #2563eb) !important;
    background:var(--sbirp-ann-accent-soft, rgba(37,99,235,0.10)) !important;
    white-space:nowrap !important;
}
body:not(.sbir-inherit-theme) .sbirp-announcement-pin,
.sbirp-announcement-pin{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:22px !important;
    height:22px !important;
    padding:0 !important;
    border-radius:999px !important;
    border:0 !important;
    color:var(--sbirp-ann-accent, #2563eb) !important;
    background:var(--sbirp-ann-accent-soft, rgba(37,99,235,0.10)) !important;
}
.sbirp-announcement-pin-icon{
    display:inline-flex;
    align-items:center;
    line-height:1;
}
body:not(.sbir-inherit-theme) .sbirp-announcement-date,
.sbirp-announcement-date{
    font-size:12px !important;
    line-height:1.4 !important;
    color:var(--sbir-muted-foreground, #64748b) !important;
    white-space:nowrap !important;
    flex-shrink:0 !important;
    margin:0 !important;
}

/* Title — theme-resilient. Without these defenses block themes hit the
 * <h3> with 2em-3em font-size from .entry-content h3 / etc. */
body:not(.sbir-inherit-theme) .sbirp-announcement-title,
.sbirp-announcement-title{
    margin:0 0 6px !important;
    padding:0 !important;
    font-size:16px !important;
    font-weight:600 !important;
    line-height:1.4 !important;
    letter-spacing:0 !important;
    text-transform:none !important;
    color:var(--sbir-card-title-color, var(--sbir-foreground, #0f172a)) !important;
}

/* Body content — readable but not display-sized */
body:not(.sbir-inherit-theme) .sbirp-announcement-content,
.sbirp-announcement-content{
    font-size:14px !important;
    line-height:1.6 !important;
    color:var(--sbir-card-excerpt-color, var(--sbir-muted-foreground, #334155)) !important;
}
.sbirp-announcement-content p{margin:0 0 8px;color:inherit;font-size:inherit;line-height:inherit;}
.sbirp-announcement-content p:empty{display:none;}
.sbirp-announcement-content p:last-child{margin-bottom:0;}
.sbirp-announcement-content ul,
.sbirp-announcement-content ol{margin:6px 0 8px 18px;padding:0;font-size:inherit;line-height:inherit;}
.sbirp-announcement-content li{margin:0 0 2px;font-size:inherit;line-height:inherit;}
/* Inline section headings inside announcement bodies (Added, Changed, etc.)
 * Themes hit these aggressively; pin them down so they read as labels. */
body:not(.sbir-inherit-theme) .sbirp-announcement-content :is(h1,h2,h3,h4,h5,h6),
.sbirp-announcement-content :is(h1,h2,h3,h4,h5,h6){
    margin:10px 0 4px !important;
    padding:0 !important;
    font-size:13px !important;
    font-weight:600 !important;
    line-height:1.4 !important;
    color:var(--sbir-foreground, #0f172a) !important;
    text-transform:none !important;
    letter-spacing:0 !important;
}

/* CTA + dismiss row — laid out side by side, both compact */
body:not(.sbir-inherit-theme) .sbirp-announcement-cta,
.sbirp-announcement-cta{
    margin:12px 0 0 !important;
    padding:0 !important;
    display:inline-flex !important;
}
body:not(.sbir-inherit-theme) .sbirp-announcement-link,
.sbirp-announcement-link{
    display:inline-flex !important;
    align-items:center !important;
    gap:4px !important;
    font-weight:600 !important;
    font-size:13px !important;
    line-height:1.4 !important;
    text-decoration:none !important;
    color:var(--sbirp-ann-accent, var(--sbir-primary, #2563eb)) !important;
}
.sbirp-announcement-link:hover{text-decoration:underline !important;}
body:not(.sbir-inherit-theme) .sbirp-announcement-dismiss,
.sbirp-announcement-dismiss{
    display:inline-flex !important;
    margin:12px 0 0 12px !important;
    border:0 !important;
    background:transparent !important;
    color:var(--sbir-muted-foreground, #64748b) !important;
    font-size:13px !important;
    line-height:1.4 !important;
    padding:0 !important;
    cursor:pointer !important;
    box-shadow:none !important;
}
.sbirp-announcement-dismiss:hover{color:var(--sbir-foreground, #0f172a) !important;text-decoration:underline !important;background:transparent !important;}
.sbirp-announcements-pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.sbirp-page-link{font-size:13px;text-decoration:none;}
.sbirp-page-current{font-size:12px;color:var(--sbir-muted-foreground, #64748b);}
.sbirp-announcements-widget{
    position:relative;
    display:inline-flex;
    align-items:center;
    vertical-align:middle;
}
.sbirp-widget-title{margin:0 0 8px;font-size:14px;display:flex;align-items:center;}
.sbirp-widget-toggle{
    width:auto;
    min-height:auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    border:0;
    border-radius:0;
    background:transparent;
    color:inherit;
    padding:0;
    cursor:pointer;
    font-size:inherit;
    font-weight:inherit;
    line-height:inherit;
    white-space:nowrap;
}
.sbirp-widget-panel{
    position:absolute;
    top:calc(100% + 8px);
    left:60%;
    right:auto;
    width:min(360px, calc(100vw - 24px));
    max-width:calc(100vw - 24px);
    max-height:min(70vh, 560px);
    overflow:auto;
    border:1px solid var(--sbir-border, #dbe3ee);
    border-radius:12px;
    background:var(--sbir-card-bg, #fff);
    box-shadow:0 18px 42px rgba(15, 23, 42, 0.18);
    padding:10px;
    z-index:99999;
    transform:translateX(-50%);
}
.sbirp-widget-panel[hidden]{display:none !important;}
.sbirp-announcements-empty{margin:0;color:var(--sbir-muted-foreground, #64748b);}

/* Compact mode (widget + dropdown). Triggered by the `--compact` class
 * set in PHP, which works whether or not a `.sbirp-announcements-widget`
 * ancestor exists. Single source of truth — replaces the previous
 * duplicate inline `style="..."` system in the PHP renderer. */
.sbirp-announcement-item--compact{padding:10px 12px 10px 14px !important;}
.sbirp-announcement-item--compact::before{width:3px !important;}
.sbirp-announcement-item--compact .sbirp-announcement-head{margin-bottom:6px !important;}
.sbirp-announcement-item--compact .sbirp-announcement-type{padding:1px 7px !important;font-size:10px !important;}
.sbirp-announcement-item--compact .sbirp-announcement-pin{width:18px !important;height:18px !important;}
.sbirp-announcement-item--compact .sbirp-announcement-pin-icon{font-size:10px !important;}
.sbirp-announcement-item--compact .sbirp-announcement-date{font-size:11px !important;}
.sbirp-announcement-item--compact .sbirp-announcement-title{font-size:13px !important;margin:0 0 3px !important;line-height:1.3 !important;}
.sbirp-announcement-item--compact .sbirp-announcement-content{font-size:12.5px !important;line-height:1.5 !important;}
.sbirp-announcement-item--compact .sbirp-announcement-content p{margin:0 0 4px !important;}
.sbirp-announcement-item--compact .sbirp-announcement-content :is(h1,h2,h3,h4,h5,h6){font-size:12px !important;margin:6px 0 2px !important;}
.sbirp-announcement-item--compact .sbirp-announcement-cta{margin:6px 0 0 !important;}
.sbirp-announcement-item--compact .sbirp-announcement-link{font-size:12px !important;}
.sbirp-announcement-item--compact .sbirp-announcement-dismiss{margin:6px 0 0 10px !important;font-size:12px !important;}

/* Keep nav links intact when widget is inside menus/navigation */
.wp-block-navigation .sbirp-announcements-widget,
.menu .sbirp-announcements-widget,
.main-navigation .sbirp-announcements-widget {
    display:inline-flex;
}

/* Classic themes: neutralize menu item active/hover backgrounds for announcement trigger */
.menu .sbirp-announcements-menu-item,
.menu .sbirp-announcements-menu-item:hover,
.menu .sbirp-announcements-menu-item:focus,
.menu .sbirp-announcements-menu-item:focus-within,
.menu .sbirp-announcements-menu-item.current-menu-item,
.menu .sbirp-announcements-menu-item.current_page_item,
.menu .sbirp-announcements-menu-item.current_page_parent,
.main-navigation .sbirp-announcements-menu-item,
.main-navigation .sbirp-announcements-menu-item:hover,
.main-navigation .sbirp-announcements-menu-item:focus,
.main-navigation .sbirp-announcements-menu-item:focus-within,
.main-navigation .sbirp-announcements-menu-item.current-menu-item,
.main-navigation .sbirp-announcements-menu-item.current_page_item,
.main-navigation .sbirp-announcements-menu-item.current_page_parent{
    background:transparent !important;
    box-shadow:none !important;
    color:inherit !important;
}
.menu .sbirp-announcements-menu-item > a,
.main-navigation .sbirp-announcements-menu-item > a{
    background:transparent !important;
    box-shadow:none !important;
}
.menu .sbirp-announcements-menu-item::before,
.menu .sbirp-announcements-menu-item::after,
.main-navigation .sbirp-announcements-menu-item::before,
.main-navigation .sbirp-announcements-menu-item::after{
    background:transparent !important;
    box-shadow:none !important;
}
.menu .sbirp-announcements-menu-item .sbirp-widget-toggle,
.main-navigation .sbirp-announcements-menu-item .sbirp-widget-toggle{
    background:transparent !important;
    box-shadow:none !important;
    text-decoration:none !important;
}
.menu .sbirp-announcements-menu-item .sbirp-widget-toggle:hover,
.menu .sbirp-announcements-menu-item .sbirp-widget-toggle:focus,
.main-navigation .sbirp-announcements-menu-item .sbirp-widget-toggle:hover,
.main-navigation .sbirp-announcements-menu-item .sbirp-widget-toggle:focus{
    text-decoration:none !important;
}

@media (max-width: 782px){
    .sbirp-widget-panel{
        width:min(360px, calc(100vw - 20px));
        max-width:calc(100vw - 20px);
        max-height:60vh;
    }
}
