/* AI-kontoret — skalet (v2 2026-10-14, ström A): appens ram (topprad + innehåll + bottenmeny på mobil),
 * Hem, Offerter och Ny offert. Färger bara via variablerna i css/kontoret.css (mörkt och ljust tema). */

/* ---------- ram ----------
 * Dokumentet scrollar (inte main): toppraden ligger fast överst (sticky), bottenmenyn fast nederst på mobil.
 * En sida som vill fylla fönstret exakt (t.ex. tre kolumner med egen scroll) använder .skal-fyll eller
 * height: calc(100dvh - var(--skal-topp) - var(--skal-botten)). */
body.skal-app { height: auto; min-height: 100%; --skal-topp: 60px; --skal-botten: 0px; }
.skal { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
.skal-topp { flex-shrink: 0; min-height: var(--skal-topp); position: sticky; top: 0; z-index: 30; }
.skal > main { flex: 1 0 auto; min-height: 0; overflow: visible; }
.skal-fyll { height: calc(100vh - var(--skal-topp) - var(--skal-botten)); height: calc(100dvh - var(--skal-topp) - var(--skal-botten)); }
html { scroll-padding-top: 76px; }
.view > * { min-width: 0; }
.verktyg, .filter { min-width: 0; max-width: 100%; }
main:focus { outline: none; }
.hoppa { position: absolute; left: 12px; top: -64px; z-index: 100; background: var(--accent); color: var(--on-accent); padding: 10px 14px; border-radius: 10px; font-weight: 600; text-decoration: none; transition: top .15s; }
.hoppa:focus { top: 10px; outline: 2px solid var(--fg); outline-offset: 2px; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* färgtoner för ikonrutor */
.ton-accent { color: var(--accent-text); background: rgba(245, 165, 36, .14); }
.ton-teal { color: var(--teal-text); background: rgba(44, 197, 176, .14); }
.ton-blue { color: var(--blue-text); background: rgba(76, 141, 255, .14); }
.ton-ok { color: var(--ok-text); background: rgba(60, 203, 127, .14); }

/* sidhuvud (Offerter, Logg) */
.sida-huvud { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px 24px; flex-wrap: wrap; }
.sida-huvud h1 { font-size: clamp(26px, 2.6vw, 32px); margin-top: 10px; }
.sida-huvud p { margin: 6px 0 0; max-width: 640px; }
.sida-knappar { display: flex; gap: 10px; flex-wrap: wrap; }

/* tomma lägen */
.tomt { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; padding: 28px 20px; }
.tomt h2 { font-size: 19px; }
.tomt.stor { padding: 52px 24px 44px; gap: 12px; }
.tomt.stor h2 { font-size: 24px; }
.tomt.rad { flex-direction: row; text-align: left; padding: 16px 18px; gap: 16px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-sm); }
.tomt.rad p { margin: 2px 0 0; }
.tomt .muted { margin: 0; max-width: 460px; font-size: 14px; }
.tomt-ikon { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; flex: none; background: var(--hover); color: var(--muted); border: 1px solid var(--line); }
.tomt-ikon .ico { width: 26px; height: 26px; }
.tomt-ikon.ton-ok { border-color: rgba(60, 203, 127, .3); }

/* ---------- Hem ---------- */
.hem { gap: 30px; max-width: 1240px; }
.hem-topp { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px 28px; flex-wrap: wrap; padding-top: 6px; }
.hem-halsning h1 { font-size: clamp(30px, 3.4vw, 42px); line-height: 1.08; margin-top: 12px; letter-spacing: -.015em; }
.hem-lage { margin: 10px 0 0; color: var(--muted); font-size: 16px; }
.hem-snabb { display: flex; gap: 10px; flex-wrap: wrap; }
.sektion-rubrik { display: flex; align-items: center; gap: 10px; }
.sektion-rubrik h2 { font-size: 19px; }
.rakna { min-width: 24px; height: 24px; padding: 0 8px; border-radius: 999px; background: var(--accent); color: var(--on-accent); font: 700 12.5px/24px var(--body); text-align: center; font-variant-numeric: tabular-nums; }
.beslut { display: flex; flex-direction: column; gap: 14px; }

.komigang { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 18px; padding: 24px; border-radius: 22px; border: 1px solid rgba(245, 165, 36, .38); background: linear-gradient(135deg, rgba(245, 165, 36, .13), rgba(44, 197, 176, .07) 55%, transparent 80%), var(--panel); box-shadow: var(--shadow-sm); }
.komigang::after { content: ""; position: absolute; right: -90px; top: -90px; width: 280px; height: 280px; border-radius: 50%; background: radial-gradient(circle, rgba(245, 165, 36, .22), transparent 70%); pointer-events: none; }
.komigang > * { position: relative; z-index: 1; }
.komigang-text h3 { font-size: 22px; margin-top: 10px; }
.komigang-text p { margin: 6px 0 0; }
.komigang-steg { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
.komigang-steg li { display: flex; align-items: flex-start; gap: 12px; padding: 14px; border-radius: 14px; background: var(--panel2); border: 1px solid var(--line); }
.ks-ikon { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; flex: none; background: rgba(245, 165, 36, .15); color: var(--accent-text); }
.komigang-steg li.klar .ks-ikon { background: var(--ok); color: #0B1730; }
.komigang-steg li.pagar .ks-ikon { background: rgba(76, 141, 255, .16); color: var(--blue-text); }
.ks-txt { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.ks-txt b { font-size: 14.5px; font-weight: 600; }
.ks-txt span { font-size: 13px; color: var(--muted); }
.ks-status { font-size: 11px; font-weight: 600; color: var(--dim); white-space: nowrap; text-transform: uppercase; letter-spacing: .07em; padding-top: 2px; }
.komigang-steg li.klar .ks-status { color: var(--ok-text); }
.komigang-steg li.pagar .ks-status { color: var(--blue-text); }
.komigang-knappar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }

.beslut-lista { list-style: none; margin: 0; padding: 6px; display: flex; flex-direction: column; gap: 2px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-sm); }
.beslut-rad { display: flex; align-items: center; gap: 14px; padding: 11px 12px; border-radius: 12px; color: var(--fg); text-decoration: none; transition: background .15s; }
.beslut-rad:hover { background: var(--hover); }
.beslut-rad:focus-visible { outline-offset: -2px; }
.br-ikon { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; flex: none; }
.br-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.br-txt b { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.br-txt span { font-size: 13px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.br-knapp { display: inline-flex; align-items: center; gap: 4px; padding: 6px 9px 6px 14px; border-radius: 999px; border: 1px solid var(--line); font-size: 13px; font-weight: 600; white-space: nowrap; transition: border-color .15s, background .15s; }
.beslut-rad:hover .br-knapp { border-color: var(--accent); background: rgba(245, 165, 36, .08); }
.br-knapp .ico { width: 15px; height: 15px; }
.beslut-fler { margin: 0; font-size: 13.5px; color: var(--muted); display: flex; gap: 14px; flex-wrap: wrap; padding-left: 4px; }

.hem-kort { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; align-items: start; }
.kort { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-card); padding: 18px; display: flex; flex-direction: column; gap: 14px; box-shadow: var(--shadow-sm); min-width: 0; }
.kort-huvud { display: flex; align-items: center; gap: 10px; }
.kort-huvud h2 { font-size: 16.5px; flex: 1; min-width: 0; }
.kort-ikon { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; flex: none; }
.kort-ikon .ico { width: 18px; height: 18px; }
.kort-lank { display: inline-flex; align-items: center; gap: 2px; font-size: 13px; font-weight: 600; color: var(--muted); text-decoration: none; border-radius: 8px; padding: 4px 4px 4px 6px; white-space: nowrap; }
.kort-lank:hover { color: var(--fg); }
.kort-lank .ico { width: 15px; height: 15px; }
.kort-tal { display: flex; align-items: baseline; gap: 8px; }
.kort-tal b { font: 700 30px/1 var(--display); font-variant-numeric: tabular-nums; }
.kort-tal span { color: var(--muted); font-size: 13.5px; }
.kort-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.kort-lista li + li { border-top: 1px solid var(--line2); }
.kort-lista a { display: flex; align-items: center; gap: 12px; padding: 10px 2px; color: var(--fg); text-decoration: none; border-radius: 8px; }
.kort-lista a:hover .kl-titel { color: var(--accent-text); }
.kl-txt { display: flex; flex-direction: column; gap: 1px; min-width: 0; flex: 1; }
.kl-titel { font-weight: 600; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; transition: color .15s; }
.kl-meta { font-size: 12.5px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kort-lista time { font: 12px var(--mono); color: var(--dim); white-space: nowrap; }
.kort-lista .pill { flex: none; font-size: 11.5px; }
.kort .tomt { padding: 8px 4px 4px; gap: 8px; }
.kort .tomt b { font-family: var(--display); font-weight: 600; font-size: 15.5px; }
.kort .tomt .muted { font-size: 13.5px; }
.kort .tomt .actions { justify-content: center; }
.kort-not { margin: 0; font-size: 13.5px; }
.datumbricka { width: 44px; height: 46px; border-radius: 12px; border: 1px solid var(--line); background: var(--panel2); display: flex; flex-direction: column; align-items: center; justify-content: center; flex: none; line-height: 1; }
.datumbricka b { font: 700 18px/1 var(--display); }
.datumbricka span { font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--accent-text); margin-top: 3px; font-weight: 600; }
.pipeline { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.pipeline a { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 12px; background: var(--panel2); border: 1px solid var(--line2); text-decoration: none; color: var(--fg); transition: border-color .15s; min-width: 0; }
.pipeline a:hover { border-color: var(--accent); }
.pipeline b { font: 700 22px/1.1 var(--display); font-variant-numeric: tabular-nums; }
.pipeline span { font-size: 12px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pipeline a.har { border-color: rgba(44, 197, 176, .45); background: rgba(44, 197, 176, .08); }
.pipeline a.har b { color: var(--teal-text); }

.statusprick { width: 9px; height: 9px; border-radius: 50%; flex: none; background: var(--dim); }
.statusprick.rev { background: var(--teal); } .statusprick.wait { background: var(--accent); } .statusprick.ok { background: var(--ok); }
.statusprick.run { background: var(--blue); animation: pulse 1.4s ease-in-out infinite; } .statusprick.warn { background: var(--danger); }
.kl-meta .st-rev { color: var(--teal-text); } .kl-meta .st-wait { color: var(--accent-text); } .kl-meta .st-ok { color: var(--ok-text); }
.kl-meta .st-run { color: var(--blue-text); } .kl-meta .st-warn { color: var(--danger-text); }

/* Logg: på mobil blir varje rad ett litet block (tid · vem, händelse under) i stället för en hoptryckt tabell */
@media (max-width: 600px) {
  .logg .logg-tabell table, .logg .logg-tabell tbody { display: block; }
  .logg .logg-tabell tr { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 2px 10px; padding: 10px 2px; border-bottom: 1px solid var(--line2); }
  .logg .logg-tabell tr:has(th) { display: none; }
  .logg .logg-tabell td { border: 0; padding: 0; }
  .logg .logg-tabell td:nth-child(1) { font-size: 11.5px; }
  .logg .logg-tabell td:nth-child(3) { grid-column: 1 / -1; grid-row: 2; }
  .logg .logg-tabell td:nth-child(4) { grid-column: 3; grid-row: 1; text-align: right; }
  .logg .avancerat-panel table { min-width: 640px; }
}

/* AI-teamet: medvetet nedtonat — Nova och Rådet ska inte konkurrera med huvuduppgifterna */
.ai-team { display: flex; align-items: center; gap: 6px 20px; flex-wrap: wrap; padding: 12px 16px; border-radius: 14px; border: 1px dashed var(--line); color: var(--muted); font-size: 13.5px; }
.ai-team-rubrik { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--dim); }
.ai-team-lank { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); text-decoration: none; border-radius: 8px; padding: 4px 2px; }
.ai-team-lank b { color: var(--fg); font-weight: 600; }
.ai-team-lank:hover b { color: var(--accent-text); }
.ai-team-lank .ico { width: 16px; height: 16px; }

/* ---------- Offerter ---------- */
.offerter { max-width: 1240px; }
.verktyg { display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.filter { display: flex; gap: 6px; flex-wrap: wrap; }
.fchip { display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 7px 0 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--panel); color: var(--muted); font-size: 14px; font-weight: 500; white-space: nowrap; transition: border-color .15s, color .15s, background .15s; }
.fchip .n { min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: var(--hover); font: 600 12px/22px var(--body); text-align: center; color: inherit; font-variant-numeric: tabular-nums; }
.fchip:hover { color: var(--fg); border-color: var(--line-strong); }
.fchip[aria-pressed="true"] { background: var(--fg); color: var(--bg); border-color: var(--fg); }
.fchip[aria-pressed="true"] .n { background: rgba(127, 127, 127, .28); }
.sok { position: relative; flex: 0 1 320px; min-width: 200px; display: block; }
.sok > .ico { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); color: var(--dim); pointer-events: none; width: 17px; height: 17px; }
.sok .inp { padding: 0 14px 0 38px; height: 40px; border-radius: 999px; }
.olista { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-sm); overflow: hidden; }
.olista-rader { list-style: none; margin: 0; padding: 0; }
.olista-rader li + li { border-top: 1px solid var(--line2); }
.orad { display: grid; grid-template-columns: minmax(0, 1fr) 230px 112px 86px 18px; gap: 16px; align-items: center; padding: 14px 18px; color: var(--fg); text-decoration: none; transition: background .15s; }
a.orad:hover { background: var(--hover); }
a.orad:focus-visible { outline-offset: -3px; }
.ohuvud { padding-top: 10px; padding-bottom: 10px; font-size: 11.5px; color: var(--dim); letter-spacing: .07em; text-transform: uppercase; font-weight: 600; border-bottom: 1px solid var(--line2); background: var(--panel2); }
.o-titel { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.o-titel b { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.o-meta { font-size: 12.5px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.o-kontroll { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 4px; }
.o-kontroll .pill { font-size: 11px; padding: 1px 8px; }
.o-status { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; min-width: 0; }
.osteg { display: inline-flex; gap: 3px; }
.osteg i { width: 18px; height: 4px; border-radius: 2px; background: var(--line); }
.osteg i.pa { background: var(--teal); }
.o-tid, .o-kost { font: 12.5px var(--mono); color: var(--muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
.hoger { text-align: right; }
.o-pil { color: var(--dim); display: grid; place-items: center; }
.o-pil .ico { width: 16px; height: 16px; }
a.orad:hover .o-pil { color: var(--accent-text); }
.sidor { display: flex; align-items: center; justify-content: center; gap: 12px; }
.tre-steg { list-style: none; margin: 6px 0 6px; padding: 0; display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
.tre-steg li { display: flex; align-items: center; gap: 8px; padding: 7px 14px 7px 7px; border-radius: 999px; background: var(--panel2); border: 1px solid var(--line); font-size: 13.5px; }
.tre-steg b { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: rgba(245, 165, 36, .16); color: var(--accent-text); font-size: 12px; }

/* ---------- Ny offert ---------- */
.ny-offert .ask { margin-top: clamp(0px, 3vh, 36px); gap: 14px; }
.ny-offert .ask h1 { margin-top: -4px; }
.tillbaka { display: inline-flex; align-items: center; gap: 2px; align-self: flex-start; color: var(--muted); text-decoration: none; font-size: 13.5px; font-weight: 500; border-radius: 8px; padding: 2px 6px 2px 0; }
.tillbaka:hover { color: var(--fg); }
.ico.vand { transform: rotate(180deg); }
.ingress { margin: 0; font-size: 16px; max-width: 660px; }
.lank-banner { text-decoration: none; color: inherit; }
.lank-banner > span { flex: 1; }
.lank-banner:hover { border-color: var(--teal); }
.banner > .ico { flex: none; }
.exempel { display: flex; flex-direction: column; gap: 8px; }
.ny-offert .drop { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 26px 22px; }
.drop-ikon { width: 26px; height: 26px; color: var(--accent-text); margin-bottom: 4px; }
.drop-titel { font-weight: 600; color: var(--fg); }
.drop-text { font-size: 13.5px; }
.skicka { display: flex; flex-direction: column; gap: 12px; margin-top: 6px; }
/* förkontrollen och frågorna i offerten (2026-10-22): det som saknas frågas först */
.forkontroll, .offert-fragor { display: flex; flex-direction: column; gap: 10px; border-color: var(--accent); }
.forkontroll h3, .offert-fragor h3 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 16px; }
.forkontroll h3 .ico, .offert-fragor h3 .ico { width: 18px; height: 18px; color: var(--accent-text); }
.forkontroll .hint, .offert-fragor .hint { margin: 0; }
.forkontroll-fraga { display: grid; gap: 6px; }
.offert-fragor .actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.offert-kontroll { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 4px; font-size: 14px; color: var(--accent-text); }
.avancerat-offert > summary { cursor: pointer; font-weight: 600; display: flex; align-items: center; gap: 8px; }
.avancerat-offert[open] > summary { margin-bottom: 12px; }
.avancerat-offert .ico { width: 16px; height: 16px; }
.teknik { margin-top: 6px; }
.teknik .kv { margin-top: 10px; }
.teknik .hint { margin: 8px 0 0; }

/* ---------- bottenmeny (mobil) + "Mer" ---------- */
.flikar { display: none; }
.ark { padding: 0; border: 0; margin: auto 0 0; width: 100%; max-width: 100%; max-height: 88dvh; background: transparent; color: var(--fg); overflow: visible; }
.ark::backdrop { background: rgba(5, 10, 22, .55); }
.ark-inner { background: var(--panel); border: 1px solid var(--line); border-bottom: 0; border-radius: 22px 22px 0 0; padding: 8px 16px calc(16px + env(safe-area-inset-bottom)); box-shadow: 0 -12px 40px rgba(0, 0, 0, .3); max-height: 88dvh; overflow: auto; }
.ark[open] .ark-inner { animation: ark-upp .24s cubic-bezier(.2, .8, .2, 1); }
@keyframes ark-upp { from { transform: translateY(40%); opacity: 0; } to { transform: none; opacity: 1; } }
.ark-grepp { width: 40px; height: 5px; border-radius: 3px; background: var(--line); margin: 4px auto 10px; }
.ark-huvud { display: flex; align-items: center; gap: 12px; padding: 4px 2px 14px; border-bottom: 1px solid var(--line2); margin-bottom: 10px; }
.ark-vem { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.ark-vem b { font-family: var(--display); font-size: 16px; font-weight: 600; }
.ark-vem span { font-size: 12.5px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ark-stang { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--hover); color: var(--muted); flex: none; }
.ark-etikett { font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--dim); margin: 8px 4px 8px; }
.ark-rutnat { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 6px; }
.ark-punkt { display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 14px; border-radius: 14px; background: var(--panel2); border: 1px solid var(--line2); color: var(--fg); text-decoration: none; font-weight: 600; font-size: 15px; }
.ark-punkt .ico { color: var(--muted); }
.ark-lista { display: flex; flex-direction: column; gap: 2px; }
.ark-rad { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 50px; padding: 0 10px; border-radius: 12px; color: var(--fg); text-decoration: none; font-size: 15.5px; font-weight: 500; text-align: left; }
.ark-rad:hover, .ark-rad:focus-visible { background: var(--hover); }
.ark-rad .ico { color: var(--muted); }
.ark-rad .ark-pil { margin-left: auto; width: 16px; height: 16px; color: var(--dim); }
.ark-rad[aria-current="page"] { background: var(--hover); font-weight: 600; }
.ark-rad[aria-current="page"] .ico:first-child { color: var(--accent-text); }
.ark-ut { color: var(--danger-text); }
.ark-ut .ico { color: var(--danger-text); }

@media (max-width: 900px) {
  .komigang-steg { grid-template-columns: 1fr; }
  .orad { grid-template-columns: minmax(0, 1fr) 200px 100px 18px; }
  .orad .o-kost, .ohuvud > span:nth-child(4) { display: none; }
}
@media (max-width: 767px) {
  body.skal-app { --skal-topp: 56px; }
  body.skal-app.har-flikar { --skal-botten: calc(70px + env(safe-area-inset-bottom)); }
  .har-flikar .flikar { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); align-items: end; position: sticky; bottom: 0; z-index: 25; padding: 6px max(6px, env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(6px, env(safe-area-inset-left)); background: var(--tabbar); border-top: 1px solid var(--line2); backdrop-filter: saturate(1.4) blur(14px); -webkit-backdrop-filter: saturate(1.4) blur(14px); }
  .flik { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 3px; min-height: 52px; padding: 6px 2px 4px; border-radius: 12px; color: var(--dim); text-decoration: none; font-size: 11px; font-weight: 600; letter-spacing: .01em; -webkit-tap-highlight-color: transparent; }
  .flik .ico { width: 23px; height: 23px; }
  .flik[aria-current="page"] { color: var(--fg); }
  .flik[aria-current="page"] > .ico { color: var(--accent-text); }
  .flik[aria-current="page"]::before { content: ""; position: absolute; top: -7px; left: 32%; right: 32%; height: 3px; border-radius: 0 0 3px 3px; background: var(--accent); }
  .flik:focus-visible { outline-offset: -2px; }
  .flik-ord { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .flik-mote { color: var(--fg); }
  .flik-rund { width: 56px; height: 56px; margin-top: -28px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(135deg, var(--accent), #FFD27A); color: #0B1730; box-shadow: 0 8px 22px rgba(245, 165, 36, .38), 0 0 0 5px var(--tabbar-ring); transition: transform .15s; }
  .flik-rund .ico { width: 26px; height: 26px; }
  .flik-mote:active .flik-rund { transform: scale(.94); }
  .flik-mote[aria-current="page"]::before { display: none; }
  .flik-mote[aria-current="page"] .flik-ord { color: var(--accent-text); }
  .flik-badge { position: absolute; top: 2px; left: calc(50% + 5px); min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--accent); color: var(--on-accent); font: 700 10.5px/18px var(--body); text-align: center; box-shadow: 0 0 0 2px var(--tabbar-ring); }
  .toast { bottom: calc(96px + env(safe-area-inset-bottom, 0px)); }

  .hem { gap: 24px; }
  .hem-halsning h1 { margin-top: 10px; }
  .hem-lage { font-size: 15px; }
  .hem-snabb { width: 100%; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 8px; }
  .hem-snabb .btn { flex-direction: column; gap: 6px; padding: 12px 6px; min-height: 76px; font-size: 12.5px; line-height: 1.25; text-align: center; }
  .hem-snabb .btn .ico { width: 22px; height: 22px; }
  .komigang { padding: 18px; border-radius: 18px; }
  .komigang-text h3 { font-size: 19px; }
  .komigang-knappar .btn.primary { flex: 1; }
  .beslut-lista { padding: 4px; }
  .beslut-rad { gap: 12px; padding: 10px 8px; }
  .br-ikon { width: 36px; height: 36px; border-radius: 10px; }
  .br-knapp { padding: 0; border: 0; }
  .br-knapp-txt { display: none; }
  .br-txt b { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.35; }
  .beslut-rad:hover .br-knapp { background: none; }
  .tomt.rad { align-items: flex-start; }

  .verktyg { flex-direction: column; align-items: stretch; }
  .filter { flex-wrap: nowrap; overflow-x: auto; margin: 0 -2px; padding: 2px; scrollbar-width: none; }
  .filter::-webkit-scrollbar { display: none; }
  .sok { flex: 1 1 auto; min-width: 0; }
  .ohuvud { display: none; }
  .orad { grid-template-columns: auto minmax(0, 1fr) 18px; grid-template-areas: "titel titel pil" "status status pil" "tid kost pil"; gap: 8px 12px; padding: 14px 14px; }
  .orad .o-titel { grid-area: titel; }
  .orad .o-titel b { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .orad .o-status { grid-area: status; flex-direction: row; align-items: center; gap: 10px; flex-wrap: wrap; }
  .orad .o-tid { grid-area: tid; }
  .orad .o-kost { grid-area: kost; display: block; text-align: left; }
  .orad .o-pil { grid-area: pil; }
}
@media (prefers-reduced-motion: reduce) { .ark[open] .ark-inner { animation: none; } }
.ny-offert .val { align-items: flex-end; }
.ny-offert .valf { flex: 1 1 320px; min-width: 0; }
/* laddar (sökning, filter, sidbyte): listan tonas ned i stället för att hoppa */
.laddar { opacity: .55; transition: opacity .2s; pointer-events: none; }

/* ---------- Historik (2026-10-17): flikar Kontoret · Nova · Rådet ---------- */
.historik .filter .fchip { padding: 0 14px; gap: 7px; }
.historik .filter .fchip .ico { width: 16px; height: 16px; }
.historik .fchip[aria-selected="true"] .ico { color: inherit; }
.historik-del { gap: 14px; }
.historik-del-rad { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.historik-del-rad p { margin: 0; flex: 1 1 220px; color: var(--muted); }
.historik-del h3 { margin-top: 4px; font-size: 14px; color: var(--muted); font-weight: 600; }
.historik-besok { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 2px; }
.historik-besok time { color: var(--dim); }

/* ---------- "Avancerat": riktiga inställningar bakom en tydlig knapp (enkelt först) ---------- */
details.avancerat-panel { padding: 0; }
details.avancerat-panel > summary { list-style: none; display: flex; align-items: center; gap: 10px; padding: 14px 18px; font-size: 14px; font-weight: 600; color: var(--fg); }
details.avancerat-panel > summary::-webkit-details-marker { display: none; }
details.avancerat-panel > summary::after { content: ""; margin-left: auto; width: 8px; height: 8px; border-right: 2px solid var(--muted); border-bottom: 2px solid var(--muted); transform: rotate(45deg); transition: transform .2s; }
details.avancerat-panel[open] > summary::after { transform: rotate(-135deg); }
details.avancerat-panel > :not(summary) { margin: 0 18px 16px; }

/* ---------- Ny offert 2026-10-17: en knapp per bransch, kompakt bilaga, Avancerat ---------- */
.ny-offert .ask { gap: 16px; }
.ny-offert .ingress { font-size: 15.5px; }
.exempel-rad { margin-top: -4px; }
.exempel-rad .chip { padding: 7px 12px; font-size: 13.5px; }
.branschval { border: 0; margin: 0; padding: 0; min-width: 0; }
.branschval legend { padding: 0; margin-bottom: 8px; font-size: 13px; font-weight: 600; color: var(--muted); }
.bknappar { display: flex; flex-wrap: wrap; gap: 8px; }
.bknapp { position: relative; display: inline-flex; cursor: pointer; }
.bknapp input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.bknapp > span { display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 0 14px; border-radius: 12px; border: 1px solid var(--line); background: var(--panel); color: var(--fg); font-size: 14px; font-weight: 500; transition: border-color .15s, background .15s, box-shadow .15s; }
.bknapp > span .ico { width: 16px; height: 16px; color: var(--accent-text); }
.bknapp:hover > span { border-color: var(--line-strong); }
.bknapp input:checked + span { border-color: var(--accent); background: rgba(245, 165, 36, .14); box-shadow: 0 0 0 3px rgba(245, 165, 36, .18); font-weight: 600; }
.bknapp input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
.bknapp-egen { width: 7px; height: 7px; border-radius: 50%; background: var(--teal); flex: none; }
.drop.drop-kompakt { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 12px; align-items: center; text-align: left; padding: 14px 16px; border-width: 1.5px; }
.drop-kompakt .drop-ikon { grid-row: 1 / span 2; margin: 0; width: 24px; height: 24px; }
.drop-kompakt .drop-titel { font-size: 14.5px; }
.drop-kompakt .drop-text { font-size: 12.5px; color: var(--dim); }
.drop-kompakt .hint { grid-column: 2; }
.avancerat-panel > summary .ico { width: 17px; height: 17px; color: var(--muted); }
.avancerat-innehall { display: flex; flex-direction: column; gap: 12px; }
.avancerat-innehall .valc { min-width: 0; }
.avancerat-innehall .hint { margin: 0; }
.avancerat-lankar { display: flex; gap: 8px; flex-wrap: wrap; }
@media (max-width: 600px) {
  .bknapp > span { min-height: 42px; padding: 0 12px; font-size: 13.5px; }
  .exempel-rad { flex-direction: row; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: -2px; padding: 2px; }
  .exempel-rad::-webkit-scrollbar { display: none; }
  .exempel-rad .chip { width: auto; flex: none; }
}

/* ---------- Kontoret (Hem) 2026-10-17: tre knappar, ansiktsplats, Avancerat ---------- */
.hem-halsning { display: flex; align-items: center; gap: 18px; }
.hem-ansikte { display: none; }
.hem-ansikte.har-ansikte { display: block; width: 72px; height: 72px; border-radius: 50%; overflow: hidden; flex: none; background: var(--panel2); border: 1px solid var(--line); }
.hem-ansikte.har-ansikte canvas, .hem-ansikte.har-ansikte svg, .hem-ansikte.har-ansikte img { width: 100%; height: 100%; display: block; }
/* 2026-10-22 (Tommy): chatten överst på startsidan – en rad som kan växa till hela samtalet */
.hem-chatt { display: grid; gap: 7px; padding: 10px 12px; border-radius: 18px; background: var(--panel); border: 1px solid var(--line); box-shadow: var(--shadow-sm); }
.hem-chatt-samtal { display: grid; gap: 6px; max-height: 238px; overflow-y: auto; padding: 2px 2px 4px; }
.hc-msg { display: grid; gap: 6px; max-width: min(640px, 92%); }
.hc-msg.anvandare { justify-self: end; }
.hc-bub { padding: 7px 12px; border-radius: 14px; background: var(--panel2); border: 1px solid var(--line); line-height: 1.4; font-size: 14.5px; overflow-wrap: anywhere; }
.hc-msg.anvandare .hc-bub { background: var(--accent); color: var(--on-accent); border-color: var(--accent); border-bottom-right-radius: 6px; }
.hc-kort { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px; padding: 6px 10px; border-radius: 14px; border: 1px dashed var(--line-strong); }
.hc-kort-txt { display: grid; gap: 2px; min-width: 0; }
.hc-kort-txt span { color: var(--muted); font-size: 13.5px; }
.hc-kort-knappar { display: flex; gap: 6px; }
.hc-besked { margin: 0; font-size: 14px; color: var(--muted); }
.hc-fel { color: var(--danger-text); }
.hem-chatt-rad { display: flex; align-items: flex-end; gap: 8px; }
.hem-chatt-rad textarea { flex: 1 1 auto; min-height: 40px; max-height: 140px; height: auto; resize: none; overflow-y: auto; field-sizing: content; font-size: 15.5px; line-height: 1.4; border-radius: 12px; padding: 9px 12px; }   /* 2026-11-02: växer med texten; manuell resize låste höjden */
.hem-chatt-rad .btn { height: 40px; min-width: 40px; border-radius: 12px; }
.hem-chatt-fot { display: flex; flex-wrap: wrap; gap: 4px 16px; align-items: center; font-size: 13px; }
.hem-chatt-fot a { color: var(--accent); text-decoration: none; font-weight: 600; }
.hem-chatt-fot .hint { margin-left: auto; }
.hc-verktyg { display: inline-flex; align-items: center; gap: 4px; }
.hc-verktyg .btn { height: 32px; min-width: 32px; padding: 0 10px; display: inline-flex; align-items: center; gap: 6px; }
.hc-meta { font-size: 12px; color: var(--muted); padding: 0 6px; }
.hem-chatt .sek-prickar { display: inline-flex; gap: 4px; align-items: center; height: 14px; }
.hem-chatt .sek-prickar i { width: 6px; height: 6px; border-radius: 50%; background: var(--muted); animation: hc-blink 1.2s infinite; }
.hem-chatt .sek-prickar i:nth-child(2) { animation-delay: .2s; }
.hem-chatt .sek-prickar i:nth-child(3) { animation-delay: .4s; }
@keyframes hc-blink { 0%, 80%, 100% { opacity: .25; } 40% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .hem-chatt .sek-prickar i { animation: none; } }
@media (max-width: 600px) { .hem-chatt { padding: 10px; border-radius: 16px; } .hem-chatt-fot .hint { margin-left: 0; flex-basis: 100%; } }
.hem-tre { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.hem-knapp { display: flex; align-items: center; gap: 14px; min-height: 76px; padding: 14px 18px; border-radius: 18px; background: var(--panel); border: 1px solid var(--line); color: var(--fg); text-decoration: none; box-shadow: var(--shadow-sm); transition: transform .15s, border-color .15s, box-shadow .15s; }
.hem-knapp b { font-family: var(--display); font-weight: 600; font-size: 17px; line-height: 1.25; }
.hem-knapp:hover { transform: translateY(-2px); border-color: var(--line-strong); }
.hem-knapp:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.hk-ikon { width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; flex: none; }
.hk-ikon .ico { width: 22px; height: 22px; }
.hem-knapp-primar { background: var(--accent); border-color: var(--accent); color: var(--on-accent); box-shadow: 0 8px 22px rgba(245, 165, 36, .26); }
.hem-knapp-primar:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.hem-knapp-primar .hk-ikon { background: rgba(11, 23, 48, .12); color: var(--on-accent); }
.komigang-steg li { align-items: center; }
.avancerat-rutnat { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px; }
.av-ruta { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 14px; border-radius: 12px; background: var(--panel2); border: 1px solid var(--line2); color: var(--fg); text-decoration: none; font-size: 14px; font-weight: 500; transition: border-color .15s; }
.av-ruta .ico { width: 18px; height: 18px; color: var(--muted); }
.av-ruta:hover { border-color: var(--accent); }
@media (max-width: 767px) {
  .hem-ansikte.har-ansikte { width: 56px; height: 56px; }
  .hem-tre { gap: 8px; }
  .hem-knapp { flex-direction: column; justify-content: center; text-align: center; gap: 8px; min-height: 96px; padding: 12px 6px; border-radius: 16px; }
  .hem-knapp b { font-size: 13px; font-family: var(--body); }
  .hk-ikon { width: 38px; height: 38px; border-radius: 12px; }
  .avancerat-rutnat { grid-template-columns: 1fr 1fr; }
}

/* ---------- Min profil (2026-10-18) ---------- */
[x-cloak] { display: none !important; }
.profil { max-width: 1040px; }
.profil-rutnat { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; align-items: start; }
.profil-du { grid-column: 1 / -1; }
.profil-vem { display: flex; align-items: center; gap: 14px; }
.profil-avatar { width: 52px; height: 52px; font-size: 18px; flex: none; }
.profil-vem-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.profil-vem-txt b { font-family: var(--display); font-size: 18px; font-weight: 600; }
.profil-vem-txt span { font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profil-rad { display: flex; gap: 8px; max-width: 480px; }
.profil-rad .inp { flex: 1; min-width: 0; }
.profil-ok { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--ok-text); }
.profil-ok .ico { width: 16px; height: 16px; }
.profil-losen-form { display: flex; flex-direction: column; gap: 10px; }
.profil-ansikte { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.profil-ansikte b { flex: 1; min-width: 120px; }
.profil-val { display: flex; flex-direction: column; gap: 10px; }
.segval { display: inline-flex; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--panel2); align-self: flex-start; }
.segval button { min-height: 40px; padding: 0 16px; font-size: 14px; font-weight: 500; color: var(--muted); }
.segval button + button { border-left: 1px solid var(--line); }
.segval button[aria-pressed="true"] { background: var(--accent); color: var(--on-accent); font-weight: 600; }
.segval button:focus-visible { outline-offset: -3px; }

/* ---------- Importera (2026-10-18): ett kort per källa, kortet på Kontoret ---------- */
.ton-tom { color: var(--muted); background: var(--panel2); }
.importera { max-width: 1040px; }
.import-rutnat { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.import-kort, .hem-import { flex-direction: row; align-items: center; gap: 14px; color: inherit; text-decoration: none; transition: border-color .15s, transform .15s, box-shadow .15s; }
a.import-kort:hover, .hem-import:hover { border-color: var(--line-strong); transform: translateY(-1px); box-shadow: var(--shadow); }
a.import-kort:focus-visible, .hem-import:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; }
.import-kort .kort-ikon, .hem-import .kort-ikon { width: 40px; height: 40px; border-radius: 12px; align-self: flex-start; }
.import-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.import-txt b { font-family: var(--display); font-size: 16px; font-weight: 600; }
.import-txt > span { font-size: 13.5px; color: var(--muted); }
.import-txt > .import-status { display: flex; align-items: center; gap: 7px; margin-top: 5px; font-size: 12.5px; font-weight: 500; color: var(--muted); }
.import-status > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.import-status::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--dim); }
.import-status.ok { color: var(--ok-text); }
.import-status.ok::before { background: var(--ok); }
.import-status.varn { color: var(--accent-text); }
.import-status.varn::before { background: var(--accent); }
.import-pil { flex: none; width: 18px; height: 18px; color: var(--muted); }
.import-kort.kommer { opacity: .6; border-style: dashed; box-shadow: none; cursor: default; }
.hem-import-kallor { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.hik { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; color: var(--muted); background: var(--panel2); border: 1px solid var(--line); }
.hik .ico { width: 15px; height: 15px; }
.hik.ok { color: var(--ok-text); background: rgba(60, 203, 127, .14); border-color: rgba(60, 203, 127, .35); }
/* Företaget på Hem (2026-10-22): läget i korthet som små etiketter */
.hem-foretag { margin-bottom: 0; }
.hem-foretag-chips { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; max-width: 52%; }
.hfc { font-size: 12.5px; line-height: 1.3; padding: 5px 10px; border-radius: 999px; color: var(--muted); background: var(--panel2); border: 1px solid var(--line); white-space: nowrap; }
.hfc.ok { color: var(--ok-text); background: rgba(60, 203, 127, .10); border-color: rgba(60, 203, 127, .30); }
.hfc.vantar { color: var(--accent-text); background: rgba(245, 165, 36, .12); border-color: rgba(245, 165, 36, .45); font-weight: 600; }
.forslag-banner { border-color: var(--accent); }
@media (max-width: 600px) {
  .import-rutnat { grid-template-columns: 1fr; gap: 10px; }
  .hem-import { flex-wrap: wrap; }
  .hem-import .import-txt { flex-basis: calc(100% - 90px); }
  .hem-import-kallor { order: 3; flex-basis: 100%; justify-content: flex-start; padding-left: 54px; }
  .hem-foretag-chips { order: 3; flex-basis: 100%; max-width: none; justify-content: flex-start; padding-left: 54px; }
}

/* ---------- Kunder (2026-10-19): länk till kundkortet från Sekreteraren och Offerter, Offerter i Mer på telefon ---------- */
.kundlank { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; min-height: 28px; padding: 0 11px 0 9px; border-radius: 999px; border: 1px solid var(--line); background: var(--panel2); color: var(--fg); font-size: 13px; font-weight: 600; text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kundlank .ico { width: 15px; height: 15px; flex: none; color: var(--blue-text); }
.kundlank:hover { border-color: var(--line-strong); background: var(--hover); }
.view .head .kundlank { margin: 6px 0 2px; }
.o-kund { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; font-weight: 600; color: var(--blue-text); min-width: 0; }
.o-kund .ico { width: 14px; height: 14px; flex: none; }
.ark-rad .rakna { margin-left: auto; }
.ark-rad .rakna + .ark-pil { margin-left: 6px; }

/* ---------- Växel (Min profil, 2026-10-19): ansiktet i arbetsvyer, detaljer ---------- */
.vaxel { display: flex; align-items: center; justify-content: space-between; gap: 14px; width: 100%; min-height: 44px; padding: 8px 0 0; border-top: 1px solid var(--line2); color: var(--fg); font-size: 14px; font-weight: 500; text-align: left; }
.vaxel-txt { flex: 1; min-width: 0; }
.vaxel-spar { position: relative; flex: none; width: 44px; height: 26px; border-radius: 999px; background: var(--track, var(--line)); transition: background .15s; }
.vaxel-spar i { position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .3); transition: transform .15s; }
.vaxel[aria-checked="true"] .vaxel-spar { background: var(--accent); }
.vaxel[aria-checked="true"] .vaxel-spar i { transform: translateX(18px); }
.vaxel:focus-visible { outline: 2px solid var(--ring); outline-offset: 3px; border-radius: 8px; }
@media (prefers-reduced-motion: reduce) { .vaxel-spar, .vaxel-spar i { transition: none; } }

/* ---------- Visa detaljer (2026-10-19): modellval, kostnader och AI-teamets steg bara för den som vill ---------- */
html:not([data-detaljer="pa"]) .sc-detalj { display: none !important; }
html:not([data-detaljer="pa"]) .pipe { grid-template-columns: 1fr; }
.detaljer-knapp[aria-pressed="true"] { color: var(--accent-text); border-color: rgba(245, 165, 36, .45); }
.detaljer-knapp .ico { width: 16px; height: 16px; }
@media (min-width: 901px) {
  html:not([data-detaljer="pa"]) .orad { grid-template-columns: minmax(0, 1fr) 230px 112px 18px; }
}

/* ---------- Telefonen (2026-10-19, Astra): dagens uppgifter före Mötet ----------
   Kontoret: "Behöver ditt beslut" direkt under hälsningen, snabbknapparna (utan Starta möte – mikrofonen finns i menyn)
   som en smal rad efter. Mikrofonen i bottenmenyn står kvar i mitten men lugnare: kontur i stället för fylld, lägre. */
@media (max-width: 767px) {
  .hem > * { order: 9; }
  .hem > .hem-topp { order: 0; }
  .hem > .beslut { order: 1; }
  .hem > .hem-tre { order: 2; }
  .hem > .hem-import { order: 3; }
  .hem > .hem-kort { order: 4; }
  .hem > .hem-avancerat { order: 5; }
  .hem-tre { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 8px; }
  .hem-tre .hem-knapp-mote { display: none; }
  .hem-tre .hem-knapp { flex-direction: row; justify-content: flex-start; text-align: left; gap: 10px; min-height: 54px; padding: 8px 12px; border-radius: 14px; box-shadow: none; }
  .hem-tre .hem-knapp b { font-size: 14px; }
  .hem-tre .hk-ikon { width: 34px; height: 34px; border-radius: 10px; }
  .hem-tre .hk-ikon .ico { width: 19px; height: 19px; }
  .hem-tre .hem-knapp-primar { box-shadow: none; }

  .flik-mote { color: var(--dim); }
  .flik-rund { width: 48px; height: 48px; margin-top: -16px; background: var(--panel); color: var(--accent-text); border: 1.5px solid rgba(245, 165, 36, .6); box-shadow: 0 0 0 4px var(--tabbar-ring); }
  .flik-rund .ico { width: 23px; height: 23px; }
  .flik-mote[aria-current="page"] .flik-rund { background: linear-gradient(135deg, var(--accent), #FFD27A); color: #0B1730; border-color: transparent; }
}

/* ---------- Enkelt läge (2026-10-23): ett huvudflöde på startsidan ---------- */
.hem-topp { position: relative; }
/* lägesväljaren: båda lägena syns, det aktiva är markerat (Serguei: «man ska se hur man kommer ut») */
.he-lagen { display: inline-flex; padding: 3px; gap: 2px; border-radius: 999px; background: var(--panel2); border: 1px solid var(--line); flex: none; }
.he-lage-val { border: 0; background: none; color: var(--muted); font: inherit; font-size: 13.5px; font-weight: 600; padding: 6px 12px; border-radius: 999px; cursor: pointer; white-space: nowrap; }
.he-lage-val:hover { color: var(--fg); }
.he-lage-val.on { background: var(--panel); color: var(--fg); box-shadow: 0 1px 3px rgba(0, 0, 0, .18); cursor: default; }
.hem-topp .he-lage-plats { position: absolute; top: 0; right: 0; }
.hem-enkel { display: grid; gap: 18px; max-width: 1080px; margin-inline: auto; width: 100%; }
.he-topp { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.he-topp h1 { margin: 2px 0 0; font-size: clamp(24px, 3vw, 32px); }
/* chatten till vänster, Elsa till höger */
.he-duo { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 16px; align-items: stretch; }
.he-duo-utan { grid-template-columns: minmax(0, 1fr); }
.he-duo-chatt { min-width: 0; }
.he-elsa { display: grid; align-content: start; justify-items: center; gap: 12px; padding: 16px; border-radius: 20px; background: var(--panel); border: 1px solid var(--line); text-align: center; }
.he-elsa-ansikte { width: 200px; height: 240px; border-radius: 18px; overflow: hidden; display: grid; place-items: center; background: var(--panel2); }
.he-elsa-ansikte canvas, .he-elsa-ansikte svg, .he-elsa-ansikte img { width: 100%; height: 100%; display: block; object-fit: cover; }
.he-elsa-ansikte .sek-ass-ini { font-size: 54px; font-weight: 700; color: var(--muted); }
.he-elsa-text { display: grid; gap: 4px; }
.he-elsa-text b { font-size: 17px; }
.he-elsa-knappar { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.he-elsa-rost { display: inline-flex; align-items: center; gap: 6px; }
.he-elsa-rost[aria-pressed="true"] { background: var(--teal); border-color: var(--teal); color: #06231F; }
/* stora knappar för det man gör varje dag */
.he-knappar { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.he-knapp { display: flex; align-items: center; gap: 10px; padding: 14px; border-radius: 16px; background: var(--panel); border: 1px solid var(--line); color: var(--fg); text-decoration: none; font-size: 15px; }
.he-knapp:hover { border-color: var(--line-strong); }
.he-knapp-ikon { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: var(--panel2); flex: none; }
.he-knapp-primar { background: var(--accent); border-color: var(--accent); color: #0B1730; }
.he-knapp-primar .he-knapp-ikon { background: rgba(255, 255, 255, .35); }
.he-koppla { border-style: dashed; }
.he-sektion { display: grid; gap: 10px; }
.he-rubrik { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.he-rubrik h2 { margin: 0; font-size: 19px; }
.he-kort, .he-rad { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 16px;
  background: var(--panel); border: 1px solid var(--line); color: var(--fg); text-decoration: none; }
.he-rad { grid-template-columns: auto minmax(0, 1fr) auto; }
.he-kort:hover { border-color: var(--line-strong); }
.he-kort-ikon { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--panel2); }
.he-kort-text { display: grid; gap: 2px; min-width: 0; }
.he-kort-text b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.he-kort-text span { color: var(--muted); font-size: 13.5px; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.he-kort-belopp { display: grid; justify-items: end; gap: 2px; white-space: nowrap; }
.he-kort-belopp b { font-size: 17px; }
.he-kort-belopp small { color: var(--muted); font-size: 12px; }
.he-varn { color: var(--danger-text) !important; }
.he-kort-knapp { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.he-tomt { margin: 0; color: var(--muted); }
.he-raknar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0; color: var(--muted); }
.he-snurr { width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--line-strong); border-top-color: var(--accent); animation: he-snurr 1s linear infinite; }
@keyframes he-snurr { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .he-snurr { animation: none; } }
.he-auto { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 14px; border: 1px dashed var(--line-strong); font-size: 14px; line-height: 1.45; cursor: pointer; }
.he-auto input { margin-top: 3px; width: 18px; height: 18px; flex: none; }
.he-fot { display: flex; gap: 16px; flex-wrap: wrap; margin: 0; font-size: 14px; }
.he-fot a, .he-fot .lank { color: var(--accent-text); font-weight: 600; text-decoration: none; background: none; border: 0; padding: 0; cursor: pointer; font: inherit; }
@media (max-width: 640px) {
  .he-kort { grid-template-columns: auto minmax(0, 1fr); }
  .he-kort-belopp { grid-column: 2; justify-items: start; }
  .he-kort-knapp { grid-column: 1 / -1; justify-content: center; }
  .he-rad { grid-template-columns: auto minmax(0, 1fr); }
  .he-rad .he-kort-knapp { grid-column: 1 / -1; justify-content: center; }
  .hem-topp .he-lage-plats { position: static; display: flex; justify-content: flex-end; margin-bottom: 6px; }
  .he-topp { flex-wrap: wrap; }
  .he-knappar { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
  /* telefon/surfplatta: Elsa som en rad ovanför chatten */
  .he-duo { grid-template-columns: minmax(0, 1fr); }
  .he-elsa { order: -1; grid-template-columns: auto minmax(0, 1fr); justify-items: start; text-align: left; padding: 12px; gap: 6px 12px; }
  .he-elsa-ansikte { width: 84px; height: 84px; border-radius: 50%; grid-row: span 2; }
  .he-elsa-knappar { justify-content: flex-start; }
}

/* ---------- «Samtal» (2026-10-28): vilket samtal, Nytt samtal, listan, Fortsätt efter pausen ---------- */
.sm-rad { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; padding: 2px 2px 4px; }
.sek-chatt-huvud + .sm-rad, .sm-rad:has(+ .as-rad) { padding: 6px 14px 4px; }
.sm-titel { min-width: 0; display: flex; gap: 6px; align-items: baseline; font-size: 14px; overflow: hidden; }
.sm-titel b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sm-typ { color: var(--muted); font-size: 12.5px; font-weight: 600; white-space: nowrap; }
.sm-knappar { display: flex; gap: 6px; align-items: center; flex: none; }
.sm-nytt { display: inline-flex; align-items: center; gap: 4px; }
.sm-lista, details.sm-lista, details.sm-lista[open] { position: relative; border: 0; padding: 0; margin: 0; background: none; box-shadow: none; }
.sm-lista > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 4px; }
.sm-lista > summary::-webkit-details-marker { display: none; }
.sm-meny { position: absolute; right: 0; top: calc(100% + 6px); z-index: 30; width: min(340px, 86vw); max-height: 60vh; overflow: auto; display: grid; gap: 2px;
  padding: 6px; border-radius: 14px; background: var(--panel); border: 1px solid var(--line-strong); box-shadow: var(--shadow-md, 0 10px 30px rgba(0, 0, 0, .25)); }
.sm-post { display: grid; gap: 2px; text-align: left; width: 100%; padding: 8px 10px; border: 0; border-radius: 10px; background: none; color: var(--fg); font: inherit; cursor: pointer; }
.sm-post:hover, .sm-post.aktiv { background: var(--panel2); }
.sm-post-ny { display: flex; align-items: center; gap: 6px; font-weight: 600; color: var(--accent-text); }
.sm-post-titel { font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sm-post-meta { font-size: 12px; color: var(--muted); }
.sm-paus { margin: 0; padding: 0 2px 4px; font-size: 13px; color: var(--muted); }
.sm-paus .lank { background: none; border: 0; padding: 0; color: var(--accent-text); font: inherit; font-weight: 600; cursor: pointer; }
.sm-post-alla { display: block; margin-top: 4px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 13.5px; font-weight: 600; color: var(--accent-text); text-decoration: none; border-radius: 0 0 10px 10px; }

/* ---------- Lägena (2026-10-29): Samtal, Analys, Djupanalys vid chatten; invändningarna under svaret ---------- */
.lg-rad { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 0 2px 6px; }
.sm-rad + .lg-rad, .sm-paus + .lg-rad { padding: 0 14px 6px; }
.hem-chatt .sm-rad + .lg-rad, .hem-chatt .sm-paus + .lg-rad { padding: 0 2px 6px; }
.chip.lg-chip { width: auto; padding: 5px 12px; font-size: 13px; }
.lg-pris { flex-basis: 100%; font-size: 12px; color: var(--muted); padding: 0 2px; }
.lg-invand { margin-top: 6px; padding: 5px 10px; border-left: 3px solid var(--line-strong); font-size: 13px; line-height: 1.45; color: var(--muted); }
.lg-invand b { color: var(--fg); font-weight: 600; }
.lg-invand.allvarlig { border-left-color: var(--danger); color: var(--fg); }
.lg-invand.lg-ok { border-left-color: var(--ok); }

/* «Alla chattar» (2026-10-28): hela chatthistoriken – sök, öppna, radera */
.chattar { display: grid; gap: 14px; max-width: 920px; margin-inline: auto; width: 100%; }
.ch-sok .inp { width: 100%; }
.ch-tomt { margin: 0; }
.ch-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ch-rad { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-radius: 14px; background: var(--panel); border: 1px solid var(--line); }
.ch-rad.aktiv { border-color: var(--accent); }
.ch-text { display: grid; gap: 3px; min-width: 0; }
.ch-titel { font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ch-typ { color: var(--muted); font-size: 13px; font-weight: 600; }
.ch-arende, .ch-meta { font-size: 13px; color: var(--muted); }
.ch-aktiv { color: var(--accent-text); font-weight: 600; }
.ch-utdrag { font-size: 13.5px; color: var(--fg); background: var(--panel2); border-radius: 8px; padding: 6px 9px; }
.ch-knappar { display: flex; gap: 6px; flex: none; }
.historik .sida-huvud { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
@media (max-width: 640px) {
  .ch-rad { flex-direction: column; align-items: stretch; }
  .ch-knappar { justify-content: flex-end; }
}

/* ---------- Snabbfrågor och ansiktet i mitten (2026-10-28, Tommy) ---------- */
.snabb { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 8px 12px 0; }
.snabb-knapp { border: 1px solid var(--line); background: var(--panel2); color: var(--fg); font: inherit; font-size: 13px; line-height: 1.3; padding: 6px 11px; border-radius: 999px; cursor: pointer; text-align: left; }
.snabb-knapp:hover { border-color: var(--accent); }
.snabb-knapp:disabled { opacity: .5; cursor: default; }
.snabb-period { display: inline-flex; padding: 2px; gap: 2px; border-radius: 999px; background: var(--panel2); border: 1px solid var(--line); }
.snabb-period button { border: 0; background: none; color: var(--muted); font: inherit; font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 999px; cursor: pointer; }
.snabb-period button[aria-checked="true"] { background: var(--panel); color: var(--fg); box-shadow: 0 1px 3px rgba(0, 0, 0, .18); }
.he-topp-val { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.he-elsa-snabb { display: grid; gap: 8px; width: 100%; }
.he-snabb { border: 1px solid var(--line); background: var(--panel2); color: var(--fg); font: inherit; font-size: 14px; font-weight: 600; line-height: 1.3; padding: 10px 12px; border-radius: 12px; cursor: pointer; text-align: left; }
.he-snabb:hover { border-color: var(--accent); }
/* ansiktet i mitten: ansiktet och knapparna överst, chatten under i full bredd */
.he-duo-mitten { grid-template-columns: minmax(0, 1fr); }
.he-duo-mitten .he-elsa { order: -1; justify-items: center; padding: 20px; }
.he-duo-mitten .he-elsa-ansikte { width: 240px; height: 290px; }
.he-duo-mitten .he-elsa-snabb { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); max-width: 820px; }
@media (max-width: 900px) {
  .he-elsa-snabb { grid-column: 1 / -1; grid-template-columns: 1fr 1fr; }
  .he-duo-mitten .he-elsa { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; }
  .he-duo-mitten .he-elsa-ansikte { width: 160px; height: 190px; border-radius: 18px; grid-row: auto; }
  .he-topp-val { justify-content: flex-start; }
}
.he-elsa-snabb .snabb-period { justify-self: center; }

/* 2026-10-29: Röst på/av syns som text; läget sparas i webbläsaren (sek-upplas) */
[data-sek-upplas] .upplas-lage{margin-left:.35em;font-size:.85em;white-space:nowrap}
[data-sek-upplas] .upplas-pa{display:none}
[data-sek-upplas][aria-pressed="true"] .upplas-pa{display:inline}
[data-sek-upplas][aria-pressed="true"] .upplas-av{display:none}
[data-sek-upplas][aria-pressed="true"]{color:var(--accent,#2563eb)}

/* röstinmatning: under lyssning är mikrofonknappen ett tydligt stopp i alla chattar (sekreterare.js sätter aria-pressed) */
.btn[data-sek-mic][aria-pressed="true"]{color:#fff!important;background:#C62828!important;border-color:#C62828!important;animation:mic-puls 1.2s ease-out infinite}
.btn[data-sek-mic][aria-pressed="true"] svg{display:none}
.btn[data-sek-mic][aria-pressed="true"]::before{content:"";width:14px;height:14px;border-radius:3px;background:currentColor}
@keyframes mic-puls{0%{box-shadow:0 0 0 0 rgba(198,40,40,.5)}100%{box-shadow:0 0 0 10px rgba(198,40,40,0)}}
@media (prefers-reduced-motion: reduce){.btn[data-sek-mic][aria-pressed="true"]{animation:none}}

/* 2026-11-02 (Serguei): Hem-chatten – det skickade som bubbla direkt, diktering via servern */
.hc-utkast .hc-bub { opacity: .88; }
.sek-besked { margin: 6px 0 0; font-size: 13px; color: var(--warn-text, #f0b35a); }
[data-sek-mic][data-sek-lage="lyssnar"] { color: var(--danger-text, #ff8a80); border-color: currentColor; animation: sek-puls 1.2s ease-in-out infinite; }
[data-sek-mic][data-sek-lage="skriver"] { color: var(--teal-text, #7fd1c6); border-color: currentColor; animation: sek-puls .7s ease-in-out infinite; }
@keyframes sek-puls { 0%, 100% { opacity: 1; } 50% { opacity: .55; } }
.sek-vag { display: inline-flex; gap: 3px; align-items: center; height: 28px; margin: 0 2px; flex: none; }
.sek-vag i { width: 3px; border-radius: 2px; background: var(--accent); height: calc(4px + var(--n, 0) * 20px); transition: height .09s linear; }
.sek-vag i:nth-child(1), .sek-vag i:nth-child(5) { height: calc(4px + var(--n, 0) * 10px); }
.sek-vag i:nth-child(2), .sek-vag i:nth-child(4) { height: calc(4px + var(--n, 0) * 16px); }
.sek-vag.skriver i { background: var(--teal-text, #7fd1c6); animation: sek-vag 1s ease-in-out infinite; }
.sek-vag.skriver i:nth-child(2) { animation-delay: .12s; } .sek-vag.skriver i:nth-child(3) { animation-delay: .24s; }
.sek-vag.skriver i:nth-child(4) { animation-delay: .36s; } .sek-vag.skriver i:nth-child(5) { animation-delay: .48s; }
@keyframes sek-vag { 0%, 100% { height: 5px; } 50% { height: 20px; } }

/* Enkelt läge D «Lugnt fokus» (2026-11-02, Tommy): chatten med ansiktet står alltid öppen, bara mer kompakt */
.he-datum { margin: 2px 0 0; color: var(--muted); font-size: 14px; }
.he-datum::first-letter { text-transform: uppercase; }
.hem-enkel .he-duo:not(.he-duo-utan):not(.he-duo-mitten) { grid-template-columns: minmax(0, 1fr) 190px; gap: 12px; }
.hem-enkel .he-elsa { padding: 10px; gap: 8px; }
.hem-enkel .he-elsa-ansikte { width: 120px; height: 144px; }
.hem-enkel .he-duo-mitten .he-elsa { padding: 12px; }
.hem-enkel .he-duo-mitten .he-elsa-ansikte { width: 150px; height: 180px; }
.hem-enkel .hem-chatt-samtal { max-height: 200px; }
.he-snabbrad .he-elsa-snabb { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.he-snabbrad .snabb-period { grid-column: 1 / -1; }
.hem-enkel .he-knappar { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.he-nasta-kort { grid-template-columns: minmax(0, 1fr) auto; border-color: var(--accent); }
.he-nasta-knappar { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.he-fler { color: var(--accent-text); font-weight: 600; font-size: 14px; text-decoration: none; }
.he-fall { border: 1px solid var(--line); border-radius: 14px; background: var(--panel); padding: 10px 14px; }
.he-fall > summary { cursor: pointer; font-weight: 600; font-size: 17px; }
.he-fall[open] > summary { margin-bottom: 10px; }
.he-fall > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.he-fall-chattar { margin-top: 10px; padding: 8px 12px; background: transparent; }
.he-fall-chattar > summary { font-size: 14px; }
.he-antal { margin-left: 6px; color: var(--muted); font-size: 14px; font-weight: 500; }
.he-underrubrik { margin: 0; font-size: 15px; }
@media (max-width: 900px) {
  .hem-enkel .he-duo:not(.he-duo-utan):not(.he-duo-mitten) { grid-template-columns: minmax(0, 1fr); }
  .hem-enkel .he-elsa-ansikte { width: 84px; height: 84px; }
  .hem-enkel .he-duo-mitten .he-elsa-ansikte { width: 84px; height: 84px; }
}
@media (max-width: 640px) {
  .he-nasta-kort { grid-template-columns: minmax(0, 1fr); }
  .he-nasta-knappar { justify-content: flex-start; }
  .he-nasta-knappar .btn { flex: 1 1 auto; justify-content: center; }
  .hem-enkel .he-knappar { grid-template-columns: 1fr; }
}

/* 2026-11-07 (Enkelt v3): sidan visas i en ram i mitten av Enkelt (mötet) – ingen topprad, ingen tillbaka-pil, liten marginal */
body.inbaddad .skal-topp, body.inbaddad .mt-tillbaka, body.inbaddad nav.flikar { display: none !important; }
body.inbaddad { --skal-topp: 0px; }
body.inbaddad main { padding: 10px 12px; }


/* 2026-11-07 (Enkelt v3, Serguei): Enkelt/Fullt i toppradens verktygsfack på alla sidor – från Fullt (t.ex. Kunder på telefonen)
   ska man kunna komma tillbaka till Enkelt. Mallen #scLagen i layouten flyttas in av ett litet skript nederst i sidan. */
.hs-topp-lagen { display: inline-flex; align-items: center; padding: 3px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel2); gap: 2px; margin-right: 6px; }
.hs-topp-val { min-height: 32px; padding: 5px 11px; border: 0; background: none; border-radius: 9px; color: var(--muted); cursor: pointer; font: 600 12px var(--body); white-space: nowrap; display: inline-flex; align-items: center; }
.hs-topp-val.on { background: var(--panel); color: var(--fg); box-shadow: 0 1px 5px color-mix(in srgb, var(--bg) 40%, transparent); }
.hs-topp-val:not(.on):hover { color: var(--fg); }
.hs-topp-aterstall { width: 36px; min-height: 36px; border: 1px solid var(--line); background: var(--panel2); border-radius: 10px; color: var(--fg); font-size: 17px; cursor: pointer; margin-right: 6px; }
.hs-topp-aterstall:hover { border-color: var(--muted); }
body.hs-enkelt .sc-top .sc-nav, body.hs-enkelt .sc-top .sc-menu { display: none !important; }
@media (max-width: 900px) { .hs-topp-aterstall { display: none; } .hs-topp-val { padding: 5px 8px; font-size: 11px; min-height: 30px; } .hs-topp-lagen { margin-right: 4px; } }
