/* Ask view (default in askstat; ?view=editor gives the full editor) —
   spec docs/superpowers/specs/2026-07-28-ask-modus-design.md (+ Hans'
   feedback 2026-07-29: hidden topbar, left sidebar, Ask/Code switch;
   layout-runde 2026-08-05: Claude-lik anatomi — kollapsbar ikon-sidebar,
   input-kort m/profil- og dybdevelger nederst, sirkulær send-knapp).
   Everything is keyed on html.ask-view so the editor view is untouched. */

html.ask-view header.topbar,
html.ask-view #modeGuiBar,
html.ask-view .panel-left,
html.ask-view #resizer,
html.ask-view footer.bottombar,
html.ask-view #sidebarOpenTab { display: none !important; }
/* (Topbar explains the editor — hidden in ask.) */

/* Editor-/output-panelene ligger usynlig off-screen med ekte bredde MENS
   kjøringen pågår (plotly trenger ekte bredde). Etter vellykket kjøring
   FLYTTES #outputArea inn i svarkortet (levende — widgets og interaktiv
   plotly virker); den flyttes hjem ved nytt spørsmål / bytte til kode. */
html.ask-view .container.layout-columns {
  position: fixed; left: -12000px; top: 0; width: 900px; height: 640px;
  overflow: hidden; }

html.ask-view #askView[hidden] { display: flex; }   /* boot-JS removes hidden; belt-and-suspenders */
/* [hidden] må VINNE over .ask-view-wrap{display:flex} i editor-visningen —
   ellers spiser det usynlige ask-elementet hele bredden (målt 2026-07-29:
   .panel-right fikk 0px etter bytte til ?view=editor). */
html:not(.ask-view) #askView[hidden] { display: none !important; }
/* .app-body er overflow:hidden (fastvindu-app) — ask-kolonnen må derfor være
   sitt EGET scrolleområde, samme mønster som editor-panelene (målt
   2026-07-29: lange svar ble kuttet uten scroll). */
.ask-view-wrap { display: flex; align-items: stretch; width: 100%; flex: 1; min-height: 0; }

/* ── Left sidebar: 248px ↔ 52px ikon-skinne (md_ask_sidebar) ─────────── */
.ask-sidebar { width: 248px; flex: 0 0 248px; border-right: 1px solid var(--border);
  background: var(--sidebar-bg); padding: 14px 10px 12px;
  display: flex; flex-direction: column; gap: 2px; min-height: 0;
  transition: width .15s ease, flex-basis .15s ease; }
.ask-side-head { display: flex; align-items: center; gap: 8px; padding: 0 2px 12px; }
.ask-brand { font-weight: 700; font-size: 17px; }
.ask-icon-btn { display: flex; align-items: center; justify-content: center;
  background: none; border: none; border-radius: 8px; padding: 7px;
  color: var(--text-muted); cursor: pointer; }
.ask-icon-btn:hover { background: var(--bg-code); color: var(--text); }

.ask-side-btn { display: flex; align-items: center; gap: 10px; width: 100%;
  text-align: left; background: none; border: 1px solid transparent;
  border-radius: 8px; padding: 8px 10px; cursor: pointer; color: inherit;
  font-size: 13px; }
.ask-side-btn svg { flex: 0 0 auto; color: var(--text-muted); }
.ask-side-btn:hover { background: var(--bg-code); }
.ask-side-btn:hover svg { color: var(--text); }
.ask-side-label { flex: 1 1 auto; min-width: 0; white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis; }
.ask-side-bottom { margin-top: auto; padding-top: 10px;
  border-top: 1px solid var(--border); display: flex; flex-direction: column; gap: 2px; }

/* Tynn modus: bare ikoner; recents skjules (som Claudes kollapsede rail). */
.ask-sidebar.thin { width: 52px; flex: 0 0 52px; padding: 14px 6px 12px; }
.ask-sidebar.thin .ask-brand,
.ask-sidebar.thin .ask-side-label,
.ask-sidebar.thin .ask-history { display: none; }
.ask-sidebar.thin .ask-side-head { justify-content: center; padding-bottom: 10px; }
.ask-sidebar.thin .ask-side-btn { justify-content: center; padding: 9px 0; }

/* Eksempel-menyen flyr ut til høyre for sidebaren (virker også i tynn modus). */
.ask-examples-wrap { position: relative; }
.ask-menu { position: absolute; top: 0; left: calc(100% + 10px); z-index: 60;
  background: var(--bg-panel); border: 1px solid var(--border); border-radius: 12px;
  padding: 8px; min-width: 260px; box-shadow: 0 8px 28px rgba(0,0,0,.18);
  max-height: min(70vh, 560px); overflow-y: auto; }
.ask-menu[hidden] { display: none; }
.ask-menu-title { font-size: 11px; text-transform: uppercase; letter-spacing: .5px;
  color: var(--text-muted); padding: 2px 8px 6px; }
.ask-menu-title + .ask-menu-title, .ask-menu button + .ask-menu-title { margin-top: 8px; }
.ask-menu button { display: block; width: 100%; text-align: left; background: none;
  border: none; border-radius: 6px; padding: 7px 8px; cursor: pointer; color: inherit; font-size: 13px; }
.ask-menu button:hover { background: rgba(127,127,127,.14); }
/* Mobil (spec 2026-08-05-sprak-pakker-deling §6): sidebaren var display:none
   uten noen inngang — nå fixed skuff bak hamburger i en slank mobiltopplinje. */
.ask-mobile-top { display: none; }
@media (max-width: 720px) {
  .ask-sidebar {
    position: fixed; left: 0; top: 0; bottom: 0; z-index: 320;
    width: 280px; flex: none; transform: translateX(-100%);
    transition: transform .2s ease; background: var(--sidebar-bg);
    box-shadow: 4px 0 24px rgba(0,0,0,.25);
  }
  .ask-sidebar.open { transform: none; }
  .ask-drawer-backdrop { position: fixed; inset: 0; z-index: 310;
    background: rgba(0,0,0,.35); display: none; }
  .ask-drawer-backdrop.open { display: block; }
  .ask-mobile-top { display: flex; align-items: center; gap: 10px;
    padding: 8px 4px 0; }
  .ask-mobile-top .ask-brand { font-weight: 600; }
  .ask-title { margin-top: 3vh; font-size: 24px; }
  .ask-main { padding: 0 14px 20px; }
}

/* ── Main column: sentrert, Claude-bredde ────────────────────────────── */
.ask-main { flex: 1; padding: 20px 32px 32px; min-width: 0; min-height: 0; overflow-y: auto; }
.ask-main > * { max-width: 760px; margin-left: auto; margin-right: auto; }

/* auto-margene MÅ gjentas her: shorthanden ellers nuller .ask-main > *-sentreringen */
.ask-title { font-size: 28px; text-align: center; margin: 7vh auto 6px; }
.ask-sub { color: var(--text-muted); text-align: center; margin-bottom: 6px; }
.ask-about-line { color: var(--text-muted); text-align: center; font-size: 13px; margin-bottom: 22px; }
.ask-about-line a { color: var(--accent); text-decoration: none; }
.ask-about-line a:hover { text-decoration: underline; }
.ask-about-body { font-size: 14px; line-height: 1.55; }
.ask-about-body p { margin: 0 0 10px; }
.ask-about-body ul { margin: 0 0 6px; padding-left: 20px; }
.ask-about-body li { margin-bottom: 6px; }

/* Input-kortet: tekstfelt øverst, verktøysrad nederst (velgere venstre,
   send høyre) — samme anatomi som Claudes komposisjonsboks. */
.ask-input-card { border: 1px solid var(--border); border-radius: 16px;
  background: var(--bg-panel); box-shadow: 0 2px 14px rgba(0,0,0,.07);
  padding: 10px 12px 10px; }
.ask-input-card:focus-within {
  border-color: color-mix(in srgb, var(--accent) 45%, var(--border)); }
.ask-input { display: block; width: 100%; box-sizing: border-box; border: none;
  background: transparent; resize: none; font-size: 16px; font-family: inherit;
  color: inherit; padding: 6px 6px 10px; min-height: 52px; max-height: 220px;
  overflow-y: auto; }
.ask-input:focus { outline: none; }
.ask-input-tools { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.ask-tools-left { display: flex; align-items: center; gap: 4px; min-width: 0; flex-wrap: wrap; }
.ask-tools-right { display: flex; align-items: center; gap: 6px; }

/* Pillevelgere (profil = «modellvelgeren», dybde ved siden av). */
.ask-picker-wrap { position: relative; min-width: 0; }
.ask-pill-btn { display: flex; align-items: center; gap: 6px; max-width: 260px;
  background: none; border: 1px solid transparent; border-radius: 8px;
  padding: 5px 8px; font-size: 12.5px; color: var(--text-muted); cursor: pointer; }
.ask-pill-btn:hover { background: var(--bg-code); color: var(--text); }
.ask-pill-btn > span { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ask-pill-btn .ask-chev { flex: 0 0 auto; opacity: .7; }

.ask-pop-menu { position: absolute; bottom: calc(100% + 8px); left: 0; z-index: 60;
  background: var(--bg-panel); border: 1px solid var(--border); border-radius: 12px;
  padding: 6px; min-width: 240px; box-shadow: 0 8px 28px rgba(0,0,0,.18);
  max-height: 55vh; overflow-y: auto; }
/* Smoke-funn (menyopprydding, Task 7 §1): et stort bibliotek gjør menyen
   taller enn avstanden til viewport-toppen når pillen sitter høyt (f.eks.
   startskjermen) — js/context-pill.js måler og legger på denne klassen når
   oppover-anker ville klippet menyens topp. */
.ask-pop-menu.ask-pop-down { bottom: auto; top: calc(100% + 8px); }
/* Menyopprydding (spec 2026-08-06): biblioteket ruller internt — de faste
   valgene over skillet er alltid synlige uansett bibliotekstørrelse. */
.ask-ctx-scroll { max-height: 240px; overflow-y: auto; }
/* Explore-modalen (delte pakker) */
.ask-explore-row { display: block; width: 100%; text-align: left; background: none;
  border: 1px solid var(--border); border-radius: 8px; padding: 8px 12px;
  margin-bottom: 6px; color: inherit; cursor: pointer; font: inherit; }
.ask-explore-row:hover { background: var(--bg-code); }
.ask-explore-row div { color: var(--text-muted); font-size: 12px; margin-top: 2px; }
/* Pakkesplitting (spec 2026-08-07 §3): gruppeoverskrift oversikter/enkeltkilder. */
.ask-explore-group {
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.65;
  padding: 10px 4px 4px;
}
/* Markdown-preview i profil-/pakkemodalene */
.ask-md-preview { border: 1px solid var(--border); border-radius: 8px; padding: 8px 12px;
  margin-top: 6px; font-size: 13px; max-height: 240px; overflow-y: auto; }
.ask-md-preview :first-child { margin-top: 0; }
.ask-pop-menu[hidden] { display: none; }
.ask-pop-menu button { display: flex; align-items: center; gap: 8px; width: 100%;
  text-align: left; background: none; border: none; border-radius: 8px;
  padding: 8px 10px; font-size: 13px; color: var(--text); cursor: pointer; }
.ask-pop-menu button:hover, .ask-pop-menu button.active { background: var(--bg-code); }
.ask-pop-menu .ask-pop-check { width: 14px; flex: 0 0 14px; color: var(--accent);
  font-weight: 700; }
.ask-pop-sep { border-top: 1px solid var(--border); margin: 4px 6px; }
.ask-pop-hint { padding: 6px 10px 2px; font-size: 11.5px; color: var(--text-muted); line-height: 1.35; }
/* Kildevelger-runde 2 (Task 5): gruppeoverskrifter i popover-scrollen —
   samme stil som .ask-explore-group, men med popoverens 10px sidepadding
   (.ask-pop-menu button bruker padding: 8px 10px) i stedet for Explore-
   modalens 4px. */
.ask-pop-group {
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.65;
  padding: 8px 10px 4px;
}
/* Kontekst-pillen (kontekstrunden §1): seksjonsoverskrifter m/forklaringslinje */
.ask-context-menu { min-width: 280px; }
.ask-ctx-head { display: flex; align-items: center; gap: 7px; padding: 8px 10px 2px;
  font-size: 12px; font-weight: 600; color: var(--text); }
.ask-ctx-head svg { opacity: .75; flex: 0 0 auto; }
.ask-ctx-explain { padding: 0 10px 6px; font-size: 11.5px; color: var(--text-muted); }

/* Send (sirkulær aksent m/pil opp) og stopp. */
.ask-send-btn { width: 36px; height: 36px; flex: 0 0 auto; border-radius: 999px;
  border: none; background: var(--accent); color: #fff; display: flex;
  align-items: center; justify-content: center; cursor: pointer; }
.ask-send-btn:hover { filter: brightness(1.08); }
.ask-send-btn:disabled { opacity: .45; cursor: default; filter: none; }
.ask-stop-btn { width: 36px; height: 36px; flex: 0 0 auto; border-radius: 999px;
  border: 1px solid var(--border); background: var(--bg-code); color: var(--danger);
  display: flex; align-items: center; justify-content: center; cursor: pointer; }
.ask-stop-btn:hover { border-color: var(--danger); }

/* Synlig tastaturfokus i hele ask-flaten. */
.ask-side-btn:focus-visible, .ask-icon-btn:focus-visible, .ask-pill-btn:focus-visible,
.ask-send-btn:focus-visible, .ask-stop-btn:focus-visible, .ask-hist-open:focus-visible,
.ask-hist-del:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  .ask-sidebar { transition: none; }
}

/* Quick switch back to Ask, injected into the editor view's topbar —
   blå og sentrert i topbaren (Hans 2026-08-05). Topbaren er
   position:fixed, så absolute her sentrerer mot hele barens bredde. */
.topbar-ask-switch { position: absolute; left: 50%; transform: translateX(-50%);
  background: var(--accent); color: #fff; border: none; border-radius: 999px;
  padding: 6px 18px; font-size: 13px; font-weight: 600; cursor: pointer; }
.topbar-ask-switch:hover { filter: brightness(1.1); }

/* The process track (progress lines, repair notes) streams inside the answer
   card while working (askStatus) and is archived into the Details fold
   (askProcess) when the answer lands. The raw markdown bubble from
   runWebAnswer stays hidden — the answer comes from tolk-ask; details are one
   click away. */
.ask-process { font-size: 13px; color: var(--text-muted); }
.ask-process .ai-bubble { display: none; }
.ask-process .ai-progress-line { padding: 1px 0; }
.ask-process .ai-sources { margin-top: 6px; }
.ask-confirm { display: flex; gap: 8px; align-items: center; margin: 8px 0; }

/* Answer card, directly under the question input */
.ask-answer-card { margin-top: 16px; padding: 16px 18px; border: 1px solid var(--border);
  border-radius: 16px; background: var(--bg-panel); }
.ask-answer-card[hidden] { display: none; }
.ask-answer { font-size: 14.5px; line-height: 1.6; }
.ask-answer p { margin: 0 0 10px; }
.ask-answer ul, .ask-answer ol { margin: 0 0 10px; padding-left: 22px; }
.ask-answer li { margin-bottom: 4px; }
.ask-answer h2 { font-size: 16px; margin: 16px 0 8px; }
.ask-answer h3 { font-size: 14.5px; margin: 12px 0 6px; }
.ask-answer table { border-collapse: collapse; margin: 10px 0; max-width: 100%; display: block; overflow-x: auto; }
.ask-answer th, .ask-answer td { border: 1px solid var(--border); padding: 5px 10px; font-size: 13.5px; }
.ask-answer th { background: var(--bg-code); }
.ask-answer code { background: var(--bg-code); border-radius: 4px; padding: 1px 5px; font-size: 13px; }
.ask-answer pre { background: var(--bg-code); border-radius: 8px; padding: 10px 12px; overflow-x: auto; }
.ask-answer pre code { background: none; padding: 0; }
.ask-answer blockquote { border-left: 3px solid var(--border); margin: 10px 0; padding: 2px 12px; color: var(--text-muted); }
.ask-answer h2:first-child { margin-top: 0; }
.ask-badge { display: inline-block; font-size: 11px; border: 1px solid var(--border);
  border-radius: 999px; padding: 2px 10px; margin-bottom: 10px; color: var(--text-muted); }
.ask-badge.ask-badge-warn { border-color: var(--accent); color: var(--accent); }
.ask-answer-actions { display: flex; gap: 8px; margin-top: 14px; }
/* Samme hidden-felle som #packsExploreList over: display:flex (author-origin)
   slår UA-regelen [hidden]{display:none} — trengs siden showAnswer()/
   runAskFlow() toggler denne via .hidden i markup. */
.ask-answer-actions[hidden] { display: none; }

/* «Save as source» under en ```pack-fence (kontekstrunden fase 2 §5) —
   samme kompakte, sekundære look som .ai-codeblock-btn i app.css. */
.ask-save-source-btn { display: inline-flex; align-items: center; gap: 4px;
  margin: 4px 0 12px; padding: 4px 10px; border: 1px solid var(--border);
  background: var(--bg-panel); color: var(--text-muted); border-radius: 4px;
  cursor: pointer; font-size: 12px; }
.ask-save-source-btn:hover { background: color-mix(in srgb, var(--accent) 12%, transparent);
  color: var(--accent); border-color: var(--accent); }

.ask-details { margin-top: 12px; font-size: 13px; color: var(--text-muted); max-width: 760px; }
.ask-details[hidden] { display: none; }
.ask-details summary { cursor: pointer; }

/* Levende output i svarkortet */
.ask-live-output { margin-top: 12px; }
.ask-live-output[hidden] { display: none; }
.ask-live-output #outputArea { max-height: 560px; overflow: auto; }

/* Resolver-slots + Full output-fold (spec 2026-07-31-ask-svar-referanser) */
.ask-out-slot { margin: 0.75rem 0; max-width: 100%; overflow-x: auto; }
.ask-out-anchor { display: none; }
.ask-full-output { margin-top: 0.75rem; }

/* Recents (konto-runden fase 1; omdøpt fra History i layout-runden) */
.ask-history { display: flex; flex-direction: column; min-height: 0; margin-top: 14px;
  border-top: 1px solid var(--border); padding-top: 10px; }
.ask-history-head { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em;
  color: var(--text-muted); padding: 0 10px 6px; }
#askHistoryList { overflow-y: auto; min-height: 0; flex: 1 1 auto; }
.ask-hist-item { display: flex; align-items: center; gap: 2px; }
.ask-hist-open { flex: 1 1 auto; min-width: 0; text-align: left; background: none;
  border: 1px solid transparent; border-radius: 8px; padding: 6px 10px; cursor: pointer;
  color: inherit; font-size: 0.85rem; white-space: nowrap; overflow: hidden;
  text-overflow: ellipsis; }
.ask-hist-open:hover { background: var(--bg-code); }
.ask-hist-del { flex: 0 0 auto; visibility: hidden; background: none; border: none;
  cursor: pointer; color: inherit; opacity: 0.55; font-size: 0.95rem; padding: 2px 6px; }
.ask-hist-item:hover .ask-hist-del { visibility: visible; }
.ask-hist-del:hover { opacity: 1; }
.ask-history-clear { font-size: 0.78rem; opacity: 0.7; margin-top: 4px; }

/* Profiler: modal-liste (velgeren i input-kortet bruker .ask-pop-menu) */
.profiles-list { display: flex; flex-direction: column; gap: 2px; margin: 10px 0; }
.profiles-row { display: flex; align-items: center; gap: 8px; padding: 4px 2px;
  cursor: pointer; }
.profiles-row span { flex: 1 1 auto; min-width: 0; overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap; }
/* Smoke-funn (menyopprydding, Task 7 §3): .sources-name/.sources-search sin
   flex:1 1 auto + overflow:hidden er riktig inni en rad-flexbox (.sources-row),
   men kollapser til ~4px når de er DIREKTE barn av .profiles-list (kolonne-
   flex) — «← Back to list» og søkefeltet i landvisningen. */
.profiles-list > .sources-name, .profiles-list > .sources-search { flex: 0 0 auto; }

/* Biblioteksmanageren (spec 2026-08-06-menyopprydding §4): lista ruller
   internt; modal-actions under er de faste, alltid synlige valgene. */
.sources-scroll { max-height: 300px; overflow-y: auto; }
.sources-row { display: flex; align-items: center; gap: 8px; padding: 4px 2px; }
.sources-row.active { background: var(--bg-code); border-radius: 6px; }
.sources-name { flex: 1 1 auto; min-width: 0; text-align: left; background: none;
  border: none; color: inherit; font: inherit; cursor: pointer; padding: 2px 4px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sources-info { border-top: 1px solid var(--border); margin: 8px 0; padding: 8px 2px;
  font-size: 12.5px; color: var(--text-muted); white-space: pre-wrap; }
.sources-info-actions { display: flex; gap: 8px; margin-top: 8px; }
/* Landvisning (spec 2026-08-06-menyopprydding §5–6): søkefeltet over land-lista. */
.sources-search { width: 100%; margin: 6px 0; padding: 6px 8px; font: inherit;
  border: 1px solid var(--border); border-radius: 6px; background: var(--bg);
  color: inherit; }
/* Explore åpnes OVER manageren (z-index-fella fra spec §Kjente feller):
   .ai-modal-backdrop = z-index 300 (app.css) — ett hakk over. */
#packsExploreBackdrop { z-index: 301; }
/* To-stegs Explore (Task 6): .profiles-list setter display:flex, som (author-
   origin) slår UA-regelen [hidden]{display:none} — samme hidden-felle som
   .ask-pop-menu[hidden] over. Skopet til #packsExploreList — #profilesList
   (samme klasse) hides aldri via .hidden andre steder. */
#packsExploreList[hidden] { display: none; }
#profilesEdit label { display: block; margin: 8px 0 3px; font-size: 0.85rem; }
#profilesEdit input, #profilesEdit textarea { width: 100%; box-sizing: border-box; }

/* Kildemodalen (spec 2026-08-08 §2, Task 4): faner, tag-chips, kind-valg og
   mikro/makro-badges — reine markup+CSS her, wiret opp i Task 5. #sourcesList
   gjenbruker .profiles-list + .sources-row/.sources-name/.sources-scroll og
   #sourcesInfo gjenbruker .sources-info over. */
.sources-top { display: flex; align-items: center; gap: 10px; margin: 8px 0; }
.sources-top select { max-width: 180px; }
.sources-tabs { display: flex; gap: 6px; margin: 10px 0 6px; }
.sources-tab { border: 1px solid var(--border); border-radius: 999px; padding: 5px 14px;
  background: none; color: inherit; font: inherit; cursor: pointer; }
.sources-tab.active { background: var(--accent); color: #fff; border-color: var(--accent); }
/* Antallet i faneetiketten (spec §2) — eget spann, fylles av sources-modal.js. */
.sources-tab-count { opacity: 0.65; }
.sources-tag-chips, .sources-tag-quick { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0; }
.sources-chip { border: 1px solid var(--border); border-radius: 999px; padding: 3px 10px;
  background: none; color: inherit; font: inherit; font-size: 12px; cursor: pointer; }
.sources-chip.active { background: var(--accent); color: #fff; border-color: var(--accent); }
.sources-badge { display: inline-block; font-size: 11px; border-radius: 4px; padding: 1px 6px;
  background: var(--bg-code); }
.sources-badge-mikro { border: 1px solid var(--accent); color: var(--accent); }
.sources-badge-makro { border: 1px solid color-mix(in srgb, green 60%, var(--text));
  color: color-mix(in srgb, green 60%, var(--text)); }
.sources-kind-choice { display: flex; gap: 14px; margin: 8px 0; }
#sourcesEdit label { display: block; margin: 8px 0 3px; font-size: 0.85rem; }
#sourcesEdit input, #sourcesEdit textarea { width: 100%; box-sizing: border-box; }

/* Login/konto (konto-runden fase 2) */
.ai-modal-error { color: var(--danger); font-size: 12px; min-height: 16px; margin-top: 6px; }
#loginBackdrop label, #kekBackdrop label { display: block; margin: 10px 0 4px; font-size: 0.85rem; }
#loginBackdrop input, #kekBackdrop input { width: 100%; box-sizing: border-box; }
.ask-account-menu { min-width: 260px; }
.ask-account-email { font-size: 12px; color: var(--text-muted); padding: 6px 10px 8px;
  border-bottom: 1px solid var(--border); margin-bottom: 4px; overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap; }
.ask-account-code { padding: 4px 10px 8px; }
.ask-account-code-value { font-family: monospace; font-size: 13px;
  background: var(--bg-code); border-radius: 8px; padding: 8px 10px;
  word-break: break-word; }
.ask-account-code-hint { font-size: 11px; color: var(--text-muted); margin-top: 6px; }

/* Kildeforbedring (spec 2026-08-13): forslags-modal med linjediff */
.kf-modal { max-width: 720px; width: 92vw; max-height: 84vh; overflow-y: auto; }
.kf-kort { border: 1px solid var(--border-color, #d5d9df); border-radius: 8px; padding: 10px 12px; margin: 10px 0; }
.kf-diff { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; white-space: pre-wrap; border: 1px solid var(--border-color, #d5d9df); border-radius: 6px; padding: 6px 8px; max-height: 40vh; overflow: auto; margin: 8px 0; }
.kf-diff-ny { background: rgba(46, 160, 67, 0.16); }
.kf-diff-slettet { background: rgba(248, 81, 73, 0.14); opacity: 0.85; }
.kf-diff-lik { opacity: 0.6; }
.kf-raa { white-space: pre-wrap; font-size: 12px; max-height: 50vh; overflow: auto; }
.kf-bunn { display: flex; gap: 8px; align-items: flex-start; margin-top: 12px; flex-wrap: wrap; }
.kf-tilbake { flex: 1 1 260px; min-height: 40px; font: inherit; padding: 6px 8px; }
