/* ==========================================================================
   ByteWorks Admin V3.13.0 — admin.css

   Fristående stilark för hela adminsubdomänen. Delar tokens och typkänsla
   med den publika sajten, men prioriterar läsbarhet och täthet framför dekor.

   Byggd på V3.4.0.1 analytics.css. Analyticsvyns utseende är oförändrat;
   det som tillkommit är gemensam navigation, sidfot och Prospect Core, med
   samma typografi, färger, kort, knappar, formulär och spacing. Prospects
   och Analytics ska kännas som samma interna produkt.

   Ingen redesign — UX-polish sker i en senare iteration.
   ========================================================================== */

:root {
  --paper:     #f7f4ee;
  --snovit:    #fdfcfa;
  --ink:       #10161f;
  --ink-soft:  #3d4757;
  --ink-faint: #55606f;
  --kobolt:    #1f3fa8;
  --kobolt-lj: #3f63d6;
  --koppar:    #a6552a;
  --linje:     rgba(16, 22, 31, 0.12);
  --radie:     10px;
  --f-sans:    'Instrument Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --f-mono:    'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
}

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

body.bwa {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--f-sans);
  font-size: 15px;
  line-height: 1.55;
  -webkit-text-size-adjust: 100%;
  display: flex;
  flex-direction: column;
  min-height: 100dvh;
}

.bwa-skal { width: min(1240px, 100% - 2rem); margin-inline: auto; }

/* Hoppa till innehållet — syns endast vid tangentbordsfokus. */
.bwa-hoppa {
  position: absolute; left: -9999px; top: 0; z-index: 20;
  background: var(--ink); color: #fff; padding: 0.6rem 1rem;
  border-radius: 0 0 8px 0; text-decoration: none;
}
.bwa-hoppa:focus { left: 0; }

/* ── Topp och navigation ────────────────────────────────────────────── */
.bwa-topp {
  background: var(--snovit);
  border-bottom: 1px solid var(--linje);
  position: sticky; top: 0; z-index: 10;
}
.bwa-topp__inner {
  display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem;
  align-items: center; justify-content: space-between;
  padding-block: 0.85rem;
}
.bwa-mark { font-weight: 700; font-size: 1.05rem; margin: 0; letter-spacing: -0.01em; }
.bwa-mark__sub { font-family: var(--f-mono); font-weight: 400; font-size: 0.78rem;
  text-transform: uppercase; letter-spacing: 0.14em; color: var(--ink-faint); }

.bwa-nav, .bwa-period { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; }
.bwa-nav__val, .bwa-nav__ut, .bwa-period__val, .bwa-period__ut {
  font-family: var(--f-mono); font-size: 0.75rem; letter-spacing: 0.08em;
  text-transform: uppercase; text-decoration: none; color: var(--ink-faint);
  border: 1px solid var(--linje); border-radius: 999px;
  padding: 0.35rem 0.75rem; min-height: 34px; display: inline-flex; align-items: center;
}
.bwa-nav__val:hover, .bwa-nav__ut:hover,
.bwa-period__val:hover, .bwa-period__ut:hover { color: var(--ink); border-color: var(--ink-faint); }
.bwa-nav__val.ar-aktiv, .bwa-period__val.ar-aktiv {
  background: var(--kobolt); border-color: var(--kobolt); color: #fff;
}
.bwa-nav__ut, .bwa-period__ut { margin-left: 0.5rem; color: var(--koppar); }

.bwa-nav__val:focus-visible, .bwa-nav__ut:focus-visible,
.bwa-period__val:focus-visible, .bwa-period__ut:focus-visible {
  outline: 2px solid var(--ink); outline-offset: 2px;
}

/* ── Layout ─────────────────────────────────────────────────────────── */
.bwa-innehall { padding-block: 1.75rem 4rem; display: grid; gap: 2rem; align-content: start; flex: 1; }
.bwa-rubrik {
  font-size: 0.78rem; font-family: var(--f-mono); text-transform: uppercase;
  letter-spacing: 0.14em; color: var(--ink-faint); margin: 0 0 0.6rem;
}
/* Grid-barn har min-width: auto som default. Utan den här raden propagerar
   breda tabellers min-width uppåt genom kort, sektion och sidgrid, och
   spränger layouten i smala vyer. */
.bwa-innehall > *,
.bwa-kortgrid > *,
.bwa-tvakol > *,
.bwa-kort { min-width: 0; }
.bwa-kort {
  background: var(--snovit); border: 1px solid var(--linje);
  border-radius: var(--radie); padding: 1.1rem 1.25rem;
}
.bwa-kort h2 { margin-top: 0; font-size: 1.05rem; }
.bwa-kort h3 { margin: 0 0 0.65rem; font-size: 0.95rem; }
.bwa-kort--varning { border-color: var(--koppar); }

.bwa-kortgrid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.bwa-tvakol   { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }

.bwa-tal { margin: 0; display: grid; gap: 0.35rem; }
.bwa-tal > div { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.bwa-tal dt { color: var(--ink-faint); font-size: 0.85rem; min-width: 0; }
.bwa-tal dd { margin: 0; font-family: var(--f-mono); font-size: 1.35rem; font-weight: 400; }

.bwa-fotnot { color: var(--ink-faint); font-size: 0.82rem; margin: 0.7rem 0 0; max-width: 70ch; }
.bwa-tom    { color: var(--ink-faint); font-size: 0.88rem; margin: 0; }
.bwa-ja     { color: var(--kobolt); }

/* Sidhuvud inuti innehållet: rubrik till vänster, handling till höger. */
.bwa-sidtopp {
  display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem;
  align-items: baseline; justify-content: space-between;
}
.bwa-sidtopp h1 { margin: 0; font-size: 1.5rem; letter-spacing: -0.02em; }
.bwa-sidtopp p  { margin: 0; color: var(--ink-faint); font-size: 0.88rem; }

.bwa-tillbaka {
  font-family: var(--f-mono); font-size: 0.75rem; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--ink-faint); text-decoration: none;
  display: inline-flex; align-items: center; min-height: 32px;
}
.bwa-tillbaka:hover { color: var(--ink); }

/* ── Tabeller ───────────────────────────────────────────────────────── */
.bwa-tabell { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
.bwa-tabell th, .bwa-tabell td {
  text-align: left; padding: 0.45rem 0.6rem 0.45rem 0;
  border-bottom: 1px solid var(--linje); vertical-align: top;
}
.bwa-tabell th {
  font-family: var(--f-mono); font-size: 0.7rem; text-transform: uppercase;
  letter-spacing: 0.1em; color: var(--ink-faint); font-weight: 400;
}
.bwa-tabell tbody tr:last-child td { border-bottom: 0; }
.bwa-tabell td:not(:first-child) { font-family: var(--f-mono); }
.bwa-sokvag { font-family: var(--f-mono) !important; font-size: 0.82rem; word-break: break-word; }
.bwa-detalj { color: var(--ink-faint); font-size: 0.82rem; }

/* ── Diagram ────────────────────────────────────────────────────────── */
.bwa-diagram { width: 100%; height: 220px; display: block; }
.bwa-diagram__linje { stroke: var(--linje); stroke-width: 1; }
.bwa-diagram__stapel { fill: var(--kobolt); opacity: 0.85; }
.bwa-diagram__linje-unika { fill: none; stroke: var(--koppar); stroke-width: 2; vector-effect: non-scaling-stroke; }

.bwa-legend {
  display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; align-items: center;
  font-size: 0.8rem; color: var(--ink-faint); margin: 0.6rem 0 0;
}
.bwa-legend__stapel, .bwa-legend__linje { width: 14px; height: 10px; display: inline-block; }
.bwa-legend__stapel { background: var(--kobolt); }
.bwa-legend__linje  { height: 2px; background: var(--koppar); }

/* ── Formulär och verktyg ───────────────────────────────────────────── */
.bwa-label { display: block; font-size: 0.8rem; color: var(--ink-faint); margin-bottom: 0.25rem; }
.bwa-input, .bwa-textarea, select.bwa-input {
  width: 100%; font: inherit; padding: 0.5rem 0.65rem; min-height: 42px;
  border: 1px solid var(--linje); border-radius: 8px;
  background: #fff; color: var(--ink);
}
.bwa-textarea { min-height: 140px; line-height: 1.5; resize: vertical; }
.bwa-input:focus-visible, .bwa-textarea:focus-visible { outline: 2px solid var(--kobolt); outline-offset: 1px; }
.bwa-input[aria-invalid="true"], .bwa-textarea[aria-invalid="true"] { border-color: var(--koppar); }

.bwa-knapp {
  font: inherit; font-weight: 700; cursor: pointer;
  background: var(--kobolt); color: #fff; border: 1px solid var(--kobolt);
  border-radius: 8px; padding: 0.55rem 1rem; min-height: 44px;
  display: inline-flex; align-items: center; justify-content: center;
  text-decoration: none;
}
.bwa-knapp:hover { background: var(--kobolt-lj); border-color: var(--kobolt-lj); }
.bwa-knapp:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.bwa-knapp--liten { font-size: 0.85rem; padding: 0.45rem 0.8rem; min-height: 40px; }
.bwa-knapp--dampad { background: transparent; color: var(--ink-soft); border-color: var(--linje); }
.bwa-knapp--dampad:hover { background: transparent; color: var(--ink); border-color: var(--ink-faint); }

.bwa-verktyg { display: grid; gap: 0.5rem; justify-items: start; }
.bwa-verktyg .bwa-input { max-width: 420px; }
.bwa-radform { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; margin-top: 0.75rem; }
.bwa-flagga {
  font-family: var(--f-mono); font-size: 0.72rem; text-transform: uppercase;
  letter-spacing: 0.1em; color: var(--koppar);
}

.bwa-notis {
  font-size: 0.86rem; color: var(--ink-soft); margin: 0;
  border-left: 3px solid var(--linje); padding-left: 0.75rem;
}
.bwa-notis--ok { border-left-color: var(--kobolt); }
.bwa-fel {
  font-size: 0.9rem; color: var(--koppar); margin: 0 0 0.75rem;
  border-left: 3px solid var(--koppar); padding-left: 0.75rem;
}
.bwa-faltfel {
  display: block; font-size: 0.8rem; color: var(--koppar); margin-top: 0.25rem;
}
code { font-family: var(--f-mono); font-size: 0.85em; }

/* ── Prospectformulär ───────────────────────────────────────────────── */
.bwa-form-rutnat {
  display: grid; gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.bwa-form-rutnat > * { min-width: 0; }
.bwa-falt--bred { grid-column: 1 / -1; }

.bwa-kryss {
  display: flex; align-items: flex-start; gap: 0.6rem;
  padding: 0.6rem 0; min-height: 44px;
}
.bwa-kryss input { width: 20px; height: 20px; margin: 0.15rem 0 0; flex: none; accent-color: var(--kobolt); }
.bwa-kryss span  { font-size: 0.9rem; }
.bwa-kryss__hjalp { display: block; color: var(--ink-faint); font-size: 0.8rem; }

.bwa-formfot {
  display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center;
  margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--linje);
}

/* ── Prospectlista ──────────────────────────────────────────────────── */
.bwa-sok {
  display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: flex-end;
}
.bwa-sok__falt { flex: 1 1 260px; min-width: 0; }

.bwa-filter { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.9rem; }
.bwa-filter__val {
  font-family: var(--f-mono); font-size: 0.72rem; letter-spacing: 0.08em;
  text-transform: uppercase; text-decoration: none; color: var(--ink-faint);
  border: 1px solid var(--linje); border-radius: 999px;
  padding: 0.3rem 0.7rem; min-height: 32px; display: inline-flex; align-items: center; gap: 0.4rem;
}
.bwa-filter__val:hover { color: var(--ink); border-color: var(--ink-faint); }
.bwa-filter__val.ar-aktiv { background: var(--kobolt); border-color: var(--kobolt); color: #fff; }
.bwa-filter__antal { opacity: 0.7; }

.bwa-lank { color: var(--kobolt); text-decoration: none; border-bottom: 1px solid transparent; }
.bwa-lank:hover { border-bottom-color: currentColor; }
.bwa-lank:focus-visible { outline: 2px solid var(--kobolt); outline-offset: 2px; }

.bwa-foretag { font-family: var(--f-sans) !important; font-weight: 700; }

/* Statusmarkör: färg är aldrig ensam bärare — etiketten står alltid ut. */
.bwa-status {
  display: inline-flex; align-items: center; gap: 0.4rem;
  font-family: var(--f-mono); font-size: 0.72rem; letter-spacing: 0.06em;
  text-transform: uppercase; white-space: nowrap;
}
.bwa-status::before {
  content: ''; width: 8px; height: 8px; border-radius: 50%;
  background: var(--ink-faint); flex: none;
}
.bwa-status--new::before        { background: var(--ink-faint); }
.bwa-status--contacted::before  { background: var(--kobolt-lj); }
.bwa-status--interested::before { background: var(--kobolt); }
.bwa-status--follow_up::before  { background: var(--koppar); }
.bwa-status--won::before        { background: #1d7a4c; }
.bwa-status--declined::before   { background: #9aa2ad; }

.bwa-sparr {
  display: inline-flex; align-items: center; gap: 0.35rem;
  font-family: var(--f-mono); font-size: 0.7rem; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--koppar);
  border: 1px solid var(--koppar); border-radius: 999px; padding: 0.1rem 0.5rem;
}
.bwa-sparr--stor { font-size: 0.78rem; padding: 0.25rem 0.7rem; }

.bwa-forfallen { color: var(--koppar); }

/* ── Prospectdetalj ─────────────────────────────────────────────────── */
.bwa-uppgifter { margin: 0; display: grid; gap: 0.85rem; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.bwa-uppgifter > div { min-width: 0; }
.bwa-uppgifter dt { color: var(--ink-faint); font-size: 0.78rem; font-family: var(--f-mono);
  text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 0.15rem; }
.bwa-uppgifter dd { margin: 0; overflow-wrap: anywhere; }
.bwa-saknas { color: var(--ink-faint); }

.bwa-notes {
  margin: 0; white-space: pre-wrap; overflow-wrap: anywhere;
  font-size: 0.92rem; line-height: 1.6;
}

.bwa-historik { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; }
.bwa-historik li {
  display: grid; gap: 0.15rem;
  border-left: 2px solid var(--linje); padding-left: 0.85rem;
}
.bwa-historik__text { margin: 0; font-size: 0.9rem; }
.bwa-historik__tid  { margin: 0; font-family: var(--f-mono); font-size: 0.75rem; color: var(--ink-faint); }

/* ── Outreach Composer ──────────────────────────────────────────────── */
/* Samma tokens, kort, knappar och spacing som övriga Admin. Ingen redesign. */

.bwa-sidtopp--sektion { margin-bottom: 0.6rem; }
.bwa-sidtopp--sektion .bwa-rubrik { margin: 0; }

.bwa-textarea--hog { min-height: 240px; }

.bwa-inline-form { display: contents; }

/* Utkast/Skickat — färg är aldrig ensam bärare, etiketten står alltid ut. */
.bwa-outreach-status {
  display: inline-flex; align-items: center; gap: 0.4rem;
  font-family: var(--f-mono); font-size: 0.72rem; letter-spacing: 0.06em;
  text-transform: uppercase; white-space: nowrap;
}
.bwa-outreach-status::before {
  content: ''; width: 8px; height: 8px; border-radius: 50%;
  background: var(--ink-faint); flex: none;
}
.bwa-outreach-status--draft::before { background: var(--koppar); }
.bwa-outreach-status--sent::before  { background: #1d7a4c; }

/* ── Projektval ─────────────────────────────────────────────────────── */
.bwa-projektval {
  border: 0; padding: 0; margin: 1.5rem 0 0; min-width: 0;
}
.bwa-projektval legend { padding: 0; margin-bottom: 0.5rem; }
.bwa-projektval .bwa-fotnot { margin-top: 0; margin-bottom: 0.8rem; }

.bwa-projektval__lista {
  display: grid; gap: 0.6rem;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}
.bwa-projektval__lista > * { min-width: 0; }

.bwa-projektkort {
  display: flex; align-items: flex-start; gap: 0.7rem;
  border: 1px solid var(--linje); border-radius: 8px;
  padding: 0.75rem 0.85rem; cursor: pointer;
  background: #fff; min-height: 44px;
}
.bwa-projektkort:hover { border-color: var(--ink-faint); }
.bwa-projektkort:has(input:checked) {
  border-color: var(--kobolt);
  box-shadow: inset 0 0 0 1px var(--kobolt);
}
.bwa-projektkort:has(input:focus-visible) { outline: 2px solid var(--kobolt); outline-offset: 2px; }
.bwa-projektkort input { width: 20px; height: 20px; margin: 0.1rem 0 0; flex: none; accent-color: var(--kobolt); }

.bwa-projektkort__text { display: grid; gap: 0.1rem; min-width: 0; }
.bwa-projektkort__namn { font-weight: 700; font-size: 0.92rem; overflow-wrap: anywhere; }
.bwa-projektkort__status {
  font-family: var(--f-mono); font-size: 0.68rem; text-transform: uppercase;
  letter-spacing: 0.08em; color: var(--kobolt);
}
.bwa-projektkort__meta { font-size: 0.8rem; color: var(--ink-faint); overflow-wrap: anywhere; }

/* ── Projektsnapshots på detaljsidan ────────────────────────────────── */
.bwa-projektsnapshot { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.7rem; }
.bwa-projektsnapshot li {
  display: grid; gap: 0.15rem;
  border-left: 2px solid var(--linje); padding-left: 0.85rem; min-width: 0;
}
.bwa-projektsnapshot__namn { font-weight: 700; font-size: 0.92rem; overflow-wrap: anywhere; }
.bwa-projektsnapshot__status {
  font-family: var(--f-mono); font-size: 0.68rem; text-transform: uppercase;
  letter-spacing: 0.08em; color: var(--ink-faint);
}
.bwa-projektsnapshot__sokvag {
  font-family: var(--f-mono); font-size: 0.75rem; color: var(--ink-faint);
  overflow-wrap: anywhere;
}

/* ── Spårbara länkar ────────────────────────────────────────────────── */

.bwa-lankar { list-style: none; margin: 0.9rem 0 1rem; padding: 0; display: grid; gap: 1.1rem; }
.bwa-lank-rad {
  display: grid; gap: 0.4rem; min-width: 0;
  border-left: 2px solid var(--linje); padding-left: 0.85rem;
}
.bwa-lank-rad__namn { margin: 0; font-weight: 700; font-size: 0.95rem; }

.bwa-lank-rad__url {
  display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; min-width: 0;
}
/* En spårbar URL är lång och får aldrig spränga layouten. Den bryts var som
   helst hellre än att tvinga fram horisontell sidscroll. */
.bwa-url {
  flex: 1 1 320px; min-width: 0;
  font-family: var(--f-mono); font-size: 0.78rem; line-height: 1.5;
  background: #fff; border: 1px solid var(--linje); border-radius: 6px;
  padding: 0.45rem 0.6rem;
  overflow-wrap: anywhere; word-break: break-all;
}
.bwa-lank-rad__url .bwa-knapp { flex: 0 0 auto; }
.bwa-knapp.ar-kopierad { background: #1d7a4c; border-color: #1d7a4c; }

.bwa-lank-rad__status {
  margin: 0; display: flex; flex-wrap: wrap; gap: 0.35rem 0.6rem; align-items: baseline;
}

/* Bekräftad öppning respektive endast teknisk träff. Färgen är aldrig ensam
   bärare — etiketten säger vad som gäller. */
.bwa-oppnad, .bwa-ejbekraftad {
  display: inline-flex; align-items: center; gap: 0.35rem;
  font-family: var(--f-mono); font-size: 0.7rem; letter-spacing: 0.08em;
  text-transform: uppercase; white-space: nowrap;
  border-radius: 999px; padding: 0.1rem 0.55rem; border: 1px solid currentColor;
}
.bwa-oppnad      { color: #1d7a4c; }
.bwa-ejbekraftad { color: var(--ink-faint); }

.bwa-sidtopp h1 .bwa-oppnad { vertical-align: middle; margin-left: 0.35rem; }

/* ── E-postmotor ────────────────────────────────────────────────────── */

.bwa-epostatgard {
  border: 1px solid var(--linje); border-radius: var(--radie);
  padding: 1rem 1.15rem; margin: 0 0 1.25rem; background: var(--paper);
}
.bwa-epostatgard .bwa-rubrik { margin-top: 0; }
.bwa-epostatgard .bwa-formfot { margin-top: 0.75rem; padding-top: 0; border-top: 0; }

/* Bekräftelsesteget. <details> ger tvåstegsflödet utan JavaScript — knappen
   kan inte råka skicka vid ett enda klick. */
.bwa-bekrafta { margin-top: 0.9rem; }
.bwa-bekrafta > summary {
  list-style: none; cursor: pointer; width: fit-content;
}
.bwa-bekrafta > summary::-webkit-details-marker { display: none; }
.bwa-bekrafta > summary::marker { content: ''; }
.bwa-bekrafta[open] > summary { background: var(--ink); border-color: var(--ink); }
.bwa-bekrafta__kropp {
  border: 1px solid var(--kobolt); border-radius: 8px;
  padding: 1rem 1.15rem; margin-top: 0.7rem; background: #fff;
}
.bwa-bekrafta__kropp .bwa-formfot { margin-top: 1rem; padding-top: 0.9rem; }

/* Mailförhandsgranskning. Sandboxad iframe så att mailets CSS aldrig kan
   påverka Admin, och så att inga skript kan köra. */
.bwa-mailforhands {
  width: 100%; height: 560px; border: 1px solid var(--linje);
  border-radius: 8px; background: #fff; display: block;
}
.bwa-mailtext {
  margin: 0; max-height: 560px; overflow: auto;
  font-family: var(--f-mono); font-size: 0.78rem; line-height: 1.6;
  white-space: pre-wrap; overflow-wrap: anywhere;
  background: #fff; border: 1px solid var(--linje); border-radius: 8px;
  padding: 0.85rem 1rem;
}

@media (max-width: 640px) {
  .bwa-mailforhands { height: 420px; }
  .bwa-mailtext { max-height: 340px; font-size: 0.72rem; }
  .bwa-bekrafta > summary { width: 100%; }
  .bwa-epostatgard { padding: 0.85rem 0.9rem; }
}

/* ── Lead-stadium ───────────────────────────────────────────────────── */
/* Färg är aldrig ensam bärare — etiketten står alltid utskriven. */

.bwa-lead {
  display: inline-flex; align-items: center; gap: 0.35rem;
  font-family: var(--f-mono); font-size: 0.7rem; letter-spacing: 0.08em;
  text-transform: uppercase; white-space: nowrap;
  border-radius: 999px; padding: 0.1rem 0.6rem;
  border: 1px solid currentColor;
}
.bwa-lead::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: currentColor; flex: none; }
.bwa-lead--cold        { color: var(--ink-faint); }
.bwa-lead--warm        { color: var(--kobolt-lj); }
.bwa-lead--hot         { color: var(--koppar); }
.bwa-lead--high_intent { color: #1d7a4c; }

.bwa-sidtopp h1 .bwa-lead { vertical-align: middle; margin-left: 0.35rem; }

/* ── Sales Dashboard ────────────────────────────────────────────────── */
/* Lugnt, ljust, mycket whitespace. Action Queue dominerar ytan; siffrorna
   är sekundära. Inga stora färgglada kort. */

.bwa-dash-sammanfattning { margin: 0.35rem 0 0; color: var(--ink-mjuk); font-size: 1rem; }

.bwa-dash { display: grid; gap: 1.75rem; margin-bottom: 2rem; }

@media (min-width: 1024px) {
  .bwa-dash { grid-template-columns: minmax(0, 1.85fr) minmax(0, 1fr); align-items: start; }
}
.bwa-dash__ko, .bwa-dash__sida { min-width: 0; }
.bwa-dash__sida { display: grid; gap: 1.25rem; }
.bwa-dash__sida .bwa-rubrik { margin-top: 0; }

/* ── Filter ── */
.bwa-dash-filter {
  display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0 0 1rem;
}
.bwa-dash-filter__val {
  display: inline-flex; align-items: center; gap: 0.45rem;
  border: 1px solid var(--linje); border-radius: 999px;
  padding: 0.35rem 0.85rem; font-size: 0.85rem; text-decoration: none;
  color: var(--ink-mjuk); background: #fff; min-height: 38px;
}
.bwa-dash-filter__val:hover { border-color: var(--ink-faint); color: var(--ink); }
.bwa-dash-filter__val.ar-aktiv { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.bwa-dash-filter__antal {
  font-family: var(--f-mono); font-size: 0.72rem; opacity: 0.75;
}

/* ── Action-rader ── */
.bwa-actions { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; }

.bwa-action {
  border: 1px solid var(--linje); border-left: 3px solid var(--linje);
  border-radius: var(--radie); background: #fff;
  padding: 1rem 1.15rem; min-width: 0;
}
.bwa-action--safety           { border-left-color: #b4441f; }
.bwa-action--high_intent      { border-left-color: #1d7a4c; }
.bwa-action--hot              { border-left-color: var(--koppar); }
.bwa-action--warm             { border-left-color: var(--kobolt-lj); }
.bwa-action--followup_overdue { border-left-color: #b4441f; }
.bwa-action--followup_draft   { border-left-color: var(--kobolt); }
.bwa-action--followup_today   { border-left-color: var(--ink-faint); }

.bwa-action__topp {
  display: flex; flex-wrap: wrap; gap: 0.5rem 0.9rem;
  align-items: baseline; justify-content: space-between; margin-bottom: 0.35rem;
}
.bwa-action__etikett {
  font-family: var(--f-mono); font-size: 0.68rem; letter-spacing: 0.09em;
  text-transform: uppercase; color: var(--ink-mjuk);
}
.bwa-action--safety .bwa-action__etikett,
.bwa-action--followup_overdue .bwa-action__etikett { color: #b4441f; }
.bwa-action--high_intent .bwa-action__etikett { color: #1d7a4c; }
.bwa-action--hot .bwa-action__etikett { color: var(--koppar); }

.bwa-action__tid { font-family: var(--f-mono); font-size: 0.72rem; color: var(--ink-faint); }
.bwa-action__foretag { margin: 0 0 0.15rem; font-weight: 700; font-size: 1rem; overflow-wrap: anywhere; }
.bwa-action__anledning { margin: 0; font-size: 0.9rem; color: var(--ink-mjuk); overflow-wrap: anywhere; }
.bwa-action__detalj { margin: 0.25rem 0 0; font-size: 0.85rem; color: var(--ink-faint); overflow-wrap: anywhere; }
.bwa-action__vakt {
  margin: 0.6rem 0 0; font-size: 0.8rem; color: var(--ink-faint);
  border-top: 1px dashed var(--linje); padding-top: 0.5rem;
}

.bwa-action__knappar {
  display: flex; flex-wrap: wrap; gap: 0.45rem; align-items: center; margin-top: 0.85rem;
}
.bwa-action__knappar > * { min-width: 0; }
.bwa-snooze { display: flex; gap: 0.35rem; align-items: center; }
.bwa-input--liten { padding: 0.35rem 0.5rem; font-size: 0.82rem; width: auto; min-height: 38px; }

/* ── Tomt läge ── */
.bwa-dash-tomt { text-align: left; }
.bwa-dash-tomt__rubrik { margin: 0 0 0.35rem; font-weight: 700; }

/* ── Nyckeltal ── */
.bwa-nyckeltal { margin: 0; display: grid; gap: 0.55rem; }
.bwa-nyckeltal > div {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 1rem; border-bottom: 1px solid var(--linje); padding-bottom: 0.45rem;
}
.bwa-nyckeltal > div:last-child { border-bottom: 0; padding-bottom: 0; }
.bwa-nyckeltal dt { font-size: 0.87rem; color: var(--ink-mjuk); }
.bwa-nyckeltal dd { margin: 0; font-family: var(--f-mono); font-size: 1.05rem; font-weight: 700; }

/* ── Automationens hälsa ── */
.bwa-halsa { margin: 0 0 0.2rem; display: flex; align-items: center; gap: 0.5rem; font-size: 0.92rem; }
.bwa-halsa__punkt { width: 8px; height: 8px; border-radius: 50%; background: #1d7a4c; flex: none; }
.bwa-halsa__punkt.ar-varning { background: var(--koppar); }

/* ── Sidor ── */
.bwa-dash-sidor { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 1rem; }
.bwa-dash-sidor__val {
  min-width: 38px; min-height: 38px; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--linje); border-radius: 6px; text-decoration: none;
  font-family: var(--f-mono); font-size: 0.82rem; color: var(--ink-mjuk); background: #fff;
}
.bwa-dash-sidor__val.ar-aktiv { background: var(--ink); border-color: var(--ink); color: var(--paper); }

/* ── Surfplatta och telefon ──
   Kön först, stora tryckytor, inga hover-beroenden och ingen horisontell
   scroll. Knappraden blir en kolumn under 560 px. */
@media (max-width: 900px) {
  .bwa-dash__sida .bwa-kort { padding: 0.9rem 1rem; }
}
@media (max-width: 560px) {
  .bwa-action { padding: 0.9rem 1rem; }
  .bwa-action__knappar { flex-direction: column; align-items: stretch; }
  .bwa-action__knappar .bwa-knapp { width: 100%; justify-content: center; }
  .bwa-snooze { width: 100%; }
  .bwa-snooze .bwa-input--liten { flex: 1 1 auto; }
  .bwa-dash-filter__val { flex: 1 1 auto; justify-content: center; }
}

/* ── Portfolio Intelligence ─────────────────────────────────────────── */
/* Samma ljusa, återhållna språk som resten av Admin. Tabellen är
   huvudkomponenten; inga gradientkort, inga heatmaps. */

.bwa-pf-tabell th.bwa-pf-num, .bwa-pf-tabell td.bwa-pf-num { text-align: right; white-space: nowrap; }
.bwa-pf-tabell td.bwa-pf-num { font-family: var(--f-mono); font-size: 0.9rem; }

.bwa-pf-sort {
  color: var(--ink-mjuk); text-decoration: none; border-bottom: 1px dotted var(--linje);
}
.bwa-pf-sort:hover { color: var(--ink); }
.bwa-pf-sort.ar-aktiv { color: var(--ink); font-weight: 700; border-bottom-color: var(--kobolt); }

.bwa-pf-otestad td { color: var(--ink-faint); }

.bwa-pf-flagga {
  display: inline-block; margin-left: 0.4rem;
  font-family: var(--f-mono); font-size: 0.64rem; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--ink-faint);
  border: 1px solid var(--linje); border-radius: 3px; padding: 0.05rem 0.35rem;
  white-space: nowrap; vertical-align: middle;
}

.bwa-pf-trend { font-size: 0.72rem; margin-left: 0.3rem; }
.bwa-pf-trend.ar-upp { color: #1d7a4c; }
.bwa-pf-trend.ar-ner { color: var(--koppar); }

.bwa-pf-paneler { display: grid; gap: 1.25rem; margin-top: 1.75rem; }
@media (min-width: 900px) { .bwa-pf-paneler { grid-template-columns: 1fr 1fr; } }

.bwa-pf-obs { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.85rem; }
.bwa-pf-obs > li { border-bottom: 1px solid var(--linje); padding-bottom: 0.7rem; }
.bwa-pf-obs > li:last-child { border-bottom: 0; padding-bottom: 0; }
.bwa-pf-obs__namn { margin: 0 0 0.15rem; font-weight: 700; }

/* ── Tratt ── */
.bwa-pf-tratt { list-style: none; margin: 0; padding: 0; counter-reset: steg; }
.bwa-pf-tratt > li {
  display: grid; grid-template-columns: 1fr auto; gap: 0.15rem 1rem;
  align-items: baseline; padding: 0.7rem 0 0.7rem 1.1rem;
  border-bottom: 1px solid var(--linje); position: relative;
}
.bwa-pf-tratt > li::before {
  content: ''; position: absolute; left: 0; top: 1rem;
  width: 5px; height: 5px; border-radius: 50%; background: var(--kobolt-lj);
}
.bwa-pf-tratt > li:last-child { border-bottom: 0; }
.bwa-pf-tratt__namn { font-weight: 700; }
.bwa-pf-tratt__tal { font-family: var(--f-mono); font-size: 1.25rem; font-weight: 700; }
.bwa-pf-tratt__grad {
  grid-column: 1 / -1; font-size: 0.82rem; color: var(--ink-faint);
}
.bwa-pf-jamfor { margin-top: 0.9rem; }

.bwa-tillbaka { margin: 0 0 0.75rem; font-size: 0.9rem; }

/* Surfplatta och telefon: tabellen blir kort, inga breda rader att scrolla. */
@media (max-width: 760px) {
  .bwa-pf-tabell thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .bwa-pf-tabell tr {
    display: block; border: 1px solid var(--linje); border-radius: var(--radie);
    padding: 0.85rem 1rem; margin-bottom: 0.75rem;
  }
  .bwa-pf-tabell td {
    display: flex; justify-content: space-between; gap: 1rem;
    border: 0; padding: 0.25rem 0; text-align: left;
  }
  .bwa-pf-tabell td.bwa-pf-num { text-align: right; }
  .bwa-pf-tabell td::before {
    content: attr(data-etikett); color: var(--ink-mjuk); font-size: 0.85rem;
    font-family: var(--f-sans); flex: none;
  }
  .bwa-pf-tabell td:first-child { font-weight: 700; padding-bottom: 0.5rem; }
  .bwa-pf-tabell td:first-child::before { content: none; }
  .bwa-pf-tratt > li { grid-template-columns: 1fr auto; }
}

/* ── Danger zone och permanent rensning ─────────────────────────────── */
/* Tydligt avskild från vardagsfunktionerna, men fortfarande samma system.
   Färg är aldrig ensam signal — rubriken och texten säger vad som händer. */

.bwa-fara { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--linje); }
.bwa-fara .bwa-rubrik { color: #a33418; }

.bwa-kort--fara { border-color: #e3b7a8; border-left: 3px solid #a33418; }

.bwa-knapp--fara {
  background: #a33418; border-color: #a33418; color: #fff;
}
.bwa-knapp--fara:hover  { background: #8a2b13; border-color: #8a2b13; }
.bwa-knapp--fara:focus-visible { outline: 2px solid #a33418; outline-offset: 2px; }

/* ── Rensningens omfattning ── */
.bwa-rensa-grid { display: grid; gap: 1rem; }
@media (min-width: 760px)  { .bwa-rensa-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1200px) { .bwa-rensa-grid { grid-template-columns: repeat(4, 1fr); } }

.bwa-rensa__rubrik {
  margin: 0 0 0.7rem; font-family: var(--f-mono); font-size: 0.7rem;
  letter-spacing: 0.09em; text-transform: uppercase; color: var(--ink-mjuk);
}
.bwa-rensa__typer { display: grid; gap: 0.2rem; margin-top: 0.6rem; }
.bwa-rensa__typer code { font-size: 0.78rem; }

/* ── Kvitto ── */
.bwa-kvitto { margin-bottom: 1.25rem; }
.bwa-kvitto__rubrik { margin: 0 0 0.5rem; font-weight: 700; }
.bwa-kvitto__lista { margin: 0; padding-left: 1.1rem; display: grid; gap: 0.15rem; font-size: 0.9rem; }

@media (max-width: 560px) {
  .bwa-fara .bwa-formfot .bwa-knapp { width: 100%; justify-content: center; }
}

/* ── Auth: konto, byte och återställning ────────────────────────────── */
/* Återanvänder befintliga login- och kortstilar. Inga nya färger, ingen ny
   typografi — bara det som saknades. */

.bwa-login__glomt { margin: 1.1rem 0 0; font-size: 0.88rem; text-align: center; }
.bwa-form--smal { max-width: 26rem; }
.bwa-form--smal .bwa-input { width: 100%; }

.bwa-notis--ok { border-left: 3px solid #1d7a4c; }

@media (max-width: 560px) {
  .bwa-form--smal .bwa-formfot .bwa-knapp { width: 100%; justify-content: center; }
}

/* ── Startsida ──────────────────────────────────────────────────────── */
.bwa-genvagar { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.bwa-genvag {
  display: block; text-decoration: none; color: inherit;
  background: var(--snovit); border: 1px solid var(--linje);
  border-radius: var(--radie); padding: 1.1rem 1.25rem;
}
.bwa-genvag:hover { border-color: var(--ink-faint); }
.bwa-genvag:focus-visible { outline: 2px solid var(--kobolt); outline-offset: 2px; }
.bwa-genvag h2 { margin: 0 0 0.35rem; font-size: 1.05rem; }
.bwa-genvag p  { margin: 0; color: var(--ink-faint); font-size: 0.88rem; }

/* ── Sidfot ─────────────────────────────────────────────────────────── */
.bwa-fot {
  border-top: 1px solid var(--linje); padding-block: 1.25rem;
  color: var(--ink-faint); font-size: 0.8rem;
}
.bwa-fot p { margin: 0; }

/* ── Login ──────────────────────────────────────────────────────────── */
.bwa-login { min-height: 100dvh; display: grid; place-items: center; padding: 1.5rem; }
.bwa-login__kort {
  background: var(--snovit); border: 1px solid var(--linje); border-radius: var(--radie);
  padding: 1.75rem; width: min(400px, 100%);
}
.bwa-login__rubrik { margin: 0.35rem 0 0.25rem; font-size: 1.5rem; letter-spacing: -0.02em; }
.bwa-login__text { margin: 0 0 1.25rem; color: var(--ink-faint); font-size: 0.9rem; }
.bwa-form { display: grid; gap: 0.5rem; }
.bwa-form .bwa-knapp { margin-top: 0.35rem; }
.bwa-login__kort .bwa-notis { margin-top: 0.85rem; }
body.bwa--login { display: block; }

/* ── Responsivt ─────────────────────────────────────────────────────── */
@media (max-width: 640px) {
  body.bwa { font-size: 14px; }
  .bwa-projektval__lista { grid-template-columns: 1fr; }
  .bwa-url { flex: 1 1 100%; font-size: 0.74rem; }
  .bwa-lank-rad__url .bwa-knapp { width: 100%; }
  .bwa-textarea--hog { min-height: 180px; }
  .bwa-inline-form { display: block; width: 100%; }
  .bwa-inline-form .bwa-knapp { width: 100%; }
  .bwa-skal { width: min(1240px, 100% - 1.5rem); }
  .bwa-innehall { padding-block: 1.25rem 3rem; gap: 1.5rem; }
  .bwa-kort { padding: 0.9rem 1rem; }
  .bwa-tal dd { font-size: 1.2rem; }
  .bwa-topp__inner { padding-block: 0.7rem; }
  .bwa-tabell { font-size: 0.82rem; }
  .bwa-tabell th, .bwa-tabell td { padding-right: 0.4rem; }
  /* I smal vy får kolumnerna dela på den bredd som finns i stället för att
     kräva sin min-content-bredd. Långa sökvägar och eventnamn bryts i stället
     för att trycka ut tabellen. */
  .bwa-tabell { table-layout: fixed; }
  .bwa-tabell th, .bwa-tabell td { overflow-wrap: anywhere; }
  .bwa-nav__ut, .bwa-period__ut { margin-left: 0; }
  .bwa-formfot .bwa-knapp { flex: 1 1 100%; }
}

/* Prospectlistan blir kort i stället för tabell på telefon. Ingen
   obligatorisk horisontell sidscroll. */
@media (max-width: 760px) {
  .bwa-lista--kort thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .bwa-lista--kort tbody tr {
    display: grid; gap: 0.3rem;
    border: 1px solid var(--linje); border-radius: 8px;
    padding: 0.8rem 0.9rem; margin-bottom: 0.7rem;
  }
  .bwa-lista--kort td {
    display: grid; grid-template-columns: 8.5rem 1fr; gap: 0.5rem;
    border-bottom: 0; padding: 0.1rem 0; font-family: var(--f-sans);
  }
  .bwa-lista--kort td::before {
    content: attr(data-etikett);
    font-family: var(--f-mono); font-size: 0.68rem; text-transform: uppercase;
    letter-spacing: 0.08em; color: var(--ink-faint);
  }
  .bwa-lista--kort td:empty { display: none; }
}

/* ==========================================================================
   CSV-import (V3.11.0)
   ========================================================================== */

.bwa-dold {
  position: absolute; width: 1px; height: 1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}

.bwa-steg {
  display: flex; flex-wrap: wrap; gap: 0.4rem;
  list-style: none; padding: 0; margin: 0 0 1.5rem;
}
.bwa-steg__punkt {
  display: flex; align-items: center; gap: 0.5rem;
  padding: 0.35rem 0.8rem 0.35rem 0.4rem;
  border: 1px solid var(--linje); border-radius: 999px;
  background: var(--snovit); color: var(--ink-faint); font-size: 0.85rem;
}
.bwa-steg__nr {
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.5rem; height: 1.5rem; border-radius: 50%;
  background: var(--paper); color: var(--ink-faint);
  font-family: var(--f-mono); font-size: 0.75rem;
}
.bwa-steg__punkt.ar-klar { color: var(--ink-soft); border-color: rgba(31, 63, 168, 0.25); }
.bwa-steg__punkt.ar-klar .bwa-steg__nr { background: rgba(31, 63, 168, 0.12); color: var(--kobolt); }
.bwa-steg__punkt.ar-aktiv {
  border-color: var(--kobolt); color: var(--ink); font-weight: 600;
}
.bwa-steg__punkt.ar-aktiv .bwa-steg__nr { background: var(--kobolt); color: #fff; }

.bwa-varning { display: block; color: var(--koppar); }

/* Massmarkering i prospectlistan (V3.13.0) */
.bwa-valj-kol { width: 2.6rem; text-align: center; }
.bwa-valj-kol input[type="checkbox"] { width: 1.15rem; height: 1.15rem; cursor: pointer; }
.bwa-rad--vald { background: rgba(31, 63, 168, 0.06); }

.bwa-bulkrad {
  display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap;
  margin: 0 0 0.85rem; padding: 0.6rem 0.9rem;
  border: 1px solid var(--linje); border-radius: var(--radie); background: var(--snovit);
}
.bwa-bulkrad__antal { margin-right: auto; }

/* Destruktivt ska synas som destruktivt — och inte bara på färgen. */
.bwa-knapp--fara {
  background: var(--koppar); border-color: var(--koppar); color: #fff;
}
.bwa-knapp--fara::before { content: "⚠ "; }
.bwa-knapp--fara:hover { filter: brightness(0.94); }

.bwa-dialog {
  position: fixed; inset: 0; z-index: 50; display: flex;
  align-items: center; justify-content: center; padding: 1.5rem;
  background: rgba(16, 22, 31, 0.55);
}
.bwa-dialog[hidden] { display: none; }
.bwa-dialog__kropp {
  background: var(--snovit); border-radius: var(--radie);
  padding: 1.5rem; max-width: 30rem; width: 100%;
  box-shadow: 0 12px 40px rgba(16, 22, 31, 0.25);
}
.bwa-dialog__kropp h2 { margin-top: 0; }

@media (max-width: 720px) {
  .bwa-bulkrad { position: sticky; top: 0; z-index: 5; }
}

/* Preflight-kontroller (V3.12.2) */
.bwa-kontroller { list-style: none; padding: 0; margin: 0.75rem 0 0; display: grid; gap: 0.4rem; }
.bwa-kontroll {
  display: flex; gap: 0.6rem; align-items: baseline;
  padding: 0.45rem 0.65rem; border-radius: var(--radie); background: var(--paper);
  font-size: 0.93rem;
}
.bwa-kontroll--ok  { color: var(--ink-soft); }
.bwa-kontroll--fel { color: var(--koppar); font-weight: 600; background: #fdf6f1; }
.bwa-kort--prov pre.bwa-forhandsvisning { white-space: pre-wrap; word-break: break-word; }

/* Kontaktläge på prospectdetaljen (V3.12.1) */
.bwa-kontaktlage {
  margin: 0 0 14px; padding: 10px 14px; border-radius: var(--radie);
  border-left: 4px solid var(--linje); background: var(--snovit); font-size: 0.95rem;
}
.bwa-kontaktlage--tillaten       { border-left-color: rgba(31, 63, 168, 0.4); }
.bwa-kontaktlage--sparrad        { border-left-color: var(--koppar); }
.bwa-kontaktlage--avregistrerad  { border-left-color: var(--koppar); background: #fdf6f1; font-weight: 600; }

.bwa-dubblettlista {
  list-style: none; padding: 0; margin: 0.75rem 0 0;
  display: grid; gap: 0.35rem;
}
.bwa-dubblettlista li {
  padding: 0.45rem 0.65rem; background: var(--paper);
  border-radius: var(--radie); font-size: 0.9rem;
}

@media (max-width: 600px) {
  .bwa-steg__namn { display: none; }
  .bwa-steg__punkt { padding: 0.35rem; }
}

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

/* ═══ Analytics Visitor Intelligence (V3.15.0) ══════════════════════════
   Evolution av Admins befintliga språk: samma paper/ink/kobolt-palett,
   samma radie och typografi. Inga gradienter, inga dekorativa diagram —
   varje yta svarar på en fråga. */

/* ── Filter: segmenterade kontroller ─────────────────────────────── */
.bwa-filter {
  display: flex; flex-wrap: wrap; gap: 0.6rem 1rem;
  align-items: center; margin: 0 0 1.4rem;
}
.bwa-filter__grupp {
  display: inline-flex; flex-wrap: wrap;
  border: 1px solid var(--linje); border-radius: var(--radie);
  background: var(--snovit); overflow: hidden;
}
.bwa-seg {
  padding: 0.5rem 0.85rem; min-height: 40px;
  display: inline-flex; align-items: center;
  font-size: 0.86rem; color: var(--ink-soft); text-decoration: none;
  border-right: 1px solid var(--linje); background: transparent;
}
.bwa-filter__grupp > .bwa-seg:last-child { border-right: 0; }
.bwa-seg:hover { color: var(--ink); background: rgba(31, 63, 168, 0.05); }
.bwa-seg.ar-aktiv {
  background: var(--kobolt); color: #fff; font-weight: 500;
  box-shadow: inset 0 -2px 0 rgba(0, 0, 0, 0.18);
}
.bwa-seg:focus-visible { outline: 2px solid var(--ink); outline-offset: -2px; }
.bwa-seg--fri {
  border: 1px solid var(--linje); border-radius: var(--radie);
  background: var(--snovit);
}

/* ── Hero: koncentrerad sammanfattning ───────────────────────────── */
.bwa-hero {
  display: grid; gap: 0.9rem; margin-bottom: 0.9rem;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}
.bwa-hero__kort {
  background: var(--snovit); border: 1px solid var(--linje);
  border-radius: var(--radie); padding: 1rem 1.1rem; min-width: 0;
}
.bwa-hero__etikett {
  margin: 0; font-size: 0.8rem; color: var(--ink-faint);
  text-transform: uppercase; letter-spacing: 0.04em;
}
.bwa-hero__varde {
  margin: 0.3rem 0 0.35rem; font-family: var(--f-mono);
  font-size: 1.9rem; line-height: 1.1; color: var(--ink);
}
.bwa-hero__jf { margin: 0; font-size: 0.78rem; color: var(--ink-faint); }
.bwa-hero__jf--upp   { color: #1d7a4c; }
.bwa-hero__jf--ner   { color: var(--koppar); }
.bwa-hero__jf--still { color: var(--ink-faint); }
.bwa-hero__rad { margin: 0 0 1.6rem; font-size: 0.9rem; color: var(--ink-soft); }
.bwa-dampad { color: var(--ink-faint); }

/* ── Avsnittsrubriker ────────────────────────────────────────────── */
.bwa-avsnittstopp {
  display: flex; flex-wrap: wrap; gap: 0.2rem 1rem;
  align-items: baseline; justify-content: space-between; margin-bottom: 0.7rem;
}
.bwa-avsnittstopp h2 { margin: 0; }
.bwa-avsnittstopp .bwa-fotnot { margin: 0; }
.bwa-underrubrik { margin: 1.6rem 0 0.6rem; font-size: 0.95rem; }
.bwa-tvakol { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
.bwa-tvakol > * { min-width: 0; }

/* ── Besöksfeed: den operativa huvudytan ─────────────────────────── */
.bwa-feed { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.bwa-feed__rad {
  background: var(--snovit); border: 1px solid var(--linje);
  border-left: 3px solid var(--linje);
  border-radius: var(--radie); padding: 0.85rem 1rem; min-width: 0;
}
.bwa-feed__rad.ar-konvertering { border-left-color: #1d7a4c; }
.bwa-feed__topp {
  display: flex; flex-wrap: wrap; gap: 0.3rem 0.6rem;
  align-items: baseline; font-size: 0.85rem;
}
.bwa-feed__tid { font-family: var(--f-mono); font-size: 0.95rem; color: var(--ink); }
.bwa-feed__meta { color: var(--ink-soft); }
.bwa-feed__datum { margin-left: auto; color: var(--ink-faint); font-size: 0.78rem; }
.bwa-feed__vag {
  margin: 0.45rem 0; font-size: 0.9rem; color: var(--ink);
  overflow-wrap: anywhere;
}
.bwa-feed__botten {
  display: flex; flex-wrap: wrap; gap: 0.45rem 0.8rem; align-items: center;
}
.bwa-feed__fakta { font-size: 0.82rem; color: var(--ink-faint); font-family: var(--f-mono); }
.bwa-feed__botten .bwa-knapp { margin-left: auto; }

/* ── Märken: beskrivande, aldrig bara färg ───────────────────────── */
.bwa-marken { display: inline-flex; flex-wrap: wrap; gap: 0.3rem; }
.bwa-marke {
  display: inline-block; padding: 0.15rem 0.5rem;
  border: 1px solid var(--linje); border-radius: 999px;
  font-size: 0.75rem; color: var(--ink-soft); background: var(--paper);
  white-space: nowrap;
}
.bwa-marke--stark   { border-color: #1d7a4c; color: #14603a; background: rgba(29, 122, 76, 0.08); }
.bwa-marke--outreach{ border-color: var(--kobolt); color: var(--kobolt); background: rgba(31, 63, 168, 0.07); }
.bwa-marke--varning { border-color: var(--koppar); color: var(--koppar); background: rgba(166, 85, 42, 0.08); }

/* ── Andelsstaplar ───────────────────────────────────────────────── *
   <progress> i stället för en div med inline bredd: värdet ligger i ett
   attribut och all styling här i den externa stilmallen, vilket krävs av
   Admins CSP (style-src 'self', ingen 'unsafe-inline'). Elementet ger
   dessutom rätt semantik och exponerar värdet för skärmläsare utan extra
   ARIA. Fyllnaden behöver vendor-pseudoelement — WebKit och Firefox
   exponerar spår och fyllnad var för sig. */
.bwa-stapel {
  display: inline-block; vertical-align: middle;
  width: min(160px, 42vw); height: 8px;
  border: 0; border-radius: 999px; overflow: hidden;
  background: rgba(16, 22, 31, 0.08);
  appearance: none; -webkit-appearance: none;
}
.bwa-stapel::-webkit-progress-bar   { background: rgba(16, 22, 31, 0.08); border-radius: 999px; }
.bwa-stapel::-webkit-progress-value { background: var(--kobolt); border-radius: 999px; }
.bwa-stapel::-moz-progress-bar      { background: var(--kobolt); border-radius: 999px; }
.bwa-stapel__tal { font-family: var(--f-mono); font-size: 0.8rem; margin-left: 0.5rem; color: var(--ink-faint); }
.bwa-tabell--kallor td:first-child { font-family: var(--f-sans); }

/* ── Signalrutor ─────────────────────────────────────────────────── */
.bwa-signalgrid { display: grid; gap: 0.9rem; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.bwa-signal {
  background: var(--snovit); border: 1px solid var(--linje);
  border-radius: var(--radie); padding: 0.9rem 1rem; min-width: 0;
}
.bwa-signal__tal { margin: 0; font-family: var(--f-mono); font-size: 1.6rem; line-height: 1.1; }
.bwa-signal__etikett { margin: 0.2rem 0 0.3rem; font-size: 0.88rem; color: var(--ink); }
.bwa-signal__not { margin: 0; font-size: 0.78rem; color: var(--ink-faint); }

/* ── Resan genom sajten ──────────────────────────────────────────── */
.bwa-resa { list-style: none; margin: 0; padding: 0; }
.bwa-resa__steg, .bwa-resa__handelse {
  position: relative; padding: 0.5rem 0 0.5rem 1.4rem;
  border-left: 2px solid var(--linje); min-width: 0;
}
.bwa-resa__steg::before {
  content: ""; position: absolute; left: -6px; top: 0.95rem;
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--kobolt); border: 2px solid var(--snovit);
}
.bwa-resa__steg.ar-case::before { background: var(--koppar); }
.bwa-resa__handelse { padding-left: 1.9rem; }
.bwa-resa__handelse::before {
  content: ""; position: absolute; left: -4px; top: 1rem;
  width: 6px; height: 6px; border-radius: 50%; background: var(--ink-faint);
}
.bwa-resa__handelse.ar-intent::before { background: #1d7a4c; }
.bwa-resa__tid { font-family: var(--f-mono); font-size: 0.8rem; color: var(--ink-faint); margin-right: 0.6rem; }
.bwa-resa__namn { font-size: 0.95rem; color: var(--ink); }
.bwa-resa__handelse.ar-intent .bwa-resa__namn { color: #14603a; }
.bwa-resa__path {
  display: block; font-family: var(--f-mono); font-size: 0.74rem;
  color: var(--ink-faint); overflow-wrap: anywhere;
}
.bwa-resa__glapp {
  display: block; font-size: 0.76rem; color: var(--ink-faint);
  font-family: var(--f-mono); margin-top: 0.25rem;
}

/* ── Besökssammanfattning ────────────────────────────────────────── */
.bwa-besok__topp { margin-bottom: 1.2rem; }
.bwa-besok__mening { margin: 0 0 0.3rem; font-size: 1.05rem; color: var(--ink); }
.bwa-besok__fakta { margin: 0; font-size: 0.88rem; color: var(--ink-soft); }
.bwa-tal--text dd { font-size: 0.9rem; }

/* ── Kollapsad legacy och underhåll ──────────────────────────────── */
.bwa-fallbar {
  margin-top: 2rem; border: 1px solid var(--linje);
  border-radius: var(--radie); background: var(--snovit); padding: 0 1.1rem;
}
.bwa-fallbar > summary {
  cursor: pointer; padding: 0.9rem 0; font-size: 0.92rem; color: var(--ink-soft);
  min-height: 44px; display: flex; align-items: center;
}
.bwa-fallbar > summary:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.bwa-fallbar[open] > summary { border-bottom: 1px solid var(--linje); margin-bottom: 0.9rem; }
.bwa-fallbar > *:last-child { margin-bottom: 1.1rem; }
.bwa-underhall { margin-top: 2rem; }

/* ── Mobil: 360–430 px ska vara fullt operativt ──────────────────── */
@media (max-width: 720px) {
  .bwa-hero { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 0.6rem; }
  .bwa-hero__kort { padding: 0.8rem 0.9rem; }
  .bwa-hero__varde { font-size: 1.5rem; }
  .bwa-filter { gap: 0.5rem; }
  .bwa-filter__grupp { width: 100%; }
  .bwa-seg { flex: 1 1 auto; justify-content: center; padding: 0.5rem 0.6rem; }
  .bwa-feed__datum { margin-left: 0; }
  .bwa-feed__botten .bwa-knapp { margin-left: 0; }
  .bwa-stapel { width: min(110px, 30vw); }
  .bwa-tabell { font-size: 0.82rem; }
  .bwa-tabell--kallor { display: block; overflow-x: auto; }
}

/* ═══ Sales: besökskontext i action-kortet (V3.15.1) ════════════════════
   Återanvänder Analytics visuella språk (.bwa-marken/.bwa-marke) och lägger
   bara till det minsta som behövs för att resan och fakta ska sitta rent
   inuti .bwa-action. Ingen omdesign av dashboarden. */
.bwa-action__besok {
  margin: 0.5rem 0 0.6rem;
  padding-left: 0.7rem;
  border-left: 2px solid var(--linje);
  min-width: 0;
}
.bwa-action__vag {
  margin: 0 0 0.25rem;
  font-size: 0.88rem; color: var(--ink);
  overflow-wrap: anywhere;
}
.bwa-action__fakta {
  margin: 0 0 0.35rem;
  font-family: var(--f-mono); font-size: 0.78rem; color: var(--ink-faint);
  overflow-wrap: anywhere;
}
.bwa-action__besok .bwa-marken { display: flex; flex-wrap: wrap; gap: 0.3rem; }
.bwa-action__detaljetikett {
  font-size: 0.74rem; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--ink-faint); margin-right: 0.25rem;
}

@media (max-width: 720px) {
  .bwa-action__besok { padding-left: 0.55rem; }
  .bwa-action__vag   { font-size: 0.85rem; }
  .bwa-action__fakta { font-size: 0.74rem; line-height: 1.5; }
}

/* ═══ Endast för skärmläsare (V3.19.0) ════════════════════════════════════
   `.sr-only` användes redan i Sales-markupen men saknade definition, så
   etiketten "Skjut upp" renderades synlig och bröt över två rader bredvid
   snooze-kontrollen. Etiketten ligger kvar i DOM för hjälpmedel — den ska
   bara inte synas.

   Standardmönstret nedan tar ingen plats i layouten och exponerar ändå
   texten för skärmläsare. white-space: nowrap hindrar att texten radbryts i
   det 1px-stora området, vilket vissa läsare annars läser upp styckvis. */
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  margin: -1px; padding: 0; border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

/* Fokuserbara element får aldrig gömmas: blir ett .sr-only-element
   tangentbordsfokuserat ska det bli synligt igen. */
.sr-only:focus, .sr-only:focus-within, .sr-only:active {
  position: static;
  width: auto; height: auto;
  margin: 0; overflow: visible;
  clip: auto; clip-path: none;
  white-space: normal;
}

/* Canonical CSV-header i importvyn: kompakt, brytbar, läsbar. */
.bwa-csvmall {
  display: block;
  margin: 0.35rem 0 0;
  padding: 0.6rem 0.75rem;
  background: var(--paper);
  border: 1px solid var(--linje);
  border-radius: var(--radie);
  font-family: var(--f-mono);
  font-size: 0.78rem;
  color: var(--ink);
  overflow-wrap: anywhere;
}

/* ═══ CRM Foundation V3.20.0 ═══════════════════════════════════════════ */
.bwa-formgrid { display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.bwa-formgrid > * { min-width:0; }
.bwa-falt { display:block; min-width:0; }
.bwa-select { width:100%; font:inherit; padding:.5rem .65rem; min-height:42px; border:1px solid var(--linje); border-radius:8px; background:#fff; color:var(--ink); }
.bwa-select:focus-visible { outline:2px solid var(--kobolt); outline-offset:1px; }
.bwa-definition { margin:0; display:grid; gap:.85rem; }
.bwa-definition > div { min-width:0; }
.bwa-definition dt { color:var(--ink-faint); font-size:.78rem; font-family:var(--f-mono); text-transform:uppercase; letter-spacing:.08em; margin-bottom:.15rem; }
.bwa-definition dd { margin:0; overflow-wrap:anywhere; }
.bwa-timeline { display:grid; gap:.8rem; margin-top:1rem; }
.bwa-timeline__post { border-left:2px solid var(--linje); padding-left:.9rem; }
.bwa-timeline__post p { margin:.15rem 0; }
.bwa-crm-actions { padding-block:.85rem; }
.bwa-crm-actions .bwa-formfot { margin-top:.65rem; padding-top:.65rem; }
@media (max-width:720px){.bwa-formgrid{grid-template-columns:1fr}.bwa-nav__val,.bwa-nav__ut{font-size:.68rem;padding:.3rem .55rem}.bwa-crm-actions .bwa-inline-form{display:block;width:100%}}

/* ==========================================================================
   Prospect arbetsgrid — V3.20.0-V2
   Alla nio canonical fält visas direkt i listan. Desktop beter sig som ett
   kalkylblad med horisontell scroll; på telefon används fortsatt kortlayout.
   ========================================================================== */
.bwa-prospectgrid {
  width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-gutter: stable;
  border-top: 1px solid var(--linje);
  margin-top: 1rem;
}
.bwa-prospectgrid:focus-visible {
  outline: 2px solid var(--kobolt);
  outline-offset: 3px;
}
.bwa-prospectgrid__tabell {
  /* Basbredden bor HAR, fore mobilbrytpunkten pa rad ~1272. Lagg aldrig ett
     desktopvarde i en senare oscopead regel: mobilens min-width:100% har
     samma specificitet och forlorar da pa dokumentordning. Det var orsaken
     till FYND-09 (1980px-tabell pa 390px-skarm). */
  min-width: 1980px;
  table-layout: auto;
}
.bwa-prospectgrid__tabell th,
.bwa-prospectgrid__tabell td {
  white-space: nowrap;
  padding-right: 0.9rem;
}
.bwa-prospectgrid__tabell .bwa-valj-kol {
  position: sticky;
  left: 0;
  width: 42px;
  min-width: 42px;
  background: var(--snovit);
  z-index: 3;
}
.bwa-prospectgrid__tabell .bwa-prospectgrid__foretag {
  position: sticky;
  left: 42px;
  min-width: 210px;
  max-width: 280px;
  background: var(--snovit);
  z-index: 2;
  box-shadow: 1px 0 0 var(--linje);
}
.bwa-prospectgrid__tabell thead .bwa-valj-kol,
.bwa-prospectgrid__tabell thead .bwa-prospectgrid__foretag {
  z-index: 4;
}
.bwa-gridlank {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0.18rem 0.5rem;
  border: 1px solid var(--linje);
  border-radius: 999px;
  color: var(--kobolt);
  text-decoration: none;
  font-family: var(--f-mono);
  font-size: 0.7rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: var(--snovit);
}
.bwa-gridlank:hover { border-color: var(--kobolt); }
.bwa-gridlank:focus-visible { outline: 2px solid var(--kobolt); outline-offset: 2px; }

@media (max-width: 760px) {
  .bwa-prospectgrid { overflow-x: visible; border-top: 0; margin-top: 0.8rem; }
  .bwa-prospectgrid__tabell { min-width: 100%; table-layout: fixed; }
  .bwa-prospectgrid__tabell th,
  .bwa-prospectgrid__tabell td { white-space: normal; }
  .bwa-prospectgrid__tabell .bwa-valj-kol,
  .bwa-prospectgrid__tabell .bwa-prospectgrid__foretag {
    position: static;
    width: auto;
    min-width: 0;
    max-width: none;
    background: transparent;
    box-shadow: none;
  }
}

/* ═══ CRM Daily Workflow & Archive V3.20.1 ═══════════════════════════ */
.bwa-crm-toolbar { margin-bottom: 1.2rem; }
.bwa-filter--sekundar { margin-top: .55rem; padding-top: .55rem; border-top: 1px solid var(--linje); }
.bwa-crmgrid {
  width: 100%; overflow-x: auto; overscroll-behavior-inline: contain;
  scrollbar-gutter: stable; border-top: 1px solid var(--linje);
}
.bwa-crmgrid:focus-visible { outline: 2px solid var(--kobolt); outline-offset: 3px; }
.bwa-crmgrid__tabell { min-width: 1420px; table-layout: auto; }
.bwa-crmgrid__tabell th, .bwa-crmgrid__tabell td { white-space: nowrap; padding-right: .9rem; }
.bwa-rad--arkiverad { opacity: .72; }
.bwa-crm-chip {
  display:inline-flex; align-items:center; gap:.25rem; padding:.18rem .5rem;
  border:1px solid var(--linje); border-radius:999px; text-decoration:none;
  color:var(--ink); background:var(--snovit); font-family:var(--f-mono);
  font-size:.68rem; letter-spacing:.03em; white-space:nowrap;
}
.bwa-crm-chip--lead { color: var(--kobolt); border-color: var(--linje); }
.bwa-crm-chip--customer { color: #7a3b16; border-color: #d7b39f; }
.bwa-crm-due { white-space:nowrap; }
.bwa-crm-due--overdue { font-weight:700; color:#a33b16; }
.bwa-crm-due--today { font-weight:700; color:var(--kobolt); }
.bwa-crm-quickactions { display:flex; flex-wrap:wrap; gap:.55rem; align-items:center; margin-top:1rem; padding-top:1rem; border-top:1px solid var(--linje); }
.bwa-crm-quickactions form { margin:0; }
.bwa-sidtopp--kompakt { margin-bottom:.7rem; align-items:center; }
.bwa-sidtopp--kompakt .bwa-rubrik { margin:0; }
.bwa-crm-linkrad { display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; }
.bwa-crm-customer-form { display:grid; gap:1rem; }
.bwa-crm-customer-form > .bwa-kort { margin:0; }

@media (max-width: 760px) {
  .bwa-crmgrid { overflow-x:visible; border-top:0; }
  .bwa-crmgrid__tabell { min-width:100%; table-layout:fixed; }
  .bwa-crmgrid__tabell th, .bwa-crmgrid__tabell td { white-space:normal; }
  .bwa-crm-quickactions { align-items:stretch; }
  .bwa-crm-quickactions > *, .bwa-crm-quickactions form, .bwa-crm-quickactions .bwa-knapp { width:100%; }
  .bwa-sidtopp--kompakt { align-items:flex-start; }
}

/* V3.21.0 — Multi-channel Worklist */
.bwa-sidtopp__actions{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}
.bwa-chiprad{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:.75rem}
.bwa-chip{display:inline-flex;align-items:center;padding:.28rem .55rem;border:1px solid var(--bwa-linje,#ddd8cf);border-radius:999px;font-size:.82rem;background:#fff}
.bwa-wave-kanaler{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0 1.4rem}
.bwa-wave-kanal{border:1px solid var(--bwa-linje,#ddd8cf);border-radius:12px;padding:1rem;background:#fff}
.bwa-wave-kanal .bwa-textarea{min-height:8rem}
.bwa-work-filter{margin-bottom:1rem}
.bwa-workgrid{display:grid;gap:.85rem}
.bwa-workcard{background:#fff;border:1px solid var(--bwa-linje,#ddd8cf);border-radius:12px;padding:1rem 1.05rem}
.bwa-workcard--blocked{border-left:4px solid #b65b2a}
.bwa-workcard__head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.bwa-workcard__head h2{font-size:1rem;margin:.2rem 0 .1rem}
.bwa-workcard__due{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.bwa-workcard__meta{display:flex;gap:1.25rem;flex-wrap:wrap;margin:.65rem 0;font-size:.9rem}
.bwa-workcard__message{white-space:normal;border-left:2px solid #d9d6cf;padding:.55rem .75rem;margin:.7rem 0;color:#20283b}
.bwa-workcard__actions{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap;margin-top:.75rem}
.bwa-workcard__actions form{display:inline-flex;margin:0}
.bwa-workcard__skip{margin-top:.65rem;font-size:.9rem}
.bwa-inlineform{display:flex;gap:.5rem;margin-top:.5rem;align-items:center}
.bwa-inlineform .bwa-input{max-width:28rem}
@media (max-width:800px){
  .bwa-wave-kanaler{grid-template-columns:1fr}
  .bwa-workcard__head{flex-direction:column;gap:.35rem}
  .bwa-workcard__meta{display:grid;gap:.35rem}
  .bwa-inlineform{align-items:stretch;flex-direction:column}
  .bwa-inlineform .bwa-input{max-width:none}
}
.bwa-workcard__links{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap;margin:.65rem 0;font-size:.88rem}

.bwa-wave-stats{display:flex;gap:1rem 1.4rem;flex-wrap:wrap;align-items:center}
.bwa-wave-stats span{font-size:.9rem}
.bwa-wave-stats strong{font-size:1.15rem}
.bwa-wave-channelstats{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:.85rem}


/* ═══ V3.21.1-V2 — Wide workspace ═════════════════════════════════════
   Prospects är en databasarbetsyta, inte en artikel. Fullbreddsläget
   breddar ARBETSYTAN — inte dokumentet.

   V3.21.1 lät fullbredd ta bort gridens scrollbox (`overflow-x: visible`)
   men behöll tabellens min-width. Dokumentet blev då tabellens
   scrollcontainer: 651 px horisontell sidscroll vid 1366 px, headern
   lämnade viewporten, och de sticky kolumnerna fäste mot dokumentet i
   stället för mot griden och lade sig över Kontaktperson, Bransch och
   E-post. Det var FYND-02 och FYND-10.

   V2 behåller därför `.bwa-prospectgrid` som lokal scrollcontainer i BÅDA
   lägena — basregeln längre upp äger `overflow-x: auto`, och den ska inte
   överskrivas här. Är arbetsytan bredare än tabellens min-width uppstår
   ingen scroll alls; är den smalare scrollar griden lokalt och de sticky
   kolumnerna fäster där de hör hemma.

   `html`/`body` får aldrig `overflow-x: hidden` som lösning. Det skulle
   dölja data i stället för att ge en väg till den. */
@media (min-width: 761px) {
  .bwa-innehall--workspace {
    width: calc(100% - 2rem);
    max-width: none;
  }
  .bwa-innehall--workspace.bwa-workspace--laptop {
    width: min(1240px, calc(100% - 2rem));
  }
}
@media (max-width: 760px) {
  [data-workspace-toggle] { display: none; }
}

/* ── Miljömarkering ─────────────────────────────────────────────────────
   Syns endast när config.local.php säger BW_MILJO = 'test'. Produktion har
   ingen badge alls, så frånvaro betyder skarpt läge — och en glömd
   konfiguration kan aldrig få produktion att se ut som test. */
.bwa-miljo {
  display: inline-flex; align-items: center;
  margin-left: 0.5rem; padding: 0.1rem 0.45rem;
  font-family: var(--f-mono); font-size: 0.68rem; font-weight: 400;
  text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--koppar); border: 1px solid var(--koppar);
  border-radius: 999px; vertical-align: middle;
}

/* ── Paginering ─────────────────────────────────────────────────────────
   Används av batchdetaljens mottagarlista. Inaktiva steg renderas som
   <span> i stället för att döljas, så raden inte hoppar i sidled när man
   når första eller sista sidan. */
.bwa-paginering {
  display: flex; align-items: center; justify-content: space-between;
  gap: 0.75rem; flex-wrap: wrap;
  margin-top: 1rem; padding-top: 0.85rem;
  border-top: 1px solid var(--linje);
}
.bwa-paginering__steg {
  padding: 0.4rem 0.75rem;
  font-size: 0.85rem; text-decoration: none;
  color: var(--kobolt); border: 1px solid var(--linje); border-radius: 8px;
}
.bwa-paginering__steg:hover { border-color: var(--kobolt); }
.bwa-paginering__steg.ar-inaktiv {
  color: var(--ink-faint); border-color: var(--linje); opacity: 0.5;
}
.bwa-paginering__lage {
  font-family: var(--f-mono); font-size: 0.78rem; color: var(--ink-faint);
}
@media (max-width: 560px) {
  .bwa-paginering { justify-content: center; }
  .bwa-paginering__lage { order: -1; width: 100%; text-align: center; }
}

/* ── Sales: CRM-kontext på actionkortet ─────────────────────────────────
   Sekundär information. Lead Engine-stagen överst är fortfarande signalen
   som styr prioriteringen; CRM-blocket svarar bara på frågan "har jag
   redan gjort något här?". Därför dämpad typografi och ingen egen ram. */
.bwa-action__crm { margin: 0.35rem 0 0; }
.bwa-action__aktivitet {
  margin: 0.5rem 0 0; padding-left: 0.7rem;
  border-left: 2px solid var(--linje);
}
.bwa-action__aktivitetrad { margin: 0; font-size: 0.85rem; }
.bwa-action__akttyp { font-weight: 500; color: var(--ink); }
.bwa-action__akttext {
  margin: 0.1rem 0 0; font-size: 0.85rem; color: var(--ink-faint);
  /* Två rader räcker; hela texten finns i leaddetaljen. */
  overflow-wrap: anywhere;
}
.bwa-action__crmfel {
  margin: 0.35rem 0 0; font-size: 0.82rem;
  color: var(--koppar); font-family: var(--f-mono);
}
@media (max-width: 560px) {
  .bwa-action__aktivitet { padding-left: 0.55rem; }
  .bwa-action__akttext { font-size: 0.82rem; }
}

/* ── Outreach Register ──────────────────────────────────────────────────
   Tabell/list-hybrid som reflowar till kort på mobil via data-etikett,
   samma mönster som övriga admintabeller redan använder. */
.bwa-register__tid { margin-left: 0.35rem; font-size: 0.8rem; }
.bwa-register__kontakt { display: block; margin-top: 0.1rem; }
.bwa-register__amne {
  /* Ellipsis behöver ingen max-width när table-layout: fixed redan gett
     cellen en riktig kolumnbredd. max-width: 0 gjorde tvärtom att cellen
     kollapsade till noll så fort restbredden tog slut. Fulltexten finns
     kvar i title. */
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.bwa-register__klick { font-size: 0.85rem; color: var(--ink-faint); }
.bwa-register__klick.ar-klickad { color: var(--kobolt); font-weight: 500; }
.bwa-register__leverans {
  display: block; margin-top: 0.15rem;
  font-size: 0.8rem; color: var(--koppar); font-weight: 500;
}
.bwa-register__oppna { text-align: right; white-space: nowrap; }
.bwa-snapshot__cta { margin-top: 0.85rem; }

@media (max-width: 900px) {
  .bwa-register__amne { max-width: none; white-space: normal; overflow: visible; }
  .bwa-register__oppna { text-align: left; }
}

/* ── Outreach Register: kolumnfördelning ────────────────────────────────
   Arbetsytan är i första hand desktop och tablet. Prioritetsordningen är
   ämne, företag, projekt — de tre som faktiskt bär information.

   ── Varför en ren procentmodell ──────────────────────────────────────

   Första försöket blandade fem fasta rem-bredder, två procentbredder och
   lät Ämne vara `auto`. Summan såg rimlig ut på papperet, men `auto`
   betyder "det som blir över" — och vid 1024 px fanns ingenting över.
   Ämne renderades till 0 px och headern överlappade Projekt.

   Åtta procenttal som summerar till 100 har ingen restpost. Varje kolumn
   får sin andel av tabellbredden oavsett viewport, och ingen kan
   kollapsa. Det gör dessutom fördelningen exakt förutsägbar: med
   table-layout: fixed och enbart procent är renderad bredd helt enkelt
   andel × tabellbredd.

   Blanda aldrig tillbaka `auto` med stora fasta kolumner här. */
@media (min-width: 761px) {
  .bwa-register { table-layout: fixed; width: 100%; }

  .bwa-register th:nth-child(1), .bwa-register td:nth-child(1) { width:  9%; white-space: nowrap; }
  .bwa-register th:nth-child(2), .bwa-register td:nth-child(2) { width: 18%; }
  .bwa-register th:nth-child(3), .bwa-register td:nth-child(3) { width:  9%; white-space: nowrap; }
  .bwa-register th:nth-child(4), .bwa-register td:nth-child(4) { width: 21%; }
  .bwa-register th:nth-child(5), .bwa-register td:nth-child(5) { width: 20%; }
  .bwa-register th:nth-child(6), .bwa-register td:nth-child(6) { width:  8%; }
  .bwa-register th:nth-child(7), .bwa-register td:nth-child(7) { width:  8%; }
  .bwa-register th:nth-child(8), .bwa-register td:nth-child(8) { width:  7%; }

  /* Företagsnamnet får bryta rad, men inte mitt i ett ord. */
  .bwa-register td:nth-child(2) { overflow-wrap: break-word; }

  /* Statusraderna hålls ihop — "Ej klickad" på två rader ser ut som ett
     fel även när det bara är trångt. */
  .bwa-register__klick,
  .bwa-register__leverans { white-space: nowrap; }
  .bwa-register__oppna a  { white-space: nowrap; }

  /* Projektbadges ligger på rad så länge bredden räcker och wrappar först
     när den faktiskt tar slut. */
  .bwa-register td:nth-child(5) .bwa-chip {
    display: inline-block; margin: 0 0.25rem 0.2rem 0;
    max-width: 100%; overflow: hidden; text-overflow: ellipsis;
    white-space: nowrap; vertical-align: top;
  }
}

/* Tablet: hellre lokal scroll i tabellen än celler pressade till fyra
   textrader. Sidan själv får aldrig scrolla horisontellt.

   76rem ≈ 1216 px. 62rem räckte inte för åtta kolumner med användbara
   informationsbredder — vid 1024 px pressades Ämne till noll. Med den
   här min-width behåller informationskolumnerna sin andel och det som
   inte får plats hanteras av den lokala scrollen. */
@media (min-width: 761px) and (max-width: 1180px) {
  .bwa-register-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .bwa-register { min-width: 76rem; }
}

/* ── Personlig outreach ─────────────────────────────────────────────────
   Composer och granskning. Formulärytorna återanvänder bwa-falt, bwa-input
   och bwa-label; bara det som är specifikt för den här vyn ligger här. */
.bwa-faktalista {
  display: grid; grid-template-columns: auto 1fr;
  gap: 0.35rem 1.1rem; margin: 0.5rem 0 0;
}
.bwa-faktalista dt { color: var(--ink-faint); font-size: 0.85rem; }
.bwa-faktalista dd { margin: 0; }

.bwa-mockup { margin: 0 0 1rem; }
.bwa-mockup__bild {
  display: block; max-width: 100%; height: auto;
  border: 1px solid var(--linje); border-radius: 4px;
}
.bwa-mockup figcaption { margin-top: 0.35rem; }

/* Granskningen visar meddelandet som mottagaren kommer att läsa det.
   white-space bevarar styckeindelningen utan att kräva HTML i texten. */
.bwa-forhandsgranskning {
  margin: 0.75rem 0; padding: 1rem 1.15rem;
  border-left: 3px solid var(--linje); background: #fbfbfc;
  line-height: 1.55; overflow-wrap: anywhere;
}

@media (max-width: 560px) {
  .bwa-faktalista { grid-template-columns: 1fr; gap: 0.1rem 0; }
  .bwa-faktalista dt { margin-top: 0.5rem; }
}
