/* 
   SFWA SERVICE CONSOLE MASTER STYLESHEET
   (Accept no substitutes)

--------------------------------------------------------------------------
   Global Base Utilities, Status Cards, etc.
-------------------------------------------------------------------------- */
.status-led {
    height: 10px;
    width: 10px;
    border-radius: 50%;
    display: inline-block;
    margin-right: 8px;
    box-shadow: 0 0 5px currentColor;
}
.led-green { color: #00ff41; background-color: #00ff41; }
.led-blue { color: #00d4ff; background-color: #00d4ff; }

.status-pill {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: bold;
    text-transform: uppercase;
}
.status-active { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
.status-pending { background: #fff3cd; color: #856404; }
.status-inactive { background-color: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }

.mepr-product-53978 { border-left: 5px solid #d4af37; } /* Nebula Finalists */
.mepr-product-57971 { border-left: 5px solid #321866; } /* Attendees */

.sfwa-deck-card.state-green { border-top: 5px solid #10b981 !important; background-color: #ecfdf5 !important; }
.sfwa-deck-card.state-blue  { border-top: 5px solid #3b82f6 !important; background-color: #eff6ff !important; }

/* --------------------------------------------------------------------------
   FullCalendar Integration Overrides
   -------------------------------------------------------------------------- */
.fc-event {
    background-color: #321866 !important;
    border: 1px solid #4b2a8a !important;
    white-space: normal !important;
    padding: 2px 5px;
}
.fc-event-title {
    font-weight: bold;
    max-height: 4.5em;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

/* --------------------------------------------------------------------------
   Global Filter Console for Events
   -------------------------------------------------------------------------- */
.sfwa-filter-console {
    font-family: 'Cinzel', 'Trajan Pro', Georgia, serif;
    background: #12161a !important;
    border: 3px double #c5a059 !important;
    padding: 20px !important;
    border-radius: 4px;
    box-shadow: inset 0 0 15px rgba(197, 160, 89, 0.2), 0 4px 15px rgba(0,0,0,0.5);
}
.sfwa-filter-console label, 
.sfwa-filter-console .filter-row span {
    color: #e5cf9a !important; 
    font-size: 0.85rem;
    letter-spacing: 1.5px;
    font-weight: 700;
    text-transform: uppercase;
    display: inline-block;
    min-width: 110px;
}
.sfwa-filter-console .filter-group,
.sfwa-filter-console .filter-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(197, 160, 89, 0.15);
}
.sfwa-filter-console .console-filter-btn,
.sfwa-filter-console .filter-btn {
    display: inline-block;
    background: linear-gradient(135deg, #232a31 0%, #191f24 100%) !important;
    border: 1px solid #8a6f3e !important;
    color: #dfc28c !important;
    padding: 6px 14px !important;
    font-size: 0.75rem !important;
    font-weight: bold !important;
    letter-spacing: 1px;
    text-decoration: none !important;
    text-transform: uppercase;
    border-radius: 2px;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 2px 5px rgba(0,0,0,0.3);
}
.sfwa-filter-console .console-filter-btn:hover,
.sfwa-filter-console .filter-btn:hover {
    color: #12161a !important;
    background: linear-gradient(135deg, #e5cf9a 0%, #c5a059 100%) !important;
    border-color: #e5cf9a !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(197, 160, 89, 0.3);
}
.sfwa-filter-console .console-filter-btn.active,
.sfwa-filter-console .filter-btn.active {
    color: #12161a !important;
    background: linear-gradient(135deg, #c5a059 0%, #947435 100%) !important;
    border-color: #fff2cc !important;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.4);
}

.sfwa-task-ticker {
    display: flex;
    overflow-x: auto;
    gap: 15px;
    padding: 10px 0;
    scrollbar-width: thin;
}
.task-thumb {
    min-width: 180px;
    padding: 10px;
    border-radius: 4px;
    font-size: 0.75rem;
    cursor: pointer;
    transition: transform 0.2s;
    border: 1px solid #cbd5e1;
    background: #f8fafc;
}
.task-thumb:hover { transform: translateY(-2px); border-color: #3b82f6; }
.task-thumb.pending { border-left: 4px solid #ff9d00; background: #fffbeb; }

/* --------------------------------------------------------------------------
   Away Mission (Events) Console Card Appearance
   -------------------------------------------------------------------------- */
.sfwa-console-card {
    background: var(--bg-col, #fff);
    border: var(--border-weight, 2px) var(--border-style, solid) var(--border-col, #ccc);
    color: var(--text-col, #333);
    font-family: var(--font-main, sans-serif);
    margin: 20px auto;
    max-width: 600px;
    border-radius: var(--card-radius, 8px);
    overflow: hidden;
    box-shadow: var(--card-shadow, 0 4px 10px rgba(0,0,0,0.1));
    position: relative;
    transition: transform 0.3s ease;
}
.sfwa-console-card .card-header {
    background: var(--header-bg, #eee);
    padding: 15px;
    border-bottom: 1px solid var(--border-col);
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.sfwa-console-card .card-header strong a {
    color: #5c4b37 !important;
    font-size: 1.4rem;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.sfwa-console-card .card-body {
    padding: 20px !important;
    display: block !important;
    clear: both !important;
    float: none !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

.sfwa-console-card .event-title { color: #00d4ff; text-transform: uppercase; letter-spacing: 1px; margin-top: 0; }
.sfwa-console-card .console-title-link { color: #fff; text-decoration: none; border-bottom: 1px dashed #00d4ff; }
.sfwa-console-card .console-title-link:hover { color: #00d4ff; border-bottom-style: solid; }
.sfwa-console-card .access-gate-locked { background: rgba(0,0,0,0.05); border: 1px dashed var(--border-col); padding: 15px; text-align: center; font-weight: bold; font-size: 0.9rem; color: var(--text-col); }

.presenter-thumb-line { display: flex; gap: 10px; margin: 15px 0; flex-wrap: wrap; }
.p-thumb { width: 45px; height: 45px; border-radius: 50%; border: 2px solid var(--border-col); cursor: pointer; transition: transform 0.2s; }
.p-thumb:hover { transform: scale(1.2); }

.media-bay { background: #000; border: 1px solid #333; border-radius: 8px; margin: 15px 0; position: relative; padding-bottom: 56.25%; height: 0; }
.media-bay iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border-radius: 4px; }
.my-events-sync-bay { background: #2a2d31; padding: 10px; border: 1px solid #444; margin-top: 15px; border-radius: 5px; }
.sync-label { display: flex; align-items: center; gap: 10px; color: #00ff41; font-weight: bold; text-transform: uppercase; font-size: 0.85em; cursor: pointer; }

.console-input, .console-textarea { background: #000; border: 1px solid #00d4ff; color: #00ff41; font-family: 'Courier New', monospace; width: 100%; padding: 5px; border-radius: 4px; margin-top: 4px; }
.console-textarea { height: 60px; resize: vertical; }
.tech-field label { color: #ff9d00; }
.data-readout { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; font-size: 0.9em; }
.data-item label { color: #888; display: block; font-size: 0.75em; text-transform: uppercase; }

.sfwa-pagination a { padding: 5px 10px; border: 1px solid #00d4ff; color: #00d4ff; margin: 0 3px; text-decoration: none; }
.sfwa-pagination a.current { background: #00d4ff; color: #000; }

/* --------------------------------------------------------------------------
   Themed Overlays for Event Cards
   -------------------------------------------------------------------------- */
.skin-fantasy {
    --bg-col: #fdfaf3; --header-bg: #e9e0cf; --border-col: #d4c5a9; --text-col: #5c4b37;
    --font-main: 'Georgia', serif; --card-radius: 5px; --card-shadow: 2px 2px 5px rgba(0,0,0,0.1);
}
.skin-sci-fi {
    --bg-col: #0a0a12; --header-bg: #141425; --border-col: #00ff41; --text-col: #00ff41;
    --font-main: 'Courier New', monospace; --card-radius: 0px; --card-shadow: 0 0 15px rgba(0, 255, 65, 0.2);
}
.skin-sci-fi .status-led { box-shadow: 0 0 8px #00ff41; }

.skin-art-deco {
    --bg-col: #1a1a1a; --header-bg: #222; --border-col: #d4af37; --text-col: #ffffff;
    --font-main: 'Trebuchet MS', sans-serif; --card-radius: 20px 0 20px 0; --border-weight: 3px;
    --border-style: double; --card-shadow: 0 0 20px rgba(212, 175, 55, 0.4);
    background-image: linear-gradient(45deg, #1a1a1a 25%, #222 25%);
}

.format-online .status-led { background: #00d4ff; box-shadow: 0 0 8px #00d4ff; }
.format-in-person .status-led { background: #00ff41; box-shadow: 0 0 8px #00ff41; }
.format-hybrid .status-led { background: #ff9d00; box-shadow: 0 0 8px #ff9d00; }

.flight-crew-view { border-color: #ff9d00; }
.flight-crew-badge { background: #ff9d00; color: #000; padding: 2px 8px; font-weight: bold; font-size: 0.7em; border-radius: 3px; }

.volunteer-override { background: #0a0c0e !important; border: 1px solid #ff0000 !important; color: #fff !important; padding: 15px; margin: 10px 0; }
.volunteer-override h4 { color: #ff3333; text-transform: uppercase; letter-spacing: 2px; margin-bottom: 10px; border-bottom: 1px solid #330000; }
.volunteer-override strong { color: #00d4ff; font-family: monospace; }
.volunteer-override code { background: #222; color: #00ff41; padding: 2px 5px; border: 1px solid #444; }

/* --------------------------------------------------------------------------
   Special Writing Date Spotlight Card
   -------------------------------------------------------------------------- */
.sfwa-frost-spotlight-wrapper { display: flex; gap: 24px; align-items: flex-start; margin: 30px auto; max-width: 1200px; width: 100%; }
.sfwa-frost-spotlight-wrapper .frost-column { flex: 1; min-width: 0; }
.sfwa-frost-spotlight-wrapper .sfwa-console-card { max-width: 100% !important; margin: 0 !important; }

.frost-presenter-card {
    background: #0b0f14; border: 2px solid #8da1b5; border-radius: 6px; padding: 20px; margin-bottom: 16px;
    box-shadow: 0 10px 30px rgba(13, 27, 42, 0.4), inset 0 0 15px rgba(141, 161, 181, 0.05);
}
.frost-presenter-card .presenter-header { display: flex; align-items: center; gap: 15px; border-bottom: 1px solid rgba(141, 161, 181, 0.2); padding-bottom: 12px; margin-bottom: 12px; }
.frost-presenter-card .presenter-header img { width: 60px; height: 60px; border-radius: 4px; border: 1px solid #8da1b5; object-fit: cover; }
.frost-presenter-card .presenter-header h4 { margin: 0; font-family: 'Cinzel', serif; color: #a3c2de; font-size: 1.2rem; letter-spacing: 1px; }
.frost-presenter-card .presenter-bio-body p { margin: 0; font-size: 0.85rem; line-height: 1.6; color: #b0c4de; }
.frost-presenter-card.empty h4 { color: #8da1b5; margin-top: 0; }

/* --------------------------------------------------------------------------
   Presenter (and future Member) Directory Cards
   -------------------------------------------------------------------------- */

.sfwa-directory-panels .directory-letter-panel {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)) !important;
    gap: 30px !important;
    width: 100% !important;
}

.tab-disabled {
    opacity: 0.3;
    pointer-events: none;
    cursor: default;
}

.acc-body .sfwa-event-modal {
    position: relative;
    z-index: 9999;
}

/* --------------------------------------------------------------------------
   Nebula Finalist and Work Cards
   -------------------------------------------------------------------------- */

.nebula-grid-two-column, 
.sfwa-cards-container {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)) !important;
    gap: 30px !important;
    width: 100%;
    margin-top: 20px;
}

.sfwa-portal-card {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
    display: flex;
    flex-direction: column;
    height: 100%;
    border-top: 5px solid #321866;
    transition: transform 0.2s ease;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}
.sfwa-portal-card:hover {
    transform: translateY(-2px);
}

.sfwa-portal-card.card-cat-novel       { border-top-color: #D4AF37 !important; } /* Gold */
.sfwa-portal-card.card-cat-novella     { border-top-color: #C0C0C0 !important; } /* Silver */
.sfwa-portal-card.card-cat-novelette   { border-top-color: #CD7F32 !important; } /* Bronze */
.sfwa-portal-card.card-cat-short-story { border-top-color: #4A90E2 !important; } /* Sky Blue */
.sfwa-portal-card.card-cat-poem        { border-top-color: #E91E63 !important; } /* Rose */
.sfwa-portal-card.card-cat-game-writing{ border-top-color: #9C27B0 !important; } /* Purple */
.sfwa-portal-card.card-cat-comic       { border-top-color: #FF9800 !important; } /* Orange */
.sfwa-portal-card.card-cat-andre-norton{ border-top-color: #009688 !important; } /* Teal */
.sfwa-portal-card.card-cat-bradbury    { border-top-color: #795548 !important; } /* Brown */

.sfwa-portal-card .card-image-wrapper {
    position: relative !important;
    width: 100% !important;
    padding-top: 150% !important; 
    background: #f0f0f1;
    overflow: hidden;
}
.sfwa-portal-card .card-image-wrapper img {
    position: absolute !important;
    top: 0; left: 0;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center 20% !important; 
}

.sfwa-portal-card.is-pending {
    z-index: 1;
    opacity: 0.65 !important;
    background-color: #fdfbff !important;
    border-color: #e6e0f0 !important;
    filter: grayscale(30%);
}
.sfwa-portal-card.is-pending::before {
    content: "Pending Confirmation" !important;
    position: absolute !important;
    top: 15px; right: 15px;
    z-index: 999 !important;
    background: #321866 !important;
    color: #fff !important;
    font-size: 10px !important;
    font-weight: bold;
    padding: 4px 10px;
    border-radius: 20px;
    text-transform: uppercase;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.sfwa-portal-card .sfwa-checkbox-wrapper {
    padding: 5px;
    border-radius: 4px;
    transition: background-color 0.3s ease;
}
.sfwa-portal-card.state-blue .sfwa-checkbox-wrapper   { background-color: #d1ecf1; }
.sfwa-portal-card.state-green .sfwa-checkbox-wrapper  { background-color: #d4edda; }

.sfwa-portal-card .card-content {
    padding: 15px;
    flex-grow: 1;
    text-align: left !important;
}
.sfwa-portal-card .card-content * {
    text-align: left !important;
}
.sfwa-portal-card .card-name, 
.sfwa-portal-card .card-work-title {
    margin: 0 0 10px;
    font-size: 1.4rem;
}
.sfwa-portal-card .card-work-title {
    font-weight: bold;
    font-style: italic;
}
.sfwa-portal-card.type-work .card-work-title {
    color: #321866;
}
.sfwa-portal-card.type-finalist .card-name {
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.sfwa-portal-card .nomination-line, 
.sfwa-portal-card .author-line {
    font-size: 0.9rem;
    color: #666;
}
.sfwa-portal-card .card-bio, 
.sfwa-portal-card .work-description {
    font-size: 15px;
    line-height: 1.6;
    color: #444;
}
.sfwa-portal-card .card-bio p, 
.sfwa-portal-card .work-description p {
    margin-bottom: 15px;
}

.sfwa-portal-card .card-footer {
    padding: 15px 20px;
    background: #f9f9f9;
    border-top: 1px solid #eee;
    margin-top: auto;
}
.sfwa-portal-card .social-icon.site {
    display: inline-block;
    padding: 8px 15px;
    background: #321866;
    color: #fff !important;
    text-decoration: none !important;
    border-radius: 4px;
    font-weight: bold;
    font-size: 13px;
    transition: background 0.2s ease;
}
.sfwa-portal-card .social-icon.site:hover {
    background: #4a2688;
}

/* --------------------------------------------------------------------------
   Catalog Cards for NRN and G&CQ
   -------------------------------------------------------------------------- */

.sfwa-catalog-container {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 30px !important;
}

.sfwa-catalog-card {
    border: 1px solid #ccd0d4;
    background: #fff;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    text-align: left !important;
    height: 100%;
}

.sfwa-catalog-card .section-editorial {
    width: 100%;
    background: #f0f0f1;
    padding: 8px 12px;
    border-bottom: 1px solid #ccd0d4;
    box-sizing: border-box;
}

.sfwa-catalog-card .card-body {
    display: flex !important;
    flex-direction: column !important;
    padding: 15px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    align-items: flex-start !important;
    clear: none !important;
    float: none !important;
    overflow: visible !important;
}

.sfwa-catalog-card .card-visuals {
    display: flex;
    gap: 10px;
    margin-bottom: 15px;
    justify-content: flex-start;
    width: 100%;
}

.sfwa-catalog-card img.cover-art {
    width: 100px !important;
    max-width: 100px !important;
    height: auto !important;
    display: block;
    margin: 0 !important;
}

.sfwa-catalog-card img.author-photo {
    width: 60px !important;
    max-width: 60px !important;
    height: 60px !important;
    border-radius: 50% !important;
    margin: 0 !important;
}

.sfwa-cards-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 20px !important;
    margin-top: 20px !important;
    align-items: start !important;
}
.sfwa-cards-grid .sfwa-portal-card {
    margin: 0 !important;
    width: 100% !important;
}

.event-card-presenters-tray {
    display: flex !important;
    gap: 12px !important;
    margin: 15px 0 !important;
    padding: 5px 0 !important;
    min-height: 45px !important;
    visibility: visible !important;
}
.presenter-thumbnail-wrapper {
    position: relative !important;
    display: inline-block !important;
}
.sfwa-presenter-thumb {
    width: 42px !important;
    height: 42px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    border: 2px solid #8da1b5 !important;
    cursor: pointer !important;
    background: #161c24;
}

/* --------------------------------------------------------------------------
   Variable Media Tools
   -------------------------------------------------------------------------- */

@media (max-width: 900px) {
    .sfwa-cards-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 768px) {
    .nebula-grid-two-column { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
    .nebula-grid-two-column,
    .sfwa-cards-grid { grid-template-columns: 1fr !important; }
}