/* Moerkt er standard (2026-07-30). Lyst krever et aktivt valg, og
   data-tema staar alltid paa <html>: dark | light | system. */
:root{
  --tekst:#fff; --tekst-2:#cdcdcd; --tekst-3:#ffffff69;
  --flate:#181818; --flate-side:#000; --flate-2:#212121; --flate-3:#2f2f2f; --boble:#2f2f2f;
  --kant:#ffffff26; --kant-tung:#ffffff33; --kant-lett:#ffffff1a;
  --scrim:#00000080; --modal-bg:#2f2f2f;
  /* Fra kildene: --interactive-bg-secondary-hover og -tertiary-hover. */
  --hover-svak:#ffffff1a; --press-svak:#ffffff0d; --hover-rad:#181818;
  --fyll-bg:#f9f9f9; --fyll-tx:#0d0d0d; --fyll-bg-h:#ececec;
  --kode-bg:#0d0d0d; --kode-topp:#2f2f2f; --kode-tekst:#f5f5f5;
  --traad:48rem; --sp:.25rem; --side-bredde:260px;
  --skinne:52px;              /* --sidebar-rail-width i kildene */
  --side-ikon:#a4a4a4;        /* --sidebar-icon */
}
html[data-tema=light]{
  --tekst:#0d0d0d; --tekst-2:#5d5d5d; --tekst-3:#00000059;
  --flate:#fff; --flate-side:#fcfcfc; --flate-2:#ececec; --flate-3:#e3e3e3; --boble:#f4f4f4;
  --kant:#0000001a; --kant-tung:#00000026; --kant-lett:#0000000d;
  --modal-bg:#fff;
  --hover-svak:#0000000d; --press-svak:#0000000d; --hover-rad:#f9f9f9;
  --side-ikon:#7d7d7d;
  --fyll-bg:#0d0d0d; --fyll-tx:#fff; --fyll-bg-h:#212121;
}
@media (prefers-color-scheme:light){
  html[data-tema=system]{
    --tekst:#0d0d0d; --tekst-2:#5d5d5d; --tekst-3:#00000059;
    --flate:#fff; --flate-side:#fcfcfc; --flate-2:#ececec; --flate-3:#e3e3e3; --boble:#f4f4f4;
    --kant:#0000001a; --kant-tung:#00000026; --kant-lett:#0000000d;
    --modal-bg:#fff;
    --hover-svak:#0000000d; --press-svak:#0000000d; --hover-rad:#f9f9f9;
    --side-ikon:#7d7d7d;
    --fyll-bg:#0d0d0d; --fyll-tx:#fff; --fyll-bg-h:#212121;
  }
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:"SF Pro Text","SF Pro Display",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  background:var(--flate);color:var(--tekst);-webkit-font-smoothing:antialiased;overflow:hidden}
button,input,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid #0084ff;outline-offset:2px;border-radius:6px}
.skjult{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

.app{display:grid;grid-template-columns:var(--side-bredde) minmax(0,1fr);height:100dvh;transition:grid-template-columns .18s ease}
/* Kollapset = smal ikonskinne (52px), IKKE null. Det var feilen: forbildet
   beholder en skinne med logo, ny samtale, soek og avatar. */
.app.lukket{grid-template-columns:var(--skinne) minmax(0,1fr)}

/* ── Sidepanel ── */
.side{background:var(--flate-side);display:flex;flex-direction:column;min-height:0;border-inline-end:1px solid var(--kant-lett);overflow:hidden}
.side-topp{padding:8px 6px 4px;display:flex;gap:2px;align-items:center}
.side-merke{display:flex;align-items:center;justify-content:center;width:34px;height:34px;color:var(--tekst);flex:0 0 auto;margin-inline-end:auto}
.fastrader{padding:2px 0 6px}
.ikonknapp{flex:0 0 auto;width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:none;background:none;border-radius:9px;color:var(--tekst-2);cursor:pointer}
.ikonknapp:hover{background:var(--flate-2);color:var(--tekst)}
.sokerad{padding:2px 6px 6px;display:none}
.sokerad.vis{display:block}
.sokefelt{width:100%;min-height:38px;border:1px solid var(--kant);border-radius:10px;background:transparent;padding:0 11px;font-size:13.5px;outline:none}
.sokefelt:focus{border-color:var(--tekst-3)}
.liste{flex:1;min-height:0;overflow-y:auto;padding:0 0 18px;list-style:none}
/* Bolkoverskriften er en knapp med vinkel, som «Recents» i forbildet —
   ikke en ren etikett. Lysere og litt stoerre enn foer, slik forbildet
   har den. */
.hode{padding:10px 10px 4px}
.hode-kn{display:flex;align-items:center;gap:4px;width:100%;border:none;
  background:none;padding:2px 6px;border-radius:8px;cursor:pointer;
  font-size:13px;font-weight:600;color:var(--tekst);text-align:start}
.hode-kn:hover{background:var(--flate-2)}
.hode-pil{flex:0 0 auto;color:var(--tekst-3);transition:transform .15s ease}
.hode-kn[aria-expanded=false] .hode-pil{transform:rotate(-90deg)}
@media (prefers-reduced-motion:reduce){.hode-pil{transition:none}}
.rad{position:relative;display:flex;align-items:center;gap:10px;width:calc(100% - 12px);margin-inline:6px;min-height:36px;border:none;background:none;border-radius:10px;padding:6px 34px 6px 10px;font-size:14px;cursor:pointer;text-align:start;color:var(--tekst-2)}
.rad-fast{padding-inline-end:10px;color:var(--tekst)}
.rad:hover,.rad[aria-current=true]{background:var(--flate-2);color:var(--tekst)}
.rad-tx{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.radknapp:hover{background:var(--flate-3);color:var(--tekst)}
.tom{padding:10px;font-size:13px;color:var(--tekst-3)}
.side-bunn{border-top:1px solid var(--kant);padding:6px 8px 10px;display:flex;flex-direction:column;gap:2px}
.bunnrad{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:0 10px;border:none;background:none;border-radius:9px;font-size:14px;color:var(--tekst-2);cursor:pointer;text-align:start;text-decoration:none}
.bunnrad:hover{background:var(--flate-2);color:var(--tekst)}

/* ── Hovedflate ── */
.hoved{display:flex;flex-direction:column;min-width:0;min-height:0;position:relative}
.topp{display:flex;align-items:center;gap:6px;padding:9px 12px;min-height:52px;position:relative;z-index:6}
.merke{font-size:16px;font-weight:600;letter-spacing:-.01em;margin-inline-start:2px}
.merke-knapp{display:inline-flex;align-items:center;gap:5px;border:none;background:none;border-radius:9px;padding:6px 9px;cursor:pointer;color:var(--tekst)}
.merke-knapp:hover{background:var(--flate-2)}
.merke-knapp svg{color:var(--tekst-2)}
.aapne-side{display:none}
.app.lukket .aapne-side{display:flex}

/* Toning i topp og bunn av traaden, som i forbildet */
.traad-omslag{flex:1;min-height:0;position:relative}
.traad{height:100%;overflow-y:auto;padding:0 16px}
.traad-omslag::before,.traad-omslag::after{content:"";position:absolute;left:0;right:0;height:22px;pointer-events:none;z-index:4}
.traad-omslag::before{top:0;background:linear-gradient(var(--flate),transparent)}
.traad-omslag::after{bottom:0;background:linear-gradient(transparent,var(--flate))}
.inner{max-width:var(--traad);margin:0 auto;padding:10px 0 28px;display:flex;flex-direction:column;gap:calc(var(--sp)*6)}

.melding{display:flex;flex-direction:column;gap:calc(var(--sp)*2)}
.melding.du{align-items:flex-end}
/* --user-chat-width er 70% i :root hos kildene, ikke et fast rem-tak. */
.boble{max-width:70%;background:var(--boble);border-radius:20px;padding:11px 17px;font-size:16px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
.rediger{width:min(90%,34rem);border:1px solid var(--kant-tung);border-radius:18px;background:var(--flate);padding:10px 14px}
.rediger textarea{width:100%;border:none;outline:none;background:transparent;font-size:16px;line-height:1.6;resize:none}
.rediger-knapper{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
.mini{border:1px solid var(--kant);background:transparent;border-radius:999px;padding:6px 14px;font-size:13.5px;cursor:pointer;min-height:34px}
.mini.fyll{background:var(--tekst);color:var(--flate);border-color:var(--tekst)}

.md{font-size:16px;line-height:1.75;overflow-wrap:anywhere;padding:2px 2px 0}
.md>*:first-child{margin-top:0}
.md p{margin:calc(var(--sp)*5) 0}
.md h1,.md h2,.md h3,.md h4{font-weight:600;letter-spacing:-.01em;line-height:1.3}
.md h1{font-size:1.5rem;margin:calc(var(--sp)*8) 0 calc(var(--sp)*2)}
.md h2{font-size:1.25rem;margin:calc(var(--sp)*8) 0 calc(var(--sp)*3)}
.md h3{font-size:1.06rem;margin:calc(var(--sp)*6) 0 calc(var(--sp)*2)}
.md ul,.md ol{margin:calc(var(--sp)*5) 0;padding-inline-start:1.6rem}
.md li{margin:calc(var(--sp)*2) 0}
.md li::marker{color:var(--tekst-2)}
.md blockquote{border-inline-start:3px solid var(--kant-tung);padding-inline-start:14px;margin:calc(var(--sp)*5) 0;color:var(--tekst-2)}
.md hr{border:none;border-top:1px solid var(--kant);margin:calc(var(--sp)*7) 0}
.md a{color:#0084ff;text-decoration:underline;text-underline-offset:2px}
.md strong{font-weight:600}
.md code{background:var(--boble);border-radius:5px;padding:.15em .35em;font-size:.88em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.md table{border-collapse:collapse;margin:calc(var(--sp)*5) 0;display:block;overflow-x:auto;max-width:100%}
.md th,.md td{border:1px solid var(--kant);padding:7px 12px;text-align:start;font-size:15px}
.md th{background:var(--boble);font-weight:600}

.kode{margin:calc(var(--sp)*4) 0;border-radius:12px;overflow:hidden;background:var(--kode-bg)}
.kode-topp{display:flex;align-items:center;justify-content:space-between;background:var(--kode-topp);color:#cdcdcd;font-size:12px;padding:7px 12px}
.kode-kopi{display:inline-flex;align-items:center;gap:6px;border:none;background:none;color:#cdcdcd;font-size:12px;cursor:pointer;padding:3px 6px;border-radius:6px}
.kode-kopi:hover{background:#ffffff1a;color:#fff}
.kode pre{margin:0;padding:14px 16px;overflow-x:auto}
.kode code{background:none;padding:0;color:var(--kode-tekst);font-size:13.5px;line-height:1.6;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}

.handl{display:flex;gap:2px;opacity:0;transition:opacity .12s}
.melding:hover .handl,.melding:focus-within .handl{opacity:1}
.hbtn{display:inline-flex;align-items:center;gap:5px;border:none;background:none;color:var(--tekst-3);border-radius:7px;padding:6px 8px;font-size:12.5px;cursor:pointer}
.hbtn:hover{background:var(--flate-2);color:var(--tekst)}

.prikker{display:inline-flex;gap:5px;padding:10px 2px}
.prikker i{width:7px;height:7px;border-radius:50%;background:var(--tekst-3);animation:hopp 1.25s infinite}
.prikker i:nth-child(2){animation-delay:.16s}.prikker i:nth-child(3){animation-delay:.32s}
@keyframes hopp{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.markor{display:inline-block;width:7px;height:1.05em;background:var(--tekst);border-radius:1px;vertical-align:text-bottom;margin-inline-start:2px;animation:blink 1s step-end infinite}
@keyframes blink{50%{opacity:0}}

.velkomst{max-width:var(--traad);margin:0 auto;padding:0;text-align:center}
/* Fra kildene: "mb-8 text-3xl font-medium md:mt-[120px]" */
.velkomst h1{font-size:1.875rem;line-height:2.25rem;font-weight:500;letter-spacing:-.02em;margin-bottom:2rem}
@media(min-width:768px){.velkomst{padding-top:120px}}
.forslag{display:grid;grid-template-columns:1fr 1fr;gap:9px;text-align:start}
.forslag button{border:1px solid var(--kant);background:transparent;border-radius:14px;padding:13px 15px;font-size:14px;line-height:1.45;cursor:pointer;min-height:44px;color:var(--tekst-2)}
.forslag button:hover{background:var(--flate-2);color:var(--tekst)}

.tilbunn{position:absolute;left:50%;transform:translateX(-50%);bottom:112px;width:34px;height:34px;border-radius:50%;border:1px solid var(--kant);background:var(--flate);color:var(--tekst);display:none;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 10px #0000001f;z-index:5}
.tilbunn.vis{display:flex}

.komp{padding:0 16px 14px}
.komp-inner{max-width:var(--traad);margin:0 auto}
.feil{background:#f93a3714;color:#f93a37;border-radius:12px;padding:10px 14px;font-size:14px;margin-bottom:10px}
.boks{display:flex;align-items:flex-end;gap:6px;border:1px solid var(--kant-tung);background:var(--flate);border-radius:32px;padding:12px 12px 12px 10px;box-shadow:0 2px 12px #0000000a}
.boks:focus-within{border-color:var(--tekst-3)}
.kbtn{flex:0 0 auto;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;background:none;border-radius:50%;color:var(--tekst-2);cursor:pointer}
.kbtn:hover{background:var(--flate-2);color:var(--tekst)}
.kbtn.lytter{background:#f93a3722;color:#f93a37}
.skriv{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:16px;line-height:1.5;resize:none;max-height:200px;padding:10px 2px}
.skriv::placeholder{color:var(--tekst-3)}
.send{flex:0 0 auto;width:36px;height:36px;border:none;border-radius:50%;background:var(--tekst);color:var(--flate);display:flex;align-items:center;justify-content:center;cursor:pointer}
.send:disabled{opacity:.25;cursor:default}
.fot{text-align:center;font-size:12px;color:var(--tekst-3);padding:9px 0 0}

/* Meny (tema + snarveier) */
.meny{position:absolute;top:46px;left:52px;min-width:198px;background:var(--flate);border:1px solid var(--kant);border-radius:13px;box-shadow:0 10px 32px #00000024;padding:5px;z-index:20;display:none}
.meny.vis{display:block}
.meny button{display:flex;align-items:center;gap:9px;width:100%;border:none;background:none;border-radius:9px;padding:9px 11px;font-size:14px;cursor:pointer;text-align:start;color:var(--tekst)}
.meny button:hover{background:var(--flate-2)}
.meny .valgt{font-weight:600}
.meny hr{border:none;border-top:1px solid var(--kant);margin:5px 0}
.snarvei{display:flex;justify-content:space-between;gap:14px;padding:7px 11px;font-size:13px;color:var(--tekst-2)}
.snarvei kbd{font-family:inherit;font-size:11.5px;background:var(--flate-2);border-radius:5px;padding:2px 6px}

.skygge{display:none}
@media(max-width:860px){
  .app,.app.lukket{grid-template-columns:1fr}
  .side{position:fixed;inset:0 auto 0 0;width:min(280px,82vw);z-index:30;transform:translateX(-102%);transition:transform .2s ease}
  .side.apen{transform:none}
  .skygge{position:fixed;inset:0;background:#00000059;z-index:29;display:none}
  .skygge.apen{display:block}
  .aapne-side{display:flex!important}
  .velkomst{padding-top:8vh}.velkomst h1{font-size:1.5rem;line-height:2rem}
  .forslag{grid-template-columns:1fr}
  .boble{max-width:88%}
  .handl{opacity:1}
}
@media(prefers-reduced-motion:reduce){.side,.app{transition:none}.prikker i,.markor{animation:none}}

/* == Oppslagssider (/b/ og /p/) ============================
   Gjenbruker meldingsklassene over, saa et oppslag ser ut som
   en samtale. Bare det som mangler i .md er lagt til her. */
.stempel{align-self:stretch;font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--tekst-3)}
.md dl{display:grid;grid-template-columns:auto 1fr;gap:calc(var(--sp)*2) calc(var(--sp)*5);margin:calc(var(--sp)*5) 0}
.md dt{color:var(--tekst-2)}
.md dd{font-weight:500}
.md .kilde{border-top:1px solid var(--kant-lett);margin-top:calc(var(--sp)*7);padding-top:calc(var(--sp)*5);color:var(--tekst-2)}
.md .kilde p{margin:calc(var(--sp)*3) 0;font-size:13.5px;line-height:1.6}
@media(max-width:640px){.md dl{grid-template-columns:1fr;gap:2px 0}.md dd{margin-bottom:8px}}

/* == Innlogging: knapper i toppen + modal =====================
   Maal hentet fra chatgpt.com-sources:
     .btn            40px hoeyde, pill, 14px/500
     .btn-primary    #0d0d0d/#fff — moerkt #f9f9f9/#0d0d0d
     .btn-secondary  1px --border-medium (#00000026 / #ffffff1f)
     --bg-scrim      #00000080
     modalkolonne    max-w-[373px], sm:max-w-[388px], pt-10
     .text-heading-2 1.5rem / 1.75rem / 600 */
.topp-hoyre{margin-inline-start:auto;display:flex;align-items:center;gap:8px}
.knapp{min-height:40px;padding-inline:14px;border:1px solid transparent;border-radius:9999px;text-decoration:none;
 font-family:inherit;font-size:14px;font-weight:500;cursor:pointer;flex:0 0 auto;white-space:nowrap;
 display:inline-flex;align-items:center;justify-content:center}
.knapp-fyll{background:var(--fyll-bg);color:var(--fyll-tx)}
.knapp-fyll:hover{background:var(--fyll-bg-h)}
.knapp-kant{border-color:var(--kant-tung);background:var(--flate);color:var(--tekst)}
.knapp-kant:hover{background:var(--flate-2)}
/* .knapp setter display:inline-flex, og det slaar i hjel [hidden] sin
   display:none. Uten denne blir en knapp med hidden staaende synlig —
   samme felle som .skjerm[hidden] maatte loese lenger nede. */
.knapp[hidden]{display:none}
@media(max-width:520px){.knapp-kant{display:none}}
.skjerm{position:fixed;inset:0;z-index:60;background:var(--scrim);display:flex;
 align-items:center;justify-content:center;padding:20px;overflow-y:auto;
 opacity:0;visibility:hidden;transition:opacity .16s ease,visibility .16s ease}
.skjerm.vis{opacity:1;visibility:visible}
/* .skjerm setter display:flex, som slaar nettleserens [hidden]{display:none}.
   Uten denne linja ligger overlegget permanent i layouten. */
.skjerm[hidden]{display:none}
.modal{position:relative;width:100%;max-width:484px;background:var(--modal-bg);
 border-radius:16px;padding:40px 24px 28px;box-shadow:0 12px 48px #00000026;
 transform:scale(.97);transition:transform .16s ease}
.skjerm.vis .modal{transform:none}
@media(min-width:560px){.modal{padding:40px 48px 32px}}
.modal-lukk{position:absolute;top:20px;right:20px;width:36px;height:36px;border:none;
 background:none;border-radius:9999px;color:var(--tekst-2);cursor:pointer;
 display:flex;align-items:center;justify-content:center}
.modal-lukk:hover{background:var(--kant-lett);color:var(--tekst)}
.modal-kol{max-width:373px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
@media(min-width:640px){.modal-kol{max-width:388px}}
.modal h2{font-size:1.5rem;line-height:1.75rem;font-weight:600;letter-spacing:-.02em;
 text-align:center;margin:0}
.modal-under{font-size:1rem;line-height:1.5;color:var(--tekst-2);text-align:center;margin:0 0 8px}
.sosial{min-height:52px;width:100%;gap:10px;border:1px solid var(--kant-tung);
 background:transparent;color:var(--tekst);border-radius:9999px;font-family:inherit;
 font-size:14px;font-weight:500;cursor:pointer;padding-inline:18px;
 display:inline-flex;align-items:center;justify-content:center}
.sosial:hover{background:var(--kant-lett)}
.sosial svg{flex:0 0 auto}
.eller{display:flex;align-items:center;gap:12px;margin:2px 0;
 color:var(--tekst-3);font-size:12px;letter-spacing:.04em}
.eller::before,.eller::after{content:"";flex:1;height:1px;background:var(--kant)}
.epost{min-height:52px;width:100%;border:1px solid var(--kant-tung);border-radius:9999px;
 background:transparent;color:var(--tekst);padding-inline:18px;font-size:15px;
 font-family:inherit;outline:none}
.epost:focus{border-color:var(--tekst-3)}
.epost::placeholder{color:var(--tekst-3)}
.modal-send{min-height:52px;width:100%;border:none;border-radius:9999px;
 background:var(--fyll-bg);color:var(--fyll-tx);font-family:inherit;font-size:15px;
 font-weight:500;cursor:pointer}
.modal-send:hover{background:var(--fyll-bg-h)}
.modal-melding{font-size:13.5px;line-height:1.55;color:var(--tekst-2);text-align:center;margin:2px 0 0}
body.laast{overflow:hidden}
.auth-steg{display:flex;flex-direction:column;gap:12px}
.auth-steg[hidden]{display:none}
.google-boks{min-height:52px;display:flex;align-items:center;justify-content:center}
.google-boks>div{width:100%!important}
.kode{text-align:center;letter-spacing:.4em;font-size:20px;font-variant-numeric:tabular-nums}
.kode-lenker{display:flex;justify-content:center;gap:18px;margin-top:2px}
.lenkeknapp{border:none;background:none;color:var(--tekst-2);font-family:inherit;font-size:13.5px;cursor:pointer;padding:4px}
.lenkeknapp:hover{color:var(--tekst);text-decoration:underline}
.bruker-navn{font-size:14px;font-weight:500;color:var(--tekst);padding-inline:4px}

/* == Hjelp-undermeny i sidebaren ============================= */

.hjelp-meny[hidden]{display:none}
.hjelp-meny hr{border:none;border-top:1px solid var(--kant);margin:4px 6px}
#hjelp-knapp .pil{margin-inline-start:auto;transition:transform .15s ease;color:var(--tekst-3)}
#hjelp-knapp[aria-expanded=true] .pil{transform:rotate(90deg)}

/* == Innstillinger: to-delt dialog ============================ */
.innst{position:relative;display:grid;grid-template-columns:224px minmax(0,1fr);
 width:100%;max-width:848px;min-height:min(524px,80vh);background:var(--modal-bg);
 border-radius:16px;overflow:hidden;box-shadow:0 12px 48px #00000026;
 transform:scale(.97);transition:transform .16s ease}
.skjerm.vis .innst{transform:none}
.innst-side{border-inline-end:1px solid var(--kant-lett);padding:56px 8px 12px}
.innst-lukk{top:12px;left:12px;right:auto}
.innst-nav{display:flex;flex-direction:column;gap:2px}
.innst-fane-knapp{display:flex;align-items:center;gap:10px;width:100%;min-height:38px;
 padding:0 12px;border:none;background:none;border-radius:9px;font-family:inherit;
 font-size:14px;color:var(--tekst-2);cursor:pointer;text-align:start}
.innst-fane-knapp:hover{background:var(--flate-2);color:var(--tekst)}
.innst-fane-knapp.valgt{background:var(--flate-2);color:var(--tekst);font-weight:500}
.innst-hoved{padding:22px 28px 28px;overflow-y:auto}
.innst-hoved h2{font-size:1.15rem;font-weight:600;letter-spacing:-.01em;margin:0 0 4px}
.innst-blokk{border-top:1px solid var(--kant-lett);margin-top:14px;padding-top:4px}
.innst-blokk[hidden]{display:none}
.innst-rad{display:flex;align-items:center;justify-content:space-between;gap:20px;
 padding:16px 0;border-bottom:1px solid var(--kant-lett)}
.innst-rad:last-of-type{border-bottom:none}
.innst-rad label,.innst-tittel2{font-size:15px;color:var(--tekst)}
.innst-tittel2{font-weight:500}
.innst-under2{font-size:13px;color:var(--tekst-2);margin-top:2px}
.innst-velg{border:none;background:none;color:var(--tekst);font-family:inherit;
 font-size:15px;cursor:pointer;padding:6px 4px;border-radius:8px;text-align:end}
.innst-velg:hover{background:var(--flate-2)}
.innst-hjelp{font-size:13px;line-height:1.5;color:var(--tekst-2);margin-top:14px}
.knapp-fare{border-color:#e0413a;background:none;color:#e0413a}
.knapp-fare:hover{background:#e0413a;color:#fff}
@media(max-width:640px){
 .innst{grid-template-columns:1fr}
 .innst-side{border-inline-end:none;border-bottom:1px solid var(--kant-lett);padding:56px 8px 8px}
 .innst-nav{flex-direction:row}
}

/* == Hurtigtaster ============================================= */
.snar-boks{position:relative;width:100%;max-width:420px;background:var(--modal-bg);
 border-radius:16px;padding:26px 26px 20px;box-shadow:0 12px 48px #00000026;
 transform:scale(.97);transition:transform .16s ease}
.skjerm.vis .snar-boks{transform:none}
.snar-boks h2{font-size:1.15rem;font-weight:600;letter-spacing:-.01em;margin:0 0 14px}
.snar-liste{display:grid;grid-template-columns:1fr auto;gap:12px 16px;align-items:center;font-size:14px}
.snar-liste dt{color:var(--tekst-2)}
.snar-liste dd{display:flex;gap:4px;justify-content:flex-end}
.snar-fot{margin-top:18px;font-size:12.5px;color:var(--tekst-3);line-height:1.6}
kbd{font-family:inherit;font-size:11.5px;background:var(--flate-2);
 border:1px solid var(--kant-lett);border-radius:5px;padding:2px 6px;
 color:var(--tekst-2);min-width:22px;text-align:center;display:inline-block;line-height:1.5}
.meny button kbd{margin-inline-start:auto}

/* Merket er nå den ekte logoen (img), ikke en currentColor-SVG. */
.side-merke{border-radius:8px;text-decoration:none}
.side-merke:hover{background:var(--flate-2)}
.side-merke img{display:block;border-radius:6px}

/* == Midlertidig chat, arkiv og vurdering ===================== */
.rad{padding-inline-end:62px}
.rad-arkiv{right:60px}.rad-navn{right:32px}.rad-slett{right:4px}
.midl-knapp.pa{background:var(--flate-3);color:var(--tekst)}
.midl-merke{max-width:var(--traad);margin:0 auto 4px;display:flex;align-items:center;gap:8px;
 font-size:13px;color:var(--tekst-2);background:var(--flate-2);border-radius:10px;padding:9px 12px}
.hbtn.valgt{color:var(--tekst);background:var(--flate-2)}
.hbtn.valgt svg{fill:currentColor}
.arkivliste{list-style:none;margin:8px 0 0;display:flex;flex-direction:column;gap:2px;max-height:220px;overflow-y:auto}
.arkivliste li{display:flex;align-items:center;gap:12px;padding:7px 0;border-bottom:1px solid var(--kant-lett);font-size:14px}
.arkivliste li:last-child{border-bottom:none}
.arkiv-navn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--tekst-2)}

/* == Hover og trykk, verdier fra kildene ======================
   Ikonknapper: subtilt overlegg (--interactive-bg-secondary-hover),
   ikke hele flatefarger som foer — de var altfor kraftige.
   Sidebar-rader: egen, litt tydeligere flate (-tertiary-hover). */
.ikonknapp,.kbtn,.hbtn,.modal-lukk,.lenkeknapp,.rad,.bunnrad,.meny button,
.innst-fane-knapp,.sosial,.radknapp,.knapp,.forslag button,.mini{
  transition:background-color .12s ease,color .12s ease}
.ikonknapp:hover,.kbtn:hover,.hbtn:hover,.modal-lukk:hover,.radknapp:hover{background:var(--hover-svak);color:var(--tekst)}
.ikonknapp:active,.kbtn:active,.hbtn:active,.modal-lukk:active,.radknapp:active{background:var(--press-svak)}
.rad:hover,.bunnrad:hover,.meny button:hover,.innst-fane-knapp:hover,.sosial:hover{background:var(--hover-rad)}
.rad:active,.bunnrad:active,.meny button:active,.sosial:active{background:var(--flate-2)}
.rad[aria-current=true]{background:var(--flate-2);color:var(--tekst)}
.innst-fane-knapp.valgt{background:var(--flate-2)}
.lenkeknapp:hover{background:var(--hover-svak);border-radius:6px;text-decoration:none}
.side-merke:hover{background:var(--hover-svak)}

/* == Komponisten, maal fra kildene =============================
     --composer-bar_height   52px   (min var 70)
     --composer-bar_width    768px  (= --traad, stemte alt)
     --composer-footer_height 32px
     .composer-btn           36px hoeyde/bredde, pill */
.boks{min-height:52px;padding:7px;gap:4px}   /* align-items:flex-end fra basen: knappene blir staaende nederst naar feltet vokser, som i forbildet */
.skriv{min-height:36px;padding:7px 6px;line-height:1.4}
.fot{min-height:32px;display:flex;align-items:center;justify-content:center;padding:0}

/* == Hovertekst ================================================
   Egen tooltip i stedet for title=, som gir nettleserens egen boks
   etter ~1,5 s i systemets drakt. Ren CSS, ingen JS. */
[data-tips]{position:relative}
[data-tips]::after{content:attr(data-tips);position:absolute;z-index:70;
 left:50%;translate:-50% 0;top:calc(100% + 7px);
 background:var(--modal-bg);color:var(--tekst);border:1px solid var(--kant);
 border-radius:7px;padding:5px 9px;font-size:12px;line-height:1.4;white-space:nowrap;
 box-shadow:0 4px 14px #00000026;pointer-events:none;
 opacity:0;visibility:hidden;transition:opacity .12s ease .35s,visibility .12s ease .35s}
[data-tips]:hover::after,[data-tips]:focus-visible::after{opacity:1;visibility:visible}
/* Tooltip under toppmenyen ville stukket utenfor; snu den for komponisten */
.komp [data-tips]::after{top:auto;bottom:calc(100% + 7px)}
.side-bunn [data-tips]::after{top:auto;bottom:calc(100% + 7px)}


/* ── Plugins ──────────────────────────────────────────────────
   Radene og bryteren laaner farge- og kantvariablene som resten av
   modalene bruker, saa lista foelger temaet uten egne verdier. */
.plugg-liste { display: flex; flex-direction: column; gap: 2px; margin-top: 4px; }

.plugg-rad {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 16px; padding: 14px 2px;
}
.plugg-rad + .plugg-rad { border-top: 1px solid var(--kant-lett); }

.plugg-tekst { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.plugg-navn  { font-size: 15px; font-weight: 600; }
.plugg-om    { font-size: 13.5px; line-height: 1.45; color: var(--tekst-2); }

.plugg-bryter {
  flex: none; width: 42px; height: 25px; margin-top: 2px; padding: 0;
  border: 1px solid var(--kant-tung); border-radius: 9999px;
  background: transparent; cursor: pointer;
  transition: background .16s ease, border-color .16s ease;
}
.plugg-bryter > span {
  display: block; width: 17px; height: 17px; margin-left: 3px;
  border-radius: 50%; background: var(--tekst-3);
  transition: transform .16s ease, background .16s ease;
}
.plugg-bryter.paa            { background: var(--fyll-bg); border-color: var(--fyll-bg); }
.plugg-bryter.paa > span     { transform: translateX(17px); background: var(--fyll-tx); }
.plugg-bryter:focus-visible  { outline: 2px solid var(--tekst); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
  .plugg-bryter, .plugg-bryter > span { transition: none; }
}

/* == Velkommen tilbake (NoAuthWelcomeBackModal) ================
   Fra kildene: overskriften er text-3xl font-normal (1.875rem / 400),
   ikke text-heading-2/600 som den generiske. Undertittelen text-base. */
.modal.velkommen h2{font-size:1.875rem;line-height:2.25rem;font-weight:400;letter-spacing:0}
.modal.velkommen .modal-under{font-size:1rem;line-height:1.5rem;margin-bottom:16px}
.konto-rad{display:flex;align-items:center;gap:12px;width:100%;min-height:68px;
 border:1px solid var(--kant-tung);border-radius:16px;padding:12px 12px 12px 14px;
 cursor:pointer;text-align:start;background:transparent}
.konto-rad:hover{background:var(--hover-rad)}
.konto-avatar{flex:0 0 auto;width:40px;height:40px;border-radius:50%;display:flex;
 align-items:center;justify-content:center;font-size:14px;font-weight:600;color:#fff}
.konto-tekst{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.konto-navn{font-size:15px;font-weight:500;color:var(--tekst)}
.konto-epost{font-size:13px;color:var(--tekst-2)}
.konto-navn,.konto-epost{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.konto-fjern{flex:0 0 auto;width:30px;height:30px;border:none;background:none;
 border-radius:50%;color:var(--tekst-3);cursor:pointer;
 display:flex;align-items:center;justify-content:center}
.konto-fjern:hover{background:var(--hover-svak);color:var(--tekst)}

/* == Soekedialog =============================================== */
.skjerm-topp{align-items:flex-start;padding-top:12vh}
.sokboks{position:relative;width:100%;max-width:640px;background:var(--modal-bg);
 border:1px solid var(--kant);border-radius:16px;box-shadow:0 16px 56px #0000003d;
 overflow:hidden;transform:scale(.98);transition:transform .16s ease}
.skjerm.vis .sokboks{transform:none}
.sokfelt-rad{display:flex;align-items:center;gap:10px;padding:12px 12px 12px 16px;
 border-bottom:1px solid var(--kant-lett);color:var(--tekst-3)}
.sokfelt{flex:1;min-width:0;border:none;outline:none;background:transparent;
 color:var(--tekst);font-family:inherit;font-size:16px;padding:6px 0}
.sokfelt::placeholder{color:var(--tekst-3)}
.sok-lukk{position:static;width:32px;height:32px}
.sokliste{max-height:min(56vh,520px);overflow-y:auto;padding:6px}
.sok-hode{font-size:12px;font-weight:600;color:var(--tekst-3);padding:12px 12px 6px}
.sok-rad{display:flex;align-items:center;gap:11px;width:100%;min-height:44px;
 border:none;background:none;border-radius:10px;padding:8px 12px;cursor:pointer;
 text-align:start;color:var(--tekst);font-family:inherit;font-size:14px}
.sok-rad svg{flex:0 0 auto;color:var(--tekst-3)}
.sok-rad:hover,.sok-rad.pekt{background:var(--hover-rad)}
.sok-tx{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sok-treff{font-size:12.5px;color:var(--tekst-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sok-rad mark{background:transparent;color:var(--tekst);font-weight:600}
.sok-tom{padding:26px 12px;text-align:center;font-size:14px;color:var(--tekst-2)}


/* == Skinne: sidepanelet lukket ================================
   Fra kildene: --sidebar-rail-width 52px, --sidebar-icon #7d7d7d/#a4a4a4.
   Skinnen viser logo, ny samtale, soek og avatar — resten skjules. */
.app.lukket .side{align-items:center;overflow:visible}
.app.lukket .side-topp{flex-direction:column;padding:8px 0 0;gap:2px}
.app.lukket .side-merke{margin:0}
.app.lukket .sokerad,.app.lukket .liste,.app.lukket .hjelp-meny,
.app.lukket .rad-tx,.app.lukket .bunn-tx,.app.lukket .pil{display:none}
.app.lukket .fastrader{padding:2px 0;width:100%}
.app.lukket .rad,.app.lukket .bunnrad{width:38px;min-height:38px;padding:0;
 margin:0 auto;justify-content:center;gap:0;border-radius:9px}
.app.lukket .side-bunn{border-top:none;padding:6px 0 10px;align-items:center;width:100%}
.app.lukket .side svg{color:var(--side-ikon)}
.app.lukket .side a:hover svg,.app.lukket .side button:hover svg{color:var(--tekst)}
/* Tooltip til hoeyre i skinnen, ellers stikker den utenfor. */
.app.lukket .side [data-tips]::after{top:50%;left:calc(100% + 8px);bottom:auto;translate:0 -50%}

/* Avatar nederst i skinnen. Skjult naar panelet er aapent. */
.skinne-avatar{display:none;flex:0 0 auto;width:32px;height:32px;border:none;
 border-radius:50%;color:#fff;font-size:12px;font-weight:600;cursor:pointer;
 align-items:center;justify-content:center;margin:6px auto 0}
.app.lukket .skinne-avatar{display:flex}
/* Lukkeknappen i skinnen peker motsatt vei — den aapner. */
.app.lukket .side-topp .ikonknapp[data-tips="Lukk sidepanel"]{display:none}

/* Logo <-> panel-ikon i samme slot. Bare i skinnen, som i forbildet. */
.merke-panel{display:none}
.app.lukket .side-merke:hover img{display:none}
.app.lukket .side-merke:hover .merke-panel{display:block;color:var(--tekst)}

/* I skinnen viser forbildet bare topp-ikonene og avataren nederst —
   ikke priser/plugins/innstillinger/hjelp. De kommer tilbake ved aapning. */
.app.lukket .side-bunn .bunnrad{display:none}
/* Samtale-ikonet finnes bare i skinnen; det aapner panelet med lista. */
.skinne-samtaler{display:none}
.app.lukket .skinne-samtaler{display:flex;width:38px;min-height:38px;margin:0 auto;
 align-items:center;justify-content:center;border:none;background:none;
 border-radius:9px;color:var(--side-ikon);cursor:pointer}
.app.lukket .skinne-samtaler:hover{background:var(--hover-rad);color:var(--tekst)}

/* Rekkefoelge i skinnen: logo, ny samtale, soek, samtaler, avatar —
   som i forbildet. display:contents loefter side-topp sine barn opp til
   .side, saa alt kan sorteres uten duplisert markup. */
.app.lukket .side-topp{display:contents}
.app.lukket .side-merke{order:1;margin-top:8px}
.app.lukket .fastrader{order:2}
.app.lukket .side-topp .ikonknapp{order:3;margin:0 auto}
.app.lukket .skinne-samtaler{order:4}
.app.lukket .side-bunn{order:5;margin-top:auto}
@media(max-width:640px){.boble{max-width:100%}}   /* [--user-chat-width:100%] */


/* == Tom tilstand: gruppen sentreres =========================
   Forbildet sentrerer hilsen + komponist + forslag midt i vinduet.
   Komponisten er samme element som ellers; bare .tom paa .hoved
   endrer hvordan raden fordeles. */
/* IKKE justify-content:center — det dro toppmenyen med ned. Auto-marger
   sentrerer traad+komponist mens .topp blir staaende oeverst. */
.hoved.tom .traad-omslag{margin-top:auto}
.hoved.tom .komp{margin-bottom:auto}
.hoved.tom .traad-omslag{flex:0 0 auto;margin-top:auto}
.hoved.tom .traad{height:auto;overflow:visible}
.hoved.tom .inner{padding-bottom:8px}
.hoved.tom .velkomst{padding-top:0}
.hoved.tom .tilbunn{display:none}
.hoved.tom .fot{display:none}   /* ingen ansvarsfraskrivelse i tom tilstand */

/* == Innstillinger: nye rader ================================= */
.innst-ikke{font-size:13px;color:var(--tekst-3);white-space:nowrap}
.innst-rad-kol{display:block}
.innst-rad-kol label{display:block;margin-bottom:8px}
.innst-felt{width:100%;border:1px solid var(--kant-tung);border-radius:12px;
 background:transparent;color:var(--tekst);font-family:inherit;font-size:14px;
 line-height:1.5;padding:10px 12px;resize:vertical;outline:none}
.innst-felt:focus{border-color:var(--tekst-3)}
.innst-felt::placeholder{color:var(--tekst-3)}
.innst-side{overflow-y:auto}

/* == Bekreft / skriv inn ====================================== */
.dlg{position:relative;width:100%;max-width:420px;background:var(--modal-bg);
 border-radius:16px;padding:24px;box-shadow:0 12px 48px #00000026;
 transform:scale(.97);transition:transform .16s ease}
.skjerm.vis .dlg{transform:none}
.dlg-tekst{font-size:16px;line-height:1.5;color:var(--tekst);margin:0 0 16px}
.dlg-felt{margin-bottom:16px}
.dlg-felt[hidden]{display:none}
.dlg-knapper{display:flex;justify-content:flex-end;gap:10px}
#dialog{z-index:61}   /* staar oppaa Innstillinger naar den aapnes derfra */

/* Farlig handling: sletting av konto. Roed foerst naar den er armert, saa
   knappen ikke skriker paa deg foer du faktisk har bedt om det. */
.innst-fare.armert{border-color:#c81e1e;color:#c81e1e}
html[data-tema=dark] .innst-fare.armert{border-color:#ff8a8a;color:#ff8a8a}

/* ── Samtalerad: pin + «...», som i forbildet ─────────────────────────────
   Knappene er soesken av .rad, ikke inni den. Derfor maa <li> vaere
   posisjonsanker, og .rad ha plass til hoeyre saa lang tittel ikke havner
   under knappene. */
.rad-li{position:relative}
.rad-li .rad{padding-inline-end:60px}
/* opacity, IKKE display:none. Med display:none faller knappene ut av
   tab-rekkefoelgen — tastaturbrukere kunne ikke naa hverken pin eller meny —
   og getBoundingClientRect() gir 0,0, saa menyen aapnet seg i hjoernet naar
   den ble utloest uten mus. Med opacity beholder de boksen og fokus. */
.rad-li .radknapp{position:absolute;top:50%;transform:translateY(-50%);
  width:26px;height:26px;display:flex;align-items:center;justify-content:center;
  border:none;background:none;border-radius:6px;color:var(--tekst-3);cursor:pointer;
  opacity:0;pointer-events:none;transition:opacity .12s ease}
.rad-fest{right:32px}
.rad-mer{right:4px}
.rad-li:hover .radknapp,.rad-li:focus-within .radknapp,
.rad-li .radknapp:focus-visible{opacity:1;pointer-events:auto}
/* En festet samtale skal vise naala ogsaa naar man ikke holder over —
   ellers ser man ikke at den ER festet. */
.rad-li.er-festet .rad-fest{opacity:1;pointer-events:auto;color:var(--tekst-2)}
@media (prefers-reduced-motion:reduce){.rad-li .radknapp{transition:none}}

.rad-meny{position:fixed;z-index:70;min-width:240px;padding:6px;
  background:var(--modal-bg);border:1px solid var(--kant);border-radius:12px;
  box-shadow:0 12px 32px #00000040;display:flex;flex-direction:column;gap:1px}
.rad-meny[hidden]{display:none}
.rad-meny button{display:flex;align-items:center;gap:10px;width:100%;
  min-height:34px;padding:0 10px;border:none;background:none;border-radius:8px;
  font-size:14px;color:var(--tekst);cursor:pointer;text-align:start}
.rad-meny button:hover{background:var(--flate-2)}
.rad-meny button svg{flex:0 0 auto;color:var(--tekst-2)}
.rad-meny hr{border:none;border-top:1px solid var(--kant-lett);margin:4px 2px}
.rad-meny .fare,.rad-meny .fare svg{color:#e5484d}
.rad-meny .fare:hover{background:#e5484d1a}

/* ── Kontoraden nederst i sidepanelet ──────────────────────────────────
   Foer laa «Se priser», «Plugins», «Innstillinger» og «Hjelp» som fire
   loese rader her. Forbildet har bare EN rad — avatar, navn og plan — og
   samler resten i en meny som aapner seg oppover. */
.side-bunn{position:relative}
.konto-rad{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;
  padding:4px 8px;border:none;background:none;border-radius:10px;cursor:pointer;
  text-align:start;color:var(--tekst)}
.konto-rad:hover,.konto-rad[aria-expanded=true]{background:var(--flate-2)}
.konto-av{flex:0 0 auto;width:28px;height:28px;border-radius:50%;display:flex;
  align-items:center;justify-content:center;font-size:12px;font-weight:600;
  color:#fff;background:var(--flate-3)}
.konto-tx{min-width:0;display:flex;flex-direction:column;line-height:1.25}
.konto-navn{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.konto-plan{font-size:12px;color:var(--tekst-3)}
/* I skinnen tar .skinne-avatar over. */
.app.lukket .konto-rad,.app.lukket .konto-meny{display:none}
.konto-meny{position:absolute;left:8px;right:8px;bottom:calc(100% - 6px);z-index:40;
  display:flex;flex-direction:column;gap:2px;background:var(--flate-2);
  border:1px solid var(--kant);border-radius:12px;padding:6px;
  box-shadow:0 12px 32px rgba(0,0,0,.28)}
.konto-meny[hidden]{display:none}
.konto-meny hr{border:none;border-top:1px solid var(--kant);margin:4px 6px}
.km-epost{font-size:12px;color:var(--tekst-3);padding:6px 10px 4px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Hjelp-undermenyen ligger nå INNE i kontomenyen og folder seg ut der. */
.konto-meny .hjelp-meny{margin-bottom:2px}
/* .rad brukes nå ogsaa paa <a> (Plugins i toppen), og lenker arver
   understrek fra nettleseren. .bunnrad hadde dette fra foer. */
a.rad{text-decoration:none}

/* ── Radmenyen paa forbildets maal ────────────────────────────────────
   Hentet fra kildenes tokens, ikke gjettet fra skjermbildet:
     --popover-radius   = --radius-2xl      = 1rem = 16px  (vi hadde 12px)
     --menu-item-height = calc(spacing * 9) = 36px         (vi hadde 34px)
     .__menu-item       border-radius 10px, padding-inline 10px
     --color-surface-elevated (moerk) = --gray-300 = #303030
   Bredden er ikke tatt fra --popover-min-width (300px) — det er den
   generiske popover-verdien, og 300px sprenger et sidepanel paa 260px.
   240px foelger proporsjonen i skjermbildet. */
.rad-meny{border-radius:16px;
  box-shadow:0 10px 15px -3px rgba(0,0,0,.2), 0 4px 6px -4px rgba(0,0,0,.2)}
[data-tema=dark] .rad-meny{background:#303030}
.rad-meny button{min-height:36px;border-radius:10px;padding-inline:10px;font-size:14px}
/* Menyikonene: forbildet bruker .icon-lg i menyrader = calc(spacing*5) = 20px.
   Vaare svg-er sto paa 15px og ble smaa mot 14px tekst i en 36px rad. */
.rad-meny button svg{width:20px;height:20px}

/* Omdoeping skjer i raden, ikke i en dialog. Feltet maa ha samme hoeyde og
   plass som raden det erstatter, ellers hopper lista naar du starter. */
.rad-inn{width:calc(100% - 12px);margin-inline:6px;min-height:36px;
  border:1px solid var(--tekst-3);border-radius:10px;background:var(--flate);
  padding:6px 10px;font-size:14px;font-family:inherit;color:var(--tekst);
  outline:none;display:block}

/* ═══ Hover, slik forbildet gjoer det ════════════════════════════════════
   Forbildet toner hover inn over 150ms med cubic-bezier(.4,0,.2,1) — det er
   Tailwind-standarden de kjoerer paa, og den ligger paa alt som kan pekes
   paa. Hos oss sto 38 :hover-regler uten overgang i det hele tatt, saa
   flatene slo hardt av og paa. */
.ikonknapp,.hode-kn,.rad,.radknapp,.bunnrad,.merke-knapp,.kode-kopi,.hbtn,
.kbtn,.knapp,.meny button,.modal-lukk,.sosial,.lenkeknapp,.innst-fane-knapp,
.innst-velg,.side-merke,.konto-rad,.konto-fjern,.sok-rad,.skinne-samtaler,
.skinne-avatar,.rad-meny button,.forslag button,.mini{
  transition:background-color .15s cubic-bezier(.4,0,.2,1),
             color .15s cubic-bezier(.4,0,.2,1),
             border-color .15s cubic-bezier(.4,0,.2,1),
             opacity .15s cubic-bezier(.4,0,.2,1)
}

/* Paa den hevede menyflaten maa hover LYSNE. Vi brukte --flate-2 (#212121),
   som er MOERKERE enn panelet (#303030) — hover gjorde raden dypere i stedet
   for aa loefte den. Forbildet bruker --bg-tertiary der: #414141 moerkt,
   #efeff2 lyst. */
:root{--meny-hover:#efeff2}
[data-tema=dark]{--meny-hover:#414141}
.rad-meny button:hover,.rad-meny button:focus-visible,
.konto-meny>.bunnrad:hover,.konto-meny>.bunnrad:focus-visible,
.konto-meny .km-hode:hover,.konto-meny .km-hode:focus-visible,
.hjelp-meny .bunnrad:hover,.hjelp-meny .bunnrad:focus-visible,
.undermeny>.bunnrad:hover,.undermeny>.bunnrad:focus-visible,
.undermeny.apen>.bunnrad{background:var(--meny-hover);color:var(--tekst)}
.rad-meny .fare:hover,.rad-meny .fare:focus-visible{background:#e5484d1a}

/* Panelene toner inn som hos forbildet: 350ms cubic-bezier(.19,1,.22,1),
   opasitet 0->1 og skala .95->1. */
@keyframes meny-inn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
.rad-meny:not([hidden]),.konto-meny:not([hidden]),.hjelp-meny:not([hidden]){
  animation:meny-inn .35s cubic-bezier(.19,1,.22,1)
}
.rad-meny{transform-origin:top left}
.konto-meny{transform-origin:bottom left}
.hjelp-meny{transform-origin:bottom left}

/* ═══ Hjelp som flyout ═══════════════════════════════════════════════════
   Foer foldet den seg ut INNE i kontomenyen og dyttet resten nedover.
   Forbildet legger den ved siden av, til hoeyre, og aapner paa hover. */
.undermeny{position:relative}
.undermeny>.bunnrad .pil{margin-inline-start:auto;color:var(--tekst-3)}
/* fixed, ikke absolute: sidepanelet klipper alt som stikker utenfor, saa
   en absolutt plassert flyout ble borte i kanten. Koordinatene settes i
   innst.js, som for radmenyen. */
.hjelp-meny{position:fixed;z-index:60;
  min-width:232px;display:flex;flex-direction:column;gap:2px;padding:6px;
  border-radius:16px;background:var(--flate-2);border:1px solid var(--kant);
  box-shadow:0 10px 15px -3px rgba(0,0,0,.2), 0 4px 6px -4px rgba(0,0,0,.2)}
[data-tema=dark] .hjelp-meny{background:#303030}
.hjelp-meny[hidden]{display:none}
.hjelp-meny hr{border:none;border-top:1px solid var(--kant);margin:4px 6px}
/* Usynlig bro over mellomrommet, saa menyen ikke lukker seg naar musa
   krysser gapet mellom raden og panelet. */
/* Usynlig bro over gapet, saa menyen ikke lukker seg naar musa krysser
   mellomrommet mellom raden og panelet. */
.hjelp-meny::before{content:"";position:absolute;left:-12px;top:0;bottom:0;width:12px}

/* Kontoraden oeverst i menyen: avatar, navn, plan og vinkel. */
.km-hode{min-height:52px;gap:10px}
.km-av{flex:0 0 auto;width:28px;height:28px;border-radius:50%;display:flex;
  align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#fff}
.km-tx{min-width:0;display:flex;flex-direction:column;line-height:1.25;flex:1}
.km-navn{font-size:14px;color:var(--tekst);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.km-plan{font-size:12px;color:var(--tekst-3)}
.km-hode .pil{margin-inline-start:auto;color:var(--tekst-3)}

@media (prefers-reduced-motion:reduce){
  .ikonknapp,.hode-kn,.rad,.radknapp,.bunnrad,.merke-knapp,.kode-kopi,.hbtn,
  .kbtn,.knapp,.meny button,.modal-lukk,.sosial,.lenkeknapp,.innst-fane-knapp,
  .innst-velg,.side-merke,.konto-rad,.konto-fjern,.sok-rad,.skinne-samtaler,
  .skinne-avatar,.rad-meny button,.forslag button,.mini{transition:none}
  .rad-meny:not([hidden]),.konto-meny:not([hidden]),.hjelp-meny:not([hidden]){animation:none}
}

/* Oppslagssidene lister opptil 25 lenker etter hverandre (virksomheter paa
   en adresse, andre adresser i gata, roller). Blaa med understrek hele veien
   ble en vegg. Behold fargen som baerer betydningen, men vis understreket
   paa hover og ved tastaturfokus. Loepende lenker i broedtekst beholder
   understreket, saa de ikke forsvinner midt i en setning. */
.md li > a:not(:hover):not(:focus-visible){text-decoration:none}
.md li > a:hover,.md li > a:focus-visible{text-decoration:underline}
