/* ============================================================
   Lekselos – delt design-system for hele det offentlige nettstedet
   Varm, tillitsvekkende, lavterskel. Maritimt «los»-tema.
   ============================================================ */
:root{
  --navy:#1f3a5f;
  --teal:#2f7d83;
  --teal-light:#4aa3a8;
  --sand:#fbf6ee;
  --cream:#fffdf9;
  --coral:#ef8b6e;
  --coral-deep:#e0714f;
  --amber:#f4c178;
  --ink:#26323d;
  --muted:#5d6b76;
  --line:#ece2d4;
  --radius:22px;
  --shadow:0 18px 50px -24px rgba(31,58,95,.35);
  --shadow-sm:0 10px 30px -22px rgba(31,58,95,.4);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Geist',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);background:var(--sand);line-height:1.6;-webkit-font-smoothing:antialiased;
}
a{color:inherit}
img{max-width:100%}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
.narrow{max-width:760px;margin:0 auto;padding:0 24px}

/* ---------- Knapper ---------- */
.btn{display:inline-block;background:#c0512e;color:#fff;text-decoration:none;font-weight:600;
  padding:14px 28px;border-radius:999px;box-shadow:0 12px 28px -10px rgba(224,113,79,.7);
  transition:transform .15s ease,background .2s ease;border:none;cursor:pointer;font-size:1rem}
.btn:hover{background:#a8431f;transform:translateY(-2px)}
.btn-lg{padding:16px 34px;font-size:1.08rem}
/* Øvemodus-knapp (teal), prøvemodus bruker vanlig oransje .btn */
.btn-teal{display:inline-block;background:var(--teal);color:#fff;text-decoration:none;font-weight:600;
  padding:14px 28px;border-radius:999px;box-shadow:0 12px 28px -10px rgba(47,125,131,.6);
  transition:transform .15s ease,background .2s ease;border:none;cursor:pointer;font-size:1rem}
.btn-teal:hover{background:#266a70;transform:translateY(-2px)}
/* Fargekodet fag-etikett (farger settes inline fra fag_farge()) */
.fag-merke{display:inline-block;font-size:.72rem;font-weight:700;padding:2px 10px;
  border-radius:999px;letter-spacing:.01em;vertical-align:middle;white-space:nowrap;line-height:1.7}

/* Mål-velger (huk av kompetansemål en prøve dekker): avrundede listerader
   med egentegnet sirkelhake til venstre. Valgte rader tones teal
   (label:has, med haken alene som fallback i eldre nettlesere).
   div-prefiks i selektorene: vinner over «.felt label» (display:block,
   fet skrift) som ellers ville stablet haken over teksten. */
div.maal-velger{display:block;max-height:230px;overflow-y:auto;overflow-x:hidden;
  border:1px solid var(--line);border-radius:14px;background:#fff;padding:6px}
div.maal-velger label{display:flex;align-items:flex-start;gap:12px;width:100%;
  padding:11px 13px;cursor:pointer;font-size:.92rem;line-height:1.5;color:var(--ink);
  text-align:left;font-weight:400;margin:0;border-radius:10px;transition:background .12s}
div.maal-velger label + label{margin-top:2px}
div.maal-velger label:hover{background:#faf6ef}
div.maal-velger label:has(input:checked){background:#e7f1f0;color:var(--navy)}
div.maal-velger input[type=checkbox],input.hak{appearance:none;-webkit-appearance:none;margin:1px 0 0;
  flex:0 0 auto;width:22px;height:22px;border:1.5px solid #c8bda9;border-radius:999px;
  background:#fff;cursor:pointer;transition:border-color .12s,background .12s}
div.maal-velger input[type=checkbox]:hover,input.hak:hover{border-color:var(--teal)}
div.maal-velger input[type=checkbox]:checked,input.hak:checked{border-color:var(--teal);background:var(--teal)
  url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 5 5 9-11'/%3E%3C/svg%3E") no-repeat center/14px}
div.maal-velger input[type=checkbox]:focus-visible,input.hak:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(47,125,131,.18)}
div.maal-velger span{flex:1;min-width:0;overflow-wrap:anywhere;display:block}

/* Kakediagram (fremdrift mot målplanen): teal bit = fullført */
.kake{--p:0%;width:52px;height:52px;border-radius:50%;position:relative;flex:0 0 auto;
  background:conic-gradient(var(--kf,var(--teal)) var(--p),#eadfce 0)}
.fp-ikon{width:46px;height:46px;border-radius:14px;flex:0 0 auto;display:flex;
  align-items:center;justify-content:center;font-weight:800;font-size:1.25rem;letter-spacing:-.02em}
.fp-fagkort{position:relative;overflow:hidden}
.fp-fagkort::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;
  background:var(--fagfg,var(--teal));opacity:.9}
.kake::after{content:attr(data-pst);position:absolute;inset:7px;background:var(--cream);
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:.66rem;font-weight:800;color:var(--navy)}
.btn-ghost{display:inline-block;text-decoration:none;font-weight:600;padding:14px 26px;
  border-radius:999px;border:1.5px solid rgba(31,58,95,.25);color:var(--navy);
  transition:background .2s ease;cursor:pointer;background:transparent}
.btn-ghost:hover{background:rgba(31,58,95,.05)}
.btn-mini{padding:6px 12px;font-size:.82rem;border-radius:999px}
.btn-mini:disabled{opacity:.55;cursor:default}
/* Emneside: smakebit-gate for utloggede (innholdet ligger i HTML for Google) */
.emne-brod.laast{position:relative;max-height:360px;overflow:hidden}
.emne-brod.laast::after{content:"";position:absolute;left:0;right:0;bottom:0;height:190px;
  background:linear-gradient(rgba(251,246,238,0),var(--sand) 88%);pointer-events:none}
.emne-gate{text-align:center;padding:26px 22px;margin:18px 0 8px}

/* ---------- Navigasjon ---------- */
header.nav{position:sticky;top:0;z-index:40;background:rgba(251,246,238,.88);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;
  padding:7px 24px;max-width:1080px;margin:0 auto}
/* Merkevare: «lekselos.no» i Geist. Legg /fonts/geist-700.woff2 på serveren
   (lastes ned fra https://vercel.com/font), så brukes den automatisk;
   ellers en ren systemfont i samme stil (Inter/SF). */
@font-face{font-family:'Geist';font-style:normal;font-weight:100 900;font-display:swap;
  src:url('/fonts/geist.woff2') format('woff2-variations'),url('/fonts/geist.woff2') format('woff2')}
@font-face{font-family:'Geist';font-style:italic;font-weight:100 900;font-display:swap;
  src:url('/fonts/geist-italic.woff2') format('woff2-variations'),url('/fonts/geist-italic.woff2') format('woff2')}
.brand{display:flex;align-items:center;gap:12px;font-weight:700;font-size:1.55rem;
  font-family:'Geist','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--navy);letter-spacing:-.035em;text-decoration:none;line-height:1}
.brand .ordmerke{font-weight:700;display:inline-flex;align-items:baseline}
.brand .tld{color:var(--coral-deep);font-weight:600;letter-spacing:-.02em}
footer.site .brand .tld{color:#f4b58f}
.brand .mark{height:64px;width:auto;flex:0 0 auto;display:block}
.foot-grid .brand .mark{height:44px}
.foot-grid .brand{font-size:1.35rem}
.nav-links{display:flex;gap:24px;align-items:center}
.nav-links a{text-decoration:none;color:var(--muted);font-weight:500;font-size:.96rem}
.nav-links a:hover{color:var(--navy)}
.nav-links a.active{color:var(--navy);font-weight:600}
.nav-links a.nav-login{color:var(--navy);font-weight:600}
.nav-links .btn{padding:10px 20px;color:#fff}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px;color:var(--navy)}
.nav-toggle svg{display:block}
@media(max-width:820px){
  .nav-toggle{display:block}
  .nav-links{position:absolute;top:100%;left:0;right:0;background:var(--cream);
    border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;
    gap:0;padding:8px 0;display:none;box-shadow:var(--shadow-sm)}
  .nav-links.open{display:flex}
  .nav-links a{padding:13px 24px;font-size:1.05rem}
  .nav-links .btn{margin:10px 24px;text-align:center}
}

/* ---------- Seksjoner ---------- */
section{padding:72px 0}
.section-sm{padding:52px 0}
.eyebrow{color:var(--teal);font-weight:700;text-transform:uppercase;letter-spacing:.08em;
  font-size:.82rem;margin-bottom:12px}
h1{font-size:clamp(2.3rem,5vw,3.5rem);line-height:1.08;letter-spacing:-.02em;
  color:var(--navy);font-weight:800}
h2{font-size:clamp(1.7rem,3.4vw,2.4rem);color:var(--navy);letter-spacing:-.015em;
  line-height:1.15;font-weight:800}
h3{color:var(--navy)}
p.lead{font-size:1.22rem;color:var(--muted)}
.section-intro{max-width:60ch;color:var(--muted);font-size:1.08rem}
.center{text-align:center}
.center .section-intro{margin-left:auto;margin-right:auto}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;padding:56px 0 64px;background:
  radial-gradient(1200px 500px at 80% -10%, rgba(74,163,168,.18), transparent 60%),
  radial-gradient(900px 500px at 0% 10%, rgba(244,193,120,.20), transparent 55%)}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:start}
.hero-grid>div{padding-top:8px}
@media(max-width:880px){
  .hero-grid{grid-template-columns:1fr;gap:36px}
  .hero-grid>div{padding-top:0}
}
.pill{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);
  color:var(--teal);font-weight:600;font-size:.85rem;padding:7px 14px;border-radius:999px;
  box-shadow:var(--shadow)}
.pill .dot{width:8px;height:8px;border-radius:50%;background:var(--teal);
  box-shadow:0 0 0 4px rgba(47,125,131,.18)}

/* ---------- Kort-rutenett ---------- */
.grid{display:grid;gap:20px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:820px){.grid-3,.grid-4{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}
.card{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);
  padding:26px;box-shadow:var(--shadow-sm)}
.card .ic{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;
  justify-content:center;background:#e7f1f1;margin-bottom:16px}
.card h3{font-size:1.12rem;margin-bottom:8px;color:var(--navy)}
.card p{color:var(--muted);font-size:.98rem}
/* Sikre lesbar korttekst også inne i mørke .band-seksjoner */
.band .card{color:var(--navy)}
.band .card h3{color:var(--navy)}
.band .card p{color:var(--muted)}
.num{width:38px;height:38px;border-radius:12px;background:var(--amber);color:#7a5418;
  display:flex;align-items:center;justify-content:center;font-weight:800;margin-bottom:16px}

/* ---------- Bånd / CTA ---------- */
.band{background:var(--navy);color:#eaf2f4}
.band h2{color:#fff}
.band .eyebrow{color:var(--amber)}
.band .section-intro{color:#b8cdd4}
.cta-card{background:radial-gradient(700px 300px at 100% 0%, rgba(74,163,168,.25), transparent 60%),
  var(--cream);border:1px solid var(--line);border-radius:28px;padding:54px 40px;text-align:center;
  box-shadow:var(--shadow)}
.cta-card h2{max-width:22ch;margin:0 auto 14px}
.cta-card p{color:var(--muted);font-size:1.1rem;max-width:46ch;margin:0 auto 28px}

/* ---------- Footer ---------- */
/* Footer: mørkt navy-rom som avslutter siden med tyngde (samme dype tone som
   .band og pris-panelet). All tekst er lys og holder WCAG AA på navy. */
footer.site{background:linear-gradient(180deg,#22406a 0%,#1c3554 100%);border-top:none;padding:58px 0 26px}
footer.site .brand{color:#fff;white-space:nowrap}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
@media(max-width:820px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.foot-grid{grid-template-columns:1fr}}
.foot-merker{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}
.foot-merker span{font-size:.72rem;font-weight:700;color:#c9d9e2;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:4px 11px;letter-spacing:.02em}
.foot-epost{display:inline-block;margin-top:16px;color:#7fc4c9;font-weight:600;
  text-decoration:none;font-size:.92rem}
.foot-epost:hover{text-decoration:underline}
.foot-kontakt{display:flex;align-items:center;gap:12px;margin-top:16px}
.foot-kontakt .foot-epost{margin-top:0}
.foot-some{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.08);color:#c9d9e2;transition:background .2s ease,color .2s ease}
.foot-some:hover{background:rgba(255,255,255,.16);color:#fff}
.foot-grid h4{color:#8fa9c6;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;
  margin-bottom:14px}
.foot-grid a{display:block;text-decoration:none;color:#c9d9e2;font-size:.93rem;
  margin-bottom:9px}
.foot-grid a:hover{color:#7fc4c9}
.foot-blurb{color:#b8cdd4;font-size:.95rem;max-width:34ch;margin-top:12px}
.foot-bottom{border-top:1px solid rgba(255,255,255,.13);margin-top:40px;padding-top:20px;align-items:center;
  color:#8fa9c6;font-size:.86rem;display:flex;justify-content:space-between;
  gap:14px;flex-wrap:wrap}
.foot-bottom a{color:#c9d9e2 !important}
.foot-bottom a:hover{color:#7fc4c9 !important}
/* Kompakt bunn i Lekselos-appen: logo, en lenkerad, brytere. Mørk bakgrunn,
   lys tekst, som resten av footeren. */
footer.site.app-foot{padding:28px 0 calc(22px + env(safe-area-inset-bottom))}
.app-foot .brand{font-size:1.1rem}
.app-foot .brand .mark{height:34px}
.app-foot-lenker{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:16px}
.app-foot-lenker a{color:#c9d9e2;text-decoration:none;font-size:.93rem;font-weight:500}
.app-foot-lenker a:hover{color:#7fc4c9}
.app-foot .foot-bottom{margin-top:18px;padding-top:16px;gap:12px}

/* ---------- Diverse ---------- */
.badge{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  padding:3px 10px;border-radius:999px;background:#efe6d6;color:#6b5d44}
.badge.live{background:var(--teal);color:#fff}
.tag-los{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700;
  color:var(--teal);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}
.tag-elev{display:block;text-align:right;font-size:.72rem;font-weight:700;color:#a8834a;
  text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}
hr.soft{border:none;border-top:1px solid var(--line);margin:0}

/* ---------- Chat / demo-komponent ---------- */
.chatcard{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:22px;max-width:440px;width:100%;min-height:280px;margin-inline:auto}
.chat-row{display:flex;gap:11px;margin-bottom:14px;align-items:flex-start}
.chat-row.elev{flex-direction:row-reverse}
.avatar{width:34px;height:34px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;
  justify-content:center;font-weight:700;font-size:.8rem}
.av-elev{background:var(--amber);color:#7a5418}
.av-los{background:var(--teal);color:#fff}
.bubble{padding:12px 17px;border-radius:16px;font-size:.97rem;line-height:1.5;max-width:100%;
  width:fit-content}
/* Breddegrensen ligger på radens innholdskolonne (fast forelder), ikke på
   boblen selv: 80 % av en krymp-til-innhold-wrapper gjorde boblen smalere
   enn teksten, så korte svar trappet ut i paddingen. */
.chat-row>div:not(.avatar){max-width:80%;min-width:0}
.b-elev{background:#fdeed2;border:1px solid #f0d9ae;border-top-right-radius:5px;
  min-width:0;text-align:left;color:var(--navy);padding:10px 16px}
.los-innhold{flex:1;min-width:0}
.b-los{background:#e7f1f1;border-top-left-radius:5px;color:var(--navy);max-width:100%}
/* Leksehjelp (tutor): samlet chatkort som en ekte meldingsapp: topplinje med
   AI-orb, navn og levende status, meldingsvindu i midten, komponeringsfelt
   som fast bunn. */
.tutor-skall{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:0 12px 38px -20px rgba(31,58,95,.3);overflow:hidden;margin-bottom:10px}
.tutor-topp{display:flex;align-items:center;gap:13px;padding:13px 18px;
  border-bottom:1px solid var(--line);background:linear-gradient(150deg,#fdfbf6,#f1f8f5)}
.tutor-topp .ai-orb{width:38px;height:38px}
.tutor-topp .ai-orb svg{animation:none}
.tutor-topp .ai-orb::after{animation-duration:3.4s}
.tutor-topp.tenker .ai-orb svg{animation:orbGnist 2.1s ease-in-out infinite}
.tutor-topp.tenker .ai-orb::after{animation-duration:2.1s}
.tutor-topp-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;line-height:1.2}
.tutor-topp-tittel{font-weight:800;color:var(--navy);letter-spacing:-.01em}
.tutor-topp-status{display:inline-flex;align-items:center;gap:7px;font-size:.78rem;font-weight:600;color:#3f7264}
.tutor-topp-status i{width:8px;height:8px;border-radius:999px;background:#2f9e6e;
  animation:livePuls 2.4s ease-out infinite}
.tutor-topp.tenker .tutor-topp-status{color:#28696f}
.tutor-topp.tenker .tutor-topp-status i{background:var(--teal);box-shadow:none;
  animation:statusPuls 1s ease-in-out infinite}
.tutor-vindu{background:var(--cream);padding:20px 20px 10px;
  min-height:280px;max-height:56vh;overflow-y:auto}
.tutor-bunn{padding:12px 14px 12px;border-top:1px solid var(--line);background:#fff}
.tutor-verktoy{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
/* Forslagschips i tom chat: innrykket i flukt med boblene */
.tutor-forslag{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 14px 45px}
.tutor-forslag-chip{font:inherit;font-size:.88rem;font-weight:600;color:var(--teal);
  background:#fff;border:1px solid #cfe0e0;border-radius:999px;padding:9px 16px;cursor:pointer;
  box-shadow:0 1px 3px rgba(31,58,95,.06);transition:background .15s,border-color .15s,transform .12s}
.tutor-forslag-chip:hover{background:#e7f1f1;border-color:var(--teal);transform:translateY(-1px)}
@media(prefers-reduced-motion:reduce){.tutor-topp .ai-orb::after,.tutor-topp.tenker .ai-orb svg,
  .tutor-topp-status i{animation:none}}
@media(max-width:640px){
  /* Mobil: samtalen fyller skjermen. Kompakt topp (orb, navn, status og
     barnevelger på en rad), meldingsvindu som tar resten av høyden, og
     tips/sidehjelp skjult så samtalen får plassen. */
  .tutor-skall{border-radius:18px;margin-bottom:0}
  .tutor-topp{flex-wrap:nowrap;padding:10px 12px;gap:10px}
  .tutor-topp .ai-orb{width:32px;height:32px}
  .tutor-topp-tittel{font-size:.95rem}
  .tutor-topp-status{white-space:nowrap;font-size:.74rem}
  .tutor-topp .vb-velger{flex:0 1 auto;min-width:0;max-width:46%;overflow:hidden;text-overflow:ellipsis;
    font-size:.84rem;padding:7px 30px 7px 12px;background-position:right 10px center;background-size:13px}
  .tutor-forslag{margin-left:0}
  .tutor-vindu{padding:14px 12px 8px;min-height:0;max-height:none;
    height:calc(100dvh - 330px)}                /* app-topp + faner + tutor-topp + bunn */
  body:has(.bunnmeny) .tutor-vindu{height:calc(100dvh - 396px)}
  .tutor-bunn{padding:10px 10px 10px}
  .tutor-verktoy{margin-bottom:8px}
  .tutor-verktoy .faner{width:100%;display:flex}
  .tutor-verktoy .faner button{flex:1;padding:8px 6px;font-size:.84rem;text-align:center}
  .tutor-tips,.sidehjelp[data-nokkel="tutor"]{display:none}
  .tutor-komponer textarea{font-size:16px}       /* iOS zoomer inn på felt under 16px */
}
.tutor-komponer{display:flex;align-items:flex-end;gap:6px;background:#fff;border:1px solid var(--line);
  border-radius:24px;padding:6px 6px 6px 8px;box-shadow:0 1px 4px rgba(31,58,95,.06);transition:box-shadow .15s,border-color .15s}
.tutor-komponer:focus-within{border-color:var(--teal);box-shadow:0 0 0 3px rgba(47,125,131,.14)}
.tutor-foto{flex:0 0 auto;width:42px;height:42px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;color:var(--teal);cursor:pointer}
.tutor-foto:hover{background:var(--sand)}
.tutor-komponer textarea{flex:1;border:none;background:none;resize:none;font:inherit;font-size:1rem;
  padding:11px 6px;max-height:140px;outline:none;color:var(--navy);line-height:1.4}
.tutor-send{flex:0 0 auto;width:44px;height:44px;border:none;border-radius:50%;background:#c0512e;color:#fff;
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}
.tutor-send:hover{background:#a8431f}
.tutor-send:disabled{opacity:.5;cursor:default}
.tutor-tips{font-size:.78rem;color:var(--muted);margin-top:10px;text-align:center}
.tag-los{color:var(--teal)}
.b-los strong{color:var(--teal)}
.demo-valg{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.demo-valg button{background:#fff;border:1.5px solid var(--line);color:var(--navy);font:inherit;
  font-size:.92rem;font-weight:500;padding:10px 16px;border-radius:999px;cursor:pointer;
  transition:border-color .15s,background .15s}
.demo-valg button:hover,.demo-valg button.auto{border-color:var(--teal);background:#f2f8f8}
.demo-valg button.fasit{color:var(--coral-deep);border-color:#f3c6bf}
.demo-done{margin-top:16px;padding:18px;border-radius:16px;background:#e7f1f1;text-align:center}
.demo-done p{color:var(--navy);margin-bottom:14px;font-weight:600}
.demo-restart{display:inline-block;margin-top:10px;color:var(--teal);text-decoration:none;
  font-size:.9rem;font-weight:600;cursor:pointer;background:none;border:none}

/* ---------- Trinn-chips (interaktiv forside-demo) ---------- */
.trinn-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:14px;max-width:440px;margin-inline:auto}
.chip{background:#fff;border:1.5px solid var(--line);color:var(--navy);font:inherit;
  font-size:.88rem;font-weight:600;padding:8px 15px;border-radius:999px;cursor:pointer;
  transition:all .15s;text-decoration:none;display:inline-flex;align-items:center}
.chip:hover{border-color:var(--teal)}
/* Arkivliste (huskeark/analyser): premium filterlinje */
.ark-filtre{display:flex;flex-direction:column;gap:9px;margin:0 0 14px}
.ark-chiprad{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ark-chipgr{display:contents}
.ark-skille{width:1px;height:22px;background:var(--line);flex:0 0 auto;margin:0 4px}
.chip-dim{font-size:.8rem;font-weight:500;padding:6px 13px;background:transparent;color:#5b6b7c;border-width:1px}
.chip.chip-dim.aktiv{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:600}
.ark-sok{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);
  border-radius:999px;padding:8px 15px;min-width:210px;transition:border-color .15s,box-shadow .15s}
.ark-sok svg{width:16px;height:16px;flex:0 0 auto;color:#8a97a6}
.ark-sok input{border:none;outline:none;background:none;font:inherit;font-size:.88rem;width:100%;color:var(--navy)}
.ark-sok:focus-within{border-color:var(--teal);box-shadow:0 0 0 3px rgba(47,125,131,.12)}
.ark-tom{background:var(--cream);border:1px dashed var(--line);border-radius:14px;padding:26px 20px;
  text-align:center;color:#5b6b7c;font-size:.93rem}
.ark-tom button{display:inline-block;margin-left:8px;background:none;border:none;color:var(--teal);
  font:inherit;font-size:.93rem;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
/* Verktøylinje øverst på sider (faner venstre, valg + primærknapp høyre) */
.pl-verktoy{display:flex;align-items:center;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;margin:0 0 22px}
.pl-verktoy .faner{margin:0}
.pl-verktoy-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-left:auto}
/* Delt barnevelger: pen pille i stedet for rå select */
.vb-skjema{margin:0;display:inline-flex}
.vb-velger{appearance:none;-webkit-appearance:none;font:inherit;font-size:.9rem;font-weight:600;color:var(--navy);
  background:#fff url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235d6b76' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 13px center/15px;
  border:1.5px solid var(--line);border-radius:999px;padding:9px 36px 9px 16px;cursor:pointer;
  transition:border-color .15s,box-shadow .15s}
.vb-velger:hover{border-color:var(--teal)}
.vb-velger:focus-visible{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(47,125,131,.12)}
/* Prissiden: månedlig/årlig-veksler som presis, hvit pille (navy aktiv) */
.pris-veksel{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:999px;
  padding:5px;gap:4px;box-shadow:0 8px 24px -14px rgba(31,58,95,.3)}
.pris-veksel button{border:none;background:none;font:inherit;font-size:.95rem;font-weight:600;
  color:var(--muted);padding:9px 20px;border-radius:999px;cursor:pointer;display:inline-flex;
  align-items:center;gap:8px;white-space:nowrap;transition:background .15s,color .15s}
.pris-veksel button:hover{color:var(--navy)}
.pris-veksel button.pa{background:var(--navy);color:#fff}
.pv-spar{font-size:.7rem;font-weight:800;background:#e1efef;color:var(--teal);
  padding:3px 9px;border-radius:999px;letter-spacing:.02em;line-height:1.4}
.pris-veksel button.pa .pv-spar{background:rgba(255,255,255,.18);color:#d8ecee}
/* Prissiden: en samlet «scene» i to paneler (lys pris + mørk verdi) */
.pris-scene{display:grid;grid-template-columns:1.05fr .95fr;max-width:920px;margin:0 auto;
  border-radius:26px;overflow:hidden;background:#fff;border:1px solid var(--line);
  box-shadow:0 34px 90px -44px rgba(31,58,95,.5),0 2px 8px rgba(31,58,95,.06)}
.pris-hoved{padding:36px 38px 32px;display:flex;flex-direction:column}
.pris-side{background:linear-gradient(165deg,#1f3a5f 0%,#27466b 60%,#2c5170 100%);
  color:#c9d9e2;padding:36px 34px 32px;display:flex;flex-direction:column}
.pris-side .ps-anker{font-size:1.35rem;font-weight:800;color:#fff;line-height:1.3;margin:0 0 10px}
.pris-side .ps-tekst{font-size:.95rem;line-height:1.65;color:#b8cdd4;margin:0}
.pris-side hr{border:none;border-top:1px solid rgba(255,255,255,.14);margin:24px 0 22px}
.ps-rad{display:flex;gap:11px;align-items:flex-start;margin-bottom:15px}
.ps-rad:last-child{margin-bottom:0}
.ps-rad svg{flex:0 0 auto;color:#7fc4c9;margin-top:2px}
.ps-rad span{font-size:.92rem;line-height:1.55;color:#c9d9e2}
.ps-rad strong{color:#fff}
.pris-tallrad{display:flex;align-items:baseline;gap:3px;margin:2px 0 2px}
@media(max-width:860px){.pris-scene{grid-template-columns:1fr}.pris-hoved{padding:28px 24px 24px}.pris-side{padding:28px 24px 26px}}
/* Ukeplan-forslag: redigerbare rader i premium stil */
.uk-rad{display:flex;align-items:flex-start;gap:13px;cursor:default;padding-top:14px;padding-bottom:14px}
.uk-check{appearance:none;-webkit-appearance:none;width:24px;height:24px;border:2px solid var(--teal);
  border-radius:50%;cursor:pointer;flex:0 0 auto;margin:6px 0 0;position:relative;background:#fff;
  transition:background .15s,border-color .15s}
.uk-check:checked{background:var(--teal)}
.uk-check:checked::after{content:'';position:absolute;left:6px;top:2.5px;width:6px;height:11px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.uk-innhold{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;transition:opacity .15s}
.uk-tittel{width:100%;font:inherit;font-size:.97rem;font-weight:600;color:var(--navy);border:none;
  background:none;outline:none;padding:5px 2px;border-bottom:1.5px solid transparent;transition:border-color .15s}
.uk-tittel:hover{border-bottom-color:var(--line)}
.uk-tittel:focus{border-bottom-color:var(--teal)}
.uk-detaljer{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.uk-felt{font:inherit;font-size:.85rem;color:var(--navy);background:#fff;border:1px solid var(--line);
  border-radius:10px;padding:7px 11px;outline:none;transition:border-color .15s,box-shadow .15s}
.uk-felt:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(47,125,131,.12)}
select.uk-felt{appearance:none;-webkit-appearance:none;padding-right:30px;cursor:pointer;
  background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none'><path d='M6 9l6 6 6-6' stroke='%235b6b7c' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat right 11px center}
.uk-rad.av .uk-innhold{opacity:.45}
.uk-rad.av .uk-tittel{text-decoration:line-through;text-decoration-color:#9aa7b5}
.chip.aktiv{background:var(--teal);border-color:var(--teal);color:#fff}
.demo-intro{font-size:.8rem;color:var(--muted);text-align:center;margin-bottom:8px}

/* ---------- Skjema / konto ---------- */
.skjemakort{max-width:440px;margin:0 auto;background:var(--cream);border:1px solid var(--line);
  border-radius:var(--radius);padding:34px 30px;box-shadow:var(--shadow)}
.skjemakort h1{font-size:1.7rem;margin-bottom:6px}
.skjemakort .undertekst{color:var(--muted);margin-bottom:22px}
.felt{margin-bottom:16px}
.felt label{display:block;font-weight:600;font-size:.92rem;color:var(--navy);margin-bottom:6px}
.felt input,.felt select,.felt textarea{width:100%;font:inherit;font-size:1rem;padding:12px 14px;border-radius:12px;box-sizing:border-box;
  border:1px solid var(--line);background:#fff;color:var(--ink)}
.felt input:focus,.felt select:focus,.felt textarea:focus{outline:none;border-color:var(--teal)}
.felt textarea{resize:vertical;min-height:64px}
/* Lik høyde på alle enlinjes felt (dato-felt har egen intern høyde i WebKit) */
.felt input,.felt select{height:52px;padding-top:0;padding-bottom:0}
.felt input[type=date]{line-height:50px}
.skjemakort .btn{width:100%;text-align:center}
.feilboks{background:#fdeceb;border:1px solid #f3c6bf;color:#9b3b2a;padding:12px 15px;
  border-radius:12px;font-size:.93rem;margin-bottom:18px}
.feilboks ul{margin:0;padding-left:18px}
.okboks{background:#e7f4ea;border:1px solid #bfe0c8;color:#2f6b41;padding:12px 15px;
  border-radius:12px;font-size:.93rem;margin-bottom:18px}
.skille{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:.85rem;margin:20px 0}
.skille::before,.skille::after{content:"";flex:1;height:1px;background:var(--line)}
.vipps-knapp{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;
  background:#ff5b24;color:#fff;text-decoration:none;font-weight:700;padding:13px 20px;
  border-radius:12px;border:none;cursor:pointer;font-size:1rem;transition:background .15s}
.vipps-knapp:hover{background:#e84e1b}
.skjema-bunn{text-align:center;margin-top:20px;color:var(--muted);font-size:.93rem}
.skjema-bunn a{color:var(--teal);font-weight:600;text-decoration:none}

/* Venteliste (tidlig tilgang) */
.vl-form{display:flex;gap:10px;flex-wrap:wrap;max-width:460px}
.vl-form input{flex:1;min-width:210px;font:inherit;font-size:1rem;padding:13px 16px;border-radius:12px;
  border:1px solid var(--line);background:#fff;color:var(--ink)}
.vl-form input:focus{outline:none;border-color:var(--teal)}
.vl-form .btn{white-space:nowrap}

/* Registrering (kun for inviterte) */
.reg{padding:56px 0 72px}
.reg-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,480px);gap:52px;align-items:start}
.reg-side{padding-top:14px}
.reg-side h1{font-size:2.1rem;line-height:1.15;color:var(--navy);margin:10px 0 12px}
.reg-side .reg-intro{color:var(--muted);font-size:1.02rem;line-height:1.6;margin:0 0 28px;max-width:46ch}
.reg-punkt{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px}
.reg-punkt .rp-ic{width:42px;height:42px;border-radius:12px;background:#e7f2f1;color:var(--teal);
  display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.reg-punkt .rp-ic svg{width:22px;height:22px}
.reg-punkt h3{font-size:1rem;color:var(--navy);margin:0 0 3px}
.reg-punkt p{color:var(--muted);font-size:.93rem;line-height:1.55;margin:0}
.reg-grid .skjemakort{max-width:none;margin:0}
/* Rollevalg ved innlogging i appen: to store, tappbare kort */
.rolle-valg{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.rolle{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:16px;
  padding:16px 16px 16px 14px;text-decoration:none;color:var(--navy);box-shadow:0 1px 3px rgba(31,58,95,.06);
  transition:border-color .15s,box-shadow .15s,transform .12s}
.rolle:hover{border-color:var(--teal);box-shadow:0 6px 18px -10px rgba(31,58,95,.35);transform:translateY(-1px)}
.rolle-ic{flex:0 0 46px;width:46px;height:46px;border-radius:14px;background:#e1efef;color:var(--teal);display:flex;align-items:center;justify-content:center}
.rolle-tekst{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.rolle-tekst strong{font-size:1.02rem}
.rolle-tekst span{font-size:.85rem;color:var(--muted);line-height:1.4}
.rolle .rad-chev{color:#9aa6b1;font-size:1.3rem}
.valgkort{display:flex;gap:10px;flex-wrap:wrap}
.valgkort label{flex:1;min-width:130px;position:relative;display:flex;align-items:center;justify-content:center;
  gap:8px;border:1.5px solid var(--line);border-radius:12px;padding:13px 14px;cursor:pointer;background:#fff;
  font-weight:600;color:var(--muted);text-align:center;user-select:none;
  transition:border-color .12s,background .12s,color .12s,box-shadow .12s}
.valgkort label:hover{border-color:var(--teal)}
.valgkort input{position:absolute;opacity:0;pointer-events:none}
.valgkort .vk-ok{display:none;width:18px;height:18px;flex:0 0 auto;color:var(--teal)}
.valgkort label.pa,.valgkort label:has(input:checked){border-color:var(--teal);background:#f1f8f7;
  color:var(--navy);box-shadow:0 0 0 3px #e7f2f1}
.valgkort label.pa .vk-ok,.valgkort label:has(input:checked) .vk-ok{display:inline-flex}
.samtykke{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;color:var(--muted);
  margin-bottom:12px;cursor:pointer;line-height:1.5}
.samtykke input{margin-top:3px;flex:0 0 auto;accent-color:var(--teal)}
.samtykke a{color:var(--teal)}
@media (max-width:920px){
  .reg{padding:36px 0 56px}
  .reg-grid{grid-template-columns:1fr;gap:22px}
  /* Mobil: skjemaet først, så argumentene. Folk fra annonser har allerede lest salgsteksten. */
  .reg-grid .skjemakort{order:-1}
  .reg-side{padding-top:0}
  .reg-side h1{font-size:1.35rem;margin:0 0 8px}
  .reg-side .reg-intro{display:none}
  .reg-punkt{margin-bottom:10px;gap:10px}
  .reg-punkt .rp-ic{width:34px;height:34px;border-radius:10px}
  .reg-punkt .rp-ic svg{width:18px;height:18px}
  .reg-punkt h3{font-size:.95rem}
  .reg-punkt p{font-size:.88rem}
}

/* Min side */
.barn-kort{display:flex;align-items:center;gap:14px;background:var(--cream);border:1px solid var(--line);
  border-radius:16px;padding:16px 18px;margin-bottom:12px}
.barn-kort .ava{width:44px;height:44px;border-radius:50%;background:var(--amber);color:#7a5418;
  display:flex;align-items:center;justify-content:center;font-weight:800;flex:0 0 auto}
.barn-kort .trinn{color:var(--muted);font-size:.9rem}

/* ============================================================
   App-UI (innlogget) – iOS-inspirert, premium
   ============================================================ */
/* Felles innholdscontainer for app-sidene. Bredden matcher den fulle
   topplinjen bedre, så innholdet ikke ser smalt ut under den. */
.app{max-width:1200px;margin:0 auto;padding:0 30px}
@media(max-width:640px){.app{padding:0 12px}.app-head{padding:22px 0 16px}.app-head h1{font-size:1.5rem}}
.app.smal{max-width:760px}
.app-head{padding:36px 0 22px}
.app-head .eyebrow{margin-bottom:8px}
.app-head h1{font-size:1.75rem;letter-spacing:-.02em}
/* Undertekster i sidehoder brytes ved lesbar linjelengde, ikke over
   hele 1200px-flaten (lange linjer ser brede og uryddige ut). */
.app-head p{color:var(--muted);margin-top:4px;max-width:72ch}
.app-sektion{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);margin:28px 0 10px;padding-left:4px}

/* Avrundede "kort" med myk skygge */
.kort{background:var(--cream);border:1px solid var(--line);border-radius:20px;
  box-shadow:0 10px 30px -22px rgba(31,58,95,.45)}
.kort-pad{padding:20px}

/* Stat-fliser (grupperte) */
.fliser{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.flis{background:var(--sand);border-radius:14px;padding:14px 16px;text-align:left}
.flis .v{font-size:1.55rem;font-weight:800;color:var(--navy);line-height:1.05;letter-spacing:-.01em}
.flis .v.teal{color:var(--teal)}
.flis .l{font-size:.76rem;color:var(--muted);margin-top:4px;line-height:1.3}
/* Variant: fliser som selvstendige kort (dashbord på lys bakgrunn) */
.fliser.flis-kort{gap:12px}
.flis-kort .flis{background:var(--cream);border:1px solid var(--line);border-radius:16px;
  padding:18px;box-shadow:0 10px 30px -24px rgba(31,58,95,.35)}
.flis-kort .flis .v{font-size:1.8rem}

/* Barnekort (full bredde) */
.kid-top{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.ava{width:54px;height:54px;border-radius:50%;background:var(--amber);color:#7a5418;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.25rem;flex:0 0 auto}
.kid-top .navn{font-weight:700;font-size:1.12rem;color:var(--navy)}
.kid-top .trinn{color:var(--muted);font-size:.9rem}
.statuspill{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600;
  padding:5px 11px;border-radius:999px}
.kid-handlinger{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.kid-handlinger .btn,.kid-handlinger .btn-ghost,.kid-handlinger .btn-teal{flex:1;text-align:center;min-width:130px;white-space:nowrap}
/* Mobil: en handling per rad i full bredde, aldri to ord brukket i en pille */
@media(max-width:560px){
  .kid-handlinger{gap:8px}
  .kid-handlinger>*,.kid-handlinger .btn,.kid-handlinger .btn-ghost,.kid-handlinger .btn-teal,.kid-handlinger .btn-fare{flex:1 1 100%;min-width:0;white-space:normal}
  .kid-handlinger>form{display:flex}
}

/* iOS-grupperte listerader */
.liste{background:var(--cream);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.rad{display:flex;align-items:center;gap:14px;padding:15px 18px;text-decoration:none;color:var(--ink);
  background:none;border:0;width:100%;font:inherit;text-align:left;cursor:pointer;transition:background .12s}
.rad + .rad{border-top:1px solid var(--line)}
.rad:hover{background:#faf5ec}
.rad-ic{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;
  background:#e7f1f1;flex:0 0 auto;font-size:1.05rem}
.rad-tekst{flex:1;min-width:0}
.rad-tittel{display:block;font-weight:600;color:var(--navy);font-size:.98rem}
.rad-under{display:block;font-size:.82rem;color:var(--muted);margin-top:2px}
.rad-chev{color:#c3b9a8;flex:0 0 auto;font-size:1.1rem}

/* Faresone (slett konto o.l.) */
.faresone{background:#fff;border:1px solid #f0cfc4;border-radius:18px;padding:20px}
.faresone h3{color:#b23b1e;font-size:1.05rem;margin-bottom:6px}
.faresone p{color:var(--muted);font-size:.92rem;margin-bottom:14px}
.btn-fare{display:inline-block;background:#fff;border:1.5px solid #d9573a;color:#b23b1e;
  font-weight:600;padding:11px 20px;border-radius:999px;text-decoration:none;cursor:pointer}
.btn-fare:hover{background:#fdeee9}

/* Faner (segmentkontroll som bytter panel) */
/* Segmentkontroll (toppfaner): presis, iOS-aktig pille med hårlinje-ramme.
   Skroller sidelengs på smale skjermer i stedet for å brekke om. */
.faner{display:inline-flex;background:#f1e9dc;border:1px solid var(--line);border-radius:999px;
  padding:3px;gap:2px;margin-bottom:22px;max-width:100%;overflow-x:auto;
  -webkit-overflow-scrolling:touch;scrollbar-width:none}
.faner::-webkit-scrollbar{display:none}
.faner button,.faner a{padding:8px 16px;border-radius:999px;border:0;background:none;color:#6d6353;
  font:inherit;font-weight:600;font-size:.9rem;line-height:1.3;cursor:pointer;
  transition:background .12s,color .12s;text-decoration:none;white-space:nowrap}
.faner button:hover,.faner a:hover{color:var(--navy);background:rgba(255,255,255,.55)}
.faner button.pa,.faner a.pa{background:#fff;color:var(--navy);
  box-shadow:0 1px 3px rgba(31,58,95,.16), inset 0 0 0 1px rgba(31,58,95,.05)}
.faner button:focus-visible,.faner a:focus-visible{outline:none;
  box-shadow:0 0 0 3px rgba(47,125,131,.25)}

/* Søk/filter-felt */
.sok{position:relative;margin-bottom:16px}
.sok input{width:100%;font:inherit;font-size:1rem;padding:12px 14px 12px 40px;border-radius:14px;
  border:1px solid var(--line);background:#fff}
.sok input:focus{outline:none;border-color:var(--teal)}
.sok svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--muted)}
.tom{color:var(--muted);font-size:.9rem;padding:14px 4px}
.omf p{color:var(--navy);font-size:.95rem;line-height:1.6;margin:0 0 10px}
.omf p:last-child{margin-bottom:0}
.omf .eyebrow{margin-bottom:8px}
.omf-el{padding:14px 0;border-top:1px solid var(--line)}
.omf-el:first-child{padding-top:0;border-top:0}
.omf-el:last-child{padding-bottom:0}
.omf-el h4{font-size:.98rem;color:var(--navy);font-weight:700;margin:0 0 6px}
.x-knapp{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--muted);font-size:1.05rem;line-height:1;cursor:pointer;flex:0 0 auto}
.x-knapp:hover{border-color:#d9573a;color:#b23b1e;background:#fdeee9}
.plan-plus{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--teal);background:#fff;color:var(--teal);font-size:1.05rem;line-height:1;cursor:pointer;flex:0 0 auto;transition:all .15s;display:inline-flex;align-items:center;justify-content:center;padding:0}
.plan-plus:hover{background:var(--teal);color:#fff}
/* Øvingsplan: ukedag-velger som chips */
.ovp-dager{display:flex;gap:7px;flex-wrap:wrap}
.ovp-dag input{position:absolute;opacity:0;pointer-events:none}
.ovp-dag span{display:inline-flex;align-items:center;justify-content:center;min-width:52px;
  padding:9px 12px;border-radius:999px;border:1.5px solid var(--line);background:#fff;
  color:var(--navy);font-size:.88rem;font-weight:600;cursor:pointer;transition:all .15s}
.ovp-dag span:hover{border-color:var(--teal)}
.ovp-dag input:checked + span{background:var(--teal);border-color:var(--teal);color:#fff}
.ovp-dag input:focus-visible + span{box-shadow:0 0 0 3px rgba(47,125,131,.25)}
/* «Øv»-lenken i pensum: tydelig grønn med rolig puls. */
.km-ov{font-size:.8rem;font-weight:700;color:#2e9e5b;text-decoration:none;white-space:nowrap;
  padding:0 8px;animation:ovPuls 1.9s ease-in-out infinite}
.km-ov:hover{color:#1f7a43;animation:none}
@keyframes ovPuls{0%,100%{opacity:1}50%{opacity:.45}}
@media (prefers-reduced-motion:reduce){.km-ov{animation:none}}
.km-tekst{flex:1;font-size:.93rem;min-width:0}
/* Kompetansemål-rad på mobil: teksten får hele bredden, handlingene
   (Forklaring, Øv, pluss) som egen rad under, så teksten ikke klemmes. */
@media(max-width:640px){
  .km-rad{flex-wrap:wrap;gap:6px 10px;padding:12px 14px}
  .km-rad .km-tekst{flex:1 0 100%;line-height:1.5}
  .km-rad .km-forklar{margin-right:auto;padding:0!important}
  .km-rad .plan-plus{width:28px;height:28px}
}
/* «I planen»: dempet tilstand, status skal ikke dominere hver rad. */
.plan-plus.lagt{background:#e7f1f1;border-color:#c4dcdc;color:var(--teal)}
.plan-plus.lagt:hover{background:#fae3da;border-color:#e8b8a8;color:#b23b1e}
.fp-ferdig{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--line);background:#fff;color:#b9c2c4;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto;transition:all .15s}
.fp-ferdig:hover{border-color:var(--teal);color:var(--teal)}
.fp-ferdig.pa{background:var(--teal);border-color:var(--teal);color:#fff}
/* Fagplan: sammenleggbare måneder */
.fp-mnd{border-top:1px solid var(--line)}
.fp-mnd:first-child{border-top:0}
.fp-mnd-hode{width:100%;display:flex;align-items:center;gap:10px;padding:13px 2px;background:none;border:none;
  cursor:pointer;font:inherit;color:var(--navy);font-weight:700;font-size:.95rem;text-align:left}
.fp-mnd-hode:hover{color:var(--teal)}
.fp-mnd-hode .c{font-weight:500;color:var(--muted);font-size:.8rem}
.fp-mnd-hode .mp-pil{transition:transform .15s;color:var(--muted)}
.fp-mnd-body{padding:0 0 10px}
/* Skole-autoutfylling */
.skole-treff{position:absolute;top:100%;left:0;right:0;z-index:40;background:#fff;border:1px solid var(--line);
  border-radius:12px;box-shadow:0 14px 34px -16px rgba(31,58,95,.35);max-height:260px;overflow-y:auto;margin-top:4px}
.skole-treff button{display:block;width:100%;text-align:left;border:none;background:none;padding:10px 13px;
  cursor:pointer;font:inherit;font-size:.92rem;color:var(--navy);border-bottom:1px solid #f0ece3}
.skole-treff button:last-child{border-bottom:0}
.skole-treff button:hover{background:var(--sand)}
/* Øv: velg-fag-startskjerm */
.velg-fag{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin-bottom:8px}
.velg-fag-kort{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:16px;
  box-shadow:var(--shadow);padding:18px;text-decoration:none;color:inherit;transition:transform .12s,box-shadow .12s}
.velg-fag-kort:hover{transform:translateY(-2px);box-shadow:0 12px 30px -14px rgba(31,58,95,.28)}
.vf-navn{font-weight:700;color:var(--navy);font-size:1.05rem}
.vf-pct{font-size:.8rem;color:var(--muted)}
.pris-liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.pris-liste li{display:flex;align-items:flex-start;gap:9px;color:var(--muted);font-size:.96rem;line-height:1.45}
.pris-liste .ik{flex:0 0 auto;margin-top:1px}
/* Forside: risikofjerning + tillitsrad */
.risiko{margin-top:14px;font-size:.9rem;color:var(--muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tillit-rad{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:22px}
.tillit-rad span{display:inline-flex;align-items:center;gap:7px;font-size:.9rem;color:var(--navy);font-weight:600}
.tillit-rad .ik{flex:0 0 auto}
.lenke-pil{color:var(--teal);font-weight:700;text-decoration:none}
.lenke-pil:hover{text-decoration:underline}
/* Hero: underlinje, CTA-rad med App Store-merke, og ett ekte sitat */
.hero-under{margin:12px 0 0;color:var(--navy);font-weight:600;font-size:1rem;max-width:44ch}
.cta-rad{display:flex;gap:12px;flex-wrap:wrap;align-items:stretch}
.cta-rad .btn-lg{display:inline-flex;align-items:center}
.cta-rad .btn-ghost{display:inline-flex;align-items:center;justify-content:center}
.appstore-knapp{display:inline-flex;align-items:center;gap:10px;padding:0 24px 0 18px;min-height:56px;border-radius:999px;
  background:var(--navy);color:#fff;text-decoration:none;border:none;box-shadow:0 12px 28px -12px rgba(31,58,95,.6);
  transition:background .15s,transform .15s}
.appstore-knapp:hover{background:#16304f;transform:translateY(-1px)}
.appstore-knapp span{display:flex;flex-direction:column;line-height:1.05;font-weight:700;font-size:1.02rem;letter-spacing:-.01em}
.appstore-knapp small{font-size:.66rem;font-weight:500;opacity:.8;letter-spacing:.02em;text-transform:uppercase}
.cta-rad.kompakt .appstore-knapp{min-height:48px;padding:0 20px 0 16px;font-size:.95rem}
.cta-rad.kompakt .btn{display:inline-flex;align-items:center;min-height:48px;padding-top:0;padding-bottom:0}
.appstore-knapp.lys{background:#fff;color:var(--navy);box-shadow:none}
/* Sekundær variant i hero: én tydelig primærknapp, App Store som rolig alternativ */
.appstore-knapp.sek{background:transparent;color:var(--navy);border:1.5px solid var(--line);box-shadow:none}
.appstore-knapp.sek:hover{background:#fff;border-color:var(--navy);transform:none}
.appstore-knapp.lys:hover{background:#f2f5f8}
/* Vinn over .foot-grid a (display:block, lys tekst) i footeren */
.foot-grid a.appstore-knapp{display:inline-flex;width:auto;color:var(--navy);font-size:1.02rem;margin:0;min-height:50px;padding:0 20px 0 16px}
.foot-grid a.appstore-knapp:hover{color:var(--navy)}
.foot-grid a.appstore-knapp span{color:var(--navy)}
.hero-sitat{margin:22px 0 0;padding:14px 18px;border-left:3px solid var(--teal);background:rgba(255,255,255,.55);border-radius:0 14px 14px 0;max-width:46ch}
.hero-sitat blockquote{margin:0;color:var(--navy);font-size:.98rem;line-height:1.55}
.hero-sitat figcaption{margin-top:6px;color:var(--muted);font-size:.86rem;font-weight:600}
.tillit-rad .lenke-pil{font-size:.9rem;align-self:center}
/* Passordfelt med Vis/Skjul inne i feltet (registrering) */
.pass-felt{position:relative}
.pass-felt input{padding-right:64px}
.pass-vis{position:absolute;right:8px;top:50%;transform:translateY(-50%);height:34px;padding:0 12px;border-radius:999px;
  border:1px solid var(--line);background:#fff;color:var(--teal);font:inherit;font-size:.82rem;font-weight:600;cursor:pointer}
.pass-vis:hover{border-color:var(--teal)}
/* Hero: flat linje med tillitsmerker over overskriften (ingen bokser) */
.hero-merker{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.hero-merker>span{display:inline-flex;align-items:center;gap:5px;color:var(--teal);font-weight:700;font-size:.8rem;white-space:nowrap}
.hero-merker .ik{width:15px;height:15px;flex:0 0 auto}
.hero-merker .tr-vipps{width:16px;height:16px;font-size:.72rem;background:#ff5b24;color:#fff}
/* Trygghetsmerker på mørk stripe under hero (forsiden) */
.tr-rad{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:14px 18px}
.tr-merke{display:flex;align-items:flex-start;gap:12px;color:#fff}
.tr-ik{flex:0 0 auto;width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.1);display:inline-flex;align-items:center;justify-content:center;color:#8fd3d7}
.tr-tekst{display:flex;flex-direction:column;line-height:1.3;padding-top:3px}
.tr-tekst strong{font-size:.95rem;color:#fff;white-space:nowrap}
.tr-tekst span{font-size:.82rem;color:#b8cdd4}
.tr-vipps{font-weight:900;font-size:1.25rem;color:#ff5b24;background:#fff;width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;letter-spacing:-.02em}
@media(max-width:560px){.tr-rad{grid-template-columns:1fr 1fr;gap:12px}.tr-ik{width:38px;height:38px}.tr-tekst span{display:none}}
/* Trinnsider for foreldre (/leksehjelp/<trinn>) */
.trinn-liste{list-style:none;margin:0;padding:0}
.trinn-liste li{position:relative;padding:6px 0 6px 26px;color:var(--navy);line-height:1.5;font-size:.97rem}
.trinn-liste li::before{content:"";position:absolute;left:0;top:13px;width:14px;height:14px;border-radius:50%;background:#f4dcd2;border:2px solid #e0a58f;box-sizing:border-box}
.trinn-liste.ok li::before{background:#dcefee;border-color:var(--teal)}
.trinn-fag{border-bottom:1px solid var(--line)}
.trinn-fag:last-child{border-bottom:none}
.trinn-fag summary{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;cursor:pointer;font-weight:600;color:var(--navy);list-style:none}
.trinn-fag summary::-webkit-details-marker{display:none}
.trinn-fag[open] summary .rad-chev{transform:rotate(90deg)}
.trinn-fag ul{margin:0;padding:0 18px 14px 36px;color:var(--muted);line-height:1.55;font-size:.95rem}
.trinn-fag li{margin-bottom:6px}
/* Trinnguide («Hva lærer barnet i 5. klasse»): redaksjonelle avsnitt, fagkort og årshjul */
.tg-side h2{font-size:1.45rem;letter-spacing:-.01em}
.tg-side h2 + p{margin-top:0}
.tg-avsnitt{color:var(--navy);line-height:1.7;font-size:1.03rem;margin:0}
.tg-fag{display:grid;grid-template-columns:1fr;gap:12px}
.tg-fagkort{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px 16px;box-shadow:0 6px 18px rgba(31,58,95,.05)}
.tg-fagkort h3{margin:0 0 6px;font-size:1.05rem;color:var(--navy)}
.tg-fagkort p{margin:0;color:var(--navy);line-height:1.65;font-size:.97rem}
.tg-aarshjul{list-style:none;margin:0;padding:0;border-left:2px solid #cfe3e2;margin-left:8px}
.tg-aarshjul li{position:relative;padding:0 0 16px 24px}
.tg-aarshjul li:last-child{padding-bottom:0}
.tg-aarshjul li::before{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;background:#fff;border:3px solid var(--teal);box-sizing:border-box}
.tg-naar{display:block;font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--teal);margin-bottom:2px}
.tg-hva{display:block;color:var(--navy);line-height:1.55;font-size:.97rem}
/* Offentlige huskeark (/huskeark/<slug>): arket som et hvitt A4-kort, utskriftsvennlig */
.hk-topp{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.hk-knapper{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.hk-ark{background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px 34px 22px;box-shadow:0 18px 44px rgba(31,58,95,.10)}
.hk-seksjon{margin:0 0 22px;padding:0;break-inside:avoid}   /* section har global padding, nulles her */
.hk-seksjon h2{font-size:1.08rem;margin:0 0 8px;padding-bottom:6px;border-bottom:2px solid #dcefee;color:var(--navy)}
.hk-seksjon ul{margin:0;padding:0 0 0 20px;color:var(--navy);line-height:1.6;font-size:.96rem}
.hk-seksjon li{margin:0 0 6px}
.hk-seksjon li b{color:var(--navy)}
.hk-eks{border:1px solid var(--line);border-radius:12px;margin:0 0 8px;background:#fbfaf6}
.hk-eks summary{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;font-weight:600;color:var(--navy);list-style:none}
.hk-eks summary::-webkit-details-marker{display:none}
.hk-eks summary .rad-chev{margin-left:auto}
.hk-eks[open] summary .rad-chev{transform:rotate(90deg)}
.hk-eks-nr{flex:0 0 auto;width:24px;height:24px;border-radius:50%;background:#e7f2f1;color:var(--teal);font-size:.8rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.hk-eks p{margin:0;padding:0 14px 12px 48px;color:var(--navy);line-height:1.55;font-size:.95rem}
.hk-feil h2{border-bottom-color:#f4dcd2}
.hk-feil li::marker{color:#c4623d}
.hk-fot{margin:12px 0 0;font-size:.78rem;color:var(--muted);text-align:right}
@media(max-width:760px){.hk-ark{padding:20px 18px 16px;border-radius:16px}.hk-topp{align-items:stretch}.hk-knapper .btn,.hk-knapper .btn-ghost{flex:1;text-align:center}}
@media print{
  header,footer,.kleb-cta,.hk-skjul-print,.smeny,.hero.hk-hero nav{display:none !important}
  body{background:#fff}
  .hk-hero{padding:0 !important;background:none}
  .hk-ark{box-shadow:none;border:none;padding:0;border-radius:0}
  .hk-eks{break-inside:avoid;background:none}
  .hk-eks p{display:block}
  .hk-eks summary .rad-chev{display:none}
  a{color:inherit;text-decoration:none}
}
/* Gratis verktøy (/verktoy/...) */
.segment{display:inline-flex;background:#efe9de;border-radius:999px;padding:3px}
.segment label{padding:7px 14px;border-radius:999px;font-size:.88rem;font-weight:600;color:var(--navy);cursor:pointer}
.segment label.pa{background:#fff;box-shadow:var(--shadow)}
.segment input{position:absolute;opacity:0;width:0;height:0}
.chips-rad{display:flex;flex-wrap:wrap;gap:6px;padding-top:6px}
.chips-rad .chip{padding:8px 12px}
.vk-panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px 24px;box-shadow:var(--shadow)}
.vk-ut{margin-top:22px}
.vk-quiz-rad{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.vk-quiz-rad:last-child{border-bottom:none}
.vk-quiz-rad .ord{flex:0 0 40%;font-weight:600;color:var(--navy)}
.vk-quiz-rad input{flex:1;font:inherit;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px}
.vk-quiz-rad input.riktig{border-color:var(--teal);background:#eef7f7}
.vk-quiz-rad input.feil{border-color:#e0a58f;background:#fdf2ee}
.vk-plan{list-style:none;margin:0;padding:0}
.vk-plan li{display:grid;grid-template-columns:110px 1fr;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);align-items:start}
.vk-plan li:last-child{border-bottom:none}
.vk-plan .dag{font-weight:700;color:var(--navy);font-size:.92rem}
.vk-plan .dag small{display:block;font-weight:500;color:var(--muted)}
.vk-plan .hva{color:var(--navy);line-height:1.5}
.vk-plan .hva small{display:block;color:var(--muted)}
.vk-plan li.prove .dag{color:var(--coral-deep)}
/* Gangetabell */
.gt-stykke{display:flex;align-items:center;gap:14px;font-size:2rem;font-weight:800;color:var(--navy)}
.gt-stykke input{width:120px;font:inherit;font-size:1.6rem;font-weight:700;padding:8px 12px;border:2px solid var(--line);border-radius:12px;text-align:center}
.gt-stykke input.riktig{border-color:var(--teal);background:#eef7f7}
.gt-stykke input.feil{border-color:#e0a58f;background:#fdf2ee}
.gt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:14px}
.gt-kol{display:flex;flex-direction:column;gap:2px;font-size:.92rem;color:var(--navy)}
.gt-kol strong{margin-bottom:4px;color:var(--teal)}
/* Karakterkalkulator + nøkkeltall */
.kk-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px}
.kk-rad{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:.93rem;color:var(--navy)}
.kk-rad select{font:inherit;padding:6px 10px;border:1.5px solid var(--line);border-radius:10px;background:#fff;min-width:64px}
.kk-res{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}
.kk-res>div{background:#eef5f5;border-radius:14px;padding:12px 14px;display:flex;flex-direction:column}
.kk-res small{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}
.kk-res strong{font-size:1.7rem;color:var(--navy);line-height:1.2}
@media(max-width:560px){.kk-grid{grid-template-columns:1fr}.kk-res{grid-template-columns:1fr 1fr}}
/* Prosent og brøk */
.pb-sp{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:1.15rem;color:var(--navy);margin:0 0 16px}
.pb-sp input{width:92px;font:inherit;font-size:1.05rem;padding:8px 10px;border:1.5px solid var(--line);border-radius:10px;text-align:center}
.pb-brok{display:inline-flex;flex-direction:column;gap:3px}
.pb-brok input{width:64px;padding:5px 8px}
.pb-brok input:first-child{border-bottom:2px solid var(--navy);border-radius:10px 10px 0 0}
.pb-brok input:last-child{border-radius:0 0 10px 10px}
.pb-steg{margin:0;padding-left:22px;color:var(--navy);line-height:1.6}
.pb-steg li{margin-bottom:8px}
.segment{flex-wrap:wrap}
/* Klokke */
.kl-rad{display:grid;grid-template-columns:220px 1fr;gap:26px;align-items:center}
.kl-ur{width:220px;height:220px}
.kl-valg{display:flex;flex-wrap:wrap;gap:8px}
.kl-valg .chip{font-size:1rem;padding:10px 16px}
.kl-valg .chip.feil{border-color:#e0a58f;background:#fdf2ee;color:#9b3b2a}
@media(max-width:560px){.kl-rad{grid-template-columns:1fr;justify-items:center;text-align:center}.kl-valg{justify-content:center}}
@media print{header,footer,.vk-panel form,.vk-skjul-print,.cta-rad,.foreldre-boks{display:none !important}.vk-ut{margin:0}}
/* Tynn foreldre-linje øverst på emnesider: synlig før scroll uten å skyve fagstoffet ned */
.foreldre-stripe{display:flex;align-items:center;gap:10px;margin:0 0 18px;padding:10px 14px;border-radius:12px;
  background:#eef5f5;border:1px solid #d5e6e6;color:#2f4a55;font-size:.9rem;line-height:1.4;text-decoration:none;transition:border-color .15s}
.foreldre-stripe:hover{border-color:var(--teal)}
.fs-merke{flex:0 0 auto;white-space:nowrap;background:var(--teal);color:#fff;font-weight:700;font-size:.78rem;padding:3px 9px;border-radius:999px}
.fs-pil{flex:0 0 auto;margin-left:auto;color:var(--teal);font-weight:700;font-size:1.2rem}
.fs-cta{white-space:nowrap;color:var(--teal);font-weight:700}
/* Foreldre-boks på emnesider (søketrafikk lander her; forelderen er kjøperen) */
.foreldre-boks{margin:22px 0;padding:26px 28px;border-radius:18px;background:linear-gradient(135deg,#eef6f6 0%,#fbf7ef 100%);border:1px solid #d5e6e6}
.foreldre-boks h2{font-size:1.35rem;color:var(--navy);margin:6px 0 10px;letter-spacing:-.01em}
.foreldre-boks p{color:#3f5560;margin:0 0 16px;line-height:1.6;max-width:62ch}
@media(max-width:560px){.foreldre-boks{padding:20px 18px}}
/* «Se hvordan det ser ut»: chips + tekstkort + telefon med rullerende skjermbilder */
.vis{background:linear-gradient(180deg,#fdfbf6 0%,#f4f1ea 100%);padding:56px 0}
.vis-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:26px}
.vis-chips .chip.pa{background:var(--teal);border-color:var(--teal);color:#fff}
.vis-grid{display:grid;grid-template-columns:1fr 250px;gap:44px;align-items:center;max-width:820px;margin:0 auto}
.vis-tekst{position:relative;min-height:150px}
.vis-kort{display:none}
.vis-kort.pa{display:block;animation:visInn .35s ease}
.vis-kort h3,.vis-kort h2{font-size:1.5rem;color:var(--navy);margin:0 0 8px;letter-spacing:-.01em}
.vis-kort p{color:var(--muted);font-size:1.02rem;line-height:1.55;margin:0;max-width:38ch}
.vis-prikker{display:flex;gap:7px;margin-top:16px}
.vis-prikker i{width:8px;height:8px;border-radius:50%;background:#d6cfc2;transition:all .25s;cursor:pointer}
.vis-prikker i.pa{background:var(--teal);width:22px;border-radius:4px}
.vis-telefon{display:flex;justify-content:center}
.vis-ramme{position:relative;width:230px;aspect-ratio:640/1385;border-radius:34px;background:#1c1e24;padding:10px;
  box-shadow:0 30px 60px -24px rgba(31,58,95,.45),inset 0 0 0 2px #464a52}
.vis-ramme img{position:absolute;inset:10px;width:calc(100% - 20px);height:calc(100% - 20px);object-fit:cover;border-radius:26px;
  opacity:0;transition:opacity .45s ease}
.vis-ramme img.pa{opacity:1}
/* Bred variant (foreldreportal): tekst over, skjermbilde i full bredde */
.vis-skjerm{display:none;width:100%;border-radius:16px;overflow:hidden;background:#1c1e24;padding:8px;
  box-shadow:0 30px 60px -24px rgba(31,58,95,.45),inset 0 0 0 2px #464a52;animation:visInn .35s ease}
.vis-skjerm.pa{display:block}
.vis-skjerm img{display:block;width:100%;height:auto;border-radius:10px}
.vis-grid.bred{grid-template-columns:1fr;max-width:900px;gap:22px}
.vis-grid.bred .vis-ramme{display:none}
.vis-grid.bred .vis-tekst{text-align:center;min-height:0}
.vis-grid.bred .vis-kort p{margin-inline:auto;max-width:56ch}
.vis-grid.bred .vis-prikker,.vis-grid.bred .cta-rad{justify-content:center}
.vis-grid.bred .vis-telefon{order:1}
@keyframes visInn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(max-width:820px){
  .vis-grid{grid-template-columns:1fr;gap:28px;text-align:center}
  .vis-kort p{margin-inline:auto}
  .vis-prikker{justify-content:center}
  .vis-tekst .cta-rad{justify-content:center}
  .vis-ramme{width:200px;border-radius:30px;padding:9px}
  .vis-ramme img{inset:9px;width:calc(100% - 18px);height:calc(100% - 18px);border-radius:23px}
  .vis-grid .vis-telefon{order:-1}
}
@media(prefers-reduced-motion:reduce){.vis-kort.pa{animation:none}.vis-ramme img{transition:none}}
@media(max-width:560px){.cta-rad>*{flex:1 1 100%;justify-content:center}}
.sitat-navn{font-weight:700;color:var(--navy);margin-top:8px;font-size:.9rem}
.band .risiko{color:#cfe0e6}
/* Forside-demo: «skriver»-indikator */
.skriver{display:inline-flex;gap:5px;align-items:center;padding:3px 2px}
.skriver i{width:7px;height:7px;border-radius:50%;background:#8fb0b2;display:inline-block;animation:skriv 1s infinite ease-in-out}
.skriver i:nth-child(2){animation-delay:.15s}
.skriver i:nth-child(3){animation-delay:.3s}
@keyframes skriv{0%,80%,100%{transform:translateY(0);opacity:.45}40%{transform:translateY(-4px);opacity:1}}
@media(prefers-reduced-motion:reduce){.skriver i{animation:none}}
/* App-skall: fast venstremeny + innhold */
.skall{display:flex;align-items:flex-start;min-height:100vh}
/* Konsistent vertikal luft på ALLE app-sider: innholdet skal aldri klistres
   mot toppen eller slutte hardt i bunnen, uavhengig av hva siden starter med. */
.skall-inn{flex:1;min-width:0;padding:0 0 56px}
/* Hvit topplinje i flukt med logoen: faner venstre, faste lenker høyre */
.topplinje{display:flex;align-items:center;justify-content:space-between;gap:14px;
  background:#fff;border-bottom:1px solid var(--line);padding:12px 26px;min-height:67px;
  margin-bottom:26px}
.topplinje-faner{display:flex;min-width:0}
.topplinje .faner{margin:0}
.topplinje-h{display:flex;align-items:center;gap:4px;flex:0 0 auto}
.tl-lenke{display:inline-flex;align-items:center;gap:7px;color:#566169;text-decoration:none;
  font-weight:600;font-size:.9rem;padding:8px 12px;border-radius:999px;white-space:nowrap;
  transition:background .12s,color .12s}
.tl-lenke:hover{background:var(--sand);color:var(--navy)}
.tl-lenke.pa{background:#e1efef;color:var(--navy)}
.tl-ic{display:flex;flex:0 0 auto;color:var(--teal)}
.tl-ic svg{width:18px;height:18px}
.tl-ut{color:#c0512e}
.tl-ut .tl-ic{color:#c0512e}
.tl-ut:hover{background:#fae3da;color:#b23b1e}
.app-topp-h{display:none}
@media(max-width:900px){
  /* Mobil: Konto/Hjelp/Tilbakemelding/Logg ut flyttes opp i app-toppen som
     ikoner, så den hvite linjen under bare har seksjonsfanene i full bredde. */
  .topplinje{padding:0;min-height:0;margin-bottom:16px;gap:0;position:sticky;top:var(--apptopp,58px);z-index:65}
  .topplinje-h{display:none}
  .topplinje:not(:has(.faner)){display:none}
  /* Seksjonsfaner på mobil: understrekede faner kant til kant (som iOS/Material
     «scrollable tabs»), aktiv fane rulles inn i bildet av _header-skriptet. */
  .topplinje-faner{flex:1;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:0 6px;scroll-padding:0 24px}
  .topplinje-faner::-webkit-scrollbar{display:none}
  .topplinje .faner{display:flex;width:max-content;min-width:100%;overflow:visible;flex:0 0 auto;
    background:none;border:0;border-radius:0;padding:0;gap:0}
  .topplinje .faner a,.topplinje .faner button{flex:0 0 auto;position:relative;border-radius:0;padding:14px 12px 13px;
    font-size:.93rem;color:#6d6353;background:none}
  .topplinje .faner a:hover,.topplinje .faner button:hover{background:none}
  .topplinje .faner a.pa,.topplinje .faner button.pa{background:none;box-shadow:none;color:var(--navy)}
  .topplinje .faner a.pa::after,.topplinje .faner button.pa::after{content:"";position:absolute;left:10px;right:10px;bottom:0;
    height:2.5px;border-radius:2px 2px 0 0;background:var(--teal)}
  .app-topp-h{display:flex;align-items:center;gap:0;margin-left:auto}
  .app-topp .tl-tekst{display:none}
  .app-topp .tl-lenke{padding:8px 7px}
  .app-topp .tl-lenke.pa{background:#e1efef}
}
.sidemeny{flex:0 0 250px;width:250px;position:sticky;top:0;height:100vh;background:#fff;
  border-right:1px solid var(--line);display:flex;flex-direction:column;padding:18px 14px 16px;overflow-y:auto}
.smeny-brand{display:flex;align-items:center;gap:9px;font-weight:700;letter-spacing:-.02em;color:var(--navy);
  text-decoration:none;font-size:1.22rem;padding:4px 8px 16px;line-height:1;letter-spacing:-.02em;
  font-family:'Geist','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
.smeny-brand img{width:42px;height:42px}
.smeny-brand .tld{color:var(--coral-deep);font-weight:600}
.smeny-nav{display:flex;flex-direction:column;gap:2px}
.smeny-rad{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:11px;
  color:#566169;text-decoration:none;font-weight:600;font-size:.96rem;line-height:1.2}
.smeny-rad:hover{background:var(--sand);color:var(--navy)}
.smeny-statisk{cursor:default}
.smeny-statisk:hover{background:none;color:#566169}
.smeny-rad.pa{background:#e1efef;color:var(--navy)}
.smeny-ic{display:flex;flex:0 0 auto;color:var(--teal)}
.smeny-under{padding:8px 12px 8px 43px;font-weight:500;font-size:.92rem}
.smeny-kontekst{background:#faecd2;border:1px solid #f0dcae;border-radius:12px;padding:10px 12px;margin:0 4px 12px;
  display:flex;flex-direction:column;gap:3px}
.smeny-kontekst-merke{font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;font-weight:700;color:#9a6a16}
.smeny-kontekst-navn{font-size:.9rem;font-weight:700;color:var(--navy)}
.smeny-kontekst-velg{font:inherit;font-size:.9rem;font-weight:700;color:var(--navy);background:#fff;
  border:1px solid #e6cf95;border-radius:9px;padding:7px 10px;width:100%;cursor:pointer}
.smeny-kontekst-tilbake{font-size:.82rem;color:#9a6a16;font-weight:600;text-decoration:none;margin-top:2px}
.smeny-kontekst-tilbake:hover{text-decoration:underline}
.smeny-under.smeny-legg{color:var(--teal);font-weight:600}
/* Barnas læringsrom rett under Min side: innrykket rad med bok-ikon, ingen egen overskrift */
.smeny-barn{padding:8px 12px 8px 22px;font-weight:600;font-size:.94rem}
.smeny-barn .smeny-ic svg{width:20px;height:20px}
/* Juridiske sider (personvern, vilkår m.fl.) inne i app-skallet: sentrert
   lesespalte (jevn kant på begge sider), uten offentlig-sidens 60px topp.
   !important trengs mot inline-paddingen på section. */
.skall-inn section:has(> .legal-page){padding:0 0 40px !important}
.skall-inn .narrow.legal-page{margin:0 auto;max-width:880px;padding:0 30px}

/* Delt to-kolonners oppsett (verv, skrivehjelp-forsiden): hovedinnhold
   venstre, hero-/hjelpekort høyre, en kolonne på mobil. */
/* Verv: e-postinvitasjon (felt og knapp i samme høyde) + liste over sendte */
.verv-inv{display:flex;gap:8px;align-items:stretch}
.verv-inv input{flex:1;min-width:0;font:inherit;font-size:.92rem;color:var(--navy);padding:0 14px;border:1px solid #cfe1d8;border-radius:12px;background:#fff;height:46px}
.verv-inv input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(47,125,131,.15)}
.verv-inv .btn-ghost{height:46px;display:inline-flex;align-items:center;white-space:nowrap;flex:0 0 auto}
.verv-sendt{margin-top:12px;border:1px solid #d8e9e0;border-radius:12px;background:#fff;overflow:hidden}
.verv-sendt-rad{display:flex;align-items:center;gap:10px;padding:9px 12px;border-top:1px solid #e6efe9;font-size:.88rem}
.verv-sendt-rad:first-child{border-top:none}
.verv-sendt-epost{flex:1;min-width:0;color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.verv-sendt-dato{color:var(--muted);font-size:.8rem;flex:0 0 auto}
.verv-sendt .statuspill{flex:0 0 auto;min-width:64px;text-align:center;font-size:.72rem;padding:2px 8px}
.verv-grid,.duo-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:18px;align-items:start;
  max-width:1000px;margin-bottom:26px}
@media(max-width:900px){.verv-grid,.duo-grid{grid-template-columns:1fr}}

/* Skrivehjelp: dokumentet som redigerbart «papir» venstre, tilbakemeldingen
   til samme tekst i kolonnen høyre. Siden ruller som en helhet, ingen
   nøstede rullefelt. */
.skriv-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:20px;align-items:start;margin-bottom:26px}
.skriv-papir{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:0 10px 34px -18px rgba(31,58,95,.28);padding:26px 34px}
.skriv-tittel-felt{flex:1;min-width:200px;font:inherit;font-size:1.15rem;font-weight:700;color:var(--navy);
  background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 16px;
  outline:none;transition:border-color .15s,box-shadow .15s}
.skriv-tittel-felt:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(47,125,131,.12)}
.skriv-tittel-felt::placeholder{color:#b3bdc7;font-weight:600}
.skriv-verktoy{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.skriv-status{font-size:.82rem;font-weight:600;color:var(--muted);flex:0 0 auto;
  min-width:212px;justify-content:center;align-self:stretch;
  background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 16px;
  display:inline-flex;align-items:center;gap:8px;transition:background .2s,color .2s,border-color .2s}
.skriv-status::before{content:'';width:7px;height:7px;border-radius:999px;background:#b6c1cb;flex:0 0 auto}
.skriv-status.venter{color:#9a6a16;background:#faecd2;border-color:#f0dcae}
.skriv-status.venter::before{background:#d9a83c}
.skriv-status.lagrer::before{background:#d9a83c;animation:statusPuls 1s ease-in-out infinite}
@keyframes statusPuls{0%,100%{opacity:1}50%{opacity:.25}}
.skriv-status.lagret{color:#2f7d83;background:#e1efef;border-color:#cfe6da;animation:lagretPop .45s ease}
.skriv-status.lagret::before{background:#2f9e6e}
@keyframes lagretPop{0%{transform:scale(1)}40%{transform:scale(1.12)}100%{transform:scale(1)}}
.skriv-status.feil{color:#b23b1e;background:#fae3da;border-color:#f0cabb}
.skriv-status.feil::before{background:#c0512e}
@media(prefers-reduced-motion:reduce){.skriv-status.lagret{animation:none}.skriv-status.lagrer::before{animation:none}}
.skriv-tekst{width:100%;border:none;outline:none;background:none;
  font-family:Georgia,'Times New Roman',serif;font-size:1.06rem;line-height:1.85;
  color:var(--ink);resize:none;min-height:420px;padding:0}
.skriv-tekst::placeholder{color:#a8b2bc;font-family:inherit}
/* Handlingslinje under papiret: forklaring venstre, stor knapp høyre */
.skriv-cta{display:flex;justify-content:space-between;align-items:center;gap:14px;
  flex-wrap:wrap;margin-top:14px;background:linear-gradient(150deg,#fdfbf6,#f1f8f5);
  border:1px solid #d8e9e0;border-radius:16px;padding:14px 18px}
.skriv-cta-tekst{flex:1;min-width:220px}
.skriv-cta-knapp{display:inline-flex;align-items:center;gap:9px;
  box-shadow:0 8px 22px -10px rgba(192,81,46,.55)}
.skriv-cta-knapp svg{flex:0 0 auto;animation:gnistBlink 3.4s ease-in-out infinite}
@keyframes gnistBlink{0%,86%,100%{transform:scale(1) rotate(0)}93%{transform:scale(1.22) rotate(12deg)}}
@media(max-width:640px){.skriv-cta-knapp{width:100%;justify-content:center}}
/* «AI jobber»-tilstand under papiret: pulserende orb, skimrende linje og
   etapper som hukes av etter hvert. Ekte prosent finnes ikke, så dette er
   stemning, men etappene følger klokka og gjør ventingen levende. */
.skriv-jobber{margin-top:14px;background:linear-gradient(150deg,#fdfbf6,#f1f8f5);
  border:1px solid #d8e9e0;border-radius:16px;padding:18px 20px}
.skriv-jobber-topp{display:flex;align-items:center;gap:13px;margin-bottom:12px}
.ai-orb{position:relative;flex:0 0 auto;width:40px;height:40px;border-radius:999px;
  background:radial-gradient(circle at 32% 28%,#5aa7ad,var(--teal) 58%,#1f5d63);
  box-shadow:0 8px 18px -8px rgba(47,125,131,.65);
  display:flex;align-items:center;justify-content:center;color:#fff}
.ai-orb::after{content:'';position:absolute;inset:-2px;border-radius:999px;
  border:2px solid rgba(47,125,131,.45);animation:orbRing 2.1s ease-out infinite}
.ai-orb svg{animation:orbGnist 2.1s ease-in-out infinite}
@keyframes orbRing{0%{transform:scale(1);opacity:.75}100%{transform:scale(1.6);opacity:0}}
@keyframes orbGnist{0%,100%{transform:scale(1) rotate(0)}50%{transform:scale(1.16) rotate(9deg)}}
.ai-prikker i{display:inline-block;font-style:normal;animation:skriv 1.1s infinite ease-in-out}
.ai-prikker i:nth-child(2){animation-delay:.15s}
.ai-prikker i:nth-child(3){animation-delay:.3s}
.ai-bar>i{background:linear-gradient(90deg,var(--teal),#5aa7ad,var(--teal));
  background-size:200% 100%;animation:aiFlyt 1.5s linear infinite}
@keyframes aiFlyt{0%{background-position:0 0}100%{background-position:-200% 0}}
.ai-etapper{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:9px}
.ai-etapper li{display:flex;align-items:center;gap:10px;font-size:.88rem;font-weight:600;
  color:var(--muted);transition:color .3s}
.ai-etapper li::before{content:'';flex:0 0 auto;width:20px;height:20px;border-radius:999px;
  border:2px solid #d3dad4;background:#fff;transition:border-color .3s,background .3s}
.ai-etapper li.aktiv{color:var(--navy)}
.ai-etapper li.aktiv::before{border-color:var(--teal);border-top-color:transparent;animation:aiSnurr .85s linear infinite}
.ai-etapper li.ferdig{color:#3f7264}
.ai-etapper li.ferdig::before{border-color:#2f9e6e;background:#2f9e6e url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.6 4.6L19 7.5'/%3E%3C/svg%3E") center/12px no-repeat;animation:lagretPop .4s ease}
@keyframes aiSnurr{to{transform:rotate(360deg)}}
/* Øv: automatisk oppgavegenerering når barnet lander fra Øv-knappen */
.gen-auto{background:linear-gradient(150deg,#fdfbf6,#f1f8f5);border-color:#d8e9e0}
.gen-topp{display:flex;align-items:center;gap:13px}
.gen-topp .ai-orb{width:40px;height:40px}

/* Prøvemodus: flervalg som store, tappbare valg */
div.maal-velger.pm-alt{max-height:none}
div.maal-velger.pm-alt label{font-size:1.02rem;padding:12px 14px}

/* Kalender: fullførte lekser/innleveringer, grå og gjennomstreket */
.kal-chip.kal-ferdig{text-decoration:line-through;opacity:.75}

/* Gloser: AI-import øverst i «Legg til»-modalen (bilde, tema eller rydding) */
.gl-ai{display:flex;flex-direction:column;gap:11px;background:linear-gradient(150deg,#fdfbf6,#f1f8f5);
  border:1px solid #d8e9e0;border-radius:14px;padding:12px 14px;margin-bottom:14px}
.gl-ai-rad{display:flex;align-items:center;gap:12px}
.gl-ai-tema{display:flex;gap:8px}
.gl-ai-tema input{flex:1;min-width:0;font:inherit;font-size:.9rem;color:var(--navy);
  background:#fff;border:1px solid #d8e9e0;border-radius:10px;padding:9px 12px;outline:none;
  transition:border-color .15s,box-shadow .15s}
.gl-ai-tema input:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(47,125,131,.12)}
.gl-ai-tema input::placeholder{color:#9aa7ad}
/* Knappene i AI-boksen: samme bredde, høyde og vekt på begge rader */
.gl-ai .btn-ghost.btn-mini{display:inline-flex;align-items:center;justify-content:center;
  min-width:112px;padding:10px 16px;font-size:.84rem;background:#fff}
/* Gloseøving i kalenderen: alle sju dagchips deler EN rad i den smale
   hero-kolonnen (flex-fordelt i stedet for fast minimumsbredde) */
.gl-plan .ovp-dager{flex-wrap:nowrap;gap:6px}
.gl-plan .ovp-dag{flex:1;min-width:0}
.gl-plan .ovp-dag span{display:flex;width:100%;min-width:0;box-sizing:border-box;
  padding:8px 2px;font-size:.8rem;justify-content:center}
/* Enkeltdato-rad: tekst, datofelt og knapp i samme høyde */
.gl-enkel{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}
.gl-enkel-tekst{flex:0 0 auto;font-size:.86rem;color:var(--muted);font-weight:600}
.gl-enkel input[type=date]{flex:1;min-width:140px;font:inherit;font-size:.9rem;color:var(--navy);
  background:#fff;border:1px solid #d8e9e0;border-radius:10px;padding:8px 10px}
.gl-enkel .btn-ghost.btn-mini{align-self:stretch;display:inline-flex;align-items:center;background:#fff}
.gl-ai .ai-orb{width:34px;height:34px}
.gl-ai .ai-orb svg{animation:none}
.gl-ai .ai-orb::after{animation-duration:3.4s}
.gl-ai.jobber .ai-orb svg{animation:orbGnist 2.1s ease-in-out infinite}
.gl-ai.jobber .ai-orb::after{animation-duration:2.1s}
@media(prefers-reduced-motion:reduce){.gl-ai .ai-orb::after,.gl-ai.jobber .ai-orb svg{animation:none}}

/* Skjelett i tilbakemeldingskolonnen mens svaret er på vei: skimrende linjer
   som «skrives», gammel tilbakemelding dempes bak. */
.ai-skjelett{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:22px;margin-bottom:16px}
.ai-skjelett .sl{height:12px;border-radius:6px;margin:11px 0;
  background:linear-gradient(90deg,#eef0f2 25%,#dfeae7 50%,#eef0f2 75%);
  background-size:200% 100%;animation:aiSkimmer 1.4s ease-in-out infinite}
@keyframes aiSkimmer{0%{background-position:170% 0}100%{background-position:-170% 0}}
.skriv-tbk.ai-venter>*:not(.ai-skjelett){opacity:.35;filter:saturate(.5);transition:opacity .4s}
@media(prefers-reduced-motion:reduce){
  .skriv-cta-knapp svg,.ai-orb::after,.ai-orb svg,.ai-prikker i,.ai-bar>i,
  .ai-etapper li.aktiv::before,.ai-etapper li.ferdig::before,.ai-skjelett .sl{animation:none}
}
.skriv-mobfaner{display:none}
@media(max-width:1000px){
  .skriv-grid{grid-template-columns:1fr}
  .skriv-grid>div{min-width:0}
  .skriv-papir{padding:18px 20px}
  /* Faner: Teksten | Tilbakemelding. En kolonne om gangen. */
  .skriv-mobfaner{display:flex;width:100%;margin-bottom:14px}
  .skriv-mobfaner button{flex:1;text-align:center}
  .skriv-grid.vis-tbk>div:first-child{display:none}
  .skriv-grid.vis-tekst .skriv-tbk{display:none}
}
@media(max-width:640px){
  /* Mobil: tittelfeltet får hele bredden, lagringsstatus som liten pille under. */
  .skriv-verktoy{flex-wrap:wrap;gap:8px}
  .skriv-tittel-felt{flex:1 0 100%;min-width:0;font-size:1.05rem;padding:11px 14px}
  .skriv-status{min-width:0;align-self:auto;margin-left:auto;padding:6px 12px;border-radius:999px;font-size:.78rem}
  .skriv-papir{padding:16px 16px}
  .skriv-tekst{min-height:280px;font-size:16px;line-height:1.7}
  .skriv-cta{padding:12px 14px}
}
/* Verktøylinje over et ark (huskeark, prøveanalyse): tilbake til venstre,
   primær handling til høyre, sekundære som lette knapper på rad under. */
.ark-verktoy{display:flex;flex-direction:column;gap:10px;margin:0 0 16px}
.ark-verktoy .av-rad{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ark-verktoy .av-rad .btn{margin-left:auto}
.ark-verktoy .btn,.ark-verktoy .btn-ghost{margin:0}
.ark-knytt{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0}
.ark-knytt label{font-size:.85rem;font-weight:600;color:var(--muted);flex:0 0 auto}
.ark-knytt .vb-velger{flex:1 1 220px;min-width:0;max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ark-knytt-ok{font-size:.8rem;color:#2f7d83;font-weight:600}
@media(max-width:640px){
  .ark-verktoy .av-rad .btn{flex:1 1 auto;justify-content:center;text-align:center}
  .ark-verktoy .av-sek .btn-ghost{flex:1 1 auto;text-align:center;padding:9px 10px;font-size:.88rem}
}

/* Konto-fanen: to kolonner på desktop, så alt er synlig uten skrolling */
.konto-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;align-items:start;margin-bottom:34px}
/* Konto: en redigeringsboks per barn (innstillinger, avatar, mål og belønning) */
.barn-red{overflow:hidden}
.barn-red-topp{display:flex;align-items:center;gap:12px;padding:14px 16px}
.barn-red-valg{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.barn-red-valg a{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;text-decoration:none;
  color:var(--navy);font-weight:600;font-size:.82rem;text-align:center;line-height:1.2;border-right:1px solid var(--line)}
.barn-red-valg a:last-child{border-right:none}
.barn-red-valg a:hover{background:var(--sand)}
/* Slett konto: rolig linje nederst, ingen faresone-boks */
.konto-slett{color:var(--muted);font-size:.82rem;margin:-10px 2px 30px}
.konto-slett a{color:#b23b1e;font-weight:600}
.lenkeknapp-fare{background:none;border:none;padding:0;font:inherit;font-size:inherit;color:#b23b1e;font-weight:600;text-decoration:underline;cursor:pointer}
.konto-grid .app-sektion:first-child{margin-top:0}
@media(max-width:900px){.konto-grid{grid-template-columns:1fr}}

/* Foreldre-dashbord: barnekort-rutenett + veiviser */
.barn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px;margin-bottom:26px;align-items:stretch}
.barn-kort-lenke{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:22px;text-decoration:none;color:inherit;transition:transform .12s,box-shadow .12s}
.barn-kort-lenke:hover{transform:translateY(-2px);box-shadow:0 12px 32px -14px rgba(31,58,95,.3)}
.barn-kort-foot{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-top:auto;padding-top:16px;
  color:var(--teal);font-weight:700;font-size:.9rem}
/* Tom plass i barnerutenettet: stiplet «Legg til barn»-kort */
.barn-kort-tom{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  min-height:200px;border:1.5px dashed #cdbfa9;border-radius:var(--radius);background:transparent;
  text-decoration:none;text-align:center;padding:22px;transition:border-color .15s,background .15s}
.barn-kort-tom:hover{border-color:var(--teal);background:rgba(255,255,255,.6)}
.barn-tom-pluss{width:44px;height:44px;border-radius:999px;background:#e1efef;color:var(--teal);
  font-size:1.6rem;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}
.barn-tom-pluss.ekstra{background:#faecd2;color:#9a6a16}
.prove-nudge{display:flex;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;border-radius:12px;background:var(--sand)}
.onboard{background:#e7f1f1;border-color:#cfe6e6;margin-bottom:24px}
.onboard-steg{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:13px}
.onboard-steg li{display:flex;gap:12px;align-items:flex-start;color:var(--navy);font-size:.95rem;line-height:1.5}
.onr{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:var(--teal);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}
.smeny-bolk{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:#9aa7ad;
  font-weight:700;padding:15px 12px 6px}
.smeny-skille{height:1px;background:var(--line);margin:10px 10px}
/* Live-indikator nederst i venstremenyen: lite statuskort med pulserende
   prikk i hvit ring. Ærlig status (navigator.onLine), grått frakoblet. */
.smeny-live{margin:auto 4px 0;display:flex;align-items:center;gap:11px;
  background:linear-gradient(135deg,#eef8f3,#e3f1ea);border:1px solid #cfe6da;
  border-radius:14px;padding:10px 13px;box-shadow:0 1px 3px rgba(31,58,95,.07)}
.live-ring{flex:0 0 auto;width:22px;height:22px;border-radius:999px;background:#fff;
  border:1px solid #cfe6da;display:flex;align-items:center;justify-content:center}
.live-dot{width:9px;height:9px;border-radius:999px;background:#2f9e6e;
  box-shadow:0 0 0 0 rgba(47,158,110,.45);animation:livePuls 2.4s ease-out infinite}
@keyframes livePuls{
  0%{box-shadow:0 0 0 0 rgba(47,158,110,.45)}
  70%{box-shadow:0 0 0 6px rgba(47,158,110,0)}
  100%{box-shadow:0 0 0 0 rgba(47,158,110,0)}
}
.live-info{display:flex;flex-direction:column;gap:1px;min-width:0;line-height:1.25}
.live-tittel{font-size:.82rem;font-weight:700;color:var(--navy);letter-spacing:-.01em}
.live-tekst{font-size:.72rem;font-weight:600;color:#3f7264}
.smeny-live.av{background:#f2f0ec;border-color:var(--line);box-shadow:none}
.smeny-live.av .live-ring{border-color:var(--line)}
.smeny-live.av .live-dot{background:#b6c1cb;animation:none;box-shadow:none}
.smeny-live.av .live-tekst{color:var(--muted)}
@media(prefers-reduced-motion:reduce){.live-dot{animation:none}}
.app-topp{display:none}
.meny-bakteppe{display:none}
@media(max-width:900px){
  .skall{display:block}
  .app-topp{display:flex;align-items:center;gap:12px;padding:9px 16px;position:sticky;top:0;z-index:70;
    background:var(--sand);border-bottom:1px solid var(--line)}
  .app-topp .brand{font-weight:700;color:#c0512e;text-decoration:none;display:flex;align-items:center;gap:8px;font-size:1.15rem;line-height:1;letter-spacing:-.02em;
    font-family:'Geist','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
  .app-topp .brand img{width:38px;height:38px}
  .app-burger{border:none;background:none;color:var(--navy);cursor:pointer;display:flex;padding:2px}
  .sidemeny{position:fixed;left:0;top:0;width:264px;flex-basis:264px;z-index:80;transform:translateX(-100%);
    transition:transform .25s ease;box-shadow:16px 0 48px -18px rgba(31,58,95,.5)}
  body.meny-av .sidemeny{transform:none}
  body.meny-av .meny-bakteppe{display:block;position:fixed;inset:0;background:rgba(20,30,45,.42);z-index:75}
}
/* Leksehjelp-panel på øv (glir inn fra høyre) */
.hint-drawer{position:fixed;top:0;right:0;height:100vh;width:min(380px,92vw);background:#fff;
  box-shadow:-14px 0 44px -18px rgba(31,58,95,.45);border-left:1px solid var(--line);
  display:flex;flex-direction:column;transform:translateX(100%);transition:transform .25s ease;z-index:60}
.hint-drawer.open{transform:translateX(0)}
.hint-topp{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;
  border-bottom:1px solid var(--line);font-weight:700;color:var(--navy)}
.hint-lukk{border:none;background:none;font-size:1.5rem;line-height:1;color:var(--muted);cursor:pointer;padding:0 4px}
.hint-strom{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}
.hint-msg{max-width:90%;padding:10px 13px;border-radius:14px;font-size:.92rem;line-height:1.5;white-space:pre-wrap}
.hint-msg.los{background:var(--sand);color:var(--navy);align-self:flex-start;border-bottom-left-radius:4px}
.hint-msg.elev{background:var(--teal);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.hint-skriv{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line)}
.hint-skriv input{flex:1;font:inherit;padding:9px 12px;border-radius:10px;border:1px solid var(--line)}
.hint-skriv button{flex:0 0 auto;width:42px;border:none;border-radius:10px;background:var(--teal);
  color:#fff;font-size:1.15rem;cursor:pointer}
.hint-bunn{padding:0 14px 14px;text-align:center}
.ditt-trinn{margin-left:9px;background:#e1efef;color:#2f7d83;font-size:.7rem;font-weight:700;padding:3px 9px;border-radius:999px;letter-spacing:.02em;white-space:nowrap}
.foto-knapp{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:14px;border:1px solid var(--line);background:#fff;color:var(--teal);cursor:pointer;flex:0 0 auto;transition:all .15s}
.foto-knapp:hover{border-color:var(--teal);background:#f0f6f6}
/* Kalender */
.kal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.kal-tittel{font-weight:800;color:var(--navy);font-size:1.15rem}
.kal-pil{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--navy);display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:1.3rem}
.kal-pil:hover{border-color:var(--teal);color:var(--teal)}
.kal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.kal-ukedager{margin-bottom:6px}
.kal-ud{text-align:center;font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;padding:4px 0}
.kal-celle{min-height:84px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:6px 6px 4px;overflow:hidden}

/* Ukesvisning: rolige celler, en linje per chip (som en ordentlig kalender-app).
   Full tekst ligger i tooltip og i «Planen denne uken»-listen under. */
.kal-ukevis{gap:8px}
.kal-ukevis .kal-celle{min-height:150px;padding:8px 8px 6px;border-radius:14px}
.kal-ukevis .kal-dato-rad{margin-bottom:7px}
.kal-ukevis .kal-dato{font-size:.68rem;font-weight:700;color:var(--muted);background:#f4eee2;padding:2px 8px;border-radius:999px}
.kal-ukevis .kal-celle.idag{box-shadow:none;border-color:var(--teal)}
.kal-ukevis .kal-celle.idag .kal-dato{background:var(--teal);color:#fff}
.kal-ukevis .kal-chip{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  font-size:.7rem;font-weight:600;line-height:1.45;padding:4px 8px;border-radius:7px;margin-bottom:4px;max-height:none}
.kal-ukevis .kal-plus{width:22px;height:22px;border-radius:8px;font-size:1.05rem}
.kal-ukevis .kal-mer{font-size:.7rem}
@media(max-width:600px){.kal-ukevis{gap:4px}.kal-ukevis .kal-celle{min-height:100px;padding:5px 4px 4px}
  .kal-ukevis .kal-dato{padding:2px 6px;font-size:.62rem}
  .kal-ukevis .kal-chip{font-size:.6rem;padding:3px 5px}}
.kal-celle.tom{background:transparent;border:0}
.kal-celle.idag{border-color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal)}
.kal-dato-rad{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.kal-dato{font-size:.8rem;font-weight:700;color:var(--navy)}
.kal-celle.idag .kal-dato{color:var(--teal)}
.kal-plus{width:18px;height:18px;line-height:1;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--teal);font-size:.95rem;cursor:pointer;padding:0;opacity:0;transition:opacity .12s}
.kal-celle:hover .kal-plus{opacity:1}
.kal-plus:hover{background:var(--teal);color:#fff;border-color:var(--teal)}
@media(hover:none){.kal-plus{opacity:.55}}
.kal-chip{display:block;font-size:.66rem;font-weight:600;padding:2px 7px;border-radius:6px;margin-bottom:2px;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.55;letter-spacing:.005em}
a.kal-chip:hover,button.kal-chip:hover{filter:brightness(.95)}
.kal-chip.kal-prove{box-shadow:inset 0 0 0 1.5px currentColor;font-weight:700}
.kal-chip.kal-skjult{display:none}
.kal-mer{display:block;width:100%;text-align:left;font-size:.64rem;font-weight:600;color:var(--teal);
  padding:2px 2px 0;background:none;border:0;cursor:pointer;font-family:inherit}
.kal-mer:hover{text-decoration:underline}
/* Flytende legg-til-knapp + modal (familiekalenderen) */
.kal-fab{position:fixed;right:26px;bottom:26px;width:58px;height:58px;border-radius:50%;
  background:#c0512e;color:#fff;font-size:2rem;line-height:1;border:0;cursor:pointer;
  box-shadow:0 14px 34px -10px rgba(192,81,46,.65);z-index:60;transition:transform .12s,background .2s}
.kal-fab:hover{transform:scale(1.07);background:#a8431f}
.kal-modal-bak{position:fixed;inset:0;background:rgba(31,58,95,.38);backdrop-filter:blur(2px);
  display:none;align-items:center;justify-content:center;z-index:70;padding:18px}
.kal-modal-bak.open{display:flex}
.kal-modal{background:var(--cream);border:1px solid var(--line);border-radius:20px;
  box-shadow:var(--shadow);padding:24px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto}
@media(max-width:600px){.kal-celle{min-height:62px;border-radius:9px;padding:4px}.kal-dato{font-size:.72rem}.kal-chip{font-size:.6rem;padding:1px 4px}.kal-grid{gap:4px}}
/* Mestringskart */
.kart{display:flex;flex-wrap:wrap;gap:5px}
.kart-celle{width:18px;height:18px;border-radius:5px;display:block;text-decoration:none;transition:transform .1s}
.kart-celle:hover{transform:scale(1.18)}
/* Forside: steg-nummer + FAQ + funksjonskort-ikon */
.steg-nr{width:38px;height:38px;border-radius:50%;background:var(--teal);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.faq{max-width:760px;margin:0 auto}
.faq details{background:#fff;border:1px solid var(--line);border-radius:14px;padding:0 18px;margin-bottom:10px}
.faq summary{cursor:pointer;font-weight:600;color:var(--navy);padding:16px 0;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";float:right;color:var(--teal);font-weight:800;font-size:1.2rem}
.faq details[open] summary::after{content:"–"}
.faq details p{color:var(--muted);padding:0 0 16px;margin:0;line-height:1.6}
.funk-ic{font-size:1.6rem;line-height:1;margin-bottom:10px}
/* Mobil bunnmeny (kun for innloggede elever, kun på liten skjerm) */
.bunnmeny{position:fixed;bottom:0;left:0;right:0;z-index:60;display:none;background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 18px -12px rgba(31,58,95,.3)}
.bunnmeny a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;font-size:.66rem;font-weight:600;color:var(--muted);text-decoration:none}
.bunnmeny a.pa{color:var(--teal)}
.bunnmeny svg{width:22px;height:22px}
@media(max-width:640px){.bunnmeny{display:flex}body{padding-bottom:66px}}
/* Artikkel/emneside (SEO) */
.artikkel h2{font-size:1.25rem;color:var(--navy);margin:26px 0 10px}
.artikkel p{color:#3c4654;line-height:1.7;margin:0 0 14px;font-size:1.02rem}
/* Footer SEO-lenkeblokk (mørk footer, lys tekst): hovedinnganger som
   glass-chips, langhalen som rolige tekstlenker under. */
.foot-seo{border-bottom:1px solid rgba(255,255,255,.13);padding-bottom:28px;margin-bottom:32px}
.foot-seo h4{color:#8fa9c6;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:14px}
.foot-seo-hoved{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.foot-seo-hoved a{display:inline-flex;align-items:center;background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:8px 17px;font-size:.88rem;
  font-weight:600;color:#fff;text-decoration:none;transition:border-color .15s,color .15s,background .15s}
.foot-seo-hoved a:hover{border-color:#7fc4c9;color:#7fc4c9;background:rgba(255,255,255,.11)}
.foot-seo-lenker{display:flex;flex-wrap:wrap;gap:8px 22px}
.foot-seo-lenker a{color:#9fb4c6;text-decoration:none;font-size:.88rem}
.foot-seo-lenker a:hover{color:#fff}
/* Tilgjengelighet */
html.stor-tekst{font-size:118%}
html.dyslektisk body{font-family:Verdana,Tahoma,"Segoe UI",sans-serif;letter-spacing:.03em;word-spacing:.12em;line-height:1.85}
html.dyslektisk p,html.dyslektisk .bubble,html.dyslektisk .rad-tittel,html.dyslektisk li{text-align:left}
.a11y-bar{display:inline-flex;gap:8px}
.a11y-knapp{font:inherit;font-size:.78rem;padding:5px 11px;border-radius:999px;
  border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);color:#c9d9e2;cursor:pointer}
.a11y-knapp:hover{border-color:#7fc4c9;color:#fff}
.a11y-knapp.pa{background:var(--teal);color:#fff;border-color:var(--teal)}
.les-opp{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--teal);
  cursor:pointer;font-size:.82rem;font-weight:600;padding:5px 12px;border-radius:999px;color:var(--teal);
  transition:all .15s;margin-top:6px}
.les-opp:hover{background:#e7f1f1}
.les-opp svg{flex:0 0 auto;width:16px;height:16px}
.les-opp.laster{opacity:.7;cursor:progress}
.les-opp.spiller{background:var(--teal);color:#fff}

/* Framdriftslinje */
.pbar{height:8px;border-radius:6px;background:#eadfce;overflow:hidden}
.pbar>i{display:block;height:100%;border-radius:6px;background:var(--teal)}

/* Segmentkontroll */
.seg{display:inline-flex;background:#efe7da;border-radius:13px;padding:4px;gap:4px;flex-wrap:wrap}
.seg a,.seg button{padding:8px 16px;border-radius:10px;text-decoration:none;color:var(--muted);font-weight:600;
  font-size:.9rem;transition:all .12s;border:none;background:none;cursor:pointer;font-family:inherit}
.seg a.pa,.seg button.pa{background:#fff;color:var(--navy);box-shadow:0 2px 6px -2px rgba(31,58,95,.25)}
.seg button{white-space:nowrap}

/* Store handlingskort (elev-hjem) */
.aksjoner{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:520px){.aksjoner{grid-template-columns:1fr}.fliser{grid-template-columns:repeat(3,1fr)}}
.aksjon{background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:20px 16px;
  text-decoration:none;text-align:center;transition:transform .12s,box-shadow .12s;display:block}
.aksjon:hover{transform:translateY(-2px);box-shadow:0 12px 26px -20px rgba(31,58,95,.5)}
.aksjon .ai{width:46px;height:46px;border-radius:14px;background:#e7f1f1;display:flex;align-items:center;
  justify-content:center;margin:0 auto 10px;font-size:1.3rem}
.aksjon .at{font-weight:700;color:var(--navy)}
.aksjon .au{font-size:.82rem;color:var(--muted);margin-top:3px}

/* Sammenleggbar målplan */
.maalplan + .maalplan{margin-top:12px}
.mp-hode{width:100%;display:flex;align-items:center;gap:14px;background:none;border:0;
  padding:16px 18px;cursor:pointer;text-align:left;font:inherit}
.mp-hode .t{font-weight:700;color:var(--navy);flex:0 0 auto}
.mp-hode .c{flex:0 0 auto;font-size:.85rem;color:var(--muted)}
.mp-pil{flex:0 0 auto;color:#c3b9a8;transition:transform .15s}
.mp-rad{display:flex;align-items:center;gap:12px;padding:11px 18px;text-decoration:none;color:var(--ink);
  border-top:1px solid var(--line);transition:background .12s}
.mp-rad:hover{background:#faf5ec}

/* Barne-avatarer (figurvalg) */
.ava-fig{background:none;padding:0;overflow:hidden}
.ava-fig svg{width:100%;height:100%;display:block}
.ava-velger{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;max-width:760px}
@media(max-width:760px){.ava-velger{grid-template-columns:repeat(4,1fr)}}
@media(max-width:440px){.ava-velger{grid-template-columns:repeat(3,1fr)}}
.av-valg{position:relative;cursor:pointer;text-align:center;display:block}
.av-valg input{position:absolute;opacity:0;pointer-events:none}
.av-boks{display:flex;align-items:center;justify-content:center;padding:12px 6px;border:2px solid var(--line);
  border-radius:14px;background:#fff;transition:border-color .12s,box-shadow .12s}
.av-valg:hover .av-boks{border-color:#cfc4b0}
.av-valg input:checked ~ .av-boks{border-color:var(--teal);box-shadow:0 0 0 3px rgba(38,106,112,.12)}
.av-navn{display:block;margin-top:6px;font-size:.74rem;font-weight:600;color:var(--muted)}
.av-valg input:checked ~ .av-navn{color:var(--teal)}
.ava-knapp{background:none;border:0;padding:0;cursor:pointer;position:relative;flex:0 0 auto;line-height:0}
.ava-knapp:hover .ava{box-shadow:0 0 0 3px rgba(38,106,112,.18)}
.ava-rediger{position:absolute;right:-3px;bottom:-3px;width:19px;height:19px;border-radius:50%;background:#fff;
  border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--teal)}
.ava-rediger svg{width:11px;height:11px}

/* Kom i gang-guiden (steg for steg med ekte status) */
.komigang{border-color:#cfe6e6}
.komigang[hidden],.kg-mini[hidden]{display:none!important}
.kald-start{margin-bottom:22px;background:#e7f1f1;border-color:#cfe6e6}
.kald-tittel{margin:6px 0 6px;font-size:1.2rem;font-weight:800;color:var(--navy)}
.kald-tekst{margin:0 0 14px;color:#3f6b6e;font-size:.9rem;line-height:1.55}
.kald-fag{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.kald-chip{display:flex;align-items:center;justify-content:space-between;gap:8px;text-decoration:none;padding:11px 12px 11px 14px;font-weight:600;border-radius:12px;background:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kald-chip:hover{border-color:var(--teal);background:#f4fafa}
.kald-chev{color:var(--muted);font-size:1.1rem;line-height:1;flex:none}
.kg-hode-h{display:inline-flex;align-items:center;gap:14px}
.kg-skjul{display:inline-flex;align-items:center;gap:5px;font:inherit;font-size:.85rem;font-weight:600;color:var(--muted);background:transparent;border:0;padding:4px 6px;border-radius:8px;cursor:pointer}
.kg-skjul:hover{color:var(--navy);background:rgba(31,58,95,.06)}
.kg-mini{display:flex;align-items:center;gap:14px;margin:0 0 20px;padding:10px 12px 10px 18px;background:#fff;border:1px solid #cfe6e6;border-radius:14px}
.kg-mini-t{font-weight:700;color:var(--navy);font-size:.95rem;white-space:nowrap}
.kg-mini-p{flex:1;height:6px;border-radius:999px;background:var(--line);overflow:hidden;min-width:60px}
.kg-mini-p i{display:block;height:100%;background:var(--teal);border-radius:999px}
.kg-mini-s{font-size:.85rem;color:var(--muted);white-space:nowrap}
@media(max-width:560px){.kg-mini-p{display:none}}
.kg-rad{display:flex;align-items:center;gap:13px;padding:13px 18px;border-top:1px solid var(--line)}
.kg-rad.kg-neste{background:#f2f8f8}
.kg-num{width:28px;height:28px;border-radius:50%;border:2px solid #d8ccb8;color:var(--muted);flex:0 0 auto;
  display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}
.kg-neste .kg-num{border-color:var(--teal);color:var(--teal)}
.kg-num.ok{background:var(--teal);border-color:var(--teal);color:#fff}
.kg-num.ok svg{width:14px;height:14px}
.kg-tekst{flex:1;min-width:0}
.kg-knapp{flex:0 0 auto}
/* Mobil: knappen på egen rad under teksten (innrykket som teksten), så
   beskrivelsen får full bredde i stedet for å klemmes til en smal kolonne. */
@media(max-width:640px){
  .kg-rad{flex-wrap:wrap;align-items:flex-start;gap:8px 13px}
  .kg-rad .kg-num{margin-top:1px}
  .kg-tekst{flex:1 1 calc(100% - 41px)}
  .kg-knapp{margin-left:41px}
}

/* Større, roligere tekst for småtrinnet (1.-4. trinn) i øving og chat */
.ung-tekst .bubble{font-size:1.12rem;line-height:1.7}
.ung-tekst .felt input[type=text],.ung-tekst textarea{font-size:1.15rem}
.ung-tekst .ov-alt-rad span{font-size:1.1rem}
.ung-tekst .card p strong{font-size:1.08em}
.ung-tekst .btn,.ung-tekst .btn-ghost{font-size:1.02rem}

/* Gjøremål-haker (Denne uken) */
.gj-check{width:26px;height:26px;border-radius:50%;border:2px solid var(--teal);background:#fff;color:#fff;
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto;padding:0}
.gj-check svg{width:14px;height:14px;opacity:0}
/* Uhaket, men klikkbar: vis en svak grå hake så sirkelen leses som en
   avkryssingsboks (som i Påminnelser), ikke som pynt. */
button.gj-check:not(.ok){border-color:#c9cfd4}
button.gj-check:not(.ok) svg{opacity:1;stroke:#c9cfd4}
button.gj-check:not(.ok) svg path{stroke:#c9cfd4}
.gj-check.ok{background:var(--teal)}
.gj-check.ok svg{opacity:1}
button.gj-check:hover{box-shadow:0 0 0 3px rgba(38,106,112,.15);border-color:var(--teal)}
button.gj-check:not(.ok):hover svg path{stroke:var(--teal)}
.gj-check.gj-auto:not(.ok){border-style:dashed;border-color:#c9cfd4}
.gj-check.ok{border-style:solid;border-color:var(--teal)}
.gj-check.gj-dato{border-color:#e0b24a;color:#9a6a16}
.gj-check.gj-dato svg{opacity:1;width:13px;height:13px}

/* Felles dialog (erstatter nettleserens confirm/prompt) */
.ldlg-bak{position:fixed;inset:0;background:rgba(16,34,48,.45);display:flex;align-items:center;justify-content:center;z-index:400;opacity:0;transition:opacity .16s ease;padding:20px}
.ldlg-bak.synlig{opacity:1}
.ldlg{background:#fff;border-radius:18px;box-shadow:0 18px 60px rgba(10,25,40,.25);padding:22px 24px;max-width:420px;width:100%;transform:translateY(8px) scale(.98);transition:transform .16s ease}
.ldlg-bak.synlig .ldlg{transform:none}
.ldlg-tekst{margin:0 0 16px;color:var(--navy);line-height:1.5;font-weight:600}
.ldlg-felt{width:100%;padding:10px 13px;border:1px solid var(--line);border-radius:12px;font:inherit;margin:0 0 16px;box-sizing:border-box}
.ldlg-felt:focus{outline:2px solid var(--teal);outline-offset:1px;border-color:var(--teal)}
.ldlg-knapper{display:flex;justify-content:flex-end;gap:10px}

/* Velg-modus i målplanen (barn.php Oversikt): kryss av mål og sett opp øving */
.mp-velg{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0 4px}
.mp-velgbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1}
.mp-check{display:none;width:20px;height:20px;border-radius:50%;border:2px solid var(--line);flex:0 0 auto;align-items:center;justify-content:center;background:#fff}
.maalplan.velger .mp-check{display:inline-flex}
.maalplan.velger .mp-rad{cursor:pointer}
.mp-check svg{display:none}
.mp-rad.mp-valgt .mp-check{background:var(--teal);border-color:var(--teal)}
.mp-rad.mp-valgt .mp-check svg{display:block}
.mp-rad.mp-valgt{background:#eef5f5}

/* Målplan-oppsummering: stablet fremdriftslinje + Sett opp øving */
.mp-oppsum{display:flex;align-items:center;gap:16px;padding:4px 0 10px}
.mp-stabel{flex:1;display:flex;height:12px;border-radius:999px;overflow:hidden;background:#e9e2d4}
.mp-stabel i{display:block;height:100%}

/* Dagoverskrifter i gjøremålslisten («Denne uken») */
.gj-dag{font-size:.76rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:14px 2px 6px}
.gj-dag:first-of-type{margin-top:0}

/* Rask tooltip (nettleserens title-tips har innebygd treghet) */
.tips{position:relative}
.tips::after{content:attr(data-tips);position:absolute;left:-6px;bottom:calc(100% + 9px);
  background:var(--navy);color:#fff;font-size:.75rem;font-weight:600;line-height:1.4;
  padding:6px 11px;border-radius:9px;width:max-content;max-width:240px;white-space:normal;
  opacity:0;pointer-events:none;transition:opacity .12s ease .12s;z-index:60}
.tips:hover::after,.tips:focus-visible::after{opacity:1}

/* ===== Admin: SaaS-dashbord med venstre sidebar ===== */
.app:has(> .adminmeny){display:grid;grid-template-columns:225px minmax(0,1fr);column-gap:36px;
  align-items:start;max-width:1200px !important}
.app:has(> .adminmeny) > *{grid-column:2;min-width:0}
/* Toppheaderen er sticky (~86px høy), så sidebaren må ligge under den.
   Menyen får aldri stikke ut av sin egen boks: den er alltid begrenset til
   vinduet og klipper/scroller internt KUN når den faktisk ikke får plass
   (ingen scrollbar og intet fanget musehjul når alt er synlig). */
.app:has(> .adminmeny) > .adminmeny{grid-column:1;grid-row:1 / span 60;position:sticky;top:104px;
  max-height:calc(100vh - 122px);overflow-y:auto;overscroll-behavior:contain}
/* Admin er et dashbord: skjul markedsføringsfooteren, så menyen aldri
   dyttes ut av syne nederst (sticky varer så lenge innholdet varer). */
body:has(.adminmeny) footer{display:none}
body:has(.adminmeny) .app{min-height:calc(100vh - 140px)}
.adminmeny{display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid var(--line);
  border-radius:16px;padding:10px;box-shadow:0 1px 2px rgba(16,34,48,.04),0 14px 34px -28px rgba(31,58,95,.4)}
.adm-lenke{display:flex;align-items:center;gap:9px;padding:7px 11px;border-radius:10px;
  font-size:.85rem;font-weight:600;color:#41525f;text-decoration:none;border:1px solid transparent;
  transition:background .12s ease,border-color .12s ease}
.adm-lenke .adm-badge{margin-left:auto}
.adm-lenke svg{width:16px;height:16px;flex:0 0 auto;opacity:.75}
.adm-lenke:hover{background:var(--sand)}
.adm-lenke.adm-pa{background:var(--navy);color:#fff;box-shadow:0 6px 18px -10px rgba(31,58,95,.6)}
.adm-lenke.adm-pa svg{opacity:1}
.adm-badge{background:#c0512e;color:#fff;border-radius:999px;font-size:.68rem;font-weight:800;
  padding:1px 7px;line-height:1.5;min-width:18px;text-align:center}
.adm-under{display:flex;flex-direction:column;gap:1px;margin:2px 0 5px;padding-left:14px;
  border-left:2px solid var(--line);margin-left:18px}
.adm-ulenke{display:block;padding:5px 10px;border-radius:8px;font-size:.81rem;font-weight:600;
  color:#5c6b76;text-decoration:none}
.adm-ulenke:hover{background:var(--sand)}
.adm-ulenke.adm-upa{color:var(--teal);background:#e1efef}
.adm-gruppe{font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.09em;
  color:#9aa6ae;padding:10px 11px 3px}
@media(max-width:900px){.adm-under{flex-direction:row;flex-wrap:wrap;border-left:none;padding-left:0;margin-left:0}
  .adm-gruppe{display:none}}

/* Metric-kort: etikett øverst, tabulære tall, trendpill, rolig dybde */
.admin-view .fliser{gap:14px}
.admin-view .flis{display:flex;flex-direction:column-reverse;justify-content:flex-end;position:relative;
  background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px 16px;overflow:hidden;
  box-shadow:0 1px 2px rgba(16,34,48,.04),0 14px 34px -28px rgba(31,58,95,.45);
  transition:transform .13s ease,box-shadow .13s ease}
.admin-view .flis:hover{transform:translateY(-2px);box-shadow:0 18px 44px -26px rgba(31,58,95,.5)}
.admin-view .flis::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--teal);opacity:.5}
.admin-view .flis .v{font-size:2.05rem;font-weight:800;color:var(--navy);line-height:1.05;
  letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.admin-view .flis .v.teal{color:var(--teal)}
.admin-view .flis .l{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;
  color:#7c8a94;margin:0 0 7px}
.admin-view .flis .d{align-self:flex-start;margin-top:10px;font-size:.74rem;font-weight:700;
  border-radius:999px;padding:3px 10px;background:#e1efef;color:#2f7d83;font-variant-numeric:tabular-nums}
.admin-view .flis .d.ned{background:#fae3da;color:#b23b1e}
.admin-view .flis .d.flat{background:var(--sand);color:#7c8a94}
.admin-view .app-sektion{margin-top:30px;display:flex;align-items:center;gap:12px}
.admin-view .app-sektion::after{content:"";flex:1;height:1px;background:var(--line)}
@media(max-width:900px){
  .app:has(> .adminmeny){display:block}
  .app:has(> .adminmeny) > .adminmeny{position:static;flex-direction:row;flex-wrap:wrap;margin-bottom:18px}
  .adm-lenke{flex:0 0 auto}
  .adm-lenke .adm-badge{margin-left:4px}
  .admin-view .flis .v{font-size:1.6rem}}

/* Tilbakemelding for innloggede: samme bredde som resten av appen,
   med «Dine saker» synlig i egen kolonne uten scrolling */
.skjemakort.tb-bred{max-width:1020px}
/* Innlogget ligger kortet i .app-containeren (1200px som resten av appen),
   og skal fylle den, ikke sette sin egen smalere grense. */
.app .skjemakort.tb-bred{max-width:none;margin:0}
.skjemakort.tb-bred:has(.tb-side){display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:38px;align-items:start}
.skjemakort.tb-bred .tb-side{position:sticky;top:110px}
@media(max-width:860px){.skjemakort.tb-bred:has(.tb-side){display:block}
  .skjemakort.tb-bred .tb-side{position:static;margin-top:26px}}

/* Denne uken: fagoversikten (samme som Oversikt på barnesiden) i høyre kolonne */
.mp-kompakt{padding:0 14px 0 12px;margin-bottom:8px;overflow:hidden}
.mp-kompakt + .mp-kompakt{margin-top:0}
.mp-k-hode{width:100%;padding:11px 0 6px;background:none;gap:10px;align-items:center}
.mp-k-navn{flex:1;min-width:0;font-weight:700;color:var(--navy);font-size:.95rem;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mp-k-tall{flex:0 0 auto;font-size:.8rem;color:var(--muted);font-weight:600;white-space:nowrap}
.mp-k-bar{display:flex;height:7px;margin:0 0 11px;flex:none}
.mp-kompakt .mp-body{padding-bottom:12px}
.mp-k-verktoy{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.82rem;color:var(--muted);margin:2px 0 8px}
.fo-kol .mp-velgbar{flex-wrap:wrap}
.fo-kol .mp-rad{padding:8px 0}
.fo-kol .mp-rad .pbar{flex:0 0 56px}
/* Denne uken: fagoversikt til høyre (mål per fag, mestret/øver) */
.fag-oversikt{overflow:hidden;margin-bottom:22px}
.fo-hode{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px 10px}
.fo-sum{font-size:.82rem;color:var(--muted);font-weight:600;white-space:nowrap}
.fo-rad{display:flex;align-items:center;gap:12px;padding:11px 16px;border-top:1px solid var(--line);text-decoration:none;color:inherit}
.fo-rad:hover{background:var(--sand)}
.fo-prikk{flex:0 0 10px;width:10px;height:10px;border-radius:999px}
.fo-tekst{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.fo-navn{font-weight:600;color:var(--navy);font-size:.93rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fo-tall{font-size:.78rem;color:var(--muted)}
.fo-tekst .mp-stabel{height:8px;flex:none}
.fo-fot{margin:0;padding:10px 16px 12px;border-top:1px solid var(--line);font-size:.76rem;color:var(--muted)}

/* Matte-tastatur (_mattetast.php): knapp + stripe med symboler */
.mt-knapp{flex:0 0 auto;width:42px;height:42px;border-radius:50%;border:none;background:none;display:flex;
  align-items:center;justify-content:center;color:var(--teal);cursor:pointer;font:inherit}
.mt-knapp:hover,.mt-knapp.pa{background:var(--sand)}
.mt-knapp.pa{color:var(--navy)}
.mt-stripe{display:none;margin:8px 0 2px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:14px;
  box-shadow:0 4px 14px -8px rgba(31,58,95,.25)}
.mt-stripe.vis{display:block}
.mt-rad{display:flex;flex-wrap:wrap;gap:6px}
.mt-rad + .mt-rad{margin-top:6px}
.mt-sym{flex:0 0 auto;min-width:40px;height:40px;padding:0 10px;border:1px solid #d8e2e2;border-radius:10px;background:#f7fbfb;
  color:var(--navy);font:inherit;font-size:1.05rem;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s}
.mt-sym:hover{background:#e7f1f1;border-color:var(--teal)}
.mt-sym:active{transform:translateY(1px)}
.mt-feltrad{display:flex;gap:6px;align-items:stretch}
.mt-feltrad input{flex:1;min-width:0}
.mt-feltrad .mt-knapp{width:46px;height:auto;border-radius:12px;border:1px solid var(--line);background:#fff}
.mt-feltrad .mt-knapp.pa{background:var(--sand)}

/* Prøvebanner på Min side / Denne uken: rolig til siste 5 dager, så gult og tydelig */
.prove-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px;
  background:#eef5f5;border-color:#cfe6e6}
.prove-banner-tekst{flex:1;min-width:240px;color:var(--navy);font-size:.93rem;line-height:1.5}
.prove-banner-knapp{flex:0 0 auto;white-space:nowrap}
.prove-banner.haster{background:#faecd2;border-color:#e7cfa0}
.prove-banner.haster .prove-banner-tekst{color:#7a5312}

/* Admin: tilgang og abonnement, knapperad med små tallfelt i samme høyde */
/* Admin: brukerliste, status og handlinger (grupperte rader) */
.adm-sok{position:relative;display:flex;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:0 12px 0 14px;margin:0 0 14px;box-shadow:0 8px 24px -18px rgba(31,58,95,.35)}
.adm-sok-ic{color:var(--muted);display:inline-flex;flex:none}
.adm-sok input[type=search],.adm-sok input[type=email]{flex:1;border:0;background:transparent;font:inherit;font-size:1rem;padding:14px 12px;outline:none;color:var(--ink)}
.adm-sok-nullstill{font-size:.85rem;font-weight:600;color:var(--muted);text-decoration:none;padding:6px 10px;border-radius:999px}
.adm-sok-nullstill:hover{background:rgba(31,58,95,.06);color:var(--navy)}
.adm-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.adm-chips .chip{gap:7px;padding:8px 12px 8px 14px}
.adm-chips .chip.pa{background:var(--navy);border-color:var(--navy);color:#fff}
.chip-n{font-size:.75rem;font-weight:700;padding:2px 7px;border-radius:999px;background:rgba(31,58,95,.08);color:var(--navy)}
.adm-chips .chip.pa .chip-n{background:rgba(255,255,255,.2);color:#fff}
.adm-st{display:inline-flex;flex-direction:column;align-items:flex-end;font-size:.82rem;font-weight:700;padding:6px 11px;border-radius:10px;line-height:1.25;white-space:nowrap;flex:none}
.adm-st small{font-weight:500;font-size:.75rem;opacity:.85}
.adm-st.ok{background:#e1efef;color:#2f7d83}
.adm-st.varsel{background:#faecd2;color:#9a6a16}
.adm-st.fare{background:#f8e3dc;color:#b23b1e}
.adm-tag{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 8px;border-radius:999px;background:rgba(31,58,95,.08);color:var(--navy);vertical-align:middle}
.adm-sider{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 0 30px;color:var(--muted);font-size:.9rem}
.adm-status{padding:16px 18px;margin-bottom:16px}
.adm-status-topp{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.adm-fakta{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px 18px;margin:0}
.adm-fakta div{min-width:0}
.adm-fakta dt{font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;margin:0 0 2px}
.adm-fakta dd{margin:0;color:var(--navy);font-weight:600;font-size:.95rem}
.adm-fakta dd a{color:var(--teal)}
.adm-handlinger{margin-bottom:8px}
.adm-handlinger form.rad{margin:0;cursor:default;flex-wrap:wrap}
.adm-handlinger form.rad:hover{background:none}
.adm-handlinger .rad-tittel{color:var(--navy)}
.adm-ctl{display:inline-flex;align-items:center;gap:8px;flex:none;margin-left:auto}
.adm-ctl input[type=number],.adm-ctl input[type=text]{height:38px;font:inherit;font-size:.9rem;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}
.adm-ctl input[type=number]{width:66px;text-align:center}
.adm-ctl .adm-grunn{width:150px}
.adm-ctl .btn-mini{height:38px;display:inline-flex;align-items:center;padding:0 16px;white-space:nowrap}
.adm-ctl .btn-mini:disabled{opacity:.4;cursor:default}
.adm-enh{font-size:.85rem;color:var(--muted);font-weight:600}
.adm-tall{min-width:32px;text-align:center;font-weight:700;color:var(--navy);font-size:1rem}
.adm-fare{color:#b23b1e!important;border-color:#e6c3ba!important}
.adm-fot{font-size:.8rem;color:var(--muted);margin:0 0 22px;line-height:1.55}
@media(max-width:640px){.adm-handlinger form.rad{align-items:flex-start}.adm-ctl{margin-left:0;width:100%;flex-wrap:wrap}.adm-ctl .adm-grunn{flex:1}.adm-fakta{grid-template-columns:1fr 1fr}}

/* Fullfør i Vipps: steg til venstre, oppsummering til høyre */
.vs-steg{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px}
.vs-steg li{display:flex;gap:14px;align-items:flex-start;color:var(--navy);line-height:1.5}
.vs-steg li > span:last-child > span{color:var(--muted);font-size:.9rem}
.vs-tall{flex:0 0 32px;width:32px;height:32px;border-radius:999px;background:#e1efef;color:var(--teal);font-weight:800;display:inline-flex;align-items:center;justify-content:center}
.vs-oppsum{overflow:hidden;background:linear-gradient(150deg,#fdfbf6,#f1f8f5);border-color:#d8e9e0}
.vs-oppsum-hode{padding:14px 18px 6px}
.vs-rad{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 18px;border-top:1px solid #e3ede8;font-size:.93rem;color:var(--muted)}
.vs-rad strong{color:var(--navy);text-align:right}
/* Knapper under hverandre i full bredde, samme høyde, aldri linjebrudd i teksten */
.vs-knapper{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.vs-knapper .btn,.vs-knapper .btn-ghost,.vs-knapper form{width:100%;box-sizing:border-box;margin:0}
.vs-knapper .btn,.vs-knapper .btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-align:center;white-space:nowrap}
.vs-knapper form .btn-ghost{width:100%}

/* Fullfør i Vipps: primærknappen puster rolig til den er trykket; trygghetslinje under */
.vs-primaer{position:relative;box-shadow:0 8px 22px -10px rgba(192,81,46,.7);animation:vsPust 2.4s ease-in-out infinite}
.vs-primaer:hover,.vs-primaer:focus{animation:none}
@keyframes vsPust{0%,100%{box-shadow:0 8px 22px -10px rgba(192,81,46,.7),0 0 0 0 rgba(192,81,46,.35)}50%{box-shadow:0 10px 26px -10px rgba(192,81,46,.8),0 0 0 9px rgba(192,81,46,0)}}
@media(prefers-reduced-motion:reduce){.vs-primaer{animation:none}}
.vs-knapper #vsFortsett{background:none;border-color:transparent;color:var(--teal);font-weight:600}
.vs-knapper #vsFortsett:hover{background:var(--sand);border-color:transparent}
.vs-trygg{display:flex;align-items:center;justify-content:center;gap:6px;margin:12px 0 0;font-size:.82rem;color:var(--muted)}

/* Abonnementsstatus i Konto-rader */
.ab-pill{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:999px;font-size:.78rem;font-weight:700;white-space:nowrap;margin-right:6px}
.ab-pill.ok{background:#e1efef;color:#2f7d83}
.ab-pill.prove{background:#faecd2;color:#9a6a16}
.ab-pill.utlopt{background:#fae3da;color:#b23b1e}
.ab-pill.utlopt i{width:8px;height:8px;border-radius:50%;background:#d9573a;animation:abPuls 1.6s ease-in-out infinite}
@keyframes abPuls{0%,100%{box-shadow:0 0 0 0 rgba(217,87,58,.45)}50%{box-shadow:0 0 0 6px rgba(217,87,58,0)}}
@media(prefers-reduced-motion:reduce){.ab-pill.utlopt i{animation:none}}

/* Liten info-lenke ved en overskrift (f.eks. «Fair use» i AI-kortet) */
.info-lenke{display:inline-flex;align-items:center;gap:4px;margin-left:8px;color:var(--teal);font-size:.8rem;font-weight:600;text-decoration:none;vertical-align:middle;background:none;border:none;padding:0;font-family:inherit;cursor:pointer}
.info-lenke:hover{text-decoration:underline}

/* Sesongsider: tidslinje med fast bredde på «når»-kolonnen */
.sesong-steg .rad{align-items:flex-start;cursor:default}
.sesong-steg .rad:hover{background:transparent}
.sesong-naar{flex:0 0 96px;font-weight:700;color:var(--teal);font-size:.9rem;padding-top:2px}
.sesong-tekst{color:var(--ink);font-size:.95rem;line-height:1.55}
@media (max-width:560px){.sesong-steg .rad{flex-direction:column;gap:4px}.sesong-naar{flex-basis:auto}}

/* Tilgjengelighetsknapper på Konto (lys bakgrunn, i motsetning til footeren) */
.konto-a11y{display:flex;gap:6px;flex:none}
.konto-a11y .a11y-knapp{color:var(--navy);border-color:var(--line);background:#fff}
.konto-a11y .a11y-knapp:hover{color:var(--navy);border-color:var(--teal)}
.konto-a11y .a11y-knapp.pa{background:var(--teal);color:#fff;border-color:var(--teal)}
@media (max-width:560px){.konto-a11y{width:100%;margin-top:8px}}

/* Antall oppgaver per økt: chips med skjult radio */
.ant-chip{cursor:pointer;display:inline-flex;align-items:center}
.ant-chip input{position:absolute;opacity:0;width:0;height:0}
.ant-chip:has(input:checked){background:var(--teal);color:#fff;border-color:var(--teal)}
.ant-chip:has(input:focus-visible){outline:2px solid var(--teal);outline-offset:2px}

/* Forsiden: fanevelger over demoen (Prøv leksehjelpen / For foreldre) */
.hero-faner{margin:0 auto 16px;max-width:440px;display:flex;gap:4px;padding:4px;background:#ece5d8;border-radius:999px}
.hero-faner button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;font:inherit;font-weight:600;font-size:.9rem;white-space:nowrap;color:var(--muted);background:none;border:0;border-radius:999px;cursor:pointer;transition:color .15s,background .15s}
.hero-faner button svg{width:18px;height:18px;flex:0 0 auto}
.hero-faner button:hover{color:var(--navy)}
.hero-faner button.pa{background:#fff;color:var(--navy);box-shadow:0 2px 8px rgba(31,58,95,.12)}
.hero-faner button.pa svg{color:var(--teal)}
.hero-fane[hidden]{display:none !important}
.hero-fane[data-hf="demo"]{display:block;background:none;border:0;padding:0}
.hero-fane-bilde.bred{width:100%;border-bottom:1px solid var(--line)}
.hero-fane-bilde.bred img{display:block;width:100%;height:auto}
.hero-fane.bred{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:0;overflow:hidden;box-shadow:0 12px 28px rgba(31,58,95,.12)}
.hero-fane.bred .hero-fane-tekst{padding:16px 20px 18px}
.hero-fane-tekst h3{margin:0 0 6px;font-size:1.1rem;color:var(--navy)}
.hero-fane-tekst p{margin:0 0 10px;color:var(--muted);font-size:.95rem;line-height:1.55}
@media (max-width:560px){
  .hero-faner button{font-size:.82rem;padding:9px 6px}
}

/* Demokortet på forsiden: trinnvelger i toppen i stedet for en egen rad med piller */
.demo-topp{display:flex;align-items:center;justify-content:flex-start;gap:8px;margin:0 auto 10px;padding:0 4px;max-width:440px}
.demo-topp-tekst{font-size:.82rem;color:var(--muted)}
.trinn-velger{position:relative}
.trinn-knapp{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:.85rem;font-weight:700;color:var(--navy);
  background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:7px 12px 7px 14px;cursor:pointer}
.trinn-knapp:hover{border-color:var(--teal)}
.trinn-meny{position:absolute;right:0;top:calc(100% + 8px);z-index:20;background:#fff;border:1px solid var(--line);border-radius:16px;
  padding:10px;box-shadow:0 14px 34px rgba(31,58,95,.16);display:grid;grid-template-columns:repeat(4,auto);gap:6px;margin:0;max-width:none;justify-content:start}
.trinn-meny[hidden]{display:none}
.trinn-meny .chip{padding:8px 12px;font-size:.85rem}


/* ---------- /foreldre: salgsside med ekte skjermbilder ---------- */
.fx-cta{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;padding:38px 0 10px;border-top:1px solid var(--line)}
.fx-cta .cta-rad{justify-content:center}
.fx-cta .risiko{margin:0}
.fx-seksjon{padding:56px 0 24px}
.fx-rad{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;padding:34px 0}
.fx-rad+.fx-rad{border-top:1px solid var(--line)}
.fx-speil .fx-bilde{order:2}
.fx-bilde{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 12px 28px rgba(31,58,95,.10)}
.fx-bilde img{display:block;width:100%;height:auto}
.fx-tekst h3{font-size:1.45rem;margin:8px 0 10px;color:var(--navy);letter-spacing:-.01em}
.fx-tekst p{color:var(--muted);line-height:1.6;margin:0 0 14px}
.fx-punkter{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.fx-punkter li{display:flex;gap:8px;align-items:flex-start;color:var(--navy);font-weight:600;font-size:.95rem}
.fx-punkter .ik{flex:0 0 auto;margin-top:1px}
.verk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.verk-kort{background:var(--navy);border:1px solid var(--navy);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 12px 28px rgba(31,58,95,.12)}
.verk-bilde{aspect-ratio:16/9;overflow:hidden;border-bottom:1px solid var(--line);background:#fff}
.verk-bilde img{display:block;width:100%;height:100%;object-fit:cover;object-position:top left}
.verk-tekst{padding:16px 18px 18px;flex:1}
.verk-tekst h3{font-size:1.05rem;margin:0 0 6px;color:#fff}
.verk-tekst p{color:#c9d9df;font-size:.92rem;line-height:1.55;margin:0}
.verk-liste ul{margin:4px 0 0;padding-left:18px;color:#c9d9df;font-size:.9rem;line-height:1.5;display:flex;flex-direction:column;gap:6px}
.band .card.band-kort{background:#27466b;border-color:#33567d;color:#eaf2f4}
.band .card.band-kort h3{color:#fff;font-size:1.05rem;margin-bottom:6px}
.band .card.band-kort p{color:#c9d9df}
.pris-enkel{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px 34px;box-shadow:0 12px 28px rgba(31,58,95,.08)}
.pris-enkel-tall{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:220px}
.pris-enkel-tall>div:first-child{display:flex;align-items:baseline;gap:4px}
.pris-enkel-tall strong{font-size:2.4rem;font-weight:800;color:var(--navy);letter-spacing:-.02em;line-height:1}
.pris-enkel-tall span{color:var(--muted);font-weight:600}
.pris-enkel-alt{color:var(--muted);font-size:.9rem}
.pris-enkel-tall .btn{margin-top:8px}
.pris-enkel-note{font-size:.82rem;color:var(--muted)}
@media(max-width:880px){
  .fx-rad{grid-template-columns:1fr;gap:20px;padding:26px 0}
  .fx-speil .fx-bilde{order:0}
  .verk-grid{grid-template-columns:1fr 1fr}
  .pris-enkel{grid-template-columns:1fr;padding:24px}
}
@media(max-width:560px){.verk-grid{grid-template-columns:1fr}}

/* ---------- Lysboks for skjermbilder ---------- */
.fx-bilde img,.verk-bilde img,.vis-skjerm img{cursor:zoom-in;transition:transform .2s}
.fx-bilde:hover img{transform:scale(1.015)}
.fx-bilde img:focus-visible,.verk-bilde img:focus-visible,.vis-skjerm img:focus-visible{outline:3px solid var(--teal);outline-offset:-3px}
.lysboks{border:0;padding:0;background:transparent;max-width:min(96vw,1400px);max-height:94vh;margin:auto}
.lysboks::backdrop{background:rgba(23,38,58,.78);backdrop-filter:blur(6px)}
.lysboks-innhold{margin:0;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.45)}
.lysboks-innhold img{display:block;width:100%;height:auto;max-height:calc(94vh - 60px);object-fit:contain;background:#fff}
.lysboks-innhold figcaption{padding:12px 18px;color:#c9d9df;background:var(--navy);font-size:.9rem}
.lysboks-lukk{position:fixed;top:16px;right:16px;width:44px;height:44px;border-radius:50%;border:0;background:#fff;color:var(--navy);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.3);z-index:2}
.lysboks-lukk:hover{background:var(--cream)}

/* ---------- Forsiden: tillitsstripe under toppmenyen + skjermbilde-hero ---------- */
.tstripe{background:var(--navy);color:#fff;border-bottom:1px solid #2b4a70}
.tstripe-rad{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 40px;padding:10px 24px;max-width:1080px;margin:0 auto}
.tstripe-merke{display:inline-flex;color:#fff;align-items:center;gap:8px;font-size:.86rem;white-space:nowrap}
.tstripe-merke strong{color:#fff;font-weight:700}
.tstripe-ik{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;color:#9fd1cf}
.tstripe-ik svg{width:20px;height:20px;display:block;color:#9fd1cf}
.tstripe-ik .tr-vipps{width:20px;height:20px;font-size:.85rem}
@media(max-width:760px){
  /* Mobil: en rolig, sveipbar rad i stedet for tre ujevne linjer */
  .tstripe-rad{flex-wrap:nowrap;justify-content:flex-start;gap:0 22px;padding:9px 18px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
  .tstripe-rad::-webkit-scrollbar{display:none}
  .tstripe-merke{font-size:.8rem;gap:6px;flex:0 0 auto}
  .tstripe-ik,.tstripe-ik svg{width:18px;height:18px}
}
.vis-hero{padding:44px 0 56px;background:
  radial-gradient(1200px 500px at 80% -10%, rgba(74,163,168,.18), transparent 60%),
  radial-gradient(900px 500px at 0% 10%, rgba(244,193,120,.20), transparent 55%),#fdfbf6}
.vis-hero .vis-chips{margin-bottom:14px}
.vis-boks{max-width:1000px;margin:0 auto}
.vis-hero .vis-skjerm{box-shadow:0 24px 60px rgba(31,58,95,.18)}
.vis-under{text-align:center;padding:22px 16px 0}
.vis-under .vis-kort p{margin-inline:auto;max-width:56ch}
.vis-under .vis-prikker{justify-content:center}

/* ---------- Klebrig CTA (salgssider, utlogget): dokket i høyre kant på desktop, bunnlinje på mobil ---------- */
.kleb-cta{position:fixed;z-index:60;right:max(14px,calc((100vw - 1080px - 368px) / 4));bottom:28px;width:184px;display:flex;flex-direction:column;gap:9px;align-items:stretch;padding:16px 16px 14px;background:var(--navy);color:#fff;border-radius:18px;box-shadow:0 16px 40px rgba(31,58,95,.28)}
.kleb-cta-topp{font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#9fd1cf;text-align:center}
.kleb-cta .btn{display:flex;align-items:center;justify-content:center;text-align:center;padding:12px 14px;font-size:.98rem}
.kleb-cta .appstore-knapp{justify-content:center;width:100%;min-height:46px;padding:0 12px;gap:8px}
.kleb-cta .appstore-knapp span{font-size:.92rem}
.kleb-cta-liste{list-style:none;margin:2px 0 0;padding:0 2px;display:flex;flex-direction:column;gap:5px}
.kleb-cta-liste li{display:flex;align-items:center;gap:7px;font-size:.8rem;color:#e6eef1;font-weight:600}
.kleb-cta-liste svg{flex:0 0 auto;color:#7ed3c3}
.kleb-cta-tekst{display:none}
@media(max-width:1199px){
  /* Smal skjerm: en enkelt pille nede til høyre */
  .kleb-cta{width:auto;padding:0;background:none;border-radius:0;box-shadow:none;right:22px;bottom:22px}
  .kleb-cta .appstore-knapp,.kleb-cta-tekst,.kleb-cta-topp,.kleb-cta-liste{display:none}
  .kleb-cta .btn{box-shadow:0 12px 30px rgba(31,58,95,.28);padding:14px 22px}
}
@media(max-width:760px){
  .kleb-cta{left:0;right:0;bottom:0;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(251,246,238,.94);backdrop-filter:blur(10px);border-top:1px solid var(--line);border-radius:0;box-shadow:0 -8px 24px rgba(31,58,95,.10)}
  .kleb-cta .btn{box-shadow:none;padding:11px 20px}
  .kleb-cta-liste{display:none}
  .kleb-cta-tekst{display:inline;order:-1;text-align:left;font-size:.84rem;color:var(--navy);font-weight:600}
  body:has(.kleb-cta) footer{padding-bottom:72px}
}

/* ---------- Forsiden: overskrift til venstre, infoboks som snakkeboble til høyre ---------- */
.hero-topp{display:grid;grid-template-columns:1fr auto;gap:44px;align-items:center;max-width:1000px;margin:0 auto 28px}
.hero-topp-h1{margin:0;text-align:left;font-size:clamp(2.3rem,4.4vw,3.4rem)}
.hero-info{position:relative;background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px 22px 22px;box-shadow:0 14px 34px rgba(31,58,95,.12)}
.hero-info::before,.hero-info::after{content:"";position:absolute;top:50%;left:-11px;width:0;height:0;border:11px solid transparent;border-left:0;border-right-color:var(--line);transform:translateY(-50%)}
.hero-info::after{left:-9px;border-right-color:#fff}
.hero-info .eyebrow{margin-bottom:10px}
.hero-info ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.hero-info li{display:flex;gap:11px;align-items:center;color:var(--navy);font-size:.96rem;line-height:1.4;font-weight:500;white-space:nowrap}
@media(max-width:1100px){.hero-info li{white-space:normal;align-items:flex-start}}
.hero-info .ik{flex:0 0 auto;width:24px;height:24px;padding:3px;border-radius:50%;background:#e7f2f1;margin-top:0}
@media(max-width:880px){
  .hero-topp{grid-template-columns:1fr;gap:20px}
  .hero-topp-h1{text-align:center}
  .hero-info::before,.hero-info::after{left:50%;top:-11px;border:11px solid transparent;border-top:0;border-bottom-color:var(--line);transform:translateX(-50%)}
  .hero-info::after{top:-9px;border-bottom-color:#fff}
}
@media(max-width:760px){
  /* Mobil: strammere hero. Mindre overskrift, tettere boks, mindre luft over. */
  .vis-hero{padding:26px 0 40px}
  .hero-topp{gap:18px;margin-bottom:18px}
  .hero-topp-h1{font-size:clamp(1.75rem,7.6vw,2.2rem);line-height:1.12;letter-spacing:-.02em;max-width:15ch;margin:0 auto}
  .hero-info{padding:15px 16px 16px;border-radius:16px;box-shadow:0 10px 26px rgba(31,58,95,.10)}
  .hero-info .eyebrow{margin-bottom:8px;font-size:.72rem}
  .hero-info ul{gap:8px}
  .hero-info li{font-size:.9rem;line-height:1.35;gap:9px}
  .hero-info .ik{width:22px;height:22px}
  .vis-hero .center .eyebrow{margin:4px 0 10px !important}
}

/* ---------- Logg inn: premium, rolig innloggingsside ---------- */
.inn-seksjon{background:
  radial-gradient(900px 420px at 85% -10%, rgba(74,163,168,.16), transparent 60%),
  radial-gradient(700px 420px at 5% 20%, rgba(244,193,120,.18), transparent 55%)}
.inn-side{max-width:440px;margin:0 auto;display:flex;flex-direction:column;align-items:center}
.inn-kort{width:100%;background:#fff;border-radius:24px;padding:34px 32px 30px;box-shadow:0 24px 60px rgba(31,58,95,.14)}
.inn-kort h1{font-size:1.65rem;letter-spacing:-.02em;margin-bottom:4px}
.inn-kort .undertekst{margin-bottom:24px}
.inn-felt{margin-bottom:18px}
.inn-label-rad{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.inn-label-rad label{margin:0}
.inn-label-rad a{font-size:.85rem;color:var(--teal);font-weight:600;text-decoration:none}
.inn-input{position:relative;display:flex;align-items:center}
.inn-input>svg{position:absolute;left:14px;width:20px;height:20px;color:#8b98a5;pointer-events:none}
.inn-input input{padding-left:44px !important;padding-right:46px !important;background:#fbfaf7;border:1.5px solid var(--line);border-radius:14px;transition:border-color .15s,box-shadow .15s,background .15s}
.inn-input input:focus{background:#fff;border-color:var(--teal);box-shadow:0 0 0 4px rgba(47,125,131,.14)}
.inn-input input::placeholder{color:#a8b2bc}
.inn-vis{position:absolute;right:8px;width:36px;height:36px;border:0;border-radius:10px;background:none;color:#8b98a5;display:flex;align-items:center;justify-content:center;cursor:pointer}
.inn-vis svg{width:20px;height:20px}
.inn-vis:hover,.inn-vis.pa{color:var(--teal);background:#eef5f5}
.inn-knapp{width:100%;margin-top:6px;display:flex;justify-content:center}
.inn-kort .skjema-bunn{margin-top:18px}
.inn-under{margin:18px 0 0;color:var(--muted);font-size:.92rem;text-align:center}
.inn-under a{color:var(--teal);font-weight:600;text-decoration:none}
.inn-trygg{margin:26px 0 0;display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:.82rem}
.inn-trygg svg{color:var(--teal)}
@media(max-width:560px){.inn-kort{padding:26px 20px 24px;border-radius:20px}}

/* ---------- Forside-hero på mobil: sveipbare faner + telefonskjermbilder ---------- */
@media(max-width:760px){
  .vis-hero .vis-chips{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;padding:2px 24px 8px;margin:0 -24px 10px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
  .vis-hero .vis-chips::-webkit-scrollbar{display:none}
  .vis-hero .vis-chips .chip{flex:0 0 auto;scroll-snap-align:start}
  /* Faner med telefonbilde vises i en smal telefonramme, resten i bred ramme */
  .vis-hero .vis-skjerm.har-mobil{max-width:270px;margin:0 auto;border-radius:34px;padding:10px;background:#1c1e24}
  .vis-hero .vis-skjerm.har-mobil img{border-radius:26px;aspect-ratio:640/1385;object-fit:cover}
}

/* Registrering: vilkår godtas ved å trykke knappen (forelder) */
.vilkaar-tekst{margin:10px 0 0;font-size:.82rem;color:var(--muted);text-align:center;line-height:1.5}
.vilkaar-tekst a{color:var(--teal);text-decoration:none;font-weight:600}
/* Honningfelt for bot-vern: usynlig for mennesker, men i DOM */
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
/* Sammenligning (/leksehjelp-pris): tabell som rader, ett alternativ per seksjon */
.lp-tabell{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;margin:0 0 30px;font-size:.92rem}
.lp-rad{display:grid;grid-template-columns:1.5fr 1.1fr 1fr 1.1fr 1fr;gap:10px;padding:11px 16px;border-top:1px solid var(--line);color:var(--navy);align-items:center}
.lp-rad:first-child{border-top:none}
.lp-hode{background:#f4f7f7;font-size:.74rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.lp-rad>span:first-child{font-weight:600}
.lp-oss{background:#eef5f5}
.lp-alt{padding:0;margin:0 0 30px}
.lp-pris{margin:0 0 10px;font-weight:700;color:var(--teal)}
@media(max-width:760px){
  .lp-tabell{font-size:.84rem}
  .lp-rad{grid-template-columns:1.3fr 1fr 1fr;gap:8px;padding:10px 12px}
  .lp-rad>span:nth-child(4),.lp-rad>span:nth-child(5){display:none}
}
/* Oppgavesett (/oppgaver/<slug>): ett kort per oppgave, hint og fasit på klikk */
.op-verktoylinje{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 14px}
.op-teller{font-size:.88rem;font-weight:600;color:var(--muted)}
.op-liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.op-kort{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px;box-shadow:0 6px 18px rgba(31,58,95,.05);transition:border-color .15s}
.op-kort.sjekket{border-color:#bfe0dd}
.op-topp{display:flex;gap:12px;align-items:flex-start}
.op-nr{flex:0 0 auto;width:28px;height:28px;border-radius:50%;background:#e7f2f1;color:var(--teal);font-weight:700;font-size:.85rem;display:inline-flex;align-items:center;justify-content:center;margin-top:1px}
.op-tekst{margin:0;color:var(--navy);font-size:1.02rem;line-height:1.55;font-weight:500}
.op-knapper{display:flex;gap:8px;margin:12px 0 0 40px;flex-wrap:wrap}
.op-hint,.op-fasit{margin:10px 0 0 40px;padding:10px 14px;border-radius:12px;line-height:1.55;font-size:.95rem;color:var(--navy)}
.op-hint{background:#fdf6ee;border-left:3px solid #f0b46e}
.op-fasit{background:#eef5f5;border-left:3px solid var(--teal)}
.op-merke{display:block;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
@media(max-width:560px){.op-knapper,.op-hint,.op-fasit{margin-left:0}}
/* Kampanjekode i registreringen */
.kode-lenke{margin:0 0 14px;text-align:center;font-size:.9rem}
.kode-lenke a{color:var(--teal);font-weight:600;text-decoration:none}
.kode-ok{display:inline-block;margin-left:8px;padding:2px 9px;border-radius:999px;background:#e7f2f1;color:var(--teal);font-size:.78rem;font-weight:700;letter-spacing:.02em}
#kode{text-transform:uppercase;letter-spacing:.06em}
