:root {
  --merke-teal: #28bcb1; --merke-blaa: #0993d1; --merke: linear-gradient(90deg, #28bcb1, #0993d1);
  --bg: #f4f8fa; --kort: #ffffff; --tekst: #0f2433; --dempet: #5b6f7d; --linje: #dde6eb; --topp: #0d2c40; --topp-tekst: #e8f1f6;
  --primaer: #0879b5; --primaer-tekst: #fff;
  --ok-bg: #dcfae6; --ok: #067647; --haster-bg: #fef0c7; --haster: #93370d; --feil-bg: #fee4e2; --feil: #b42318;
  --spor-bg: #dcf1fa; --spor: #06709f; --ia-bg: #eaecf0; --ia: #475467; --ingen: #98a2b3;
  --radius: 10px;
}
/* Mørk modus: følger systemet, men kan overstyres med knappen i toppen (data-tema="lys"/"mork" på <html>, se tema.js) */
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="lys"]) {
    --bg: #0b141b; --kort: #14212b; --tekst: #e6f0f5; --dempet: #8fa6b4; --linje: #263845; --topp: #081a26; --topp-tekst: #e6f0f5;
    --primaer: #2fa8de; --primaer-tekst: #04141d;
    --ok-bg: #0f3d2a; --ok: #6ce9a6; --haster-bg: #4a3200; --haster: #fec84b; --feil-bg: #4a1512; --feil: #fda29b;
    --spor-bg: #0f2c3f; --spor: #7fd0f3; --ia-bg: #262c36; --ia: #b0b8c4; --ingen: #6b7280;
    color-scheme: dark;
  }
}
:root[data-tema="mork"] {
    --bg: #0b141b; --kort: #14212b; --tekst: #e6f0f5; --dempet: #8fa6b4; --linje: #263845; --topp: #081a26; --topp-tekst: #e6f0f5;
    --primaer: #2fa8de; --primaer-tekst: #04141d;
    --ok-bg: #0f3d2a; --ok: #6ce9a6; --haster-bg: #4a3200; --haster: #fec84b; --feil-bg: #4a1512; --feil: #fda29b;
    --spor-bg: #0f2c3f; --spor: #7fd0f3; --ia-bg: #262c36; --ia: #b0b8c4; --ingen: #6b7280;
    color-scheme: dark;
}
:root[data-tema="lys"] { color-scheme: light; }
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--tekst); font: 15px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
a { color: var(--primaer); text-decoration: none; } a:hover { text-decoration: underline; }
main { max-width: none; margin: 0; padding: 20px clamp(16px, 2vw, 36px) 60px; }   /* hele bredden - tabellene trenger plassen */
h1 { font-size: 1.5rem; margin: 0 0 6px; } h2 { font-size: 1.1rem; margin: 0 0 10px; } h3 { font-size: .95rem; margin: 14px 0 6px; }
.dempet { color: var(--dempet); } small { color: var(--dempet); }
.topp { display: flex; align-items: center; gap: 18px; background: var(--topp); color: var(--topp-tekst); padding: 0 16px; min-height: 56px; flex-wrap: wrap; border-bottom: 3px solid; border-image: var(--merke) 1; }
.topp a { color: var(--topp-tekst); } .logo { display: flex; align-items: center; gap: 10px; margin-right: 6px; } .logo img { display: block; height: 30px; width: auto; } .logo span { opacity: .75; font-size: .85rem; border-left: 1px solid #ffffff44; padding-left: 10px; }
.topp .logo { padding: 8px 0; } .topp .bruker { margin-left: auto; }
.skille { width: 1px; background: #ffffff33; margin: 2px 4px; }
.bruker { display: flex; gap: 10px; align-items: center; margin: 0; font-size: .9rem; }
button, select, input, textarea { font: inherit; color: inherit; }
button { border: 1px solid var(--linje); background: var(--kort); border-radius: 8px; padding: 6px 12px; cursor: pointer; }
button:hover { border-color: var(--dempet); }
button.primaer { background: var(--primaer); color: var(--primaer-tekst); border-color: var(--primaer); }
button.stor { padding: 10px 18px; font-size: 1rem; }
button.lenke { border: 0; background: none; color: var(--primaer); padding: 0; } .topp button.lenke { color: var(--topp-tekst); }
input, select, textarea { background: var(--kort); border: 1px solid var(--linje); border-radius: 8px; padding: 6px 8px; max-width: 100%; }
textarea { width: 100%; resize: vertical; }
label { display: block; font-size: .85rem; color: var(--dempet); } label > input, label > select, label > textarea { display: block; margin-top: 3px; width: 100%; color: var(--tekst); }
label.avkryss, .avkrysninger label { display: flex; gap: 8px; align-items: center; color: var(--tekst); font-size: .95rem; } label.avkryss input, .avkrysninger input { width: auto; margin: 0; }
:focus-visible { outline: 2px solid var(--primaer); outline-offset: 2px; }
.kort { background: var(--kort); border: 1px solid var(--linje); border-radius: var(--radius); padding: 16px; margin: 14px 0; }
.innlogging { max-width: 460px; margin: 60px auto; }
.innlogging-topp { background: var(--topp); padding: 24px 28px; border-radius: 12px 12px 0 0; border-bottom: 4px solid; border-image: var(--merke) 1; } .innlogging-topp img { display: block; max-width: 100%; height: auto; }
.innlogging-kropp { margin-top: 0; border-top: 0; border-radius: 0 0 12px 12px; }
.brukervalg { display: grid; gap: 8px; } .brukervalg button { text-align: left; padding: 10px 14px; }
.innloggingsskjema { display: grid; gap: 12px; } .innloggingsskjema button { margin-top: 4px; }
.melding { padding: 10px 14px; border-radius: 8px; margin: 10px 0; background: var(--spor-bg); color: var(--spor); }
.melding.ok { background: var(--ok-bg); color: var(--ok); } .melding.feil { background: var(--feil-bg); color: var(--feil); } .melding.advarsel { background: var(--haster-bg); color: var(--haster); }
.feilmelding { background: var(--feil-bg); color: var(--feil); padding: 8px 12px; border-radius: 8px; }
.filter { display: flex; gap: 12px; align-items: end; flex-wrap: wrap; margin: 12px 0; } .filter label { min-width: 160px; }
.tabellramme { overflow-x: auto; background: var(--kort); border: 1px solid var(--linje); border-radius: var(--radius); }
table { border-collapse: collapse; width: 100%; }
th, td { padding: 7px 10px; text-align: left; border-bottom: 1px solid var(--linje); vertical-align: middle; }
thead th { position: sticky; top: 0; background: var(--kort); font-size: .8rem; color: var(--dempet); text-transform: none; z-index: 1; }
tbody tr:hover { background: color-mix(in srgb, var(--primaer) 5%, transparent); }
.liste td small, .matrise th small { display: block; }
.matrise th[scope=row] { position: sticky; left: 0; background: var(--kort); min-width: 240px; font-weight: 500; z-index: 1; }
.matrise td { text-align: center; padding: 5px 4px; } .matrise thead th { text-align: center; } .matrise thead th:first-child { text-align: left; }
.matrise td:has(.bred), .matrise td:has(.celle.bred) { text-align: left; }
.chip { display: inline-block; padding: 1px 9px; border-radius: 999px; font-size: .78rem; font-weight: 600; white-space: nowrap; }
.chip.ok, .celle.ok { background: var(--ok-bg); color: var(--ok); } .chip.haster, .celle.haster { background: var(--haster-bg); color: var(--haster); }
.chip.forsinket, .celle.forsinket { background: var(--feil-bg); color: var(--feil); } .chip.spor, .celle.spor { background: var(--spor-bg); color: var(--spor); }
.chip.ia, .celle.ia { background: var(--ia-bg); color: var(--ia); } .chip.ingen, .celle.ingen { background: transparent; color: var(--ingen); }
.celle { min-width: 3.6rem; padding: 3px 8px; border-radius: 999px; border: 1px solid transparent; font-size: .8rem; font-weight: 600; }
.celle.bred { min-width: 7rem; } .celle:hover { border-color: currentColor; }
.klient-oppgaver { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin: 6px 0; } .klient-oppgaver strong { min-width: 190px; }
.sammendrag { display: flex; gap: 22px; align-items: center; flex-wrap: wrap; margin: 12px 0; padding: 12px 16px; background: var(--kort); border: 1px solid var(--linje); border-radius: var(--radius); }
.sammendrag div { display: flex; flex-direction: column; } .sammendrag strong { font-size: 1.15rem; } .sammendrag span { font-size: .78rem; color: var(--dempet); }
meter { width: 110px; height: 10px; vertical-align: middle; }
.rutenett { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.avkrysninger { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 8px; margin-bottom: 12px; }
fieldset { border: 1px solid var(--linje); border-radius: var(--radius); margin: 0 0 14px; padding: 12px 14px; } legend { padding: 0 6px; font-weight: 600; font-size: .9rem; }
.smal { max-width: 320px; } .knapper { display: flex; gap: 8px; flex-wrap: wrap; margin: 12px 0; }
dialog { border: 1px solid var(--linje); border-radius: 14px; padding: 0; width: min(760px, 96vw); max-height: 92vh; background: var(--kort); color: var(--tekst); }
dialog::backdrop { background: #0008; } dialog .skjema { padding: 18px 20px; }
.skjema-topp { display: flex; justify-content: space-between; gap: 12px; align-items: start; } .skjema-topp h2 { font-size: 1.2rem; margin: 0; }
.status-boks { text-align: right; } .status-boks small { display: block; }
.felter { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; margin: 12px 0; }
.kommentar { border-top: 1px solid var(--linje); padding: 6px 0; } .kommentar p { margin: 4px 0 0; white-space: pre-wrap; } .kommentar time, .loggrad time { color: var(--dempet); font-size: .8rem; }
.loggrad { margin: 3px 0; font-size: .85rem; }
.mailvisning { width: 100%; height: 70vh; border: 1px solid var(--linje); border-radius: var(--radius); background: #fff; }
.logg td { font-size: .85rem; }
@media (max-width: 720px) { .matrise th[scope=row] { min-width: 150px; } }

/* Kalender */
a.knapp { display: inline-block; border: 1px solid var(--linje); background: var(--kort); border-radius: 8px; padding: 6px 12px; color: var(--tekst); }
a.knapp:hover { border-color: var(--dempet); text-decoration: none; }
.kal { display: grid; grid-template-columns: repeat(7, minmax(120px, 1fr)); min-width: 860px; }
.kal-hode { padding: 6px 8px; font-size: .8rem; color: var(--dempet); border-bottom: 1px solid var(--linje); background: var(--kort); }
.kal-dag { min-height: 96px; padding: 4px 6px 6px; border-right: 1px solid var(--linje); border-bottom: 1px solid var(--linje); }
.kal-dag.utenfor { background: color-mix(in srgb, var(--ia-bg) 40%, transparent); }
.kal-dag.utenfor .kal-dato { color: var(--ingen); }
.kal-dag.idag { outline: 2px solid var(--primaer); outline-offset: -2px; }
.kal-dato { font-size: .8rem; font-weight: 600; margin-bottom: 3px; } .kal-dato small { font-weight: 400; }
.kal-gruppe { border-radius: 6px; margin-bottom: 3px; font-size: .78rem; }
.kal-gruppe summary { cursor: pointer; padding: 2px 6px; border-radius: 6px; list-style: none; }
.kal-gruppe summary::-webkit-details-marker { display: none; }
.kal-gruppe .antall { opacity: .8; white-space: nowrap; }
.kal-gruppe.ok summary { background: var(--ok-bg); color: var(--ok); } .kal-gruppe.spor summary { background: var(--spor-bg); color: var(--spor); }
.kal-gruppe.haster summary { background: var(--haster-bg); color: var(--haster); } .kal-gruppe.forsinket summary { background: var(--feil-bg); color: var(--feil); }
.kal-gruppe ul { margin: 3px 0 4px; padding-left: 14px; max-height: 240px; overflow-y: auto; } .kal-gruppe li.ferdig button { color: var(--dempet); text-decoration: line-through; }
.kal-gruppe li button { font-size: .78rem; text-align: left; }

/* Merkevare og nye elementer */
a.primaer-lenke { background: var(--primaer); color: var(--primaer-tekst); border-color: var(--primaer); } a.primaer-lenke:hover { text-decoration: none; filter: brightness(1.08); }
.teller { display: inline-block; min-width: 1.3em; text-align: center; background: var(--merke-teal); color: #04202b; border-radius: 999px; font-size: .72rem; font-weight: 700; padding: 0 5px; }
.tilbakemelding-knapp { background: transparent; color: var(--topp-tekst); border-color: #ffffff55; } .tilbakemelding-knapp:hover { border-color: #fff; }
.bruker form { display: flex; gap: 10px; align-items: center; margin: 0; }
.midt { text-align: center; } .kundeoversikt th, .kundeoversikt td { padding: 5px 6px; font-size: .84rem; } .kundeoversikt th { line-height: 1.15; }
.brreg-treff { list-style: none; padding: 0; margin: 6px 0 0; display: grid; gap: 4px; } .brreg-treff button { text-align: left; }
.kontrollkort { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; } .kontrollkort .kort { margin: 0; }
.kontroll-sammendrag { margin: 8px 0; padding: 10px 12px; background: var(--spor-bg); border-radius: 8px; } .kontroll-sammendrag p { margin: 4px 0; }
.kundeinfo summary { cursor: pointer; } .kundeinfo dl { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 8px 16px; margin: 10px 0 0; }
.kundeinfo dt { font-size: .75rem; color: var(--dempet); } .kundeinfo dd { margin: 0; }
.seksjon-topp { display: flex; justify-content: space-between; gap: 12px; align-items: center; flex-wrap: wrap; } .seksjon-topp h2 { margin: 0; }
.seksjon.gjelder-ikke { opacity: .7; } h3.gruppe { margin: 14px 0 4px; color: var(--dempet); font-size: .85rem; text-transform: uppercase; letter-spacing: .03em; }
.punkt { display: grid; grid-template-columns: minmax(220px, 3fr) auto minmax(160px, 2fr) 9.5rem; gap: 8px 12px; align-items: center; padding: 7px 0; border-bottom: 1px solid var(--linje); }
.punkt-hode { font-size: .75rem; color: var(--dempet); border-bottom: 2px solid var(--linje); padding: 4px 0; }
.punkt.fri { grid-template-columns: minmax(220px, 3fr) auto minmax(160px, 2fr); } .punkt.fri input.punkt-tekst { width: 100%; }
.punkt.avvik { background: color-mix(in srgb, var(--feil-bg) 55%, transparent); border-radius: 6px; }
.punkt-valg { display: flex; gap: 4px; } .valg { display: inline-flex; gap: 4px; align-items: center; border: 1px solid var(--linje); border-radius: 999px; padding: 2px 10px; font-size: .85rem; color: var(--tekst); cursor: pointer; background: var(--kort); }
.valg input { margin: 0; } .valg:has(input:checked) { font-weight: 600; } .valg.v-ok:has(input:checked), .valg.v-ja:has(input:checked) { background: var(--ok-bg); color: var(--ok); border-color: var(--ok); }
.valg.v-avvik:has(input:checked), .valg.v-nei:has(input:checked) { background: var(--feil-bg); color: var(--feil); border-color: var(--feil); } .valg.v-ia:has(input:checked) { background: var(--ia-bg); color: var(--ia); border-color: var(--ia); }
.punkt-k, .punkt-e { width: 100%; }
.steg { padding-left: 20px; } .steg li { margin: 4px 0; }
.tilbakemelding header { display: flex; gap: 12px; flex-wrap: wrap; align-items: baseline; } .tilbakemelding .tekst { white-space: pre-wrap; margin: 8px 0; }
.tilbakemelding-svar { display: flex; gap: 10px; align-items: end; flex-wrap: wrap; } .tilbakemelding-svar label:nth-of-type(2) { flex: 1; min-width: 220px; }
.svar { background: var(--spor-bg); border-radius: 8px; padding: 6px 10px; } .takk { padding: 24px 20px; }
@media (max-width: 820px) { .punkt, .punkt.fri { grid-template-columns: 1fr; } .punkt-hode { display: none; } }
@media print {
  .topp, .knapper, .filter, dialog, .melding, [data-skriv-ut], .tilbakemelding-knapp, .sidemeny, .handlinger form { display: none !important; }
  body { background: #fff; color: #000; } .kort { border: 0; padding: 4px 0; } .punkt { break-inside: avoid; }
  .seksjon-innhold[hidden] { display: none; } .punkt-hode { display: none; } a { color: inherit; }
}

.middels { max-width: 560px; } [data-brreg-sok] { min-width: 340px; }

/* Kvalitetssystem: avvik, rutiner, rapport */
.undertittel { margin: 22px 0 8px; font-size: 1.05rem; color: var(--dempet); }
.forfalt-tekst { color: var(--feil); font-weight: 600; }
ul.enkel { list-style: none; margin: 4px 0; padding: 0; } ul.enkel li { padding: 4px 0; border-bottom: 1px solid var(--linje); } ul.enkel li:last-child { border-bottom: 0; }
.arvelger label { display: flex; gap: 6px; align-items: center; color: var(--topp-tekst); font-size: .85rem; } .arvelger label > select { display: inline-block; width: auto; margin: 0; padding: 2px 6px; }
.arvelger { margin: 0; } .bred-input { min-width: 320px; }
.rutine { display: flex; gap: 8px 14px; align-items: center; flex-wrap: wrap; padding: 9px 0; border-bottom: 1px solid var(--linje); }
.rutine:last-child { border-bottom: 0; } .rutine-tekst { flex: 1 1 340px; display: flex; flex-direction: column; gap: 2px; }
.rutine.ferdig .rutine-tekst strong { color: var(--dempet); font-weight: 500; } .rutine.inaktiv { opacity: .55; }
.rutine-skjema { display: flex; gap: 6px; align-items: center; margin: 0; } .rutine-skjema input { min-width: 200px; }
.rutine-admin { flex-basis: 100%; } .rutine-admin summary { cursor: pointer; color: var(--dempet); font-size: .85rem; }
.signatur { display: none; }
@media print { .signatur { display: block; margin-top: 30px; break-inside: avoid; } .rutine-skjema, .rutine-admin, .arvelger { display: none !important; } .tabellramme { border: 0; } .kort { break-inside: avoid; } }

/* søk i toppen */
.sokeskjema { margin: 0; } .sokeskjema input { width: 150px; padding: 5px 9px; border-radius: 6px; border: 1px solid rgba(255,255,255,.35); background: rgba(255,255,255,.12); color: #fff; font-size: .85rem; }
.sokeskjema input::placeholder { color: rgba(255,255,255,.7); } .sokeskjema input:focus { background: #fff; color: #10202c; outline: 2px solid #22b5c9; }
@media print { .sokeskjema { display: none !important; } }

.varsel-boks { background: #fff8e1; border: 1px solid #f0d58a; border-radius: var(--radius); padding: 10px 14px; font-size: .9rem; margin: 10px 0; }

/* regnskapsanalyse */
.inline-skjema { display: inline; margin: 0; } .tallskjema input { width: 100%; min-width: 120px; text-align: right; padding: 5px 8px; }
.analyse { background: var(--kort); border: 1px solid var(--linje); border-radius: var(--radius); padding: 22px 26px; margin: 14px 0; max-width: 900px; }
.analyse h2 { margin: 22px 0 8px; font-size: 1.05rem; border-bottom: 2px solid var(--merke-teal); padding-bottom: 4px; }
.analyse-brevhode { padding-bottom: 16px; margin-bottom: 18px; border-bottom: 3px solid; border-image: var(--merke) 1; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.analyse-merke { display: flex; align-items: center; gap: 8px; }
.analyse-merke img { display: block; height: 26px; width: auto; }
.analyse-merke span { font-weight: 700; font-size: .82rem; letter-spacing: .04em; text-transform: uppercase; color: var(--dempet); }
.analyse-kunde { margin: 10px 0 0; font-size: 1.3rem; font-weight: 700; }
.analyse-tittel { margin: 2px 0 0; font-size: .95rem; }
.analyse .samlet { font-size: 1.05rem; } .signatur-linje { margin-top: 22px; }
.analyse-fotnote { margin-top: 26px; padding-top: 10px; border-top: 1px solid var(--linje); font-size: .78rem; font-style: italic; color: var(--dempet); }
textarea.epost { font-family: ui-monospace, Consolas, monospace; font-size: .85rem; width: 100%; }
@media print {
  .ikke-skriv { display: none !important; } .analyse { border: 0; padding: 0; max-width: none; }
  .analyse .chip { border: 1px solid #999; } .analyse h2 { break-after: avoid; } .analyse ul, .analyse table { break-inside: avoid; }
}
.kontodetaljer { margin: 12px 0 20px; } .kontodetaljer summary { cursor: pointer; font-weight: 600; margin-bottom: 8px; }
.kontotabell { width: 100%; margin-bottom: 10px; } .kontotabell caption { text-align: left; font-weight: 600; padding: 6px 4px; }
.kontotabell td.tall, .kontotabell th.tall { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* lys/mørk-knapp */
.tema-knapp { font-size: .85rem; white-space: nowrap; }

/* regnskapsanalyse: skjule punkter i rapporten til kunden */
.skjul-knapp { font-size: .72rem; padding: 1px 7px; margin-left: 6px; border-radius: 999px; color: var(--dempet); vertical-align: middle; }
.analyse h2 .skjul-knapp { font-weight: 400; }
.analyse .skjult { opacity: .45; } .analyse .skjult > *:not(.skjul-knapp):not(h2), .analyse li.skjult, .analyse tr.skjult td:not(.ikke-skriv), .analyse p.skjult { text-decoration: line-through; }
.analyse .skjult .skjul-knapp { text-decoration: none; opacity: 1; }
@media print { .analyse .skjult { display: none !important; } }

[hidden] { display: none !important; }
fieldset.innfelt { border: 1px solid var(--linje); border-radius: 8px; padding: 8px 12px; margin: 10px 0; }
fieldset.innfelt legend { font-size: .85rem; color: var(--dempet); padding: 0 4px; }
table.kundeliste td { white-space: nowrap; } table.kundeliste td:first-child { white-space: normal; min-width: 160px; }
.sammendrag a { color: inherit; }
.rolle-skjema { border-top: 1px solid var(--linje); padding: 12px 0; } .rolle-skjema > label { max-width: 320px; }
.chip.mangler { background: var(--feil-bg); color: var(--feil); }

/* oppdragsavtaler: dokumentpakke (skjerm og utskrift) */
.avtale-dok { background: var(--kort); border: 1px solid var(--linje); border-radius: var(--radius); padding: 24px 30px; margin: 16px 0; max-width: 900px; font-size: 14px; line-height: 1.5; }
.avtale-dok h1 { font-size: 1.35rem; margin: 6px 0 14px; text-transform: uppercase; letter-spacing: .02em; }
.avtale-dok h2 { font-size: 1.05rem; margin: 18px 0 6px; text-transform: uppercase; }
.avtale-dok h3 { font-size: .95rem; margin: 14px 0 4px; } .avtale-dok h4 { font-size: .9rem; margin: 10px 0 4px; }
.avtale-dok p { margin: 6px 0; } .avtale-dok ul { margin: 6px 0 6px 20px; padding: 0; }
.avtale-hode { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; font-size: .8rem;
  padding-bottom: 8px; margin-bottom: 8px; border-bottom: 2px solid; border-image: var(--merke) 1; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
table.avtale-tabell { border-collapse: collapse; width: 100%; margin: 8px 0 12px; font-size: 13px; }
table.avtale-tabell th, table.avtale-tabell td { border: 1px solid var(--linje); padding: 4px 8px; text-align: left; vertical-align: top; }
table.avtale-tabell th { background: var(--spor-bg); -webkit-print-color-adjust: exact; print-color-adjust: exact; }
table.avtale-tabell.spesifikasjon td:first-child, table.avtale-tabell.spesifikasjon th:first-child { width: 60px; text-align: center; }
.avtale-signatur { margin-top: 28px; break-inside: avoid; }
.avtale-signatur .signaturer { display: flex; gap: 40px; flex-wrap: wrap; margin-top: 36px; }
.avtale-signatur .signaturer div { flex: 1 1 220px; font-size: .85rem; color: var(--dempet); }
.avtale-signatur .signaturer span { display: block; border-bottom: 1px solid var(--tekst); height: 28px; margin-bottom: 4px; }
.skrivelinje { border-bottom: 1px solid var(--dempet); height: 26px; }
.avtale-dok p.kryss { margin-left: 4px; } .plassholder { color: var(--spor); font-style: italic; }
.avtalemal-tekst { font-family: ui-monospace, Consolas, monospace; font-size: 13px; width: 100%; }
@media print {
  .avtale-dok { border: 0; padding: 0; margin: 0; max-width: none; font-size: 11pt; break-before: page; }
  .avtale-dok:first-of-type { break-before: auto; }
  body { background: #fff; }
  table.avtale-tabell th, table.avtale-tabell td { border-color: #999; }
  table.avtale-tabell tr, .avtale-dok h2, .avtale-dok h3 { break-inside: avoid; } .avtale-dok h2, .avtale-dok h3 { break-after: avoid; }
}

/* v3.8: sidemeny til venstre (som Tripletex/Xledger), favoritter med stjerne, full bredde */
:root { --meny-b: 236px; --topp-h: 59px; }
.med-meny .topp { position: sticky; top: 0; z-index: 30; flex-wrap: nowrap; min-height: var(--topp-h); }
.med-meny .topp .sokeskjema input { width: clamp(160px, 22vw, 340px); }
.meny-knapp { display: none; background: transparent; color: var(--topp-tekst); border: 1px solid #ffffff44; font-size: 1.1rem; padding: 2px 10px; }
.sidemeny { position: fixed; top: var(--topp-h); left: 0; bottom: 0; width: var(--meny-b); overflow-y: auto; background: var(--kort);
  border-right: 1px solid var(--linje); padding: 10px 0 30px; z-index: 20; font-size: .9rem; }
.med-meny main, .med-meny > .melding.demo { margin-left: var(--meny-b); }
.menygruppe { border-bottom: 1px solid var(--linje); padding: 4px 0 8px; }
.menygruppe:last-of-type { border-bottom: 0; }
.menygruppe summary { list-style: none; cursor: pointer; padding: 6px 16px 2px; } .menygruppe summary::-webkit-details-marker { display: none; }
.menygruppe summary::after { content: "▾"; float: right; color: var(--dempet); font-size: .8rem; margin-top: 2px; }
.menygruppe:not([open]) summary::after { content: "▸"; }
.menygruppe h2 { display: inline; font-size: .72rem; text-transform: uppercase; letter-spacing: .07em; color: var(--dempet); margin: 0; font-weight: 700; }
.menygruppe.favoritter h2 { display: block; padding: 6px 16px 2px; color: #b8860b; }
.sidemeny ul { list-style: none; margin: 2px 0 0; padding: 0; }
.sidemeny li { position: relative; }
.sidemeny li > a { display: block; padding: 5px 34px 5px 16px; color: var(--tekst); border-left: 3px solid transparent; }
.sidemeny li > a:hover { background: var(--spor-bg); text-decoration: none; }
.sidemeny li.aktiv > a { border-left-color: var(--merke-blaa); background: var(--spor-bg); font-weight: 600; color: var(--spor); }
.stjerne-skjema { margin: 0; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); }
.stjerne { border: 0; background: none; padding: 2px 10px; color: var(--ingen); font-size: .95rem; line-height: 1; opacity: 0; cursor: pointer; }
.sidemeny li:hover .stjerne, .stjerne:focus-visible, .stjerne.pa { opacity: 1; } .stjerne.pa { color: #e0a800; }
.meny-hint { margin: 2px 16px 4px; color: var(--dempet); font-size: .8rem; }
.meny-versjon { margin: 14px 16px 0; color: var(--ingen); font-size: .75rem; }
.sidehode { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.sidehode h1 { margin: 0; } .sidehode .knapper { margin: 0; }
.avkrysningstabell td.midt { white-space: nowrap; } .avkrysningstabell td.midt small { color: var(--dempet); font-size: .7rem; margin-left: 3px; }
.avkrysningstabell input[type=checkbox] { width: 17px; height: 17px; cursor: pointer; } .avkrysningstabell input.lagrer { opacity: .4; }
.avkrysningstabell input.lagret { outline: 2px solid var(--ok); outline-offset: 1px; }
@media (max-width: 900px) {
  .meny-knapp { display: inline-block; }
  .sidemeny { top: 0; z-index: 40; transform: translateX(-100%); transition: transform .15s; box-shadow: 4px 0 18px #0003; }
  .sidemeny.vis { transform: none; }
  .med-meny main, .med-meny > .melding.demo { margin-left: 0; }
  .med-meny .topp { flex-wrap: wrap; } .med-meny .topp .logo span, .med-meny .topp .sokeskjema { display: none; }
}
@media print { .sidemeny, .meny-knapp { display: none !important; } .med-meny main { margin-left: 0; } }

/* Tofaktor (v3.9) */
.qr-ramme { background: #fff; display: inline-block; padding: 8px; border-radius: 8px; margin: 8px 0; }
.qr-ramme svg { display: block; width: 220px; height: 220px; }
code.hemmelighet { font-size: 1.05em; letter-spacing: .05em; word-break: break-all; }
.trinnliste { padding-left: 1.2em; } .trinnliste li { margin: 4px 0; }
label.avkrysning { display: flex; gap: 8px; align-items: center; font-weight: normal; }
button.liten { padding: 2px 8px; font-size: .85em; }

/* v3.10: varsler (bjella) og fristsiden fra kalenderen */
.bjelle { position: relative; color: var(--topp-tekst); text-decoration: none; font-size: 1.05rem; padding: 2px 6px; border-radius: 6px; }
.bjelle:hover { text-decoration: none; background: rgba(255,255,255,.12); }
.bjelle .teller { position: absolute; top: -6px; right: -8px; background: #d9534f; color: #fff; border-radius: 9px; font-size: .68rem;
  padding: 0 5px; line-height: 16px; min-width: 16px; text-align: center; font-weight: 700; }
.varselliste { list-style: none; margin: 0; padding: 0; }
.varselliste li { border: 1px solid var(--linje); border-left: 4px solid var(--linje); border-radius: 8px; margin: 0 0 8px; background: var(--kort); }
.varselliste li.ulest { border-left-color: var(--merke-blaa); }
.varselliste li.varsel-forsinket.ulest { border-left-color: #d9534f; } .varselliste li.varsel-haster.ulest { border-left-color: #e0a100; }
.varselliste li.lest { opacity: .65; }
.varselliste a { display: grid; grid-template-columns: 170px 1fr auto; gap: 10px; padding: 9px 12px; color: var(--tekst); text-decoration: none; align-items: baseline; }
.varselliste a:hover .varsel-tekst { text-decoration: underline; }
.varsel-type { font-weight: 600; font-size: .85rem; } .varsel-tid { color: var(--dempet, #6b7a86); font-size: .8rem; white-space: nowrap; }
@media (max-width: 700px) { .varselliste a { grid-template-columns: 1fr; gap: 2px; } }
tr.ferdig-rad td { opacity: .6; }
td.handlinger { white-space: nowrap; } td.handlinger form.inline { display: inline; margin: 0; } td.handlinger .knapp, td.handlinger button { margin-left: 4px; }

/* v4.0: regnskapsmodulen */
.melding.info { background: var(--spor-bg); color: var(--tekst); }
td.tall, th.tall, input.tall { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.neg { color: var(--feil); }
.felter label.bred { grid-column: span 2; } @media (max-width: 700px) { .felter label.bred { grid-column: auto; } }
.rs-topp { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 6px; }
.rs-kunde { font-size: 1.05rem; } .rs-ar { margin: 0; } .rs-ar label { display: flex; gap: 6px; align-items: center; }
.rs-faner { display: flex; flex-wrap: wrap; gap: 2px; border-bottom: 1px solid var(--linje); margin: 0 0 16px; }
.rs-faner a { padding: 7px 11px; border-radius: 8px 8px 0 0; color: var(--tekst); border: 1px solid transparent; border-bottom: 0; font-size: .9rem; }
.rs-faner a:hover { text-decoration: none; background: var(--spor-bg); }
.rs-faner a.aktiv { background: var(--kort); border-color: var(--linje); font-weight: 600; box-shadow: inset 0 3px 0 var(--merke-blaa); margin-bottom: -1px; }
.rs-undervalg { display: flex; gap: 6px; flex-wrap: wrap; margin: 4px 0 12px; }
.rs-undervalg a { padding: 5px 12px; border: 1px solid var(--linje); border-radius: 999px; color: var(--tekst); background: var(--kort); font-size: .9rem; }
.rs-undervalg a.aktiv { background: var(--merke-blaa); border-color: var(--merke-blaa); color: #fff; }
.rs-nokkeltall { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px; margin: 0 0 14px; }
.rs-nokkeltall .kort { margin: 0; padding: 12px 14px; display: flex; flex-direction: column; gap: 4px; }
.rs-nokkeltall span { color: var(--dempet); font-size: .85rem; } .rs-nokkeltall strong { font-size: 1.25rem; font-variant-numeric: tabular-nums; }
.rs-to { display: grid; grid-template-columns: repeat(auto-fit, minmax(420px, 1fr)); gap: 14px; } .rs-to .kort { margin: 0; }
@media (max-width: 900px) { .rs-to { grid-template-columns: 1fr; } }
.rs-skjema fieldset { border: 1px solid var(--linje); border-radius: 8px; padding: 10px 14px; margin: 10px 0; display: grid; gap: 8px; }
.rs-skjema fieldset label { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; font-weight: normal; }
.rs-skjema .rs-spes { display: block; max-width: 420px; margin: 8px 0; }
.rs-linjer select, .rs-linjer input { width: 100%; min-width: 90px; } .rs-linjer td:first-child select { min-width: 200px; }
.rs-linjer tfoot td { font-weight: 600; }
.rs-journal tbody.rs-bilag { border-top: 2px solid var(--linje); } .rs-journal .rs-bilag-hode td { background: var(--spor-bg); }
.rs-journal tbody.korrigert .rs-post td { text-decoration: line-through; opacity: .6; }
.rs-oppstilling tr.sum td { font-weight: 700; border-top: 1px solid var(--tekst); }
.rs-fakta { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px 16px; margin: 0 0 12px; }
.rs-fakta dt { color: var(--dempet); font-size: .85rem; } .rs-fakta dd { margin: 0; font-weight: 600; }
.tall-hoyre { float: right; font-variant-numeric: tabular-nums; }
.rs-konto { break-inside: avoid; }
.rs-skjema fieldset label { display: flex; flex-direction: row; align-items: center; gap: 8px; }
.rs-skjema fieldset input[type=radio] { width: auto; margin: 0; flex: none; }
.rs-skjema fieldset select { width: auto; max-width: 380px; min-width: 200px; }
.nowrap { white-space: nowrap; }
.rs-skjema fieldset label { color: var(--tekst); font-size: .95rem; }
.rs-skjema fieldset label > input[type=radio], .rs-skjema fieldset label > select { display: inline-block; margin-top: 0; }
.rs-ar label > select { display: inline-block; width: auto; margin: 0; }
.rs-linjer td > select, .rs-linjer td > input { margin: 0; }
.rs-forhandsvisning { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; margin: 10px 0; }
.rs-forhandsvisning img { max-width: 100%; max-height: 520px; border: 1px solid var(--linje); border-radius: 6px; background: #fff; }
.rs-forhandsvisning iframe { width: 100%; height: 520px; border: 1px solid var(--linje); border-radius: 6px; background: #fff; }
@media print { .rs-forhandsvisning iframe { display: none; } }
/* Bank (v4.1) */
label.inline { display: inline-flex; flex-direction: row; align-items: center; gap: 6px; font-weight: normal; }
label.inline > input[type=checkbox] { width: auto; margin: 0; }
.rs-bank td:first-child input[type=checkbox] { width: auto; margin: 0; }
.rs-bank .chip { white-space: normal; }
.kort > label > input[type=radio] { width: auto; margin: 0 6px 0 0; }
.kort > label:has(> input[type=radio]) { display: flex; align-items: center; font-weight: normal; margin: 4px 0; }
.rs-regel { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; } .rs-regel > input { width: auto; min-width: 240px; margin: 0; }
.rs-fakta dd small { font-weight: normal; }
.ar-felt { width: 6rem; } .bd-liste input { min-width: 6rem; } .bd-liste td > input.tall { text-align: right; } .ks-plan select { min-width: 4.5rem; } .ks-perioder .chip { margin: 1px; } tr.valgt td { background: var(--spor-bg); }
/* v5.0: kundetiltak, kvalitetssikring, balanse */
.jn { display: inline-flex; gap: 10px; margin-left: 8px; } .jn label { display: inline-flex; align-items: center; gap: 3px; font-weight: normal; }
.jn input[type=radio] { width: auto; margin: 0; }
.kt-sporsmal { display: grid; gap: 6px; margin: 10px 0; } .kt-sporsmal input { width: auto; display: inline-block; }
.kt-personer { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 10px; }
.kt-personer fieldset { display: grid; gap: 6px; } .kt-risiko td:first-child { width: 55%; } .kt-risiko input { width: 100%; }
.lenkeknapp { background: none; border: 0; padding: 0; color: var(--merke-blaa); text-decoration: underline; cursor: pointer; font-size: .85rem; }
h3 .normal { font-weight: normal; font-size: .9rem; }
.forklaring dl { display: grid; grid-template-columns: max-content 1fr; gap: 4px 12px; } .forklaring dt { font-weight: 600; }
/* v5.0 bank: avstemming side om side, kolonnevalg ved import, vedlegg i listen */
.rs-avstem-sum { position: sticky; bottom: 0; background: var(--kort); padding: 10px 0; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.rs-kolonner select { min-width: 9em; }
input.liten-fil { max-width: 14em; font-size: .85em; }
.logo-tekst { font-size: 1.05rem; letter-spacing: .02em; color: var(--topp-tekst); }
.innlogging-topp .logo-tekst { font-size: 1.4rem; }
button:disabled { opacity: .45; cursor: not-allowed; }
.tf-tall { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; margin: 12px 0 4px; }
.tf-tall > div { background: var(--kort); border: 1px solid var(--linje); border-radius: 8px; padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; }
.tf-tall span { font-size: .78rem; color: var(--dempet); } .tf-tall strong { font-size: 1.15rem; font-variant-numeric: tabular-nums; }
.inline-skjema { display: inline-flex; gap: 6px; margin-left: 8px; }
.brev table { border-collapse: collapse; margin: 10px 0; } .brev th, .brev td { border-bottom: 1px solid var(--linje); padding: 4px 12px 4px 0; text-align: left; }
/* v5.1 fakturering */
.fk-linjer td { padding: 4px 6px; vertical-align: top; }
.fk-linjer input, .fk-linjer select { width: 100%; min-width: 0; }
.fk-linjer td:nth-child(1) { min-width: 16rem; }
.fk-linjer td:nth-child(2), .fk-linjer td:nth-child(5) { width: 5.5rem; }
.fk-linjer td:nth-child(3) { width: 6rem; }
.fk-linjer td:nth-child(4) { width: 8rem; }
.fk-linjer td:nth-child(6), .fk-linjer td:nth-child(7) { width: 10rem; }
/* v5.4 kundeportal */
.portal-topp { gap: 18px; }
.portal-nav { display: flex; gap: 14px; flex-wrap: wrap; }
.portal-nav a { color: inherit; text-decoration: none; opacity: .9; }
.portal-nav a:hover { text-decoration: underline; }
.portal-innhold { max-width: 980px; margin: 0 auto; padding: 18px 16px 40px; }
.portal-login { max-width: 420px; margin: 40px auto; display: flex; flex-direction: column; gap: 10px; }
.portal .qr svg { width: 200px; height: 200px; }
.sprakvelger { display: inline; }
.feil-tekst { color: var(--feil); }
.ja-nei { display: flex; gap: 24px; }

/* v6.3: undermenyer, kundemeny, plikter, kontrollstatus og sortering */
.sidemeny li.undermeny > details > summary { list-style: none; cursor: pointer; padding: 0; display: flex; align-items: center; }
.sidemeny li.undermeny > details > summary::-webkit-details-marker { display: none; }
.sidemeny li.undermeny > details > summary > a { flex: 1; display: block; padding: 5px 8px 5px 16px; color: var(--tekst); border-left: 3px solid transparent; }
.sidemeny li.undermeny > details > summary::after { content: "▸"; color: var(--dempet); font-size: .75rem; padding: 0 14px 0 4px; }
.sidemeny li.undermeny > details[open] > summary::after { content: "▾"; }
.sidemeny li.undermeny.aktiv > details > summary > a { border-left-color: var(--merke-blaa); background: var(--spor-bg); font-weight: 600; color: var(--spor); }
.sidemeny li.undermeny ul li > a { padding-left: 30px; font-size: .92rem; }
.sidemeny .kundemeny { background: var(--spor-bg); padding-bottom: 10px; }
.kundemeny-tilbake { margin: 4px 16px 0; font-size: .85rem; } .kundemeny-merke { margin: 0 16px 4px; }
.kundemeny-navn { display: block !important; font-size: .95rem !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--tekst) !important;
  padding: 6px 16px 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kundemeny h3 { font-size: .7rem; text-transform: uppercase; letter-spacing: .07em; color: var(--dempet); margin: 10px 16px 2px; }
.hovedmeny-sammenslatt > summary h2 { color: var(--dempet); }
.chip.til-kontroll, .celle.til-kontroll { background: #fde7c7; color: #8a4b00; }
.chip.kontrollert, .celle.kontrollert { background: repeating-linear-gradient(135deg, #fde7c7 0 6px, #d1f0dc 6px 12px); color: #1d5c34; }
.chip.lopende { background: #ece4fb; color: #5b3aa6; }
.chip.egenkontroll { background: #fff3c4; color: #7a5b00; }
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="lys"]) .chip.til-kontroll, :root:not([data-tema="lys"]) .celle.til-kontroll { background: #4a3210; color: #ffcf8a; }
  :root:not([data-tema="lys"]) .chip.kontrollert, :root:not([data-tema="lys"]) .celle.kontrollert { background: repeating-linear-gradient(135deg, #4a3210 0 6px, #173d27 6px 12px); color: #b9f0cc; }
  :root:not([data-tema="lys"]) .chip.lopende { background: #2f2450; color: #d3c4ff; }
}
:root[data-tema="mork"] .chip.til-kontroll, :root[data-tema="mork"] .celle.til-kontroll { background: #4a3210; color: #ffcf8a; }
:root[data-tema="mork"] .chip.kontrollert, :root[data-tema="mork"] .celle.kontrollert { background: repeating-linear-gradient(135deg, #4a3210 0 6px, #173d27 6px 12px); color: #b9f0cc; }
:root[data-tema="mork"] .chip.lopende { background: #2f2450; color: #d3c4ff; }
.plikt-tabell td.status { white-space: nowrap; } .plikt-tabell .plikt-ikon { color: var(--dempet); margin-right: 6px; }
.chip.plikt-mangler { background: var(--feil-bg); color: var(--feil); text-transform: uppercase; font-size: .7rem; letter-spacing: .03em; }
.chip.plikt-ok { background: var(--ok-bg); color: var(--ok); text-transform: uppercase; font-size: .7rem; letter-spacing: .03em; }
.chip.plikt-utloper { background: var(--haster-bg); color: var(--haster); text-transform: uppercase; font-size: .7rem; letter-spacing: .03em; }
.chip.plikt-kommer, .chip.plikt-ia { background: var(--ia-bg); color: var(--ia); text-transform: uppercase; font-size: .7rem; letter-spacing: .03em; }
.plikt-matrise td.status { text-align: center; padding: 3px; } .plikt-matrise th.rotert { font-size: .75rem; }
th[data-sorter] { cursor: pointer; user-select: none; white-space: nowrap; } th[data-sorter]::after { content: " ⇅"; color: var(--dempet); font-size: .75em; }
th[data-sorter][aria-sort="ascending"]::after { content: " ↑"; color: var(--tekst); } th[data-sorter][aria-sort="descending"]::after { content: " ↓"; color: var(--tekst); }
.faner { display: flex; gap: 4px; border-bottom: 1px solid var(--linje); margin: 10px 0 14px; flex-wrap: wrap; }
.faner a { padding: 7px 14px; border: 1px solid transparent; border-bottom: 0; border-radius: 8px 8px 0 0; color: var(--tekst); }
.faner a.aktiv { background: var(--kort); border-color: var(--linje); font-weight: 600; box-shadow: inset 0 3px 0 var(--merke-blaa); margin-bottom: -1px; }
.plikt-kort { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 10px; margin: 8px 0 16px; }
.plikt-kort > div { border: 1.5px dashed var(--linje); border-radius: 8px; padding: 10px 12px; }
.plikt-kort > div.ok { border-style: solid; border-color: var(--ok-bg); }
.plikt-kort h4 { margin: 0 0 4px; font-size: .95rem; } .plikt-kort p { margin: 2px 0; font-size: .85rem; }
.dok-liste td.navn { word-break: break-word; } .merke-admin { font-size: .7rem; padding: 0 6px; border-radius: 4px; background: var(--feil-bg); color: var(--feil); margin-left: 6px; }
.merke-apen { font-size: .7rem; padding: 0 6px; border-radius: 4px; background: var(--ok-bg); color: var(--ok); margin-left: 6px; }
.skjema-seksjon { margin: 14px 0; } .skjema-seksjon h3 { margin: 6px 0; font-size: 1rem; }
.skjema-rad { display: grid; grid-template-columns: minmax(200px, 2fr) minmax(120px, 1fr) minmax(160px, 2fr); gap: 8px; align-items: start; padding: 6px 0;
  border-bottom: 1px solid var(--linje); }
@media (max-width: 760px) { .skjema-rad { grid-template-columns: 1fr; } }
.import-diff td.ny { color: var(--ok); } .import-diff td.gammel { color: var(--feil); text-decoration: line-through; }
.krav-tabell td.hjemmel { white-space: nowrap; font-size: .85rem; color: var(--dempet); }
.slipp-sone { border: 2px dashed var(--linje); border-radius: 10px; padding: 18px; text-align: center; color: var(--dempet); }
.slipp-sone.over { border-color: var(--merke-blaa); background: var(--spor-bg); color: var(--spor); }
/* v6.3 kravmatrise: utskrift (tilsynspakke) */
@media print { .krav-tabell { font-size: 9pt; } .krav-tabell tr { break-inside: avoid; } .krav-tabell .chip, .sammendrag .chip { border: 1px solid #999; } .krav-tabell td.hjemmel { white-space: normal; } }
/* v6.3 roller: tilgang per område */ .rolle-omrader th.midt { width: 7.5rem; } .rolle-omrader td.midt input[type=radio] { width: 1.1rem; height: 1.1rem; margin: 0; } .rolle-omrader caption { text-align: left; font-weight: 600; padding: 10px 0 4px; } .slipp-sone { cursor: pointer; }
/* v6.3.2: dashbordet (Min liste + nøkkeltall) */
.dash-hode { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.dash-hode h1 { margin: 0 0 2px; } .dash-hode p { margin: 0; }
.dash-fliser { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.flis { display: flex; flex-direction: column; gap: 2px; padding: 14px 16px; border-radius: var(--radius); background: var(--kort); border: 1px solid var(--linje);
  border-left: 5px solid var(--linje); color: var(--tekst); transition: transform .12s ease, box-shadow .12s ease; }
.flis:hover { text-decoration: none; transform: translateY(-2px); box-shadow: 0 6px 16px rgba(13, 44, 64, .10); }
.flis-tall { font-size: 1.9rem; font-weight: 700; line-height: 1.1; font-variant-numeric: tabular-nums; } .flis-tall small { font-size: .95rem; color: var(--dempet); font-weight: 600; }
.flis-tekst { font-size: .85rem; color: var(--dempet); }
.flis-rod { border-left-color: var(--feil); } .flis-rod .flis-tall { color: var(--feil); }
.flis-oransje { border-left-color: #f79009; } .flis-oransje .flis-tall { color: var(--haster); }
.flis-blaa { border-left-color: var(--merke-blaa); } .flis-blaa .flis-tall { color: var(--primaer); }
.dash-fremdrift { display: grid; grid-template-columns: 190px 1fr; gap: 24px; align-items: center; }
.dash-ring { text-align: center; } .dash-ring p { margin: 4px 0 0; font-size: .85rem; }
.ring { width: 150px; height: 150px; }
.ring-bak { fill: none; stroke: var(--ia-bg); stroke-width: 11; }
.ring-fram { fill: none; stroke: var(--merke-teal); stroke-width: 11; stroke-linecap: round; }
.ring-tall { text-anchor: middle; font-size: 17px; font-weight: 700; fill: var(--tekst); } .ring-tekst { text-anchor: middle; font-size: 9px; fill: var(--dempet); }
.dash-stolper h2 { margin-top: 0; }
.stolpe-rad { display: grid; grid-template-columns: minmax(140px, 220px) 1fr minmax(130px, auto); gap: 12px; align-items: center; padding: 5px 0; color: var(--tekst); }
.stolpe-rad:hover { text-decoration: none; } .stolpe-rad:hover .stolpe-navn { color: var(--primaer); }
.stolpe { width: 100%; height: 12px; border-radius: 6px; overflow: hidden; background: var(--ia-bg); display: block; }
.stolpe-tall { font-size: .85rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.s-ferdig { fill: #12b76a; background: #12b76a; } .s-spor { fill: #7cc4e4; background: #7cc4e4; } .s-haster { fill: #f79009; background: #f79009; } .s-forsinket { fill: #f04438; background: #f04438; }
.stolpe-forklaring { font-size: .8rem; color: var(--dempet); margin: 8px 0 0; } .prikk { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin: 0 4px 0 12px; vertical-align: -1px; }
.stolpe-forklaring .prikk:first-child { margin-left: 0; }
.dash-byra h2, .dash-seksjon { margin: 22px 0 10px; }
.dash-byra-rutenett { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.dash-byra-rutenett .kort { margin: 0; } .dash-byra-rutenett h3 { margin: 0 0 8px; font-size: 1rem; }
.nokkel-liste { list-style: none; margin: 0; padding: 0; } .nokkel-liste li { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0; border-top: 1px solid var(--linje); }
.nokkel-liste li:first-child { border-top: 0; } .nokkel-liste li.varsel { }
.dash-kolonner { display: grid; grid-template-columns: minmax(0, 2.4fr) minmax(280px, 1fr); gap: 16px; align-items: start; }
.dash-side .kort h2 { font-size: 1.05rem; }
@media (max-width: 1100px) { .dash-kolonner { grid-template-columns: 1fr; } }
@media (max-width: 800px) { .dash-fliser { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.nokkel-liste li > :last-child { white-space: nowrap; align-self: center; text-align: right; } .nokkel-liste li > small:last-child { white-space: normal; }
@media (max-width: 700px) { .dash-fremdrift { grid-template-columns: 1fr; } .stolpe-rad { grid-template-columns: 1fr; gap: 4px; } }
/* v6.3.5: felt fylt ut automatisk */
small.hentet { display: block; color: var(--spor); font-size: .78rem; margin-top: 2px; }

/* v6.3.6: datoer og ansvarlig rett i oversikten, hvem som satte feltet, sene bilag */
.felt-celle { white-space: nowrap; }
.celle-dato, .celle-velg { font: inherit; padding: .15rem .25rem; max-width: 11rem; border: 1px solid var(--linje, #ccc); border-radius: 4px; background: transparent; }
.celle-dato.lagrer, .celle-velg.lagrer { opacity: .6; }
.celle-dato.lagret, .celle-velg.lagret { outline: 2px solid var(--ok, #2e7d32); outline-offset: 1px; }
small.felt-av { display: block; font-size: .72rem; color: var(--dempet, #666); }
label small.felt-av { display: inline; }
.sen-bilag { display: block; font-size: .68rem; color: var(--forsinket, #b3261e); white-space: nowrap; }

/* v6.4: Kvalio-logoen i lys og mørk modus, «levert av» */
.vis-mork { display: none; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="lys"]) .vis-lys { display: none; } :root:not([data-tema="lys"]) .vis-mork { display: inline-block; } }
:root[data-tema="mork"] .vis-lys { display: none; } :root[data-tema="mork"] .vis-mork { display: inline-block; }
.produktlogo { margin: 4px 0 14px; line-height: 0; } .produktlogo img { height: 52px; width: auto; max-width: 100%; }
.levert-av { text-align: center; font-size: .82rem; margin: 14px 0; }
.meny-versjon a { color: inherit; text-decoration: underline; text-decoration-color: #ffffff55; }
.om-side { max-width: 760px; } .om-side h2 { margin-top: 1.6em; }
/* v6.4 (#38): datoen for oppfølging vises bare ved avvik */
.punkt:not(.avvik) .punkt-e:placeholder-shown, .punkt:not(.avvik) .punkt-e[value=""] { visibility: hidden; }
/* v6.4 (#23): fanene «Klar til kontroll» (oransje) og «Kontrollert» (oransje/grønn stripet) */
.faner-kontroll { margin-top: -4px; }
.faner-kontroll .fane-klar { border-left: 4px solid #f5a524; }
.faner-kontroll .fane-kontrollert { border-left: 4px solid; border-image: repeating-linear-gradient(180deg, #f5a524 0 6px, #2fa36b 6px 12px) 4; }
.faner .teller { display: inline-block; min-width: 1.4em; padding: 0 .35em; border-radius: 9px; background: var(--ia-bg); color: var(--ia); font-size: .78rem; text-align: center; }
.rutenett-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 0 16px; }
details.tillegg { margin: 8px 0 12px; } details.tillegg > summary { cursor: pointer; color: var(--dempet); font-size: .9rem; }
.kommentar-celle button { text-align: left; max-width: 22rem; white-space: normal; }
.smuler { margin: 4px 0 10px; font-size: .95rem; }
.knapper-celle details.liten { display: inline-block; margin-left: 8px; } .knapper-celle details.liten > summary { cursor: pointer; color: var(--primaer); display: inline; }
.knapper-celle details.liten form { margin-top: 6px; }
/* v6.4 (#42/#45): mobil, nettbrett og bred skjerm */
@media (max-width: 700px) {
  .topp { gap: 8px; padding: 0 10px; }
  .topp .bruker { flex-wrap: wrap; gap: 6px 10px; width: 100%; justify-content: flex-end; padding-bottom: 6px; }
  .topp .bruker form > span, .topp .sprakvelger, .topp .arvelger label { font-size: .8rem; }
  .topp .bruker form > span { display: none; }
  .tema-knapp { font-size: 0 !important; } .tema-knapp::first-letter { font-size: 1rem; }
  .tilbakemelding-knapp { padding: 4px 8px; font-size: .8rem; }
  main { padding-left: 10px !important; padding-right: 10px !important; }
  h1 { font-size: 1.35rem; } .sidehode { flex-wrap: wrap; gap: 8px; }
  .kort { padding: 12px; }
  td, th { overflow-wrap: anywhere; }
  .felter { grid-template-columns: 1fr !important; }
  .knapper { flex-wrap: wrap; }
  .faner { overflow-x: auto; white-space: nowrap; flex-wrap: nowrap; }
  .dash-fliser { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 701px) and (max-width: 1100px) {      /* nettbrett */
  .rutenett-2 { grid-template-columns: 1fr; }
  .tabellramme table { font-size: .92rem; }
}
@media (min-width: 1600px) {                             /* bred skjerm: bruk plassen, men hold lesbar linjelengde i tekst */
  .med-meny main { max-width: 1700px; }
  .om-side, .innlogging { max-width: 760px; }
}
.dash-kolonner > * { min-width: 0; } .dash-hoved .kort { overflow-x: auto; }
@media (max-width: 700px) { .kal-hode, .kal-dag { min-width: 0; } }
.linje-skjema { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; } .linje-skjema label { flex: 0 1 320px; }
.skjult-fil { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

/* ---------------------------------------------------------------- v6.6 */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.hopp-til-innhold { position: absolute; left: 8px; top: -60px; z-index: 100; background: var(--kort); padding: 8px 12px; border-radius: 8px; }
.hopp-til-innhold:focus { top: 8px; }
main:focus { outline: none; }
.sok-ikon { display: none; color: var(--topp-tekst); font-size: 1.5rem; line-height: 1; padding: 4px 6px; text-decoration: none !important; }
/* fristdialogen: «I dag», underlag, knapper som alltid synes, lagret-melding */
.dato-med-knapp { display: flex; gap: 6px; align-items: center; } .dato-med-knapp input { flex: 1 1 auto; min-width: 0; }
button.i-dag { padding: 4px 8px; font-size: .82rem; white-space: nowrap; }
details.underlag { margin: 8px 0 12px; border: 1px solid var(--linje); border-radius: 8px; padding: 8px 12px; }
details.underlag > summary { cursor: pointer; font-weight: 600; }
details.underlag table.kompakt { margin: 6px 0; } details.underlag caption { text-align: left; font-size: .82rem; }
details.underlag th { text-align: left; padding-right: 16px; font-weight: 500; }
.filliste-kort { list-style: none; margin: 6px 0; padding: 0; } .filliste-kort li { padding: 3px 0; border-top: 1px solid var(--linje); }
.filliste-kort li:first-child { border-top: 0; } .filliste-kort small { margin-left: 6px; }
dialog .knapper-fast { position: sticky; bottom: -1px; background: var(--kort); padding: 10px 0; margin: 0; border-top: 1px solid var(--linje); z-index: 2; }
.melding[data-ok] { margin: 6px 0; }
/* Min liste: filter, «Denne uka», «Vis alle» */
.filterlinje { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 10px; } .filterlinje input[type=search] { flex: 1 1 240px; }
section.uke { border-left: 4px solid var(--haster); }
button.vis-alle { margin: 8px 0 0; }
/* kundetiltak: trinn, samlet feilboks, lagre-linje */
.trinn-nav { position: sticky; top: 0; z-index: 3; display: flex; gap: 6px; flex-wrap: wrap; background: var(--bg); padding: 8px 0; margin-bottom: 8px; border-bottom: 1px solid var(--linje); }
.trinn-nav a { padding: 4px 10px; border: 1px solid var(--linje); border-radius: 999px; background: var(--kort); font-size: .88rem; white-space: nowrap; }
#kt-feil ul { margin: 6px 0 0; padding-left: 20px; } #kt-feil a { color: inherit; text-decoration: underline; }
[aria-invalid="true"], .ugyldig { outline: 2px solid var(--feil); outline-offset: 2px; border-radius: 6px; }
.lagre-linje { position: sticky; bottom: 0; z-index: 3; background: var(--kort); border: 1px solid var(--linje); border-radius: 10px; padding: 10px 14px; margin: 10px 0 20px; box-shadow: 0 -4px 14px rgb(0 0 0 / .06); }
section[id], [id^="f-"] { scroll-margin-top: 64px; }
details.tomme-merknader > summary { cursor: pointer; color: var(--primaer); margin: 6px 0; }
.feilside { max-width: 720px; }
/* tabeller som kort på mobil */
@media (max-width: 700px) {
  .topp .sokeskjema { display: none; } .sok-ikon { display: inline-block; }
  table.kort-mobil, table.kort-mobil tbody, table.kort-mobil tr, table.kort-mobil td { display: block; width: 100%; }
  table.kort-mobil thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  table.kort-mobil tr { padding: 10px 2px; border-top: 1px solid var(--linje); }
  table.kort-mobil td { border: 0; padding: 2px 0; overflow-wrap: normal; word-break: normal; }
  table.kort-mobil td[data-etikett]::before { content: attr(data-etikett) ": "; color: var(--dempet); font-size: .82rem; }
  table.kort-mobil td:first-child { font-weight: 600; } table.kort-mobil td:first-child::before { content: none; }
  table.kort-mobil td:not(:first-child) { display: inline-block; width: auto; margin-right: 14px; }
  table.kort-mobil tr { padding: 8px 2px; }
  .faner { scrollbar-width: thin; -webkit-overflow-scrolling: touch; mask-image: linear-gradient(90deg, #000 85%, transparent); }
  .tabellramme { position: relative; }
  .tabellramme.ruller::after { content: "dra →"; position: sticky; right: 0; float: right; font-size: .75rem; color: var(--dempet); background: var(--kort); padding: 0 4px; }
  .status-linje, .oppsummering { flex-wrap: wrap; }
  .chip { white-space: nowrap; }
  dialog { width: 100vw; max-width: 100vw; max-height: 100dvh; margin: 0; border-radius: 0; }
  .trinn-nav { top: 0; overflow-x: auto; flex-wrap: nowrap; }
  .lagre-linje { border-radius: 0; margin: 10px -10px 0; }
}
/* bred skjerm: bruk bredden */
@media (min-width: 1800px) {
  .med-meny main { max-width: none; }
  .dash-kolonner { grid-template-columns: minmax(0, 3fr) minmax(360px, 1fr); }
}
@media (min-width: 2200px) {
  #min-liste { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; align-items: start; }
  #min-liste > section.uke { grid-column: 1 / -1; }
  .skjema-bredt, .kt-hovedskjema, .om-side { max-width: 1500px; }
}
@media (max-width: 700px) {
  table.matrise th:first-child, table.matrise td:first-child { position: sticky; left: 0; background: var(--kort); z-index: 1; min-width: 120px; max-width: 150px; }
  table.matrise .chip, table.matrise .celle { font-size: .72rem; padding: 3px 6px; white-space: nowrap; }
  table.matrise .sen-bilag { font-size: .62rem; }
}
/* v6.6: virksomhetskart (skjerm og utskrift) */
.vk { text-align: center; }
.vk h2, .vk h3 { text-align: left; }
.vk-tre ul { display: flex; justify-content: center; gap: 14px; padding: 0; margin: 0; list-style: none; flex-wrap: wrap; }
.vk-tre li { display: flex; flex-direction: column-reverse; align-items: center; gap: 8px; }
.vk-tre li > ul { position: relative; padding-bottom: 10px; }
.vk-tre li > ul::after { content: ""; position: absolute; bottom: 0; left: 50%; height: 10px; border-left: 2px solid var(--linje); }
.vk-boks { display: inline-flex; flex-direction: column; gap: 2px; min-width: 170px; max-width: 260px; padding: 8px 12px; border: 2px solid var(--linje);
  border-radius: 10px; background: var(--kort); text-align: left; }
.vk-boks.foretak { border-color: color-mix(in srgb, var(--primaer) 45%, var(--linje)); }
.vk-boks.person { border-style: dashed; }
.vk-boks.kunde { border-color: var(--primaer); border-width: 3px; min-width: 240px; }
.vk-type { font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--dempet); }
.vk-kilde, .vk-stopp { font-size: .72rem; color: var(--dempet); } .vk-stopp { font-style: italic; }
.vk-pil { color: var(--dempet); margin: 6px 0; }
.vk-sentrum { margin: 6px 0 14px; }
.vk-rutenett { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; text-align: left; }
.vk-gruppe { border: 1px solid var(--linje); border-radius: 10px; padding: 8px 12px; } .vk-gruppe h3 { margin: 0 0 6px; font-size: .95rem; }
.kun-skriv { display: none; }
@media print {
  .ikke-skriv, .knapper.ikke-skriv { display: none !important; } .kun-skriv { display: block; }
  .vk-boks, .vk-gruppe { break-inside: avoid; border-color: #777 !important; }
  .vk { border: 0; box-shadow: none; }
}
/* v6.6: arbeidsmengde, masseoppdatering, egenerklæring, PEP */
.arbeid-uker { display: grid; grid-template-columns: repeat(auto-fit, minmax(64px, 1fr)); gap: 8px; align-items: end; }
.arbeid-uke { display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: .85rem; }
.arbeid-stolpe { height: 110px; width: 28px; }
.arbeid-stolpe .bak { fill: var(--linje); } .arbeid-stolpe .fram { fill: var(--primaer); }
.arbeid-stolpe .fram.hoy { fill: var(--haster); } .arbeid-stolpe .fram.over { fill: var(--feil); }
.arbeid-stolpe .full { stroke: var(--tekst); stroke-width: 1; stroke-dasharray: 3 2; vector-effect: non-scaling-stroke; }
details.masse { padding: 8px 14px; } details.masse > summary { cursor: pointer; font-weight: 600; }
.masse-valg { margin-right: 6px; vertical-align: middle; }
.erkl-rad { border-top: 1px solid var(--linje); padding: 8px 0; } .erkl-rad:first-of-type { border-top: 0; }
.pep-boks { border: 1px solid var(--linje); border-radius: 10px; padding: 8px 12px; margin: 6px 0 12px; }
.pep-treff { border-top: 1px solid var(--linje); padding: 8px 0; } .pep-treff.bekreftet { border-left: 4px solid var(--feil); padding-left: 8px; }
.oppstart-banner a { color: inherit; text-decoration: underline; }
/* v6.6: forsiden (kvalio.as) */
.forside { max-width: 1100px; margin: 0 auto; }
.fs-topp { display: flex; justify-content: space-between; align-items: center; padding: 8px 0 24px; }
.fs-topp .produktlogo img { height: 40px; }
.fs-helt { padding: 36px 0 28px; max-width: 760px; }
.fs-helt h1 { font-size: clamp(1.7rem, 4vw, 2.6rem); line-height: 1.15; margin: 6px 0 14px; }
.fs-etikett { text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; color: var(--primaer); font-weight: 700; margin: 0; }
.fs-ingress { font-size: 1.1rem; color: var(--dempet); margin-bottom: 22px; }
.fs-kort { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; margin: 20px 0 36px; }
.fs-kort article { background: var(--kort); border: 1px solid var(--linje); border-radius: 14px; padding: 20px 20px 18px; box-shadow: inset 0 4px 0 var(--merke-teal); }
.fs-kort h2 { font-size: 1.1rem; margin: 0 0 6px; } .fs-kort p { margin: 0; color: var(--dempet); }
.fs-bunn { border-top: 1px solid var(--linje); padding: 18px 0 40px; color: var(--dempet); font-size: .9rem; }
@media (max-width: 700px) { .fs-helt { padding-top: 16px; } .fs-topp .produktlogo img { height: 32px; } }
