/* ── Fonts — loaded via <link> in base.html for parallel fetch ────────── */

/* ── Design Tokens ───────────────────────────────────────────────────────── */
:root {
    --bg:           #06090f;
    --surface:      #0c1220;
    --surface-2:    #111a2c;
    --surface-3:    #162030;
    --border:       #142030;
    --border-2:     #1e3555;
    --blue:         #1d6fe8;
    --blue-hover:   #3b82f6;
    --blue-dim:     #1a4580;
    --blue-glow:    rgba(29, 111, 232, 0.18);
    --blue-subtle:  rgba(29, 111, 232, 0.07);
    --text:         #c8d8e8;
    --text-dim:     #8aa3bf;
    --text-muted:   #6480a0;
    --gold:         #b89030;
    --gold-bright:  #d4a840;
    --danger:       #7a1818;
    --success:      #1a5a2e;
    --success-text: #5ab87a;
    --font-head:    'Rajdhani', 'Arial Narrow', sans-serif;
    --font-mono:    'Share Tech Mono', 'Courier New', monospace;
    --radius:       2px;
}

/* ── Reset ───────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

body {
    font-family: system-ui, 'Segoe UI', Arial, sans-serif;
    margin: 0;
    padding: 0;
    background-color: var(--bg);
    color: var(--text);
    line-height: 1.65;
    font-size: 15px;
}

a { color: var(--blue); text-decoration: none; }
a:hover { color: var(--blue-hover); }

hr {
    border: none;
    border-top: 1px solid var(--border);
    margin: 24px 0;
}

/* ── Site Header ─────────────────────────────────────────────────────────── */
.site-header {
    background-color: #040810;
    border-bottom: 2px solid var(--blue-dim);
    padding: 20px 0 16px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

/* Tactical dot-grid texture */
.site-header::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle, rgba(29,111,232,0.12) 1px, transparent 1px);
    background-size: 28px 28px;
    pointer-events: none;
}

.site-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 120px;
    height: 2px;
    background: var(--blue);
    box-shadow: 0 0 12px var(--blue);
}

.brand-name {
    font-family: var(--font-head);
    font-size: 2.6em;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--gold-bright);
    position: relative;
    display: block;
    text-shadow: 0 0 30px rgba(212, 168, 64, 0.35);
}

.brand-tagline {
    font-family: var(--font-mono);
    font-size: 0.72em;
    letter-spacing: 0.3em;
    color: var(--text-muted);
    text-transform: uppercase;
    display: block;
    margin-top: 4px;
    position: relative;
}

/* ── Navbar ──────────────────────────────────────────────────────────────── */
.navbar {
    background-color: #070c18;
    border-bottom: 1px solid var(--border-2);
    position: relative;
    z-index: 1000;
    overflow: visible;
}

.nav-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    align-items: stretch;
}

.navbar ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
}

.navbar li {
    position: relative;
    display: flex;
    align-items: stretch;
}

.nav-item,
.dropbtn {
    display: inline-flex;
    align-items: center;
    padding: 0 20px;
    height: 48px;
    font-family: var(--font-head);
    font-size: 0.95em;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-dim);
    text-decoration: none;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    transition: color 0.2s, border-color 0.2s;
    white-space: nowrap;
}

.nav-item:hover,
.dropbtn:hover {
    color: var(--blue);
    border-bottom-color: var(--blue);
}

/* Dropdown panel */
.dropdown-content {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 210px;
    background-color: #0a1220;
    border: 1px solid var(--border-2);
    border-top: 2px solid var(--blue-dim);
    z-index: 1100;
    box-shadow: 0 8px 24px rgba(0,0,0,0.6);
}

.dropdown-content a {
    display: block;
    padding: 12px 20px;
    font-family: var(--font-head);
    font-size: 0.88em;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-dim);
    border-left: 2px solid transparent;
    transition: color 0.15s, border-color 0.15s, background-color 0.15s;
}

.dropdown-content a:hover {
    color: var(--blue);
    border-left-color: var(--blue);
    background-color: var(--blue-subtle);
}

.navbar li.dropdown:hover .dropdown-content {
    display: block;
}

/* ── Main Content ────────────────────────────────────────────────────────── */
main {
    max-width: 1200px;
    margin: 0 auto;
    padding: 32px 20px 60px;
}

/* ── Typography ──────────────────────────────────────────────────────────── */
h1, h2, h3, h4, h5 {
    font-family: var(--font-head);
    font-weight: 600;
    letter-spacing: 0.05em;
    color: var(--text);
    margin-top: 0;
}

h2 {
    font-size: 1.5em;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    border-bottom: 1px solid var(--border-2);
    padding-bottom: 10px;
    margin-bottom: 22px;
}

h3 {
    font-size: 1.2em;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--text-dim);
    margin-bottom: 14px;
}

h4 {
    font-size: 1em;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-dim);
    margin-bottom: 12px;
}

/* ── Flash Messages ──────────────────────────────────────────────────────── */
.alert {
    padding: 12px 16px;
    margin-bottom: 14px;
    border: 1px solid var(--border);
    border-left: 3px solid var(--blue-dim);
    background-color: var(--surface);
    color: var(--text);
    font-size: 0.9em;
    border-radius: var(--radius);
    animation: alertSlideIn 0.3s ease-out;
    position: relative;
}

@keyframes alertSlideIn {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
}

.alert-success { border-left-color: var(--success-text); }
.alert-danger  { border-left-color: #c06060; }
.alert-warning { border-left-color: var(--gold); }
.alert-info    { border-left-color: var(--blue); }

/* ── Welcome / Hero Section ──────────────────────────────────────────────── */
.welcome {
    background-color: var(--surface);
    border: 1px solid var(--border-2);
    border-top: 3px solid var(--blue-dim);
    padding: 36px 32px;
    margin: 0 0 32px 0;
    text-align: center;
    position: relative;
}

.welcome h2 {
    font-family: var(--font-head);
    font-size: 1.9em;
    color: #e0ecff;
    border: none;
    padding: 0;
    margin-bottom: 14px;
    letter-spacing: 0.14em;
}

.welcome p {
    color: var(--text-dim);
    max-width: 620px;
    margin: 0 auto 24px;
    line-height: 1.75;
}

/* ── Cards ───────────────────────────────────────────────────────────────── */
.card {
    background-color: var(--surface);
    border: 1px solid var(--border);
    border-top: 2px solid var(--border-2);
    border-radius: var(--radius);
    padding: 18px;
    transition: border-top-color 0.2s, box-shadow 0.2s;
}

.card:hover {
    border-top-color: var(--blue);
    box-shadow: 0 6px 24px rgba(0,0,0,0.5), 0 0 0 1px var(--blue-glow);
}

.card h3 {
    font-family: var(--font-head);
    font-size: 1.1em;
    font-weight: 700;
    color: #d8e8f8;
    margin: 0 0 8px 0;
    letter-spacing: 0.04em;
    text-transform: none;
}

.card p {
    color: var(--text-dim);
    font-size: 0.88em;
    margin: 4px 0;
}

.card strong { color: var(--text); }

/* ── Grid Layouts ────────────────────────────────────────────────────────── */
.grid-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}

.dual-column-container {
    display: flex;
    gap: 28px;
    margin: 24px 0;
    flex-wrap: wrap;
}

.column {
    flex: 1;
    min-width: 300px;
}

.column h2 {
    border-top: none;
    border-bottom: 1px solid var(--border-2);
    padding: 0 0 10px 0;
    margin-top: 0;
}

/* ── Buttons ─────────────────────────────────────────────────────────────── */
/* Base button */
.btn, button.btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 20px;
    font-family: var(--font-head);
    font-size: 0.9em;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    border: 1px solid transparent;
    border-radius: var(--radius);
    cursor: pointer;
    text-decoration: none;
    transition: background-color 0.18s, color 0.18s, border-color 0.18s, box-shadow 0.18s;
    white-space: nowrap;
}

/* PRIMARY — electric blue, near-black text */
.btn-primary {
    background-color: var(--blue);
    color: #030810;
    border-color: var(--blue-hover);
}
.btn-primary:hover {
    background-color: var(--blue-hover);
    color: #020608;
    box-shadow: 0 0 14px var(--blue-glow);
}

/* SECONDARY */
.btn-secondary {
    background-color: transparent;
    color: var(--text-dim);
    border-color: var(--border-2);
}
.btn-secondary:hover {
    color: var(--blue);
    border-color: var(--blue-dim);
    background-color: var(--blue-subtle);
}

/* SUCCESS */
.btn-success {
    background-color: #0f3a1f;
    color: var(--success-text);
    border-color: var(--success);
}
.btn-success:hover {
    background-color: #183a22;
    color: #7ad898;
}

/* WARNING */
.btn-warning {
    background-color: #2a2000;
    color: var(--gold-bright);
    border-color: var(--gold);
}
.btn-warning:hover {
    background-color: #3a2e00;
    color: #e8c050;
}

/* DANGER */
.btn-danger {
    background-color: #1e0808;
    color: #e06060;
    border-color: var(--danger);
}
.btn-danger:hover {
    background-color: #280e0e;
    color: #f08080;
}

/* Small button used across cards */
.btn-sm {
    display: inline-flex;
    align-items: center;
    padding: 5px 12px;
    font-family: var(--font-head);
    font-size: 0.8em;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-dim);
    background-color: var(--surface-2);
    border: 1px solid var(--border-2);
    border-radius: var(--radius);
    cursor: pointer;
    text-decoration: none;
    transition: color 0.18s, border-color 0.18s, background-color 0.18s;
}
.btn-sm:hover {
    color: var(--blue);
    border-color: var(--blue-dim);
    background-color: var(--blue-subtle);
}

.more-like-this {
    color: var(--success-text);
    border-color: var(--success);
}
.more-like-this:hover {
    color: #7ad898;
    border-color: var(--success-text);
    background-color: rgba(26,90,46,0.15);
}

/* Amazon buy button */
.buy-btn {
    display: inline-flex;
    align-items: center;
    padding: 5px 12px;
    font-family: var(--font-head);
    font-size: 0.8em;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background-color: #3a2800;
    color: #e8a030;
    border: 1px solid #6a4800;
    border-radius: var(--radius);
    text-decoration: none;
    transition: background-color 0.18s, color 0.18s;
}
.buy-btn:hover {
    background-color: #4a3400;
    color: #f0c050;
}

/* ── Forms ───────────────────────────────────────────────────────────────── */
form {
    background-color: var(--surface);
    border: 1px solid var(--border);
    border-top: 2px solid var(--border-2);
    padding: 26px;
    margin-bottom: 22px;
    border-radius: var(--radius);
}

form label {
    display: block;
    margin-bottom: 5px;
    font-family: var(--font-head);
    font-size: 0.85em;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-dim);
}

.form-control,
form input[type="text"],
form input[type="email"],
form input[type="password"],
form input[type="number"],
form select,
form textarea {
    width: 100%;
    padding: 10px 13px;
    margin-bottom: 16px;
    background-color: #070c18;
    border: 1px solid var(--border-2);
    border-radius: var(--radius);
    color: var(--text);
    font-family: inherit;
    font-size: 0.95em;
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
    -webkit-appearance: none;
}

.form-control:focus,
form input:focus,
form select:focus,
form textarea:focus {
    border-color: var(--blue);
    box-shadow: 0 0 0 3px var(--blue-glow), 0 0 12px rgba(29,111,232,0.08);
}

.form-control::placeholder {
    color: var(--text-muted);
    font-size: 0.92em;
    letter-spacing: 0.02em;
}

form select option {
    background-color: var(--surface);
    color: var(--text);
}

form button[type="submit"] {
    background-color: var(--blue);
    color: #030810;
    border: 1px solid var(--blue-hover);
    padding: 10px 24px;
    font-family: var(--font-head);
    font-size: 0.9em;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    cursor: pointer;
    border-radius: var(--radius);
    transition: background-color 0.18s, box-shadow 0.18s;
}
form button[type="submit"]:hover {
    background-color: var(--blue-hover);
    box-shadow: 0 0 14px var(--blue-glow);
}

.rating-select {
    padding: 4px 7px;
    font-size: 0.85em;
    background-color: #070c18;
    border: 1px solid var(--border-2);
    border-radius: var(--radius);
    color: var(--text);
    width: auto;
    margin-bottom: 0;
}

/* Input group */
.input-group {
    display: flex;
    gap: 8px;
    align-items: stretch;
}
.input-group .form-control { flex: 1; margin-bottom: 0; }

/* ── Tables ──────────────────────────────────────────────────────────────── */
table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 22px;
    font-size: 0.9em;
    border: 1px solid var(--border);
}

table th {
    font-family: var(--font-head);
    font-size: 0.82em;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    background-color: var(--surface-2);
    color: var(--text-dim);
    padding: 11px 14px;
    border-bottom: 2px solid var(--border-2);
    text-align: left;
}

table td {
    padding: 10px 14px;
    border-bottom: 1px solid var(--border);
    color: var(--text-dim);
}

table tr:last-child td { border-bottom: none; }

table tr:hover td {
    background-color: var(--blue-subtle);
    color: var(--text);
}

/* ── List Groups ─────────────────────────────────────────────────────────── */
.list-group {
    list-style: none;
    padding: 0;
    margin: 0 0 20px 0;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
}

.list-group-item {
    padding: 11px 16px;
    background-color: var(--surface);
    border-bottom: 1px solid var(--border);
    color: var(--text);
    font-size: 0.9em;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}
.list-group-item:last-child { border-bottom: none; }

.list-group-item strong {
    font-family: var(--font-head);
    font-size: 0.82em;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-dim);
    flex-shrink: 0;
}

/* ── Tags & Badges ───────────────────────────────────────────────────────── */
.tag-badge {
    display: inline-block;
    background: rgba(29,111,232,0.1);
    color: #5a90d0;
    font-family: var(--font-mono);
    font-size: 0.72em;
    padding: 3px 9px;
    border: 1px solid rgba(29,111,232,0.25);
    border-radius: var(--radius);
    letter-spacing: 0.04em;
}

.genre-badge {
    background: rgba(90,150,200,0.08);
    color: #5a9ab8;
    border-color: rgba(90,150,200,0.2);
}

/* ── Stars ───────────────────────────────────────────────────────────────── */
.stars { color: var(--gold-bright); }

/* ── Card Sub-elements ───────────────────────────────────────────────────── */
.card-cover {
    width: 72px;
    height: auto;
    float: right;
    margin: 0 0 10px 14px;
    border: 1px solid var(--border-2);
    border-radius: var(--radius);
    opacity: 0.85;
}

.card-event {
    font-family: var(--font-mono);
    font-size: 0.76em;
    color: var(--text-muted);
    margin: 4px 0;
}

.card-desc {
    font-size: 0.86em;
    color: var(--text-dim);
    line-height: 1.55;
    margin: 8px 0;
}

.card-meta {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    font-family: var(--font-mono);
    font-size: 0.76em;
    color: var(--text-muted);
    margin: 8px 0 10px;
}

.card-actions {
    margin-top: 14px;
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}

.card-user-actions {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--border);
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

/* ── Security / Auth Pages ───────────────────────────────────────────────── */
.security-container {
    max-width: 440px;
    margin: 48px auto;
    padding: 0;
    background: transparent;
    border: none;
    animation: authFadeIn 0.4s ease-out;
}

@keyframes authFadeIn {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}

.auth-header {
    position: relative;
    border: 1px solid var(--border-2);
    padding: 22px 24px 18px;
    background: var(--surface);
    background-image: radial-gradient(circle, rgba(29,111,232,0.06) 1px, transparent 1px);
    background-size: 24px 24px;
}

.auth-corner {
    position: absolute;
    width: 12px;
    height: 12px;
    border-color: var(--gold);
    border-style: solid;
}
.auth-corner-tl { top: -1px; left: -1px;  border-width: 2px 0 0 2px; }
.auth-corner-tr { top: -1px; right: -1px; border-width: 2px 2px 0 0; }
.auth-corner-bl { bottom: -1px; left: -1px;  border-width: 0 0 2px 2px; }
.auth-corner-br { bottom: -1px; right: -1px; border-width: 0 2px 2px 0; }

.auth-title {
    font-family: var(--font-head);
    font-size: 1.7rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--gold-bright);
    margin: 0 0 4px;
    border: none;
    padding: 0;
    line-height: 1.1;
}

.auth-classification {
    font-family: var(--font-mono);
    font-size: 0.68em;
    letter-spacing: 0.14em;
    color: var(--text-muted);
    text-transform: uppercase;
}

.security-container form {
    background: var(--surface);
    border: 1px solid var(--border-2);
    border-top: none;
    padding: 28px 24px;
    margin: 0;
}

.security-container h2 {
    /* Legacy fallback — hidden when auth-header is used */
    font-family: var(--font-head);
    letter-spacing: 0.12em;
    color: #d8e8f8;
    margin-bottom: 22px;
}

.auth-field {
    margin-bottom: 18px;
}

.auth-label {
    display: block;
    margin-bottom: 6px;
    font-family: var(--font-mono);
    font-size: 0.72em;
    font-weight: 400;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-dim);
}

.auth-optional {
    color: var(--text-muted);
    font-size: 0.9em;
}

.auth-remember {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 22px;
}

.auth-remember input[type="checkbox"] {
    accent-color: var(--blue);
    width: 15px;
    height: 15px;
}

.auth-remember-label {
    font-family: var(--font-mono);
    font-size: 0.78em;
    color: var(--text-dim);
    letter-spacing: 0.06em;
    margin: 0;
    cursor: pointer;
}

.auth-submit {
    width: 100%;
    justify-content: center;
    padding: 13px 24px;
    font-size: 1em;
    letter-spacing: 0.14em;
}

.auth-links {
    text-align: center;
    margin-top: 18px;
    font-family: var(--font-mono);
    font-size: 0.78em;
    letter-spacing: 0.06em;
}

.auth-links a {
    color: var(--text-dim);
    transition: color 0.15s;
}

.auth-links a:hover {
    color: var(--blue);
}

.auth-links-sep {
    color: var(--text-muted);
    margin: 0 10px;
}

.form-errors {
    list-style: none;
    padding: 0;
    margin: 6px 0 14px;
    color: #e07070;
    font-family: var(--font-mono);
    font-size: 0.78em;
    letter-spacing: 0.04em;
}

.form-errors li::before {
    content: '! ';
    color: #c06060;
}

/* ── Feedback floating button + modal ────────────────────────────────────── */
.fb-launcher {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 1500;
    background: var(--gold);
    color: #06090f;
    border: none;
    font-family: var(--font-mono);
    font-size: 0.78em;
    letter-spacing: 0.18em;
    font-weight: 700;
    padding: 12px 18px;
    border-radius: var(--radius);
    cursor: pointer;
    box-shadow: 0 6px 18px rgba(0,0,0,0.5);
    transition: background 0.15s, transform 0.15s;
}
.fb-launcher:hover {
    background: var(--gold-bright);
    transform: translateY(-2px);
}

.fb-modal {
    position: fixed;
    inset: 0;
    z-index: 2000;
}
.fb-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(2, 6, 12, 0.7);
    backdrop-filter: blur(2px);
}
.fb-modal-panel {
    position: relative;
    max-width: 540px;
    margin: 8vh auto 0;
    background: var(--surface);
    border: 1px solid var(--border-2);
    border-top: 3px solid var(--gold);
    padding: 22px 26px 24px;
    box-shadow: 0 24px 60px rgba(0,0,0,0.6);
}
.fb-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}
.fb-modal-header h3 {
    margin: 0;
    font-family: var(--font-head);
    font-size: 1.4em;
    letter-spacing: 0.08em;
    color: var(--gold-bright);
}
.fb-close {
    background: none;
    border: none;
    color: var(--text-dim);
    font-size: 1.8em;
    line-height: 1;
    cursor: pointer;
    padding: 0 4px;
}
.fb-close:hover { color: var(--text); }

.fb-intro {
    color: var(--text-dim);
    font-size: 0.92em;
    line-height: 1.55;
    margin: 0 0 16px;
}

.fb-label {
    display: block;
    font-family: var(--font-mono);
    font-size: 0.78em;
    letter-spacing: 0.08em;
    color: var(--text-dim);
    margin-bottom: 8px;
    text-transform: uppercase;
}

.fb-cat-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}
.fb-cat {
    flex: 1;
    min-width: 110px;
    font-family: var(--font-mono);
    font-size: 0.82em;
    color: var(--text-dim);
    background: var(--bg);
    border: 1px solid var(--border);
    padding: 8px 12px;
    cursor: pointer;
    text-align: center;
    transition: all 0.15s;
}
.fb-cat input[type="radio"] {
    accent-color: var(--gold);
    margin-right: 6px;
}
.fb-cat:hover {
    border-color: var(--gold);
    color: var(--text);
}
.fb-cat:has(input:checked) {
    border-color: var(--gold);
    color: var(--gold);
    background: rgba(184,144,48,0.06);
}

.fb-textarea {
    width: 100%;
    background: var(--bg);
    color: var(--text);
    border: 1px solid var(--border);
    padding: 10px 12px;
    font-family: inherit;
    font-size: 0.95em;
    line-height: 1.5;
    resize: vertical;
    margin-bottom: 16px;
}
.fb-textarea:focus { outline: none; border-color: var(--gold); }

.fb-actions {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
}

@media (max-width: 600px) {
    .fb-launcher { padding: 10px 14px; font-size: 0.72em; bottom: 16px; right: 16px; }
    .fb-modal-panel { margin: 4vh 12px 0; padding: 18px 18px 20px; }
}

/* ── Universal nav search ────────────────────────────────────────────────── */
.nav-search-row {
    background: #070c18;
    border-bottom: 1px solid var(--border);
    padding: 8px 20px;
    display: flex;
    justify-content: center;
    position: relative;
    z-index: 900;
}

.nav-search {
    position: relative;
    width: 100%;
    max-width: 560px;
    display: flex;
    align-items: center;
    gap: 6px;
    background: var(--surface);
    border: 1px solid var(--border-2);
    border-radius: var(--radius);
    padding: 4px 10px;
    transition: border-color 0.15s;
}

.nav-search:focus-within { border-color: var(--gold); }

.nav-search-icon {
    color: var(--text-dim);
    font-size: 0.95em;
    flex-shrink: 0;
}

.nav-search-input {
    flex: 1;
    background: transparent;
    border: none;
    outline: none;
    color: var(--text);
    font-family: inherit;
    font-size: 0.92em;
    padding: 6px 2px;
}

.nav-search-input::placeholder { color: var(--text-muted); }

.nav-ac-list {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    background: var(--surface);
    border: 1px solid var(--border-2);
    border-radius: var(--radius);
    max-height: 360px;
    overflow-y: auto;
    box-shadow: 0 16px 40px rgba(0,0,0,0.5);
    z-index: 1100;
}

.nav-ac-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 14px;
    text-decoration: none;
    border-bottom: 1px solid var(--border);
    color: var(--text);
    font-size: 0.9em;
}

.nav-ac-item:last-child { border-bottom: none; }

.nav-ac-item:hover {
    background: rgba(184,144,48,0.10);
    color: var(--text);
}

.nav-ac-type {
    font-family: var(--font-mono);
    font-size: 0.62em;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 2px 6px;
    border-radius: var(--radius);
    flex-shrink: 0;
    min-width: 52px;
    text-align: center;
}

.nav-ac-type-war       { background: var(--blue-dim);  color: #cfe0ff; }
.nav-ac-type-event     { background: #5a2d00;          color: #ffd9ad; }
.nav-ac-type-book      { background: #1a4533;          color: #aef0cf; }
.nav-ac-type-boardgame { background: #3a2a55;          color: #e0ccff; }

.nav-ac-label {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ── Footer ──────────────────────────────────────────────────────────────── */
footer {
    background-color: #040810;
    border-top: 1px solid var(--border-2);
    color: var(--text-muted);
    text-align: center;
    padding: 16px 0;
    margin-top: 60px;
    font-family: var(--font-mono);
    font-size: 0.78em;
    letter-spacing: 0.06em;
}

/* ── Back to Top ─────────────────────────────────────────────────────────── */
#back-to-top {
    display: none;
    position: fixed;
    bottom: 24px;
    right: 24px;
    background-color: var(--surface-2);
    color: var(--blue-dim);
    border: 1px solid var(--border-2);
    width: 40px;
    height: 40px;
    font-size: 1.1em;
    cursor: pointer;
    border-radius: var(--radius);
    transition: color 0.2s, border-color 0.2s, box-shadow 0.2s;
}
#back-to-top:hover {
    color: var(--blue);
    border-color: var(--blue-dim);
    box-shadow: 0 0 10px var(--blue-glow);
}

/* ── Spinner ─────────────────────────────────────────────────────────────── */
#loading-spinner {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1000;
}
.spinner {
    border: 3px solid var(--border-2);
    border-top: 3px solid var(--blue);
    border-radius: 50%;
    width: 38px;
    height: 38px;
    animation: spin 0.7s linear infinite;
}
@keyframes spin {
    0%   { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* ── Utility Classes ─────────────────────────────────────────────────────── */
.mb-2 { margin-bottom: 8px; }
.mb-3 { margin-bottom: 16px; }
.mb-4 { margin-bottom: 28px; }
.mt-2 { margin-top: 8px; }
.mt-4 { margin-top: 28px; }
.ms-2 { margin-left: 8px; }
.d-inline { display: inline; }
.d-flex { display: flex; }
.justify-content-between { justify-content: space-between; }
.align-items-center { align-items: center; }
.flex-wrap { flex-wrap: wrap; }
.gap-2 { gap: 8px; }
.text-center { text-align: center; }
.w-100 { width: 100%; }

/* ── Hamburger toggle (hidden on desktop) ───────────────────────────────── */
.nav-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 10px 12px;
    flex-direction: column;
    gap: 4px;
    align-items: center;
    justify-content: center;
}

.nav-toggle-bar {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--text-dim);
    transition: transform 0.25s, opacity 0.25s;
}

.nav-toggle.active .nav-toggle-bar:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
}
.nav-toggle.active .nav-toggle-bar:nth-child(2) {
    opacity: 0;
}
.nav-toggle.active .nav-toggle-bar:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
}

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .brand-name { font-size: 1.8em; letter-spacing: 0.1em; }
    .brand-tagline { display: none; }
    .dual-column-container { flex-direction: column; }
    main { padding: 20px 14px 40px; }
    .grid-container { grid-template-columns: 1fr; }
    table { display: block; overflow-x: auto; }
    .welcome { padding: 24px 18px; }
    .security-container { margin: 24px 14px; }

    /* Hamburger visible on mobile */
    .nav-toggle { display: flex; }

    .nav-container {
        flex-wrap: wrap;
        padding: 0;
    }

    .navbar ul {
        display: none;
        flex-direction: column;
        width: 100%;
        border-top: 1px solid var(--border-2);
    }

    .navbar ul.nav-open {
        display: flex;
    }

    .navbar li {
        flex-direction: column;
        align-items: stretch;
    }

    .nav-item, .dropbtn {
        padding: 0 16px;
        height: 44px;
        font-size: 0.88em;
        width: 100%;
        justify-content: flex-start;
        border-bottom: 1px solid var(--border);
    }

    .dropdown-content {
        position: static;
        box-shadow: none;
        border: none;
        border-top: none;
        background: #060c18;
    }

    .dropdown-content a {
        padding-left: 32px;
    }
}


/* ═══════════════════════════════════════════════════════════════════════════
   Homepage — Era / War / Battle hierarchy
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Hero ──────────────────────────────────────────────────────────────── */
.home-hero {
    text-align: center;
    padding: 52px 24px 44px;
    border-bottom: 1px solid var(--border-2);
    background: linear-gradient(180deg, #0a1222 0%, var(--bg) 100%);
    /* Break out of main's side padding */
    margin-left: -20px;
    margin-right: -20px;
    margin-top: -32px;
}

.home-hero-title {
    font-family: var(--font-head);
    font-size: 3rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--gold-bright);
    margin: 0 0 14px;
    line-height: 1.1;
}

.home-hero-sub {
    font-size: 1.1rem;
    color: var(--text-dim);
    max-width: 580px;
    margin: 0 auto 28px;
    line-height: 1.65;
}

.home-hero-actions {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}

.home-hero-btn {
    display: inline-block;
    padding: 13px 28px;
    background: var(--blue);
    color: #fff;
    font-size: 1rem;
    font-weight: 600;
    border-radius: var(--radius);
    text-decoration: none;
    letter-spacing: 0.04em;
    transition: background 0.15s;
}

.home-hero-btn:hover { background: var(--blue-hover); color: #fff; }

.home-hero-btn-outline {
    background: transparent;
    border: 2px solid var(--border-2);
    color: var(--text-dim);
}

.home-hero-btn-outline:hover {
    border-color: var(--blue);
    color: var(--text);
    background: var(--blue-subtle);
}

/* ── Era tabs bar ──────────────────────────────────────────────────────── */
.era-tabs-bar {
    background: var(--surface);
    border-bottom: 2px solid var(--border-2);
    /* Note: overflow-x must be on a NON-sticky element to work reliably.
       Keeping it here as a scrollable block (not sticky). */
    overflow-x: auto;
    overflow-y: visible;
    scrollbar-width: none;
    /* Break out of main's side padding so the bar is edge-to-edge */
    margin-left: -20px;
    margin-right: -20px;
}
.era-tabs-bar::-webkit-scrollbar { display: none; }

.era-tabs-inner {
    display: flex;
    /* Left padding only — right padding on overflow containers is dropped
       by browsers; use margin-right on last tab instead */
    padding: 0 0 0 20px;
    width: max-content;
    min-width: 100%;
}

/* Ensure right breathing room after the last tab */
.era-tab:last-child {
    margin-right: 20px;
}

.era-tab {
    background: none;
    border: none;
    border-bottom: 3px solid transparent;
    padding: 14px 16px 11px;
    font-family: var(--font-head);
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-dim);
    cursor: pointer;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: -2px;
    transition: color 0.15s, border-color 0.15s;
}
.era-tab:hover { color: var(--text); }
.era-tab.active {
    color: var(--gold-bright);
    border-bottom-color: var(--gold-bright);
}

.era-tab-count {
    font-family: var(--font-mono);
    font-size: 0.68rem;
    color: var(--text-muted);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 1px 6px;
    letter-spacing: 0;
}
.era-tab.active .era-tab-count {
    color: var(--gold);
    border-color: var(--gold-dim, var(--border-2));
}

/* ── Era panels ────────────────────────────────────────────────────────── */
.era-panel {
    display: none;
    padding: 28px 0 60px;
}
.era-panel.active { display: block; }

/* ── Wars grid ─────────────────────────────────────────────────────────── */
.wars-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 16px;
}

/* ── War card ──────────────────────────────────────────────────────────── */
.war-card {
    background: var(--surface);
    border: 1px solid var(--border-2);
    border-radius: var(--radius);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.war-card-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 16px 12px;
    border-bottom: 1px solid var(--border);
}

.war-card-info { flex: 1; min-width: 0; }

.war-title {
    font-family: var(--font-head);
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--text);
    margin: 0 0 4px;
    line-height: 1.2;
}

.war-date-range {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: 0.78rem;
    color: var(--gold);
    letter-spacing: 0.06em;
    margin-bottom: 4px;
}

.war-region {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin: 2px 0 0;
    line-height: 1.4;
}

.war-reco-btn {
    display: inline-block;
    padding: 7px 13px;
    background: var(--blue-dim);
    color: #a0c4f8;
    font-size: 0.78rem;
    font-weight: 600;
    border-radius: var(--radius);
    text-decoration: none;
    white-space: nowrap;
    flex-shrink: 0;
    transition: background 0.15s, color 0.15s;
}

.war-reco-btn:hover { background: var(--blue); color: #fff; }

/* ── Battles list ──────────────────────────────────────────────────────── */
.battles-list {
    list-style: none;
    margin: 0;
    padding: 8px 0;
    flex: 1;
}

.battle-item { border-bottom: 1px solid var(--border); }
.battle-item:last-child { border-bottom: none; }

.battle-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 16px;
    text-decoration: none;
    color: var(--text);
    font-size: 0.9rem;
    line-height: 1.35;
    transition: background 0.12s, color 0.12s;
}

.battle-link:hover {
    background: var(--surface-2);
    color: #fff;
}

.battle-name {
    flex: 1;
    min-width: 0;
}

.battle-meta {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.battle-date {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    color: var(--text-muted);
    white-space: nowrap;
}

/* Category badge colors */
.battle-cat {
    font-size: 0.62rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 2px 6px;
    border-radius: 2px;
    font-weight: 600;
    white-space: nowrap;
}

.battle-cat-battle    { background: rgba(232, 64, 64, 0.2);  color: #f07070; }
.battle-cat-campaign  { background: rgba(232,120, 32, 0.2);  color: #e8a060; }
.battle-cat-siege     { background: rgba(144, 64,208, 0.2);  color: #b880e0; }
.battle-cat-offensive { background: rgba(212,192, 32, 0.2);  color: #d4c040; }
.battle-cat-operation { background: rgba( 29,111,232, 0.2);  color: #80b4f0; }

.battles-empty {
    padding: 14px 16px;
    font-size: 0.8rem;
    color: var(--text-muted);
    font-style: italic;
    margin: 0;
}

.battles-show-more {
    display: block;
    width: 100%;
    padding: 9px 16px;
    background: none;
    border: none;
    border-top: 1px solid var(--border);
    color: var(--blue);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-align: left;
    cursor: pointer;
    transition: background 0.12s, color 0.12s;
}
.battles-show-more:hover {
    background: var(--blue-subtle, var(--blue-dim));
    color: #fff;
}

/* ── Empty state ───────────────────────────────────────────────────────── */
.home-empty {
    text-align: center;
    padding: 80px 24px;
    color: var(--text-dim);
    font-size: 1rem;
}

/* ── Sub-era group ─────────────────────────────────────────────────────── */
.sub-era-group {
    margin-bottom: 24px;
}

.sub-era-heading {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
    padding: 8px 0 8px 14px;
    border-left: 3px solid var(--blue-dim);
}

.sub-era-name {
    font-family: var(--font-head);
    font-size: 1.1rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--text);
}

.sub-era-count {
    font-size: 0.7rem;
    color: var(--text-muted);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 1px 7px;
}

/* ── Responsive ────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .home-hero { padding: 36px 16px 32px; margin-left: -14px; margin-right: -14px; }
    .home-hero-title { font-size: 2.2rem; }
    .home-hero-sub { font-size: 1rem; }
}

.era-lazy-placeholder {
    padding: 60px 20px;
    text-align: center;
}
.era-loading-text {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: 0.82em;
    letter-spacing: 0.12em;
    color: var(--text-dim);
    text-transform: uppercase;
    padding: 12px 22px;
    border: 1px dashed var(--border-2);
}

@media (max-width: 600px) {
    .era-lazy-placeholder { padding: 40px 16px; }
    .era-tabs-bar { margin-left: -14px; margin-right: -14px; }
    .era-tabs-inner { padding: 0 14px; }
    .era-tab { padding: 12px 12px 9px; font-size: 0.75rem; }
    .era-panel { padding: 20px 0 48px; }
    .wars-grid { grid-template-columns: 1fr; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   Collection — Armory
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Armory header ───────────────────────────────────────────────────────── */
.armory-header {
    margin-bottom: 28px;
}

.armory-header-frame {
    position: relative;
    border: 1px solid var(--border-2);
    padding: 18px 24px 16px;
    margin-bottom: 14px;
    background: var(--surface);
}

/* Corner brackets */
.armory-corner {
    position: absolute;
    width: 10px;
    height: 10px;
    border-color: var(--gold);
    border-style: solid;
}
.armory-corner-tl { top: -1px; left: -1px;  border-width: 2px 0 0 2px; }
.armory-corner-tr { top: -1px; right: -1px; border-width: 2px 2px 0 0; }
.armory-corner-bl { bottom: -1px; left: -1px;  border-width: 0 0 2px 2px; }
.armory-corner-br { bottom: -1px; right: -1px; border-width: 0 2px 2px 0; }

.armory-header-inner { display: flex; align-items: baseline; gap: 20px; flex-wrap: wrap; }

.armory-title {
    font-family: var(--font-head);
    font-size: 2.2rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--gold-bright);
    margin: 0;
    border: none;
    padding: 0;
    line-height: 1;
}

.armory-classification {
    font-family: var(--font-mono);
    font-size: 0.68em;
    letter-spacing: 0.14em;
    color: var(--text-muted);
    text-transform: uppercase;
}

/* Stats bar */
.armory-stats {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 0 4px;
    flex-wrap: wrap;
}

.armory-stat {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.armory-stat-label {
    font-family: var(--font-mono);
    font-size: 0.6em;
    letter-spacing: 0.12em;
    color: var(--text-muted);
    text-transform: uppercase;
}

.armory-stat-value {
    font-family: var(--font-mono);
    font-size: 1.1em;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--gold-bright);
}

.armory-stat-active { color: #5ab87a; }
.armory-stat-warn   { color: #d4a840; }

.armory-stat-divider {
    font-family: var(--font-mono);
    font-size: 0.75em;
    color: var(--border-2);
    padding-top: 12px;
}

/* ── Tab bar ─────────────────────────────────────────────────────────────── */
.coll-tabs {
    display: flex;
    margin: 0 0 24px;
    border-bottom: 1px solid var(--border-2);
}

.coll-tab {
    padding: 9px 24px;
    font-family: var(--font-head);
    font-size: 0.92em;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-dim);
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s;
}

.coll-tab:hover { color: var(--text); border-bottom-color: var(--border-2); }
.coll-tab.active { color: var(--gold-bright); border-bottom-color: var(--gold); }

/* ── Sections ────────────────────────────────────────────────────────────── */
.coll-section { display: none; }
.coll-section.active { display: block; }

/* ── Card grid ───────────────────────────────────────────────────────────── */
.coll-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}

/* ── Collection card ─────────────────────────────────────────────────────── */
.coll-card {
    background: var(--surface);
    border: 1px solid var(--border-2);
    position: relative;
    overflow: hidden;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.coll-card:hover {
    border-color: var(--gold);
    box-shadow: 0 6px 28px rgba(0,0,0,0.6), 0 0 0 1px rgba(184,144,48,0.15);
}

/* ── Cover image area ────────────────────────────────────────────────────── */
.coll-cover-wrap {
    position: relative;
    width: 100%;
    height: 170px;
    overflow: hidden;
    background: var(--surface-2);
}

.coll-cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    opacity: 0.82;
    transition: opacity 0.25s, transform 0.35s;
    display: block;
}

.coll-card:hover .coll-cover {
    opacity: 0.95;
    transform: scale(1.04);
}

/* Bottom fade on cover */
.coll-cover-wrap::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 64px;
    background: linear-gradient(transparent, var(--surface));
    pointer-events: none;
    z-index: 1;
}

/* No-image placeholder */
.coll-cover-none {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-mono);
    font-size: 0.65em;
    letter-spacing: 0.18em;
    color: var(--text-muted);
    background: repeating-linear-gradient(
        -45deg,
        var(--surface-2),
        var(--surface-2) 8px,
        var(--surface-3) 8px,
        var(--surface-3) 16px
    );
}

/* ── Slot number badge ───────────────────────────────────────────────────── */
.coll-slot {
    position: absolute;
    top: 8px;
    left: 8px;
    font-family: var(--font-mono);
    font-size: 0.7em;
    font-weight: 700;
    color: rgba(212,168,64,0.8);
    background: rgba(6,9,15,0.85);
    padding: 2px 7px;
    letter-spacing: 0.1em;
    z-index: 2;
    border: 1px solid rgba(212,168,64,0.25);
}

/* ── Card body ───────────────────────────────────────────────────────────── */
.coll-card-body {
    padding: 10px 14px 12px;
}

.coll-card-title {
    font-family: var(--font-head);
    font-size: 1em;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #d8e8f8;
    margin: 0 0 3px;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.coll-card-sub {
    font-size: 0.8em;
    color: var(--text-dim);
    margin: 0 0 8px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.coll-card-meta {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    font-family: var(--font-mono);
    font-size: 0.7em;
    color: var(--text-muted);
    letter-spacing: 0.04em;
    margin: 0 0 10px;
    align-items: center;
}

.coll-year { color: var(--gold); letter-spacing: 0.06em; }

/* ── Card actions ────────────────────────────────────────────────────────── */
.coll-card-actions {
    padding-top: 8px;
    border-top: 1px solid var(--border);
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: space-between;
}

.coll-status-chip {
    font-family: var(--font-mono);
    font-size: 0.65em;
    letter-spacing: 0.1em;
    color: #3a7a52;
    text-transform: uppercase;
}

.coll-remove-btn {
    font-family: var(--font-mono);
    font-size: 0.65em;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #604040;
    text-decoration: none;
    transition: color 0.15s;
}

.coll-remove-btn:hover { color: #c06060; }

/* ── Empty state ─────────────────────────────────────────────────────────── */
.coll-empty {
    text-align: center;
    padding: 72px 24px;
    color: var(--text-muted);
}

.coll-empty-icon {
    font-family: var(--font-mono);
    font-size: 2rem;
    letter-spacing: 0.3em;
    margin-bottom: 20px;
    opacity: 0.3;
}

.coll-empty-title {
    font-family: var(--font-head);
    font-size: 1.1em;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin: 0 0 8px;
}

.coll-empty-sub {
    font-size: 0.85em;
    color: var(--text-muted);
    margin: 0 0 24px;
    letter-spacing: 0.02em;
}

/* ── Panel header (import/export) ────────────────────────────────────────── */
.coll-panel-header {
    margin-bottom: 20px;
}

.coll-panel-title {
    display: block;
    font-family: var(--font-head);
    font-size: 1.1em;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--gold-bright);
    margin-bottom: 4px;
}

.coll-panel-sub {
    font-family: var(--font-mono);
    font-size: 0.75em;
    letter-spacing: 0.06em;
    color: var(--text-muted);
}

/* ── Import panel ────────────────────────────────────────────────────────── */
.coll-import-panel { max-width: 720px; }
.coll-export-panel { max-width: 540px; }

.coll-import-note {
    color: var(--text-dim);
    font-size: 0.88em;
    margin: 0 0 18px;
}

.coll-import-form {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.import-dropzone {
    border: 2px dashed var(--border-2);
    background: var(--surface);
    padding: 40px 24px;
    text-align: center;
    margin-bottom: 16px;
    cursor: pointer;
    transition: border-color 0.2s, background-color 0.2s;
}

.import-dropzone:hover {
    border-color: var(--gold);
    background-color: rgba(184,144,48,0.04);
}

.import-dropzone.has-file {
    border-color: #3a7a52;
    background-color: rgba(26,90,46,0.06);
}

.import-dropzone-label {
    font-family: var(--font-head);
    font-size: 1.4em;
    font-weight: 700;
    letter-spacing: 0.2em;
    color: var(--text-dim);
    text-transform: uppercase;
    margin-bottom: 6px;
}

.import-dropzone-sub {
    font-family: var(--font-mono);
    font-size: 0.74em;
    color: var(--text-muted);
    margin-bottom: 18px;
    letter-spacing: 0.06em;
}

.import-filename {
    margin-top: 12px;
    font-family: var(--font-mono);
    font-size: 0.8em;
    color: #5ab87a;
    letter-spacing: 0.06em;
}

/* ── Export panel ────────────────────────────────────────────────────────── */
.coll-export-btns {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 8px;
}

.coll-export-btn {
    padding: 12px 28px;
    font-size: 1em;
    letter-spacing: 0.1em;
}

/* ── Import review table ─────────────────────────────────────────────────── */
.import-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 24px;
    font-size: 0.88em;
    border: 1px solid var(--border-2);
}

.import-table th {
    font-family: var(--font-head);
    font-size: 0.8em;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    background-color: var(--surface-2);
    color: var(--text-dim);
    padding: 10px 16px;
    border-bottom: 2px solid var(--border-2);
    text-align: left;
}

.import-row-num {
    font-family: var(--font-mono);
    font-size: 0.8em;
    color: var(--text-muted);
    letter-spacing: 0.06em;
    width: 40px;
}

.import-table td {
    padding: 9px 16px;
    border-bottom: 1px solid var(--border);
    color: var(--text-dim);
}

.import-table tr:last-child td { border-bottom: none; }

.import-table tr:hover td {
    background-color: rgba(184,144,48,0.04);
    color: var(--text);
}

/* ── Import type selector ────────────────────────────────────────────────── */
.import-type-selector {
    display: flex;
    gap: 4px;
    margin-bottom: 16px;
}

.import-type-opt {
    font-family: var(--font-mono);
    font-size: 0.78em;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    background: var(--surface);
    border: 1px solid var(--border);
    padding: 8px 16px;
    cursor: pointer;
    transition: all 0.15s;
    display: flex;
    align-items: center;
    gap: 6px;
}

.import-type-opt:hover {
    border-color: var(--gold);
    color: var(--text-dim);
}

.import-type-opt input[type="radio"] {
    accent-color: var(--gold);
}

.import-type-opt:has(input:checked) {
    border-color: var(--gold);
    color: var(--gold);
    background: rgba(184,144,48,0.06);
}

/* ── Format guide ────────────────────────────────────────────────────────── */
.import-formats-toggle {
    margin-bottom: 12px;
}

.import-formats-toggle .btn-link {
    background: none;
    border: none;
    color: var(--gold);
    font-family: var(--font-mono);
    font-size: 0.74em;
    letter-spacing: 0.1em;
    cursor: pointer;
    padding: 0;
    text-decoration: none;
}

.import-formats-toggle .btn-link:hover {
    color: var(--gold-bright);
}

.import-formats {
    border: 1px solid var(--border);
    background: var(--surface);
    padding: 16px 20px;
    margin-bottom: 16px;
}

.import-format-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

@media (max-width: 700px) {
    .import-format-cols { grid-template-columns: 1fr; }
}

.import-format-block h4 {
    font-family: var(--font-head);
    font-size: 0.82em;
    letter-spacing: 0.15em;
    color: var(--gold);
    margin: 0 0 10px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--border);
}

.import-format-item {
    margin-bottom: 10px;
}

.import-format-item strong {
    font-family: var(--font-mono);
    font-size: 0.82em;
    color: var(--text-dim);
    letter-spacing: 0.06em;
}

.import-format-item p {
    font-size: 0.78em;
    color: var(--text-muted);
    margin: 2px 0 0;
    line-height: 1.5;
}

.import-format-item code {
    background: rgba(184,144,48,0.08);
    color: var(--gold);
    padding: 1px 5px;
    font-size: 0.92em;
    font-family: var(--font-mono);
}

.import-format-note {
    font-family: var(--font-mono);
    font-size: 0.72em;
    color: var(--text-muted);
    margin: 12px 0 0;
    padding-top: 10px;
    border-top: 1px solid var(--border);
}

/* ── Dropzone drag state ─────────────────────────────────────────────────── */
.import-dropzone.drag-over {
    border-color: var(--gold-bright);
    background-color: rgba(184,144,48,0.08);
}

/* ── Friendly import instructions ────────────────────────────────────────── */
.import-intro {
    font-size: 0.95em;
    line-height: 1.65;
    color: var(--text);
    margin: 0 0 20px;
}

.import-intro strong { color: var(--gold); font-weight: 600; }

.import-howto {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 20px;
}

.import-howto-block {
    border: 1px solid var(--border);
    background: var(--surface);
    border-radius: var(--radius);
}

.import-howto-block summary {
    cursor: pointer;
    padding: 12px 16px;
    font-family: var(--font-mono);
    font-size: 0.85em;
    letter-spacing: 0.04em;
    color: var(--gold);
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    user-select: none;
}

.import-howto-block summary::-webkit-details-marker { display: none; }

.import-howto-block summary:hover { color: var(--gold-bright); }

.import-howto-block[open] summary {
    border-bottom: 1px solid var(--border);
}

.import-howto-block[open] .howto-chev { transform: rotate(180deg); }

.howto-chev {
    transition: transform 0.15s;
    color: var(--text-dim);
    font-size: 0.9em;
}

.import-howto-block ol {
    margin: 0;
    padding: 12px 16px 14px 36px;
    color: var(--text);
    font-size: 0.92em;
    line-height: 1.75;
}

.import-howto-block ol li { margin-bottom: 4px; }
.import-howto-block ol li:last-child { margin-bottom: 0; }
.import-howto-block ol a { color: var(--blue); }
.import-howto-block ol strong { color: var(--gold); font-weight: 600; }

.import-type-prompt {
    display: block;
    width: 100%;
    font-family: var(--font-mono);
    font-size: 0.78em;
    letter-spacing: 0.08em;
    color: var(--text-dim);
    text-transform: uppercase;
    margin-bottom: 4px;
}

.import-type-selector { flex-wrap: wrap; }

.import-disclaimer {
    font-size: 0.82em;
    color: var(--text-dim);
    margin: 12px 0 0;
    font-style: italic;
}

/* ── Import review: legend ───────────────────────────────────────────────── */
.import-legend {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    margin-bottom: 16px;
    font-family: var(--font-mono);
    font-size: 0.72em;
    letter-spacing: 0.04em;
    color: var(--text-muted);
}

.import-legend-item {
    display: flex;
    align-items: center;
    gap: 6px;
}

.import-dot {
    width: 8px;
    height: 8px;
    display: inline-block;
}

.import-dot-matched { background: var(--gold-bright); }
.import-dot-new     { background: var(--blue); }
.import-dot-owned   { background: var(--text-muted); }

/* ── Import review: status badges ────────────────────────────────────────── */
.import-status {
    font-family: var(--font-mono);
    font-size: 0.72em;
    letter-spacing: 0.1em;
    padding: 3px 8px;
    font-weight: 600;
}

.import-status-matched {
    color: var(--gold-bright);
    background: rgba(184,144,48,0.1);
    border: 1px solid rgba(184,144,48,0.25);
}

.import-status-new {
    color: var(--blue);
    background: rgba(59,130,246,0.08);
    border: 1px solid rgba(59,130,246,0.25);
}

.import-status-owned {
    color: var(--text-muted);
    background: rgba(128,128,128,0.08);
    border: 1px solid rgba(128,128,128,0.2);
}

/* ── Import review: row tinting ──────────────────────────────────────────── */
.import-row-owned td {
    opacity: 0.5;
}

.import-match-detail {
    font-family: var(--font-mono);
    font-size: 0.78em;
    color: var(--text-muted);
}

/* ── Import review: summary bar ──────────────────────────────────────────── */
.import-summary-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid var(--border-2);
    background: var(--surface);
    margin-top: 8px;
}

.import-summary-text {
    font-family: var(--font-mono);
    font-size: 0.78em;
    color: var(--text-dim);
    letter-spacing: 0.04em;
}

.import-summary-actions {
    display: flex;
    gap: 10px;
}

/* ── Add-to-collection button on rec cards ───────────────────────────────── */
.coll-add-btn {
    background-color: rgba(184,144,48,0.08) !important;
    color: var(--gold) !important;
    border: 1px solid rgba(184,144,48,0.3) !important;
}

.coll-add-btn:hover {
    background-color: rgba(184,144,48,0.18) !important;
    color: var(--gold-bright) !important;
    border-color: var(--gold) !important;
}

/* ── Admin Dashboard ─────────────────────────────────────────────────────── */

.dash-section {
    margin-bottom: 36px;
}

.dash-section-head {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 16px;
}

.dash-section-label {
    font-family: var(--font-mono);
    font-size: 0.72em;
    letter-spacing: 0.25em;
    color: var(--text-dim);
    text-transform: uppercase;
    white-space: nowrap;
}

.dash-section-line {
    flex: 1;
    height: 1px;
    background: var(--border-2);
}

/* Catalog Operations grid */
.dash-ops-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 14px;
}

.dash-op-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-top: 2px solid var(--border-2);
    padding: 18px 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.dash-op-card--warn {
    border-top-color: var(--gold);
}

.dash-op-title {
    font-family: var(--font-head);
    font-size: 1em;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text);
}

.dash-op-desc {
    font-size: 0.83em;
    color: var(--text-dim);
    line-height: 1.55;
    flex: 1;
}

/* Chart */
.dash-chart-wrap {
    background: var(--surface);
    border: 1px solid var(--border);
    padding: 20px;
    height: 260px;
    position: relative;
}

/* Two-column layout */
.dash-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    margin-bottom: 0;
}

@media (max-width: 700px) {
    .dash-columns { grid-template-columns: 1fr; }
}

.dash-col {}

/* Task form */
.dash-task-form {
    display: flex;
    gap: 8px;
    margin-bottom: 12px;
}

.dash-input {
    flex: 1;
    background: var(--surface);
    border: 1px solid var(--border-2);
    color: var(--text);
    padding: 8px 12px;
    font-family: var(--font-mono);
    font-size: 0.82em;
    border-radius: var(--radius);
    outline: none;
    transition: border-color 0.15s;
}

.dash-input:focus { border-color: var(--blue-dim); }
.dash-input::placeholder { color: var(--text-muted); }

/* Sync form */
.dash-sync-form {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.dash-sync-form .dash-input { flex: 1; min-width: 160px; }

/* Task list */
.dash-task-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.dash-task-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 14px;
    border-bottom: 1px solid var(--border);
    font-size: 0.88em;
    color: var(--text-dim);
    gap: 10px;
}

.dash-task-item:last-child { border-bottom: none; }

.dash-task-empty {
    padding: 14px;
    font-family: var(--font-mono);
    font-size: 0.78em;
    color: var(--text-muted);
    letter-spacing: 0.1em;
}

.dash-remove-btn {
    background: none;
    border: 1px solid var(--danger);
    color: #c06060;
    font-size: 0.75em;
    padding: 3px 8px;
    cursor: pointer;
    border-radius: var(--radius);
    transition: background 0.15s, color 0.15s;
    flex-shrink: 0;
}

.dash-remove-btn:hover {
    background: rgba(122,24,24,0.3);
    color: #e08080;
}

/* Event log */
.dash-event-log {
    list-style: none;
    margin: 0;
    padding: 0;
}

.dash-event-item {
    display: grid;
    grid-template-columns: 80px auto 1fr;
    gap: 10px;
    padding: 9px 14px;
    border-bottom: 1px solid var(--border);
    font-size: 0.8em;
    align-items: baseline;
}

.dash-event-item:last-child { border-bottom: none; }

.dash-event-time {
    font-family: var(--font-mono);
    color: var(--text-muted);
    font-size: 0.9em;
    white-space: nowrap;
}

.dash-event-type {
    font-family: var(--font-head);
    font-weight: 600;
    letter-spacing: 0.05em;
    color: var(--blue);
    text-transform: uppercase;
    white-space: nowrap;
}

.dash-event-data {
    color: var(--text-dim);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .coll-grid { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
    .coll-tab { padding: 8px 14px; font-size: 0.82em; }
    .coll-export-btn { padding: 10px 20px; }
    .armory-title { font-size: 1.7rem; }
    .dash-ops-grid { grid-template-columns: 1fr; }
    .dash-event-item { grid-template-columns: 70px 1fr; }
    .dash-event-data { display: none; }
}


/* ═══════════════════════════════════════════════════════════════════════════
   Detail Pages — Book & Board Game
   ═══════════════════════════════════════════════════════════════════════════ */

.detail-layout {
    display: flex;
    gap: 32px;
    align-items: flex-start;
}

.detail-cover-col {
    flex-shrink: 0;
}

.detail-cover {
    width: 180px;
    height: auto;
    border: 1px solid var(--border-2);
    display: block;
}

.detail-main { flex: 1; min-width: 0; }

.detail-title {
    font-family: var(--font-head);
    font-size: 1.8rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #e8f0fa;
    margin: 0 0 16px;
    border: none;
    padding: 0;
    line-height: 1.2;
    text-transform: none;
}

.detail-meta-row {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 14px;
}

.detail-meta-item {
    font-size: 0.9em;
    color: var(--text-dim);
}

.detail-meta-label {
    font-family: var(--font-mono);
    font-size: 0.78em;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-right: 5px;
}

/* Stat boxes row (board games) */
.detail-stats-row {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}

.detail-stat {
    background: var(--surface-2);
    border: 1px solid var(--border-2);
    padding: 10px 16px;
    text-align: center;
    min-width: 72px;
}

.detail-stat-val {
    font-family: var(--font-head);
    font-size: 1.3em;
    font-weight: 700;
    color: var(--gold-bright);
    line-height: 1;
    margin-bottom: 4px;
}

.detail-stat-label {
    font-family: var(--font-mono);
    font-size: 0.68em;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.detail-event-link {
    font-size: 0.88em;
    color: var(--text-dim);
    margin-bottom: 14px;
    padding: 8px 12px;
    border-left: 2px solid var(--blue-dim);
    background: var(--surface);
}

.detail-rating {
    margin-bottom: 14px;
    font-size: 0.9em;
    color: var(--text-dim);
}

.detail-description {
    background: var(--surface);
    border: 1px solid var(--border);
    border-left: 2px solid var(--border-2);
    padding: 16px 18px;
    margin-bottom: 16px;
}

.detail-description h4 {
    margin: 0 0 10px;
    font-size: 0.8em;
    letter-spacing: 0.12em;
    color: var(--text-muted);
}

.detail-description p {
    color: var(--text-dim);
    font-size: 0.93em;
    line-height: 1.7;
    margin: 0;
}

.detail-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 16px;
}

.detail-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
    margin-top: 6px;
}

/* ── Related-recommendations panel on detail pages ───────────────────────── */
.related-panel {
    margin: 18px 0 18px;
    padding: 14px 18px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-left: 3px solid var(--gold);
    border-radius: var(--radius);
}

.related-panel-label {
    font-family: var(--font-mono);
    font-size: 0.7em;
    letter-spacing: 0.18em;
    color: var(--gold);
    margin-bottom: 10px;
}

.related-panel-link {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 7px 0;
    color: var(--text);
    font-size: 0.95em;
    line-height: 1.45;
    text-decoration: none;
    border-bottom: 1px dashed var(--border);
}

.related-panel-link:last-child { border-bottom: none; }

.related-panel-link:hover {
    color: var(--gold-bright);
}

.related-panel-link strong {
    color: var(--gold);
    font-weight: 600;
}

.related-panel-link:hover strong {
    color: var(--gold-bright);
}

.related-panel-arrow {
    color: var(--blue);
    font-size: 1.05em;
    flex-shrink: 0;
}

@media (max-width: 640px) {
    .detail-layout { flex-direction: column; }
    .detail-cover { width: 130px; }
    .detail-title { font-size: 1.4rem; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   ARMORY HEADER EXTRAS (label / sub variants)
   ═══════════════════════════════════════════════════════════════════════════ */

.armory-label {
    display: block;
    font-family: var(--font-mono);
    font-size: .68rem;
    letter-spacing: .18em;
    color: var(--text-muted);
    text-transform: uppercase;
    margin-bottom: .2rem;
}
.armory-sub {
    font-family: var(--font-mono);
    font-size: .72rem;
    letter-spacing: .1em;
    color: var(--text-dim);
    text-transform: uppercase;
}
/* Simple header variant (no frame/corners — just padded block) */
.armory-header:not(:has(.armory-header-frame)) {
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--border-2);
    margin-bottom: 1.5rem;
    background: var(--surface);
}

/* ═══════════════════════════════════════════════════════════════════════════
   Q&A — INTEL BOARD
   ═══════════════════════════════════════════════════════════════════════════ */

/* Toolbar (filter + ask button row) */
.qa-toolbar {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--border-2);
    margin-bottom: 1.5rem;
}
.qa-filter-label {
    font-family: var(--font-head);
    font-size: .75rem;
    letter-spacing: .1em;
    color: var(--text-dim);
}
.qa-filter-select {
    background: var(--surface-2);
    border: 1px solid var(--border-2);
    color: var(--text);
    font-family: var(--font-mono);
    font-size: .85rem;
    padding: .35rem .6rem;
    border-radius: var(--radius);
    cursor: pointer;
}
.qa-filter-form { display: flex; align-items: center; gap: .6rem; }
.qa-ask-btn { margin-left: auto; }

/* Card list */
.qa-list {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    padding: 0 1.5rem 2rem;
    max-width: 900px;
}
.qa-card {
    display: flex;
    align-items: stretch;
    background: var(--surface);
    border: 1px solid var(--border-2);
    border-left: 3px solid var(--blue-dim);
    border-radius: var(--radius);
    transition: border-color .15s, box-shadow .15s;
}
.qa-card:hover {
    border-left-color: var(--blue);
    box-shadow: 0 0 12px var(--blue-glow);
}
.qa-card--mod { border-left-color: var(--gold); }
.qa-card--mod:hover { border-left-color: var(--gold-bright); box-shadow: none; }
.qa-card-body { flex: 1; padding: .9rem 1rem; }
.qa-card-title {
    font-family: var(--font-head);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--blue-hover);
    letter-spacing: .02em;
    display: block;
    margin-bottom: .3rem;
}
.qa-card-title:hover { color: #fff; }
.qa-card-meta {
    font-family: var(--font-mono);
    font-size: .78rem;
    color: var(--text-dim);
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
    align-items: center;
    margin-bottom: .4rem;
}
.qa-meta-sep { color: var(--border-2); }
.qa-game-badge {
    display: inline-block;
    background: rgba(180,144,48,.12);
    border: 1px solid rgba(180,144,48,.35);
    color: var(--gold-bright);
    font-family: var(--font-mono);
    font-size: .72rem;
    padding: .1rem .45rem;
    border-radius: 2px;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.qa-game-badge--detail {
    font-size: .82rem;
    padding: .2rem .6rem;
    margin-bottom: .75rem;
    display: inline-block;
}
.qa-card-tags { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .3rem; }
.qa-card-link {
    display: flex;
    align-items: center;
    padding: .9rem .9rem;
    font-family: var(--font-mono);
    font-size: .75rem;
    color: var(--text-dim);
    border-left: 1px solid var(--border);
    white-space: nowrap;
    transition: color .15s;
}
.qa-card:hover .qa-card-link { color: var(--blue-hover); }
.qa-mod-preview {
    font-size: .85rem;
    color: var(--text-dim);
    margin: .4rem 0 0;
    font-style: italic;
}
.qa-mod-actions {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    padding: .9rem;
    justify-content: center;
    border-left: 1px solid var(--border);
}

/* Empty state */
.qa-empty {
    text-align: center;
    padding: 3rem 1.5rem;
    font-family: var(--font-head);
    font-size: 1rem;
    letter-spacing: .08em;
    color: var(--text-dim);
}
.qa-empty p { margin-bottom: 1rem; }
.qa-empty-inline {
    font-family: var(--font-mono);
    font-size: .82rem;
    color: var(--text-dim);
    margin: .5rem 0;
}

/* Detail page */
.qa-detail-wrap {
    max-width: 820px;
    padding: 0 1.5rem 2.5rem;
}
.qa-detail-card {
    background: var(--surface);
    border: 1px solid var(--border-2);
    border-radius: var(--radius);
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.25rem;
}
.qa-body-text {
    font-size: .95rem;
    line-height: 1.75;
    color: var(--text);
}
.qa-divider {
    text-align: center;
    margin: 1.5rem 0;
    position: relative;
}
.qa-divider::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    border-top: 1px solid var(--border-2);
}
.qa-divider-label {
    position: relative;
    background: var(--bg);
    padding: 0 .75rem;
    font-family: var(--font-mono);
    font-size: .75rem;
    color: var(--text-dim);
    letter-spacing: .1em;
}
.qa-answer-list { display: flex; flex-direction: column; gap: .75rem; margin-bottom: 1.5rem; }
.qa-answer-item {
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-left: 3px solid var(--border-2);
    border-radius: var(--radius);
    padding: .85rem 1rem;
}
.qa-answer-meta {
    font-family: var(--font-mono);
    font-size: .77rem;
    color: var(--text-dim);
    display: flex;
    gap: .35rem;
    margin-bottom: .4rem;
}
.qa-answer-author { color: var(--gold-bright); font-weight: 600; }
.qa-answer-text { font-size: .92rem; line-height: 1.65; }
.qa-section-head {
    font-family: var(--font-head);
    font-size: .8rem;
    letter-spacing: .12em;
    color: var(--text-dim);
    text-transform: uppercase;
    margin: 0 0 .75rem;
}
.qa-reply-form { margin-bottom: 1rem; }
.qa-login-prompt {
    font-family: var(--font-mono);
    font-size: .85rem;
    color: var(--text-dim);
    margin: .75rem 0;
}

/* Form shared styles */
.qa-form-wrap {
    max-width: 700px;
    padding: 0 1.5rem 2.5rem;
}
.qa-form { display: flex; flex-direction: column; gap: .1rem; }
.qa-field { display: flex; flex-direction: column; gap: .35rem; margin-bottom: 1.1rem; }
.qa-field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 1.1rem;
}
.qa-label {
    font-family: var(--font-head);
    font-size: .75rem;
    letter-spacing: .1em;
    color: var(--text-dim);
    text-transform: uppercase;
}
.qa-optional { font-size: .7rem; color: var(--text-muted); text-transform: none; letter-spacing: 0; }
.qa-input, .qa-select, .qa-textarea {
    background: var(--surface-2);
    border: 1px solid var(--border-2);
    color: var(--text);
    font-family: inherit;
    font-size: .9rem;
    padding: .5rem .75rem;
    border-radius: var(--radius);
    outline: none;
    transition: border-color .15s;
    width: 100%;
}
.qa-input:focus, .qa-select:focus, .qa-textarea:focus {
    border-color: var(--blue);
    box-shadow: 0 0 0 2px var(--blue-glow);
}
.qa-textarea { resize: vertical; min-height: 110px; font-family: inherit; line-height: 1.65; }
.qa-field-hint {
    font-size: .8rem;
    color: var(--text-dim);
    line-height: 1.55;
    margin-top: .1rem;
}
.qa-form-actions { display: flex; gap: .75rem; flex-wrap: wrap; margin-top: .5rem; }

/* Mod wrap */
.qa-mod-wrap {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    padding: 0 1.5rem 2rem;
    max-width: 900px;
}

/* ═══════════════════════════════════════════════════════════════════════════
   PLAYTESTING BOARD — .pt-
   ═══════════════════════════════════════════════════════════════════════════ */

.pt-board-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--border-2);
    margin-bottom: 1.5rem;
}
.pt-tabs { display: flex; gap: .4rem; }
.pt-tab {
    font-family: var(--font-mono);
    font-size: .78rem;
    letter-spacing: .08em;
    padding: .3rem .7rem;
    border: 1px solid var(--border-2);
    border-radius: var(--radius);
    color: var(--text-dim);
    transition: all .15s;
}
.pt-tab:hover { border-color: var(--blue); color: var(--blue-hover); }
.pt-tab.active {
    background: var(--blue-dim);
    border-color: var(--blue);
    color: #fff;
}
.pt-dev-hint {
    font-family: var(--font-mono);
    font-size: .78rem;
    color: var(--text-dim);
    margin-left: auto;
}
.pt-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1rem;
    padding: 0 1.5rem 2rem;
}
.pt-post-card {
    display: flex;
    flex-direction: column;
    background: var(--surface);
    border: 1px solid var(--border-2);
    border-top: 3px solid var(--border-2);
    border-radius: var(--radius);
    overflow: hidden;
    transition: box-shadow .15s, border-top-color .15s;
}
.pt-post-card.open { border-top-color: var(--gold); }
.pt-post-card.closed { border-top-color: var(--border-2); opacity: .75; }
.pt-post-card:hover { box-shadow: 0 0 14px var(--blue-glow); border-top-color: var(--blue); }
.pt-card-thumb { height: 140px; overflow: hidden; }
.pt-card-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pt-card-body { flex: 1; padding: .9rem 1rem; display: flex; flex-direction: column; gap: .35rem; }
.pt-card-top { display: flex; gap: .4rem; flex-wrap: wrap; align-items: center; }
.pt-status-badge {
    font-family: var(--font-mono);
    font-size: .7rem;
    letter-spacing: .1em;
    padding: .1rem .4rem;
    border-radius: 2px;
    text-transform: uppercase;
}
.pt-status-badge.open {
    background: rgba(180,144,48,.15);
    border: 1px solid var(--gold);
    color: var(--gold-bright);
}
.pt-status-badge.closed {
    background: var(--surface-2);
    border: 1px solid var(--border);
    color: var(--text-muted);
}
.pt-card-title {
    font-family: var(--font-head);
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--text);
    margin: 0;
    line-height: 1.3;
}
.pt-card-dev {
    font-family: var(--font-mono);
    font-size: .75rem;
    color: var(--text-dim);
    margin: 0;
}
.pt-card-desc {
    font-size: .85rem;
    color: var(--text-dim);
    margin: 0;
    flex: 1;
}
.pt-spot-counter {
    font-family: var(--font-mono);
    font-size: .78rem;
    color: var(--gold);
    letter-spacing: .05em;
}
.pt-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: .4rem;
}
.pt-card-date {
    font-family: var(--font-mono);
    font-size: .72rem;
    color: var(--text-muted);
}

/* Detail page */
.pt-detail-wrap {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 1.5rem;
    padding: 0 1.5rem 2.5rem;
    align-items: start;
}
.pt-image-grid {
    display: flex;
    gap: .75rem;
    margin-bottom: 1rem;
}
.pt-image-grid img {
    flex: 1;
    max-height: 280px;
    object-fit: cover;
    border-radius: var(--radius);
    border: 1px solid var(--border-2);
}
.pt-owner-actions { display: flex; gap: .75rem; flex-wrap: wrap; margin-top: 1rem; }
.pt-signup-list, .pt-feedback-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .4rem; }
.pt-signup-item {
    font-family: var(--font-mono);
    font-size: .82rem;
    color: var(--text);
    padding: .35rem 0;
    border-bottom: 1px solid var(--border);
}
.pt-signup-msg { color: var(--text-dim); font-style: italic; }
.pt-new-form .qa-field-row { grid-template-columns: 2fr 1fr; }

@media (max-width: 760px) {
    .pt-detail-wrap { grid-template-columns: 1fr; }
    .pt-new-form .qa-field-row { grid-template-columns: 1fr; }
    .qa-field-row { grid-template-columns: 1fr; }
}

/* ── Battle of the Day ────────────────────────────────────────────────────── */
.botd-strip {
    margin: 16px -20px 0;
    padding: 20px 20px 24px;
    background: linear-gradient(135deg, #0d1a2b 0%, #0a1520 100%);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}
.botd-label {
    font: 700 11px/1 var(--font-mono);
    letter-spacing: .14em;
    color: var(--gold);
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.botd-label::before {
    content: '';
    display: inline-block;
    width: 18px;
    height: 2px;
    background: var(--gold);
}
.botd-label::after {
    content: '';
    display: inline-block;
    width: 18px;
    height: 2px;
    background: var(--gold);
}
.botd-card  { max-width: 640px; }
.botd-meta  { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 6px; }
.botd-era   { font: 600 11px var(--font-mono); color: var(--text-dim); text-transform: uppercase; }
.botd-date  { font: 400 12px var(--font-mono); color: var(--text-dim); }
.botd-name  { font: 700 22px/1.2 var(--font-head); color: var(--gold-bright); margin: 0 0 4px; }
.botd-war   { font: 400 13px var(--font-mono); color: var(--text-dim); margin: 0 0 12px; }
.botd-counts {
    display: flex;
    gap: 18px;
    margin-bottom: 16px;
    font: 400 13px var(--font-mono);
    color: var(--text-dim);
}
.botd-count-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.botd-count-icon {
    font-size: 0.7em;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--gold);
    background: rgba(184,144,48,0.1);
    border: 1px solid rgba(184,144,48,0.2);
    padding: 2px 5px;
}
.botd-btn {
    display: inline-block;
    padding: 8px 18px;
    background: transparent;
    border: 1px solid var(--gold);
    color: var(--gold);
    font: 600 12px var(--font-mono);
    letter-spacing: .06em;
    text-decoration: none;
    text-transform: uppercase;
    transition: background .15s, color .15s;
}
.botd-btn:hover { background: var(--gold); color: #06090f; }


/* ═══════════════════════════════════════════════════════════════════════════
   Fates — Random Battle Selector
   ═══════════════════════════════════════════════════════════════════════════ */

.fates-page {
    max-width: 640px;
    margin: 0 auto;
    padding: 20px 0 60px;
}

/* ── Header ────────────────────────────────────────────────────────────── */
.fates-header {
    position: relative;
    border: 1px solid var(--border-2);
    padding: 22px 24px 18px;
    margin-bottom: 28px;
    background: var(--surface);
    text-align: center;
}

.fates-corner {
    position: absolute;
    width: 12px;
    height: 12px;
    border-color: var(--gold);
    border-style: solid;
}
.fates-corner-tl { top: -1px; left: -1px;  border-width: 2px 0 0 2px; }
.fates-corner-tr { top: -1px; right: -1px; border-width: 2px 2px 0 0; }
.fates-corner-bl { bottom: -1px; left: -1px;  border-width: 0 0 2px 2px; }
.fates-corner-br { bottom: -1px; right: -1px; border-width: 0 2px 2px 0; }

.fates-title {
    font-family: var(--font-head);
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--gold-bright);
    margin: 0 0 4px;
    border: none;
    padding: 0;
    line-height: 1.1;
}

.fates-classification {
    font-family: var(--font-mono);
    font-size: 0.68em;
    letter-spacing: 0.12em;
    color: var(--text-muted);
    text-transform: uppercase;
}

/* ── Targeting display ─────────────────────────────────────────────────── */
.fates-display {
    position: relative;
    border: 1px solid var(--border-2);
    background: #040810;
    padding: 48px 24px;
    text-align: center;
    overflow: hidden;
    margin-bottom: 20px;
}

/* Scanline overlay */
.fates-scanlines {
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        0deg,
        transparent,
        transparent 2px,
        rgba(29,111,232,0.03) 2px,
        rgba(29,111,232,0.03) 4px
    );
    pointer-events: none;
    z-index: 1;
}

/* Reticle */
.fates-reticle {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 200px;
    height: 200px;
    pointer-events: none;
    opacity: 0.12;
    z-index: 0;
}

.fates-reticle-ring {
    position: absolute;
    inset: 20px;
    border: 1px solid var(--blue);
    border-radius: 50%;
}

.fates-reticle-cross-h,
.fates-reticle-cross-v {
    position: absolute;
    background: var(--blue);
}

.fates-reticle-cross-h {
    top: 50%;
    left: 0;
    right: 0;
    height: 1px;
    transform: translateY(-0.5px);
}

.fates-reticle-cross-v {
    left: 50%;
    top: 0;
    bottom: 0;
    width: 1px;
    transform: translateX(-0.5px);
}

/* Status line */
.fates-status {
    font-family: var(--font-mono);
    font-size: 0.72em;
    letter-spacing: 0.14em;
    color: var(--text-muted);
    text-transform: uppercase;
    margin-bottom: 16px;
    position: relative;
    z-index: 2;
}

/* Battle name cycling display */
.fates-name-display {
    font-family: var(--font-head);
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--text-dim);
    min-height: 2.2em;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 2;
    transition: color 0.15s;
}

.fates-sub-display {
    font-family: var(--font-mono);
    font-size: 0.78em;
    color: var(--text-muted);
    min-height: 1.2em;
    position: relative;
    z-index: 2;
}

/* Scanning state */
.fates-display.scanning {
    border-color: var(--blue-dim);
    box-shadow: inset 0 0 60px rgba(29,111,232,0.06);
}

.fates-display.scanning .fates-reticle {
    opacity: 0.3;
    animation: reticleSpin 2s linear infinite;
}

.fates-display.scanning .fates-name-display {
    color: var(--blue);
}

.fates-display.scanning .fates-status {
    color: var(--blue);
    animation: statusBlink 0.6s ease-in-out infinite;
}

@keyframes reticleSpin {
    from { transform: translate(-50%, -50%) rotate(0deg); }
    to   { transform: translate(-50%, -50%) rotate(360deg); }
}

@keyframes statusBlink {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.4; }
}

/* Locked state */
.fates-display.locked {
    border-color: var(--gold);
    box-shadow: inset 0 0 80px rgba(184,144,48,0.08), 0 0 20px rgba(184,144,48,0.06);
}

.fates-display.locked .fates-name-display {
    color: var(--gold-bright);
    text-shadow: 0 0 20px rgba(184,144,48,0.4);
}

.fates-display.locked .fates-status {
    color: var(--gold);
    animation: none;
}

.fates-display.locked .fates-reticle {
    opacity: 0.25;
    animation: none;
}

.fates-display.locked .fates-reticle-ring {
    border-color: var(--gold);
}

.fates-display.locked .fates-reticle-cross-h,
.fates-display.locked .fates-reticle-cross-v {
    background: var(--gold);
}

/* ── Engage button ─────────────────────────────────────────────────────── */
.fates-controls {
    text-align: center;
    margin-bottom: 28px;
}

.fates-engage-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 16px 52px;
    background: transparent;
    border: 2px solid var(--gold);
    color: var(--gold);
    font-family: var(--font-head);
    font-size: 1.2em;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.2s;
    position: relative;
    overflow: hidden;
}

.fates-engage-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--gold);
    opacity: 0;
    transition: opacity 0.2s;
}

.fates-engage-btn:hover::before {
    opacity: 0.1;
}

.fates-engage-btn:hover {
    box-shadow: 0 0 24px rgba(184,144,48,0.2);
    color: var(--gold-bright);
}

.fates-engage-btn:active {
    transform: scale(0.97);
}

.fates-engage-btn.disabled {
    opacity: 0.4;
    cursor: not-allowed;
    box-shadow: none;
}

.fates-engage-text {
    position: relative;
    z-index: 1;
}

/* ── Result card ───────────────────────────────────────────────────────── */
.fates-result {
    border: 1px solid var(--gold);
    background: var(--surface);
    animation: resultReveal 0.5s ease-out;
}

@keyframes resultReveal {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: translateY(0); }
}

.fates-result-header {
    padding: 10px 20px;
    background: rgba(184,144,48,0.08);
    border-bottom: 1px solid rgba(184,144,48,0.2);
}

.fates-result-label {
    font-family: var(--font-mono);
    font-size: 0.72em;
    letter-spacing: 0.14em;
    color: var(--gold);
    text-transform: uppercase;
}

.fates-result-body {
    padding: 20px 24px 24px;
}

.fates-result-meta {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 8px;
}

.fates-result-name {
    font-family: var(--font-head);
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--gold-bright);
    margin: 0 0 4px;
    border: none;
    padding: 0;
}

.fates-result-war {
    font-family: var(--font-mono);
    font-size: 0.82em;
    color: var(--text-dim);
    margin: 0 0 14px;
}

.fates-result-counts {
    display: flex;
    gap: 18px;
    margin-bottom: 18px;
    font: 400 13px var(--font-mono);
    color: var(--text-dim);
}

.fates-result-btn {
    letter-spacing: 0.1em;
}

/* ── Nav accent for Fates link ─────────────────────────────────────────── */
.nav-item-fates {
    color: var(--gold) !important;
}
.nav-item-fates:hover {
    color: var(--gold-bright) !important;
    border-bottom-color: var(--gold) !important;
}

/* ── Fates responsive ──────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .fates-title { font-size: 1.4rem; letter-spacing: 0.1em; }
    .fates-name-display { font-size: 1.2rem; }
    .fates-engage-btn { padding: 14px 36px; font-size: 1em; }
}


/* ── After-Action Reports ─────────────────────────────────────────────────── */

/* Board */
.aar-board-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 0 18px;
    gap: 12px;
    flex-wrap: wrap;
}
.aar-filter-form  { display: flex; align-items: center; gap: 10px; }
.aar-filter-select {
    background: var(--surface);
    border: 1px solid var(--border-2);
    color: var(--text);
    font: 400 12px var(--font-mono);
    padding: 6px 10px;
    border-radius: var(--radius);
}
.aar-filter-clear {
    font: 400 12px var(--font-mono);
    color: var(--text-dim);
    text-decoration: none;
}
.aar-filter-clear:hover { color: var(--text); }

.aar-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 20px;
    padding-bottom: 40px;
}
.aar-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-left: 3px solid var(--gold);
    padding: 18px;
    transition: border-left-color .15s, transform .15s;
}
.aar-card:hover {
    border-left-color: var(--blue);
    transform: translateY(-2px);
}
.aar-card-top   { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.aar-card-title { font: 700 16px var(--font-head); color: var(--gold-bright); margin: 0 0 4px; }
.aar-card-title a { color: inherit; text-decoration: none; }
.aar-card-title a:hover { color: var(--blue-hover); }
.aar-card-event { font: 400 12px var(--font-mono); color: var(--text-dim); margin: 0 0 8px; }
.aar-card-meta  { display: flex; gap: 10px; font: 400 11px var(--font-mono); color: var(--text-dim); flex-wrap: wrap; margin-bottom: 12px; }
.aar-card-link  { margin-top: auto; }

/* Outcome badges */
.aar-outcome-badge {
    display: inline-block;
    padding: 2px 8px;
    font: 700 10px var(--font-mono);
    letter-spacing: .08em;
    border-radius: var(--radius);
}
.aar-outcome-victory  { background: #1a4030; color: #5ab87a; border: 1px solid #2a6040; }
.aar-outcome-defeat   { background: #3a1010; color: #cc4444; border: 1px solid #5a1818; }
.aar-outcome-draw     { background: #2a2a10; color: #c8b030; border: 1px solid #444010; }
.aar-outcome-historical { background: #1a2030; color: var(--gold-bright); border: 1px solid var(--gold); }

/* Detail page */
.aar-detail-header {
    background: linear-gradient(135deg, #0d1a2b 0%, #0a1520 100%);
    padding: 28px 20px 24px;
    margin: 0 -20px 24px;
    border-bottom: 1px solid var(--border);
}
.aar-detail-header-inner { max-width: 760px; }
.aar-detail-title-row {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}
.aar-detail-title {
    font: 700 26px/1.2 var(--font-head);
    color: var(--gold-bright);
    margin: 6px 0 0;
}
.aar-detail-body-wrap { max-width: 760px; }
.aar-meta-bar {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 20px;
    font: 400 11px var(--font-mono);
}
.aar-meta-item {
    color: var(--text-dim);
    text-transform: uppercase;
    letter-spacing: .05em;
}
.aar-image-wrap { margin-bottom: 20px; }
.aar-image {
    max-width: 100%;
    max-height: 400px;
    object-fit: contain;
    border: 1px solid var(--border);
    border-radius: var(--radius);
}
.aar-body {
    white-space: pre-wrap;
    line-height: 1.75;
    color: var(--text);
    margin-bottom: 24px;
    font-size: 14.5px;
}
.aar-owner-actions { margin-bottom: 20px; }

/* Comments */
.aar-comments-heading {
    font: 700 13px var(--font-mono);
    letter-spacing: .1em;
    color: var(--text-dim);
    margin: 0 0 16px;
}
.aar-comment-item {
    border-left: 2px solid var(--border);
    padding: 10px 16px;
    margin-bottom: 12px;
    transition: border-left-color .15s;
}
.aar-comment-item:hover { border-left-color: var(--gold); }
.aar-comment-meta {
    display: flex;
    gap: 12px;
    margin-bottom: 6px;
    font: 400 11px var(--font-mono);
    color: var(--text-dim);
}
.aar-comment-author { color: var(--gold-bright); }
.aar-comment-text   { margin: 0; font-size: 14px; color: var(--text); line-height: 1.65; }
.aar-no-comments    { font: 400 13px var(--font-mono); color: var(--text-dim); }

.aar-comment-form-wrap { margin-top: 28px; }
.aar-comment-form-heading {
    font: 700 12px var(--font-mono);
    letter-spacing: .1em;
    color: var(--text-dim);
    margin: 0 0 10px;
}
.aar-login-prompt { font: 400 13px var(--font-mono); color: var(--text-dim); margin-top: 28px; }
.aar-back-link    { margin: 28px 0 40px; }

/* New report form */
.aar-form-row-3 { grid-template-columns: 2fr 1fr 1fr !important; }
.aar-body-textarea { min-height: 260px; resize: vertical; }

@media (max-width: 640px) {
    .aar-form-row-3 { grid-template-columns: 1fr !important; }
    .aar-grid { grid-template-columns: 1fr; }
}

/* ── Dashboard: System Health ──────────────────────────────────────────────── */

.dash-health-summary {
    display: flex;
    gap: 24px;
    margin-bottom: 20px;
}
.dash-health-bar-wrap {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 10px;
    font: 500 12px var(--font-mono);
    color: var(--text-dim);
    text-transform: uppercase;
    letter-spacing: .04em;
}
.dash-health-bar-label { min-width: 100px; }
.dash-health-bar {
    flex: 1;
    height: 8px;
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
}
.dash-health-bar-fill {
    height: 100%;
    background: var(--blue);
    transition: width .4s ease;
}
.dash-health-bar-value {
    min-width: 80px;
    text-align: right;
    color: var(--text);
}

.dash-health-checks {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-bottom: 20px;
}
.dash-health-check {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    font: 500 13px var(--font-mono);
    color: var(--text-dim);
}
.dash-health-check.check-ok .dash-health-indicator { color: var(--success-text); }
.dash-health-check.check-warn .dash-health-indicator { color: var(--gold-bright); }
.dash-health-check.check-warn { border-color: rgba(212,168,64,0.3); }
.dash-health-label { flex: 1; }
.dash-health-count {
    font-family: var(--font-mono);
    color: var(--text);
    font-weight: 600;
}

.dash-health-actions {
    display: flex;
    gap: 12px;
}

@media (max-width: 640px) {
    .dash-health-summary { flex-direction: column; gap: 12px; }
    .dash-health-checks { grid-template-columns: repeat(2, 1fr); }
}
