/* ══════════════════════════════════════════════════════════════
   PATTERN — Assumption card

   Card-based rendering of an assumption with lifecycle state, meta
   information (source, trigger), challenges, and blind-spot
   indicators. Core visual unit of the ANTAGANDEN app.

   States (left-border weight encodes confidence in B&W):
   - unquestioned — default, no state modifier
   - challenged   — 3px left border
   - confirmed    — 3px left border, lighter
   - falsified    — 3px left border, muted, strikethrough
   - bedrock      — 4px left border, strongest

   Markup sketch:
     <article class="assumption-card challenged">
       <div class="card-header">
         <span class="card-label">ANTAGANDE</span>
         <span class="status-badge status-challenged">Ifrågasatt</span>
       </div>
       <p>...</p>
       <div class="assumption-meta">
         <span class="source-badge">Dokument</span>
         <span class="trigger-badge">Diskussion 2026-03-15</span>
         <span class="challenge-count">3 utmaningar</span>
       </div>
       <div class="challenges">
         <div class="challenge challenge-counter">...</div>
       </div>
     </article>

   Base: strategios.css (uses canonical tokens + .card-header, .card-label)
   Used by: ANTAGANDEN
   Candidates: DOKTRIN (doctrine has similar "assumption-like" items),
               STRATEGIANALYS (antagande-analysis sub-tab)

   TODO (future template migration):
   - .status-badge + .status-{state} -> .badge[data-state="..."]
   - .assumption-card.{state} -> .card + data-state
   - .challenge-{type} -> .badge + data-type or modifier
   ══════════════════════════════════════════════════════════════ */

/* ── Assumption card ────────────────────────────────────────── */
.assumption-card {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: var(--s-4);
    margin-bottom: var(--s-3);
    background: var(--bg-elevated);
}

.assumption-card.challenged { border-left: 3px solid var(--fg); }
.assumption-card.confirmed { border-left: 3px solid var(--light-grey); }
.assumption-card.falsified {
    border-left: 3px solid var(--medium-grey);
    opacity: 0.6;
}
.assumption-card.bedrock { border-left: 4px solid var(--black); }

.assumption-meta {
    display: flex;
    gap: var(--s-4);
    flex-wrap: wrap;
    font-size: 0.75rem;
    color: var(--muted);
    margin-top: var(--s-2);
}

.assumptions-list { display: block; }

/* ── Status badges (assumption lifecycle) ──────────────────── */
/* Base .status-badge promoted to strategios.css. ANTAGANDEN's
   assumption variant uses pill shape and stronger weight. */
.status-badge {
    border-radius: 1rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    padding: 0.125rem 0.5rem;
}
.status-unquestioned { background: var(--bg-alt); color: var(--muted); }
.status-challenged { background: var(--bg-alt); color: var(--fg); border-color: var(--fg); }
.status-confirmed { background: var(--fg); color: var(--bg); }
.status-falsified {
    background: var(--bg-alt);
    color: var(--muted);
    text-decoration: line-through;
}
.status-bedrock {
    background: var(--black);
    color: var(--white);
    border-color: var(--black);
}

/* ── Source / trigger / negation badges ────────────────────── */
.source-badge,
.trigger-badge {
    font-size: 0.6875rem;
    padding: 0.0625rem 0.375rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    display: inline-block;
}

.negation-badge {
    font-size: 0.6875rem;
    padding: 0.125rem 0.5rem;
    border-radius: 1rem;
    border: 1px solid var(--border);
    display: inline-block;
}
.negation-badge.relevant { background: var(--bg-alt); color: var(--fg); }
.negation-badge.irrelevant {
    background: var(--bg-alt);
    color: var(--muted);
    text-decoration: line-through;
}

/* ── Challenges (B&W: border thickness distinguishes type) ── */
.challenges {
    margin-top: var(--s-3);
    padding-top: var(--s-3);
    border-top: 1px solid var(--border);
}
.challenges h4 {
    font-size: 0.8125rem;
    margin-bottom: var(--s-2);
}

.challenge {
    padding: var(--s-2) var(--s-3);
    margin-bottom: var(--s-2);
    border-left: 3px solid var(--border-strong);
    background: var(--bg-alt);
    font-size: 0.875rem;
}
.challenge-type {
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--muted);
}
.challenge-count { font-size: 0.6875rem; color: var(--muted); }

.challenge-question { border-left-width: 2px; }
.challenge-counter { border-left-width: 4px; border-left-color: var(--fg); }
.challenge-evidence { border-left-style: dotted; }
.challenge-endorsement { border-left-style: double; }

/* ── Action groups (per-assumption actions) ────────────────── */
.action-group {
    margin-bottom: var(--s-3);
    padding-bottom: var(--s-3);
    border-bottom: 1px solid var(--border);
}
.action-group:last-child { border-bottom: none; }

/* ── Blind spots (assumption coverage indicator) ───────────── */
.blind-spots-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
    gap: var(--s-2);
}

.blind-spot-item {
    display: flex;
    align-items: center;
    gap: var(--s-2);
    padding: var(--s-2) var(--s-3);
    border-radius: var(--radius);
    font-size: 0.875rem;
    border: 1px solid var(--border);
}
.blind-spot-item.mentioned {
    background: var(--bg-alt);
    color: var(--muted);
}
.blind-spot-item.not-mentioned {
    background: var(--bg-elevated);
    font-weight: 500;
    border-color: var(--fg);
}

.blind-spot-indicator {
    font-size: 1rem;
    min-width: 1.5rem;
    text-align: center;
}

@media (max-width: 640px) {
    .blind-spots-list { grid-template-columns: 1fr; }
}
