/*
|---------------------------------------------------------------
| COMPONENTS — reusable UI component styles
|---------------------------------------------------------------
| Extracted from inline <style> blocks so a single definition is
| shared across views. Add further reusable components here.
*/

/* ── Post / Log cards (dashboard, posts index, recent activity) ── */
.post-cards { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
.post-card {
    background: rgba(14,14,28,0.95);
    border: 1px solid rgba(var(--pp-rgb,168,85,247),0.2);
    border-left: 3px solid var(--pp-dk,#6b21a8);
    border-radius: 4px;
    padding: 14px 16px;
    position: relative;
    transition: border-color 0.2s;
}
.post-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(90deg, var(--pp-dk,#6b21a8), transparent);
}
.post-card:hover { border-color: rgba(var(--pp-rgb,168,85,247),0.5); }
.post-card-top {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 14px;
    align-items: baseline;
    margin-bottom: 6px;
}
.post-card-title {
    font-family: 'Cinzel', serif;
    font-size: 1.05rem;
    font-weight: 700;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: center;
}
.post-card-title a { color: #f0f0ff !important; text-decoration: none; }
.post-card-title a:hover { color: var(--pp-lt,#c084fc) !important; text-shadow: 0 0 8px rgba(var(--pp-rgb,168,85,247),0.4); }
.post-card-irl-date,
.post-card-irl-time {
    font-size: 0.78rem;
    color: #888;
    letter-spacing: 0.08em;
    white-space: nowrap;
    font-family: 'Rajdhani', sans-serif;
}
.post-card-irl-date { font-weight: 600; color: var(--pp-lt,#c084fc); }
.post-card-meta { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 8px; margin-top: 6px; padding-top: 6px; border-top: 1px solid rgba(var(--pp-rgb,168,85,247),0.1); }
.post-card-authors { font-size: 0.85rem; color: var(--pp,#a855f7); }
.post-card-mission-name { font-size: 0.78rem; color: var(--pp-dk,#6b21a8); letter-spacing: 0.06em; text-align: center; font-weight: 600; }
.post-card-mission-name a { color: var(--pp-dk,#6b21a8) !important; text-decoration: none; }
.post-card-mission-name a:hover { color: var(--pp,#a855f7) !important; }
.post-card-mission-day { font-size: 0.78rem; color: var(--pp,#a855f7); font-weight: 600; text-align: right; }


/* -- Listen / text-to-speech control (posts, bios, wiki) -- */
.post-listen-bar { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; flex-wrap: wrap; }
.listen-btn {
    display: inline-flex; align-items: center; gap: 8px;
    background: rgba(20,20,34,0.9); border: 1px solid rgba(var(--pp-rgb,168,85,247),0.5);
    color: var(--pp,#a855f7); font-family: 'Cinzel', serif; font-size: 0.78rem; font-weight: 700;
    letter-spacing: 0.08em; text-transform: uppercase; padding: 7px 14px;
    border-radius: 4px; cursor: pointer; transition: all 0.2s;
}
.listen-btn:hover { background: rgba(var(--pp-dk-rgb,107,33,168),0.4); border-color: var(--pp,#a855f7); color: var(--pp-lt,#c084fc); box-shadow: 0 0 10px rgba(var(--pp-rgb,168,85,247),0.3); }
.listen-btn-stop { color: #f59e0b; border-color: rgba(245,158,11,0.5); }
.listen-btn-stop:hover { background: rgba(120,53,15,0.3); border-color: #f59e0b; color: #fbbf24; box-shadow: 0 0 10px rgba(245,158,11,0.25); }
.listen-icon { font-size: 0.7rem; line-height: 1; }
.listen-status { font-size: 0.78rem; color: #888899; font-style: italic; }
.listen-voice {
    background: rgba(20,20,34,0.9); border: 1px solid rgba(var(--pp-rgb,168,85,247),0.3); color: #c8c8d8;
    font-size: 0.75rem; padding: 5px 8px; border-radius: 4px; max-width: 210px;
}
.listen-rate { display: inline-flex; align-items: center; gap: 6px; font-size: 0.72rem; color: #888899; letter-spacing: 0.05em; text-transform: uppercase; }
.listen-rate-input { accent-color: var(--pp,#a855f7); cursor: pointer; }
.listen-rate-val { color: var(--pp,#a855f7); font-weight: 700; min-width: 34px; }
@media (max-width: 640px) { .listen-voice { max-width: 140px; } .post-listen-bar { gap: 8px; } }

/* Listen + Translate share one row on the post page: audio left, translate pushed right */
.post-tools-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 10px 0; }
.post-tools-row .post-listen-bar { margin: 0; }
.post-tools-row .xlate-wrap { margin: 0 0 0 auto !important; }
@media (max-width: 640px) { .post-tools-row .xlate-wrap { margin-left: 0 !important; } }


/* ===== USS Rubicon house palette — LCARS Amber/Gold (added 2026-08-04) =====
   Remaps the site accent (was purple) to amber/gold. Every stylesheet and
   inline/per-view <style> reads these vars, so this single block recolors the
   whole site. Tune the values here. */
:root {
    --pp:        #ff9d2f;   /* primary accent (amber)  */
    --pp-lt:     #ffc65c;   /* highlight (gold)        */
    --pp-dk:     #c46a00;   /* deep (burnt amber)      */
    --pp-bg:     #16110a;   /* warm near-black panel   */
    --pp-rgb:    255,157,47;
    --pp-lt-rgb: 255,198,92;
    --pp-dk-rgb: 196,106,0;
}
/* ===== end USS Rubicon palette ===== */


/* ===== USS Rubicon — kill inline-style purple site-wide (2026-08-04) ===== */
[style*="a855f7"]:not(.dept-header),
[style*="c084fc"]:not(.dept-header),
[style*="8b2fc9"]:not(.dept-header),
[style*="a259ff"]:not(.dept-header) { color: var(--pp) !important; }
[style*="168,85,247"]:not(.dept-header),
[style*="107,33,168"]:not(.dept-header),
[style*="192,132,252"]:not(.dept-header) { border-color: rgba(var(--pp-rgb),0.35) !important; }
[style*="2d0a4e"], [style*="6b21a8"] { background-image: linear-gradient(135deg, var(--pp-dk), var(--pp)) !important; }
/* ===== end purple sweep ===== */
