/* ==========================================================================
   FOA KGV — Anbudsløypa
   Designsystem etter KGV-UI-spesifikasjonen. Referanse:
   anbudsloypa-standalone_1.html.

   To lag i denne filen:
     1. Designsystemet — tokens, typografi, og komponentene løypa er bygget
        av (topbar, rad, rail, feltoppsett, statuslinje, hvelv, ...).
     2. Appens eksisterende klassenavn (.panel, .btn-primary, .field, ...)
        uttrykt i det SAMME språket, slik at hele piloten skifter uttrykk
        samtidig og markup kan migreres steg for steg uten et mellomstadium
        der halve verktøyet ser gammelt ut.

   HARD REGEL fra spesifikasjonen: ingen hex-verdi direkte i en komponent.
   Alle farger går gjennom tokens. Ingen emoji.
   ========================================================================== */

:root{
  --ground:#F6F7F9;
  --surface:#FFFFFF;
  --surface-2:#F2F4F7;
  --ink:#101828;
  --ink-2:#344054;
  --muted:#667085;
  --faint:#98A2B3;
  --line:#E4E7EC;
  --line-strong:#D0D5DD;
  --accent:#1D4F91;
  --accent-hover:#173F76;
  --accent-ink:#FFFFFF;
  --accent-soft:#EAF0F8;
  --warn:#93500B;
  --warn-soft:#FDF3E4;
  --good:#186B45;
  --good-soft:#E8F4ED;
  --crit:#A32B1E;
  --crit-soft:#FCECEA;
  --r:6px;
  --sans:"IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}

/* Mørkt tema følger ikke lenger maskinens innstilling (Robert 19.9.2026).
   Lyst tema er standard; mørkt bare ved eksplisitt data-theme="dark". */
:root[data-theme="dark"]{
  --ground:#0D1117;
  --surface:#151B23;
  --surface-2:#1C232D;
  --ink:#E6EAF0;
  --ink-2:#C0C8D4;
  --muted:#8B95A5;
  --faint:#6B7484;
  --line:#252D38;
  --line-strong:#343E4C;
  --accent:#84B0EA;
  --accent-hover:#9CC1F1;
  --accent-ink:#0B1421;
  --accent-soft:#182739;
  --warn:#E0AC63;
  --warn-soft:#2B2318;
  --good:#77C79C;
  --good-soft:#152A20;
  --crit:#E59289;
  --crit-soft:#2C1B18;
}

/* ---------------------------------------------------------------- basis -- */

*{box-sizing:border-box}

body{
  margin:0;
  background:var(--ground);
  color:var(--ink);
  font-family:var(--sans);
  font-size:14px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4{margin:0; text-wrap:balance; font-weight:600; letter-spacing:-.014em; line-height:1.22}
h1{font-size:24px}
h2{font-size:17px}
h3{font-size:15px}
h4{font-size:13.5px}
p{margin:0}
a{color:var(--accent)}
button{font:inherit; color:inherit}
:focus-visible{outline:2px solid var(--accent); outline-offset:2px; border-radius:3px}
svg{flex:none}

.mono, .hendelse-tid, .offentlig-side-url, kbd{
  font-family:var(--mono);
  font-variant-numeric:tabular-nums;
  letter-spacing:-.01em;
}

/* ---------------------------------------------------------------- skall -- */

.topbar{
  position:sticky; top:0; z-index:20;
  display:flex; align-items:center; gap:14px;
  padding:0 22px; height:52px;
  background:var(--surface);
  border-bottom:1px solid var(--line);
}
.topbar-brand{
  display:flex; align-items:center; gap:9px;
  font-weight:600; font-size:14px; letter-spacing:-.02em;
}
.topbar-brand a, .topbar-brand span{color:var(--ink); text-decoration:none}
.topbar-brand .mark{
  width:18px; height:18px; border-radius:4px; background:var(--accent);
  display:grid; place-items:center; color:var(--accent-ink); flex:none;
}
.pill-beta{
  font-size:11px; font-weight:500; letter-spacing:.02em;
  background:var(--surface-2); color:var(--muted);
  padding:1px 7px; border-radius:4px;
}
.topbar-nav{
  display:flex; align-items:center; gap:2px;
  margin-left:auto;
}
.topbar-nav a, .topbar-nav .link-button, .toplink{
  background:none; border:0; cursor:pointer;
  padding:6px 10px; border-radius:5px;
  color:var(--muted); font-size:13px; text-decoration:none;
}
.topbar-nav a:hover, .topbar-nav .link-button:hover, .toplink:hover{
  color:var(--ink); background:var(--surface-2);
}
.topbar-nav form{display:inline-flex; margin:0}
.who{
  display:flex; align-items:center; gap:9px; font-size:13px; color:var(--muted);
  padding-left:14px; margin-left:6px; border-left:1px solid var(--line);
}
.avatar{
  width:24px; height:24px; border-radius:4px;
  background:var(--surface-2); color:var(--ink-2);
  display:grid; place-items:center; font-size:10.5px; font-weight:600; letter-spacing:.02em;
}

.page{max-width:860px; margin:0 auto; padding:38px 24px 96px}
.page-sak{max-width:1020px}
.page-narrow{max-width:640px}

/* -------------------------------------------------------------- typografi */

.lede, .subtitle, .helptext{color:var(--muted); font-size:14px; max-width:64ch}
.helptext{font-size:13px}
.field-hint{font-size:12px; color:var(--muted); margin-top:-2px}

/* --------------------------------------------------------------- knapper -- */

.btn, .btn-primary, .btn-secondary{
  display:inline-flex; align-items:center; justify-content:center; gap:7px;
  border:1px solid transparent; border-radius:var(--r); cursor:pointer;
  padding:9px 15px; font-size:13.5px; font-weight:500; letter-spacing:-.002em;
  background:var(--accent); color:var(--accent-ink);
  text-decoration:none; transition:background .12s ease;
}
.btn:hover, .btn-primary:hover{background:var(--accent-hover)}

.btn.ghost, .btn-secondary{
  background:var(--surface); color:var(--ink-2); border-color:var(--line-strong);
}
.btn.ghost:hover, .btn-secondary:hover{background:var(--surface-2)}

.btn.quiet, .link-button{
  background:transparent; color:var(--muted); border-color:transparent; padding:9px 8px;
}
.btn.quiet:hover, .link-button:hover{color:var(--ink); background:var(--surface-2)}

.btn[disabled], .btn-primary[disabled], .btn-secondary[disabled],
.btn:disabled, .btn-primary:disabled, .btn-secondary:disabled{
  opacity:.4; cursor:not-allowed;
}
.btn-remove{
  background:none; border:0; cursor:pointer; color:var(--muted);
  font-size:12.5px; padding:4px 8px; border-radius:4px;
}
.btn-remove:hover{background:var(--crit-soft); color:var(--crit)}

.btn-row, .actions{display:flex; align-items:center; gap:6px; margin-top:22px; flex-wrap:wrap}
.btn-row .spacer, .actions .spacer{flex:1}

/* ----------------------------------------------------------------- tagger */

.tag, .status-tag, .chip-sm{
  display:inline-flex; align-items:center; gap:6px;
  padding:2px 8px; border-radius:4px; font-size:12px; font-weight:500;
  background:var(--surface-2); color:var(--ink-2); white-space:nowrap;
  border:1px solid transparent;
}
.tag.warn, .status-amber{background:var(--warn-soft); color:var(--warn)}
.tag.good, .status-green{background:var(--good-soft); color:var(--good)}
.tag.crit, .status-red{background:var(--crit-soft); color:var(--crit)}
.tag.accent{background:var(--accent-soft); color:var(--accent)}
.status-grey{background:var(--surface-2); color:var(--muted)}

.dot, .status-dot{width:5px; height:5px; border-radius:50%; background:currentColor; flex:none}
.status-dot-green{background:var(--good)}
.status-dot-amber{background:var(--warn)}
.status-dot-red{background:var(--crit)}

/* ------------------------------------------------------------------- kort */

.card, .panel{
  background:var(--surface); border:1px solid var(--line); border-radius:8px;
  padding:18px 20px; margin-bottom:16px;
}
.card{padding:0}
.card.panel{padding:4px 18px}

/* Ikke kort-på-kort: et innfelt panel er en flate, ikke et nytt kort. */
.panel-sunken{
  background:var(--surface-2); border:1px solid var(--line);
  border-radius:var(--r); padding:14px 16px;
}
.placeholder-box{
  border:1px dashed var(--line-strong); border-radius:var(--r);
  padding:18px 16px; color:var(--muted); font-size:13px; text-align:center;
}

.h2row{display:flex; align-items:center; gap:12px; margin-bottom:10px}
.h2row .spacer{flex:1}

/* --------------------------------------------------------------- meldinger */

.notice, .alert{
  display:flex; gap:11px; align-items:flex-start;
  padding:13px 15px; border-radius:var(--r); font-size:13px; line-height:1.5;
  background:var(--accent-soft); color:var(--accent);
  margin-bottom:14px;
}
.notice.grey, .alert-info{background:var(--surface-2); color:var(--ink-2)}
.notice.warn{background:var(--warn-soft); color:var(--warn)}
.alert-success{background:var(--good-soft); color:var(--good)}
.alert-error{background:var(--crit-soft); color:var(--crit)}
.notice b, .alert b{font-weight:600}

/* ------------------------------------------------------------- oversikten */

.page-head{display:flex; align-items:center; gap:16px; margin-bottom:22px}
.page-head .spacer{flex:1}

.filters{display:flex; gap:2px; margin-bottom:12px; border-bottom:1px solid var(--line)}
.filter{
  border:0; background:transparent; cursor:pointer; padding:8px 12px 9px;
  font-size:13px; color:var(--muted); font-weight:450; text-decoration:none;
  border-bottom:2px solid transparent; margin-bottom:-1px;
}
.filter:hover{color:var(--ink)}
.filter[aria-current="true"]{color:var(--ink); font-weight:600; border-bottom-color:var(--accent)}
.filter .ct{color:var(--faint); font-weight:400; margin-left:5px}

.list{overflow:hidden; padding:0}
.row{
  display:grid; grid-template-columns:1fr auto; align-items:center; gap:20px;
  padding:15px 18px; background:none; border:0; border-top:1px solid var(--line);
  cursor:pointer; text-align:left; width:100%; text-decoration:none; color:inherit;
}
.row:first-child{border-top:0}
.row:hover{background:var(--surface-2)}
.row .name{font-size:15px; font-weight:600; letter-spacing:-.012em; margin-bottom:4px; color:var(--ink)}
.row .meta{display:flex; align-items:center; gap:8px; flex-wrap:wrap; color:var(--muted); font-size:12.5px}
.row .sep{color:var(--line-strong)}
.row .todo{display:flex; align-items:center; gap:12px; justify-content:flex-end; font-size:12.5px; color:var(--muted); white-space:nowrap}
.row .arrow{color:var(--line-strong); display:grid}
.row:hover .arrow{color:var(--accent)}

.empty, .table-empty{padding:52px 24px; text-align:center; color:var(--muted); font-size:13.5px}
.empty strong{display:block; font-size:16px; color:var(--ink); margin-bottom:5px}

/* ------------------------------------------------------------------ saken */

.backlink{
  border:0; background:none; cursor:pointer; color:var(--muted); font-size:13px;
  padding:0 0 14px; display:inline-flex; align-items:center; gap:6px; text-decoration:none;
}
.backlink:hover{color:var(--ink)}
.sakhead h1{font-size:22px}
.sakhead .sub{display:flex; align-items:center; gap:9px; margin-top:7px; color:var(--muted); font-size:12.5px; flex-wrap:wrap}
.sakhead .sep{color:var(--line-strong)}

/* Stegvelgeren — den eneste navigasjonen inne i en sak. */
.rail, .tracker{display:flex; gap:8px; margin:26px 0 30px; padding:0; list-style:none}
.step, .tracker-step{
  flex:1; border:0; background:none; cursor:pointer; text-align:left;
  padding:0; display:flex; flex-direction:column; gap:8px;
  color:var(--muted); font-size:12.5px; font-weight:450; text-decoration:none;
}
.step .bar{height:2px; border-radius:1px; background:var(--line); width:100%}
.step .lbl{display:flex; align-items:center; gap:6px; padding-right:4px}
.step .no{
  width:16px; height:16px; border-radius:50%; flex:none; display:grid; place-items:center;
  font-size:10px; font-weight:600; background:var(--surface-2); color:var(--faint);
  font-family:var(--mono);
}
.step[data-state="done"]{color:var(--ink-2)}
.step[data-state="done"] .bar{background:var(--accent)}
.step[data-state="done"] .no{background:var(--accent-soft); color:var(--accent)}
.step[data-state="now"]{color:var(--ink); font-weight:600}
.step[data-state="now"] .bar{background:var(--accent)}
.step[data-state="now"] .no{background:var(--accent); color:var(--accent-ink)}
.step:not([disabled]):not([aria-disabled="true"]):hover{color:var(--ink)}
.step[disabled], .step[aria-disabled="true"]{cursor:default; pointer-events:none}
.step[disabled] .lbl, .step[aria-disabled="true"] .lbl{opacity:.6}

.stepbody{display:flex; flex-direction:column; gap:18px}

/* -------------------------------------------------------------- dokumenter */

.doc, .dokument-rad{
  display:flex; align-items:center; gap:13px; padding:13px 0;
  border-top:1px solid var(--line);
}
.doc:first-child, .dokument-rad:first-child{border-top:0}
.doc .ic{
  width:26px; height:32px; border-radius:3px; flex:none; display:grid; place-items:center;
  background:var(--surface-2); color:var(--muted); font-size:8.5px; font-weight:600; letter-spacing:.03em;
  border:1px solid var(--line);
}
.doc .nm{flex:1; font-size:13.5px; font-weight:500}
.doc .nm small{display:block; color:var(--muted); font-size:12px; font-weight:400}
.doc.todo .ic{background:var(--warn-soft); color:var(--warn); border-color:transparent}
.dokument-preview{
  font-size:13px; color:var(--ink-2); background:var(--surface-2);
  border-radius:var(--r); padding:11px 13px; white-space:pre-wrap;
}

/* ----------------------------------------------------------------- skjema */

.field{display:flex; flex-direction:column; gap:6px; margin-bottom:18px}
.field:last-child{margin-bottom:0}
.field label{font-size:13px; font-weight:600}
.field input, .field textarea, .field select,
input[type=text], input[type=number], input[type=date], input[type=email],
input[type=password], input[type=url], textarea, select{
  font:inherit; font-size:13.5px; color:var(--ink); background:var(--surface);
  border:1px solid var(--line-strong); border-radius:var(--r); padding:9px 11px; width:100%;
}
.field input:focus, .field textarea:focus, .field select:focus,
input:focus, textarea:focus, select:focus{
  outline:2px solid var(--accent); outline-offset:-1px; border-color:transparent;
}
.field textarea, textarea{min-height:84px; resize:vertical; line-height:1.55}
.textarea-lg{min-height:120px}
.upload-row{display:flex; gap:8px; align-items:center; flex-wrap:wrap}
.upload-row input, .upload-row select{width:auto; flex:1; min-width:140px}
.grid-2col{display:grid; grid-template-columns:1fr 1fr; gap:0 16px}
.dyn-row{display:flex; gap:8px; align-items:center; margin-bottom:8px; flex-wrap:wrap}
.dyn-row-head{font-size:12px; color:var(--muted); margin-bottom:6px}
.vekt-input-wrap{display:flex; align-items:center; gap:6px}

.segmented, .chip-group, .kilde-chips, .los-forslag-chips{display:flex; gap:6px; flex-wrap:wrap}
.seg, .chip, .kilde-chip, .los-forslag-chip{
  border:1px solid var(--line-strong); background:var(--surface); border-radius:var(--r);
  padding:8px 13px; cursor:pointer; font-size:13.5px; color:var(--ink-2);
}
.seg[aria-pressed="true"], .chip[aria-pressed="true"], .chip.valgt,
.kilde-chip[aria-pressed="true"]{
  border-color:var(--accent); background:var(--accent-soft); color:var(--accent); font-weight:600;
}

.disclose{
  border:0; background:none; cursor:pointer; color:var(--muted); font-size:13px;
  padding:6px 0; display:inline-flex; align-items:center; gap:7px;
}
.disclose:hover{color:var(--ink)}
.disclose .car{transition:transform .15s ease; display:grid}
.disclose[aria-expanded="true"] .car{transform:rotate(90deg)}
.more{display:none; padding-top:6px}
.more.open{display:block}

/* ------------------------------------------- kunngjøringen: feltoppsettet */

.fieldwork{display:grid; grid-template-columns:248px 1fr; gap:24px; align-items:start}

.vmenu{position:sticky; top:70px; display:flex; flex-direction:column; gap:1px}
.vmenu .vhead{
  font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--faint);
  font-weight:600; padding:0 10px 8px;
}
.vitem{
  display:flex; align-items:center; gap:9px; width:100%; text-align:left;
  border:0; background:none; cursor:pointer; padding:8px 10px; border-radius:var(--r);
  font-size:13.5px; color:var(--ink-2); text-decoration:none;
}
.vitem:hover{background:var(--surface-2)}
.vitem[aria-current="true"]{background:var(--accent-soft); color:var(--accent); font-weight:600}
.vitem .vname{flex:1; white-space:nowrap}
.vitem .vct{
  font-size:11px; font-family:var(--mono); color:var(--faint);
  background:var(--surface-2); border-radius:3px; padding:1px 5px;
}
.vitem[aria-current="true"] .vct{background:var(--surface); color:var(--accent)}
.vitem .vwarn{
  font-size:10.5px; font-weight:600; color:var(--warn); background:var(--warn-soft);
  border-radius:3px; padding:1px 6px; white-space:nowrap;
}
.vitem[aria-current="true"] .vwarn{background:var(--surface)}

.sechead{display:flex; align-items:center; gap:12px; margin-bottom:2px}
.sechead .spacer{flex:1}
.secsub{color:var(--muted); font-size:12.5px; margin-bottom:14px}

.frow{
  display:grid; grid-template-columns:170px minmax(0,1fr) auto auto; gap:14px;
  align-items:center; padding:11px 14px; border-top:1px solid var(--line);
}
.frow:first-of-type{border-top:0}
.frow:hover{background:var(--surface-2)}
.frow .fk{font-size:13px; color:var(--muted)}
.frow .fv{font-size:13.5px; font-weight:500; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.frow .fedit{
  border:0; background:none; cursor:pointer; color:var(--muted); font-size:12.5px;
  padding:3px 7px; border-radius:4px; opacity:.45;
}
.frow:hover .fedit, .frow:focus-within .fedit{opacity:1}
.frow .fedit:hover{background:var(--surface); color:var(--accent)}
.frow.missing{background:var(--warn-soft)}
.frow.missing:hover{background:var(--warn-soft)}
.frow.missing input, .frow.missing select, .frow.missing textarea{
  font:inherit; font-size:13.5px; padding:6px 9px; width:100%;
  border:1px solid var(--warn); border-radius:var(--r); background:var(--surface); color:var(--ink);
}
.frow.missing input:focus{outline:2px solid var(--accent); outline-offset:-1px; border-color:transparent}
.frow form{display:contents}

/* Kildetaggen — mekanismen hele skjermen hviler på. */
.stag{
  font-size:11px; font-family:var(--mono); white-space:nowrap;
  padding:2px 7px; border-radius:3px; background:var(--surface-2); color:var(--faint);
}
.stag.kg{background:var(--accent-soft); color:var(--accent)}
.stag.man{background:var(--surface-2); color:var(--muted)}
.stag.mangler{background:var(--warn); color:var(--surface)}

.addfield{
  border:0; background:none; cursor:pointer; color:var(--accent); font-size:13px;
  padding:11px 14px; display:flex; align-items:center; gap:7px;
  border-top:1px solid var(--line); width:100%;
}
.addfield:hover{background:var(--surface-2)}

.sumbar{
  display:flex; align-items:center; gap:14px; padding:13px 16px; margin-top:18px;
  border:1px solid var(--line); border-radius:8px; background:var(--surface);
  position:sticky; bottom:16px; box-shadow:0 4px 16px -8px rgba(16,24,40,.25);
}
.sumbar .st{flex:1; font-size:13px; color:var(--muted)}
.sumbar .st b{color:var(--ink); font-weight:600}

/* --------------------------------------------------------------- avlesning */

.readout{
  display:flex; align-items:flex-start; gap:18px; padding:18px 20px;
  border:1px solid var(--line); border-radius:8px; background:var(--surface);
}
.ro-num{font-size:30px; font-weight:500; line-height:1.05; letter-spacing:-.03em; color:var(--accent)}
.ro-num span{font-size:16px; color:var(--faint)}
.ro-h{font-size:13.5px; font-weight:600; margin-bottom:3px}

/* ------------------------------------------------------------- spørsmål -- */

.qa, .sporsmal-kort{padding:16px 18px}
.qa .qhead{display:flex; align-items:center; gap:10px; margin-bottom:8px}
.qa .qhead .spacer{flex:1}
.qa .when{color:var(--faint); font-size:12px}
.qa .q{font-size:14px; line-height:1.5; margin-bottom:11px; font-weight:500}
.qa .a{font-size:13.5px; color:var(--muted); padding-left:13px; border-left:2px solid var(--line-strong); line-height:1.55}

/* ---------------------------------------------------------------- tilbud -- */

.vault{text-align:center; padding:40px 24px}
.vault .big{font-size:52px; line-height:1; letter-spacing:-.04em; font-weight:500; margin-bottom:4px}
.vault .cap{color:var(--muted); font-size:13.5px}
.vault .lock{
  display:inline-flex; align-items:center; gap:8px; margin-top:20px;
  font-size:12.5px; color:var(--muted); padding:6px 12px; border-radius:999px; background:var(--surface-2);
}
.countdown, .deadline-strip{
  display:flex; justify-content:center; gap:30px; margin-top:24px;
  padding-top:22px; border-top:1px solid var(--line);
}
.cd, .deadline-card{text-align:center}
.cd .n{font-size:22px; line-height:1.1; font-weight:500; font-family:var(--mono)}
.cd .l{font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.07em; margin-top:3px}

/* --------------------------------------------------------------- tabeller */

.tablewrap{overflow-x:auto; border-radius:8px; border:1px solid var(--line); background:var(--surface)}
table{border-collapse:collapse; width:100%; font-size:13.5px}
th, td{padding:11px 16px; text-align:left; border-top:1px solid var(--line); white-space:nowrap}
thead th{
  border-top:0; font-size:11px; text-transform:uppercase; letter-spacing:.07em;
  color:var(--muted); font-weight:600; background:var(--surface-2); padding:9px 16px;
}
td.num, th.num{text-align:right; font-variant-numeric:tabular-nums}
td .lnk{color:var(--accent); cursor:pointer; background:none; border:0; padding:0; font-size:13px}
td .lnk:hover{text-decoration:underline}

/* ------------------------------------------------------------- tildeling -- */

.pick{display:flex; flex-direction:column; gap:6px}
.pickrow{
  display:flex; align-items:center; gap:13px; padding:13px 16px; cursor:pointer;
  border:1px solid var(--line); border-radius:var(--r); background:var(--surface);
  text-align:left; width:100%;
}
.pickrow:hover{border-color:var(--line-strong)}
.pickrow[aria-pressed="true"]{border-color:var(--accent); background:var(--accent-soft)}
.pickrow .radio{width:16px; height:16px; border-radius:50%; border:1.5px solid var(--line-strong); flex:none; display:grid; place-items:center}
.pickrow[aria-pressed="true"] .radio{border-color:var(--accent)}
.pickrow[aria-pressed="true"] .radio::after{content:""; width:8px; height:8px; border-radius:50%; background:var(--accent)}
.pickrow .nm{flex:1; font-size:14px; font-weight:500}
.pickrow .sc{font-size:13px; color:var(--muted)}

.done-hero{text-align:center; padding:46px 24px}
.done-hero .ring{
  width:44px; height:44px; border-radius:50%; background:var(--good-soft); color:var(--good);
  display:grid; place-items:center; margin:0 auto 16px;
}
.done-hero h2{font-size:19px; margin-bottom:7px}

/* ------------------------------------------------------- regelverksbanner */

.regelverk-banner{
  border:1px solid var(--line); border-left:3px solid var(--accent);
  border-radius:var(--r); background:var(--surface); padding:14px 16px; margin-bottom:16px;
}
.regelverk-banner h3{font-size:14px; margin-bottom:6px}
.regelverk-hjemmel, .hendelse-type{font-size:12px; color:var(--muted)}
.regelverk-punkt{font-size:13px; color:var(--ink-2); margin-top:6px}
.regelverk-sperre{border-left-color:var(--warn); background:var(--warn-soft)}

.klar-liste{list-style:none; padding:0; margin:0}
.klar-liste li{display:flex; gap:10px; align-items:flex-start; padding:9px 0; border-top:1px solid var(--line); font-size:13px}
.klar-liste li:first-child{border-top:0}
.vakt-total{font-size:13px; font-weight:600; margin-bottom:8px}

.risiko-rad{display:flex; gap:10px; align-items:flex-start; padding:10px 0; border-top:1px solid var(--line)}
.risiko-tekst{font-size:13px; color:var(--ink-2)}
.oppgave-list{list-style:none; padding:0; margin:0}
.oppgave-list li{padding:8px 0; border-top:1px solid var(--line); font-size:13px}
.oppgave-list li:first-child{border-top:0}

.kode-blokk{
  font-family:var(--mono); font-size:12px; background:var(--surface-2);
  border:1px solid var(--line); border-radius:var(--r); padding:12px 14px;
  overflow-x:auto; white-space:pre;
}
.mangler{color:var(--warn); font-weight:600}
.honeypot-felt{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}

/* --------------------------------------------------------------- Los-chat */

.los-faner{display:flex; gap:2px; border-bottom:1px solid var(--line); margin-bottom:14px}
.los-fane-knapp{
  border:0; background:none; cursor:pointer; padding:8px 12px 9px; font-size:13px;
  color:var(--muted); border-bottom:2px solid transparent; margin-bottom:-1px;
}
.los-fane-knapp[aria-selected="true"]{color:var(--ink); font-weight:600; border-bottom-color:var(--accent)}
.los-samtale{display:flex; flex-direction:column; gap:10px; max-height:420px; overflow-y:auto; padding-right:4px}
.los-boble{padding:11px 13px; border-radius:var(--r); font-size:13.5px; line-height:1.55; max-width:88%}
.los-boble-los{background:var(--surface-2); color:var(--ink)}
.los-boble-bruker{background:var(--accent-soft); color:var(--accent); align-self:flex-end}
.los-boble-system{background:var(--warn-soft); color:var(--warn); font-size:12.5px}
.los-avsender{font-size:11px; text-transform:uppercase; letter-spacing:.07em; color:var(--faint); font-weight:600; margin-bottom:3px}
.los-input-rad{display:flex; gap:8px; margin-top:12px}
.los-tenker, .los-tom{color:var(--muted); font-size:13px; padding:10px 0}
.los-feil-rad{color:var(--crit); font-size:13px}

/* ------------------------------------------------------------ motorpanel */

.motor-panel, .motor-subpanel{
  background:var(--surface-2); border:1px solid var(--line);
  border-radius:var(--r); padding:14px 16px; margin-top:12px;
}
.motor-kort{background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:12px 14px; margin-bottom:8px}
.motor-kort-head{display:flex; align-items:center; gap:10px; margin-bottom:5px}
.motor-kort-navn{font-size:13.5px; font-weight:600}
.motor-kort-tekst{font-size:13px; color:var(--ink-2)}
.motor-detaljer{font-size:12.5px; color:var(--muted); margin-top:6px}

.cpv-treff{border:1px solid var(--line); border-radius:var(--r); padding:8px 11px; margin-bottom:6px; cursor:pointer; font-size:13px}
.cpv-treff:hover{background:var(--surface-2)}
.cpv-valgt{border-color:var(--accent); background:var(--accent-soft); color:var(--accent)}

/* ----------------------------------------------------------- kommandopalett */

.kpalett-apne-knapp{
  display:inline-flex; align-items:center; gap:7px; background:var(--surface-2);
  border:1px solid var(--line); border-radius:var(--r); cursor:pointer;
  padding:5px 9px; font-size:12.5px; color:var(--muted);
}
.kpalett-apne-knapp:hover{color:var(--ink); border-color:var(--line-strong)}
.kpalett-apne-knapp kbd{font-size:11px; background:var(--surface); border:1px solid var(--line); border-radius:3px; padding:0 4px}
.kpalett-bakteppe{
  position:fixed; inset:0; z-index:50; background:rgba(16,24,40,.36);
  display:flex; align-items:flex-start; justify-content:center; padding-top:12vh;
}
.kpalett-bakteppe[hidden]{display:none}
.kpalett-panel{
  width:min(620px, calc(100vw - 32px)); background:var(--surface);
  border:1px solid var(--line); border-radius:8px; overflow:hidden;
  box-shadow:0 24px 48px -24px rgba(16,24,40,.45);
}
.kpalett-input-rad{display:flex; align-items:center; gap:10px; padding:12px 14px; border-bottom:1px solid var(--line)}
.kpalett-input-rad input{border:0; padding:0; font-size:15px; outline:0}
.kpalett-input-rad input:focus{outline:0}
.kpalett-input-ikon{color:var(--faint)}
.kpalett-esc-hint{font-size:11px; color:var(--faint); background:var(--surface-2); border-radius:3px; padding:1px 6px}
.kpalett-liste{max-height:52vh; overflow-y:auto; padding:6px}
.kpalett-gruppe-tittel{font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--faint); font-weight:600; padding:10px 10px 5px}
.kpalett-rad{display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:var(--r); cursor:pointer; font-size:13.5px}
.kpalett-rad:hover, .kpalett-rad[aria-selected="true"]{background:var(--accent-soft); color:var(--accent)}
.kpalett-rad-ikon{color:var(--faint)}
.kpalett-rad-tekst{flex:1}
.kpalett-rad-status{font-size:12px; color:var(--muted)}
.kpalett-tom{padding:22px; text-align:center; color:var(--muted); font-size:13px}

/* --------------------------------------------------------------- hendelser */

.hendelse-tid{font-size:12px; color:var(--faint)}
.nytt-post{padding:16px 0; border-top:1px solid var(--line)}
.nytt-post:first-child{border-top:0}
.nytt-post-head{display:flex; align-items:baseline; gap:10px; margin-bottom:6px}
.nytt-dato{font-size:12px; color:var(--faint); font-family:var(--mono)}
.nytt-punkter{margin:6px 0 0; padding-left:18px; color:var(--ink-2); font-size:13.5px}

.offentlig-side-url{
  font-size:12.5px; background:var(--surface-2); border:1px solid var(--line);
  border-radius:var(--r); padding:8px 11px; display:block; overflow-x:auto; white-space:nowrap;
}

/* ------------------------------------------------------------------ mobil */

@media (max-width:860px){
  .fieldwork{grid-template-columns:1fr; gap:16px}
  .vmenu{position:static; flex-direction:row; overflow-x:auto; gap:4px; padding-bottom:6px}
  .vmenu .vhead{display:none}
  .vitem{width:auto}
}
@media (max-width:720px){
  .page{padding:26px 16px 80px}
  .rail{overflow-x:auto; gap:6px}
  .step{min-width:96px}
  .row{grid-template-columns:1fr; gap:9px}
  .row .todo{justify-content:flex-start}
  .frow{grid-template-columns:1fr auto; gap:6px 10px}
  .frow .fk{grid-column:1/-1}
  .grid-2col{grid-template-columns:1fr}
  .topbar{padding:0 14px; gap:6px}
  .who span{display:none}
}
@media (prefers-reduced-motion: reduce){ *{transition:none !important} }
/* ==========================================================================
   PILOT-SKALL (foa.no/kgv, 27.8.2026) — toppbar + venstremeny etter
   FOA Pro-malen, i KGV-spesifikasjonens blå tokenpalett. Alt under bruker
   tokens fra :root over; venstremenyen har sine egne mørke flatefarger
   (bevisst like i lys og mørk modus).
   ========================================================================== */

body{padding-top:50px}
body.med-meny{padding-left:196px}

.pilot-topp{position:fixed;top:0;left:0;right:0;height:50px;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px;padding:0 20px;z-index:90}
.pilot-merke{display:flex;align-items:baseline;gap:7px;text-decoration:none}
.pm-foa{font-weight:600;font-size:17px;color:var(--ink);letter-spacing:-.014em}
.pm-kgv{font-weight:600;font-size:17px;color:var(--accent);letter-spacing:-.014em}
.pilot-fyll{flex:1}
.pilot-topp .who{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--ink-2)}

.pilot-meny{position:fixed;left:0;top:50px;bottom:0;width:196px;background:#122C4C;display:flex;flex-direction:column;padding:14px 10px;gap:1px;z-index:80;overflow-y:auto}
.pm-punkt{display:flex;width:100%;box-sizing:border-box;align-items:center;gap:10px;min-height:36px;padding:0 10px;border:0;background:none;border-radius:4px;color:rgba(255,255,255,.62);text-decoration:none;font-family:var(--sans);font-size:13px;font-weight:500;line-height:1.2;cursor:pointer;text-align:left;position:relative}
.pm-punkt:hover{background:rgba(255,255,255,.09);color:#fff;text-decoration:none}
.pm-punkt.pm-on{background:rgba(255,255,255,.10);color:#fff}
.pm-punkt.pm-on::before{content:"";position:absolute;left:-6px;top:8px;bottom:8px;width:3px;border-radius:2px;background:#7FB0E8}
.pm-punkt svg{width:18px;height:18px;flex:0 0 auto;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pm-stegnr{width:18px;height:18px;flex:0 0 auto;border-radius:50%;border:1.5px solid currentColor;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10px;font-weight:500}
.pm-stegnr svg{width:11px;height:11px;stroke-width:2}
.pm-punkt.pm-on .pm-stegnr{background:#7FB0E8;border-color:#7FB0E8;color:#122C4C}
.pm-laast{opacity:.42;cursor:not-allowed}
.pm-laast:hover{background:none;color:rgba(255,255,255,.62)}
.pm-etikett{margin:14px 10px 5px;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.42)}
.pm-saknavn{margin:0 10px 7px;font-size:12px;line-height:1.35;color:rgba(255,255,255,.80);font-weight:500}
.pm-skille{height:1px;background:rgba(255,255,255,.12);margin:11px 6px}
.pm-fyll{flex:1}
.pm-loggut-form{margin:0}

/* --- innlogging ---------------------------------------------------------- */
.page-auth{max-width:none;display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 50px);padding:24px}
.authkort{width:min(380px,100%);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:34px 34px 28px}
.auth-merke{display:flex;gap:7px;margin-bottom:8px}
.auth-merke .pm-foa,.auth-merke .pm-kgv{font-size:20px}
.authkort h1{font-size:18px;margin:0 0 4px}
.auth-under{margin:0 0 20px;color:var(--muted);font-size:13px}
.authkort label{display:block;font-size:12.5px;font-weight:500;color:var(--ink-2);margin:0 0 5px}
.authkort input{width:100%;box-sizing:border-box;border:1px solid var(--line-strong);border-radius:4px;padding:9px 11px;font:inherit;font-size:13.5px;margin-bottom:14px;background:var(--surface);color:var(--ink)}
.authkort input:focus{outline:2px solid var(--accent);outline-offset:-1px}
.auth-knapp{width:100%;margin-top:4px}
.auth-fot{margin:18px 0 0;font-size:12px;color:var(--muted)}

/* --- fremdriftsviser i oversikten ---------------------------------------- */
.lop{display:inline-flex;gap:3px;align-items:center;flex:0 0 auto}
.lop i{width:13px;height:4px;border-radius:2px;background:var(--line-strong)}
.lop i.f{background:var(--accent)}
.lop i.g{background:var(--good)}

/* --- arkivtabell ---------------------------------------------------------- */
.page-bred{max-width:1140px}
.arktabell{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow-x:auto}
.arktabell table{width:100%;border-collapse:collapse;font-size:12.5px}
.arktabell th{text-align:left;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:9px 13px;border-bottom:1px solid var(--line-strong);white-space:nowrap;background:var(--surface-2)}
.arktabell td{padding:8px 13px;border-bottom:1px solid var(--line);white-space:nowrap;color:var(--ink-2);vertical-align:middle}
.arktabell tr:last-child td{border-bottom:0}
.arktabell tbody tr:hover td{background:var(--ground)}
.arktabell .knavn a{font-weight:600;color:var(--ink);text-decoration:none}
.arktabell .knavn a:hover{color:var(--accent);text-decoration:underline}
.arktabell .tall{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right}
.arktabell .dato{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--muted)}
.arktabell a{color:var(--accent)}

/* --- hendelseslogg -------------------------------------------------------- */
.tidslinje{position:relative;padding-left:18px}
.tidslinje::before{content:"";position:absolute;left:4px;top:10px;bottom:10px;width:1px;background:var(--line)}
.hendelse{position:relative;display:grid;grid-template-columns:168px 1fr;gap:14px;padding:6px 0;font-size:13px}
.hendelse::before{content:"";position:absolute;left:-17px;top:13px;width:7px;height:7px;border-radius:50%;background:var(--line-strong)}
.hendelse.viktig::before{background:var(--accent)}
.hendelse .naar{font-size:12px;color:var(--muted);white-space:nowrap;padding-top:1px}
.hendelse .hva{color:var(--ink-2)}
.hendelse .hva b{font-weight:600;color:var(--ink)}
.hendelse .aktor{color:var(--faint);font-size:12px}
.rapportnote{margin:16px 0 0;font-size:12.5px;color:var(--muted)}

/* --- assistent ------------------------------------------------------------ */
.assistent-ramme{max-width:720px}
.assistent-trad{margin-bottom:14px}
.melding{display:flex;gap:11px;margin-bottom:14px}
.avatar-a,.avatar-b{width:28px;height:28px;flex:0 0 28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:600}
.avatar-a{background:var(--accent);color:var(--accent-ink)}
.avatar-b{background:var(--surface-2);color:var(--ink-2)}
.melding .boble{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:11px 14px;font-size:13.5px;max-width:600px;white-space:pre-wrap}
.melding.bruker .boble{background:var(--surface-2);border-color:var(--surface-2)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.chips button{background:var(--surface);border:1px solid var(--line-strong);border-radius:999px;padding:6px 13px;font:inherit;font-size:12.5px;color:var(--ink-2);cursor:pointer}
.chips button:hover{border-color:var(--accent);color:var(--accent)}
.skrivefelt{display:flex;gap:10px;align-items:flex-end}
.skrivefelt textarea{flex:1;border:1px solid var(--line-strong);border-radius:var(--r);padding:10px 12px;font:inherit;font-size:13.5px;resize:vertical;background:var(--surface);color:var(--ink)}
.skrivefelt textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}

@media (max-width: 860px){
  body.med-meny{padding-left:0}
  .hendelse{grid-template-columns:1fr}
  .hendelse .naar{padding-top:0}
}

/* --- ny konkurranse: manuell opprettelse bak utfolding -------------------- */
details.manuell-opprettelse{margin-top:18px}
details.manuell-opprettelse > summary{cursor:pointer;font-size:13px;font-weight:500;color:var(--muted);padding:6px 0}
details.manuell-opprettelse > summary:hover{color:var(--accent)}
details.manuell-opprettelse[open] > summary{color:var(--ink);margin-bottom:4px}

/* --- assistent v2: FOA Pro-svarmotor, ryddet oppsett (27.8.2026) ---------- */
.assistent-ramme{max-width:760px}
.melding{display:grid;grid-template-columns:28px minmax(0,1fr);gap:11px;margin-bottom:14px;align-items:start}
.melding .boble{min-width:0;max-width:none;overflow-wrap:break-word;word-break:break-word;white-space:normal;padding:12px 15px;font-size:13.5px;line-height:1.55}
.melding .boble p{margin:0 0 9px}
.melding .boble p:last-child,.melding .boble ul:last-child,.melding .boble ol:last-child{margin-bottom:0}
.melding .boble ul,.melding .boble ol{margin:0 0 9px;padding-left:20px}
.melding .boble li{margin:0 0 4px}
.melding .boble h3{font-size:13.5px;font-weight:600;margin:12px 0 6px;letter-spacing:0}
.melding .boble code{font-family:var(--mono);font-size:12.5px;background:var(--surface-2);border-radius:3px;padding:1px 4px}
.melding .boble hr.svar-skille{border:0;border-top:1px solid var(--line);margin:10px 0}
.svar-status{color:var(--muted);font-style:italic}
.kilder{border-top:1px solid var(--line);margin-top:10px;padding-top:9px}
.kilder-tittel{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:5px}
.kilde-rad{display:flex;gap:8px;align-items:baseline;font-size:12.5px;margin-bottom:3px;min-width:0;flex-wrap:wrap}
.kilde-nr{font-family:var(--mono);font-size:11px;color:var(--faint);flex:0 0 auto}
.kilde-rad a{color:var(--accent);text-decoration:none;overflow-wrap:anywhere}
.kilde-rad a:hover{text-decoration:underline}
.kilde-ref{font-family:var(--mono);font-size:11.5px;color:var(--muted)}
.kilde-type{color:var(--faint);font-size:11.5px;flex:0 0 auto}
.chips button{max-width:100%;text-align:left;white-space:normal;line-height:1.35}

/* --- meddelelse: brev-flyt (27.8.2026) ------------------------------------ */
.brev-skjema{display:flex;gap:8px;align-items:center;margin-top:8px;flex-wrap:wrap}
.brev-skjema input[type=file]{font-size:12.5px;max-width:320px}
.medd-tabell td{vertical-align:top}
.medd-tabell .lev-orgnr{font-size:11.5px;color:var(--muted);margin-left:6px}
.medd-brevref{color:var(--muted);font-size:12.5px}
.medd-handling form{display:inline}
.lenkeknapp-varsom{color:var(--crit)}
.medd-hindringer{margin:0 0 12px;padding-left:18px;font-size:12.5px;color:var(--warn)}
.antall-hint{font-family:var(--mono);font-size:12px;color:var(--faint);font-weight:400}
.tabellrull{overflow-x:auto}

/* --- rail 19.9.2026: to løyper som trekkspill + «Åpen konkurranse» --------
   Mønster fra Anbudsradars sentralskall (rail-omraade / rail-steg). Bredde
   248 px. Under 860 px blir railen en skuff som åpnes fra hamburgerknappen
   i toppfeltet; den forsvinner ikke lenger. ------------------------------- */
body.med-meny{padding-left:248px}
.pilot-meny{width:248px;padding:8px 12px 14px;background:#0F2B47;gap:1px}
.meny-knapp{display:none;width:40px;height:40px;border:0;background:none;border-radius:6px;color:var(--ink);align-items:center;justify-content:center;cursor:pointer;margin-left:-8px}
.meny-knapp svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round}
.meny-bakteppe{display:none;position:fixed;inset:50px 0 0 0;background:rgba(15,43,71,.45);z-index:79}
.pm-etikett{margin:12px 11px 4px;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8FA4B5}
.pm-etikett-sak{color:#C9A227}
.pm-topp{min-height:42px;font-size:13.5px;font-weight:700;color:#EEF3F7;letter-spacing:.01em}
.pm-topp svg{width:19px;height:19px;stroke-width:1.8}
.pm-punkt.pm-on::before{background:#C9A227}
.pm-antall{margin-left:auto;font-size:11.5px;font-weight:500;color:#93A9BC;font-variant-numeric:tabular-nums}
.pm-omraade{display:block;margin:1px 0}
.pm-omraade.pm-aapen>.pm-trekk{background:rgba(255,255,255,.07);color:#fff}
.pm-chev{margin-left:auto;flex:none;font-size:18px;line-height:1;color:#8FA4B5;transition:transform .12s}
.pm-omraade.pm-aapen .pm-chev{transform:rotate(90deg)}
.pm-stegliste{display:flex;flex-direction:column;margin:1px 0 4px 14px;padding:0 0 0 6px;border-left:1px solid rgba(255,255,255,.2)}
.pm-stegliste[hidden]{display:none}
.pm-steg{display:flex;align-items:center;gap:7px;min-height:28px;padding:3px 6px 3px 8px;border-radius:4px;color:#B9C7D4;font-size:12.5px;font-weight:450;line-height:1.3;text-decoration:none;white-space:nowrap;position:relative}
.pm-steg:hover{background:rgba(255,255,255,.07);color:#fff;text-decoration:none}
.pm-steg.pm-on{background:rgba(255,255,255,.12);color:#fff;font-weight:600;box-shadow:inset 3px 0 #C9A227}
.pm-steg svg{width:15px;height:15px;flex:0 0 auto;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pm-steg .pm-stegnr{width:17px;height:17px;border:1px solid rgba(255,255,255,.35);font-family:var(--sans);font-size:9.5px;font-weight:700;font-style:normal;color:#B9C7D4;display:grid;place-items:center;flex:none}
.pm-steg.pm-on .pm-stegnr{background:#C9A227;border-color:#C9A227;color:#0F2B47}
.pm-steg .pm-stegnr svg{width:10px;height:10px;stroke-width:2.4}
.pm-stegnavn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.pm-sak{margin:2px 6px 6px;padding:9px 10px 8px;border-radius:8px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14)}
.pm-sak b{display:block;font-size:12.5px;line-height:1.35;color:#fff;font-weight:600}
.pm-sakssteg.pm-done .pm-stegnr{background:#2E7D4F;border-color:#2E7D4F;color:#fff}
.pm-sakssteg.pm-now{color:#fff;font-weight:600}
.pm-naa{margin-left:auto;font-size:10.5px;color:#fff}
.pm-sakverktoy{border-left-color:transparent;margin-top:0}
.pm-laast{opacity:.45;cursor:not-allowed}
.pm-laast:hover{background:none;color:#B9C7D4}
.page-over{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.page-intro{margin:-6px 0 18px;font-size:14px;color:var(--ink-2);max-width:760px;line-height:1.5}
.btn-sekundaer{background:var(--surface);color:var(--ink);border:1px solid var(--line-strong)}

@media (max-width: 860px){
  .meny-knapp{display:flex}
  .pilot-meny{display:flex;transform:translateX(-100%);transition:transform .16s ease;box-shadow:none;width:280px}
  body.meny-aapen .pilot-meny{transform:none;box-shadow:8px 0 24px rgba(0,0,0,.25)}
  body.meny-aapen .meny-bakteppe{display:block}
}

/* --- rail runde 2 (19.9.2026): rødt handlingstall + Hele flyten ----------- */
.pm-teller{margin-left:auto;display:inline-flex;align-items:center;gap:4px}
.pm-teller .pm-antall{margin-left:0}
.pm-nytt{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#C8102E;color:#fff;font-size:11px;font-weight:800;line-height:1;box-sizing:border-box}
.pm-nytt-sum{margin-left:auto}
.pm-nytt-sum + .pm-chev{margin-left:0}
.pm-omraade.pm-aapen .pm-nytt-sum{display:none}
.flyt{display:grid;grid-template-columns:130px 28px minmax(0,1fr);gap:0 16px}
.flyt-dato{font-size:12.5px;color:var(--ink-2);padding-top:14px;text-align:right;font-variant-numeric:tabular-nums;line-height:1.4}
.flyt-senere{color:var(--muted)}
.flyt-kule{position:relative;display:flex;justify-content:center;padding-top:14px}
.flyt-kule::before{content:"";position:absolute;top:0;bottom:0;left:13px;width:2px;background:var(--line)}
.flyt-nr{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);background:var(--surface);display:grid;place-items:center;font-style:normal;font-size:10px;font-weight:700;color:var(--ink-2);position:relative;z-index:1}
.flyt-nr.done{background:#2E7D4F;border-color:#2E7D4F;color:#fff}
.flyt-nr.now{background:#C9A227;border-color:#C9A227;color:#0F2B47}
.flyt-nr svg{width:11px;height:11px;stroke:#fff;stroke-width:2.6;fill:none;stroke-linecap:round;stroke-linejoin:round}
.flyt-innhold{padding:10px 0 18px;min-width:0}
.flyt-innhold h3{margin:0 0 6px;font-size:15px;font-weight:600}
.flyt-naa{background:rgba(201,162,39,.12);border:1px solid #C9A227;border-radius:8px;padding:12px 14px;margin:4px 0 14px}
.flyt-merke{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#C9A227;margin-left:6px}
.flyt-hendelser{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink)}
.flyt-hendelser .mono{color:var(--muted);font-size:12px;margin-right:8px}
.flyt-tom{margin:0;font-size:13px;color:var(--ink-2)}
@media (max-width: 860px){.flyt{grid-template-columns:28px minmax(0,1fr)}.flyt-dato{display:none}}

/* --- runde 1 (20.9.2026): to løyper i railen + oversikt med stegstripe ------ */
.pm-portefolje .pm-steg.pm-her{color:#fff}
.pm-portefolje .pm-steg.pm-her .pm-stegnr{border-color:#C9A227;color:#C9A227}
.pm-under{display:flex;flex-direction:column;margin:0 0 2px 24px;padding-left:6px;border-left:1px solid rgba(255,255,255,.15)}
.pm-under a{display:flex;align-items:center;gap:7px;min-height:26px;padding:2px 6px 2px 8px;border-radius:4px;color:#B9C7D4;font-size:12px;text-decoration:none}
.pm-under a:hover{background:rgba(255,255,255,.07);color:#fff;text-decoration:none}
.pm-under a.pm-on{color:#fff;font-weight:600;background:rgba(255,255,255,.10)}
.pm-under i{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.6;flex:none}
.row.row-varsel{background:#FFFDF7}
.list .row{grid-template-columns:minmax(0,1fr) 190px auto}
.row .hvorlangt{display:flex;flex-direction:column;gap:5px;padding:0 6px}
.stripe{display:inline-flex;gap:3px}
.stripe i{width:24px;height:6px;border-radius:3px;background:var(--line);display:block}
.stripe i.d{background:#2E7D4F}
.stripe i.n{background:#C9A227}
.stegnavn{font-size:12.5px;color:var(--ink-2);font-weight:500}
.dot.dot-nytt{background:#C8102E}
.ct.ct-nytt{background:#C8102E;color:#fff}
.page-head + .page-intro{margin-top:-4px}
@media (max-width: 860px){.list .row{grid-template-columns:1fr}.row .hvorlangt{padding:0}}

/* --- runde 2 (20.9.2026): Lag/Kontroller/Send inn kunngjøring -------------- */
.deler{display:flex;align-items:flex-end;gap:2px;border-bottom:2px solid var(--line);margin:14px 0 18px;flex-wrap:wrap}
.deler a{display:flex;align-items:center;gap:8px;padding:11px 14px;font-size:14px;font-weight:500;color:var(--ink-2);text-decoration:none;border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap}
.deler a:hover{color:var(--ink);text-decoration:none}
.deler a.on{color:var(--ink);font-weight:600;border-bottom-color:var(--accent)}
.deler .b{min-width:16px;height:16px;border-radius:8px;padding:0 5px;font-size:10.5px;font-weight:700;display:grid;place-items:center;background:var(--surface-2);color:var(--ink-2)}
.deler .b.r{background:#C8102E;color:#fff}
.deler .b.ok{background:var(--good-soft);color:var(--good)}
.kg-del[hidden]{display:none}
.kg-rader{margin-bottom:14px}
.kg-grunndata{margin-top:0}
.kg-skjemafot{align-items:center;gap:12px}
.kg-kontroll,.kg-send{display:flex;flex-direction:column;gap:14px}
.kg-kontroll .panel,.kg-send .panel,.kg-send .panel-sunken{margin:0}
.kg-detaljer{margin:0 0 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.kg-detaljer>summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:14px 18px;position:relative}
.kg-detaljer>summary::-webkit-details-marker{display:none}
.kg-detaljer>summary::after{content:"›";position:absolute;right:18px;top:12px;font-size:20px;color:var(--muted);transition:transform .12s}
.kg-detaljer[open]>summary::after{transform:rotate(90deg)}
.kg-detaljer[open]>summary{border-bottom:1px solid var(--line)}
.kg-sum-tittel{font-size:15px;font-weight:600;color:var(--ink)}
.kg-sum-hint{font-size:13px;color:var(--ink-2)}
.kg-detaljer>.panel{border:0;border-radius:0;margin:0}

/* --- runde 3 (20.9.2026): tildeling i visninger, innsyn, klager, til protokollen */
.lenke-avlys{color:var(--crit)}
.innsyn-svar{display:flex;flex-direction:column;gap:6px;font-size:12.5px}
.innsyn-svar input[type=text]{font:inherit;font-size:12.5px;padding:6px 8px;border:1px solid var(--line-strong);border-radius:4px}
.tilprot{margin-top:18px;border-color:#C9A227;background:#FBF6E6}
.tilprot h2{font-size:15px}
.tilprot textarea{width:100%;box-sizing:border-box;font:inherit;font-size:13.5px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);color:var(--ink);resize:vertical}

/* --- runde 4 (20.9.2026): leverandørsiden --------------------------------- */
dl.dokument-preview{white-space:normal;display:grid;grid-template-columns:minmax(120px,max-content) 1fr;column-gap:18px;row-gap:8px;margin:0}
dl.dokument-preview dt{font-weight:600;color:var(--ink)}
dl.dokument-preview dd{margin:0}
.pilot-fot{max-width:860px;margin:0 auto;padding:4px 24px 40px;color:var(--ink-2);font-size:13px;line-height:1.5;border-top:1px solid var(--line)}
.pilot-fot p{margin:12px 0 0}
@media (max-width:640px){
  dl.dokument-preview{grid-template-columns:1fr;row-gap:2px}
  dl.dokument-preview dd{margin-bottom:8px}
  .pilot-fot{padding:4px 16px 32px}
}

/* --- runde 5 (20.9.2026): prekvalifisering ------------------------------- */
.kg-totrinn[hidden]{display:none}
.vurd-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.vurd-form select,.vurd-form input[type=text]{font-size:13px;padding:5px 8px}
.vurd-form input[type=text]{min-width:220px}

/* --- runde 8b (23.9.2026): kort hovedmeny, «Vis etter», kunngjøringer ------ */
.pm-portefolje .pm-prikk{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.5;flex:none;margin:0 5px}
.pm-portefolje .pm-steg.pm-on .pm-prikk{background:#C9A227;opacity:1}
.ov-vis{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 16px}
.ov-vis-etikett{font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ov-vis .seg{padding:6px 12px;font-size:13px;text-decoration:none}
.ov-vis .seg:hover{border-color:var(--accent);text-decoration:none}
.ov-vis .seg[aria-current="true"]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}
.liste-etikett{display:flex;align-items:baseline;gap:8px;margin:24px 0 8px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.liste-etikett .antall-hint{letter-spacing:0}
.liste-etikett-hint{font-size:12.5px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--muted);margin-left:2px}
.ov-gruppe:first-of-type .liste-etikett{margin-top:14px}
.ny-valg{margin:16px 0 28px}
.ny-valg .pickrow{cursor:default}
.ny-valg .pickrow:hover{border-color:var(--line)}
.ny-valg .pickrow[data-valgt]{border-color:var(--accent);background:var(--accent-soft)}
.ny-valg .pickrow[data-valgt] .radio{border-color:var(--accent)}
.ny-valg .pickrow[data-valgt] .radio::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent)}
.ny-valg .pickrow[aria-disabled="true"]{opacity:.62}
.ny-valg .pickrow .nm{line-height:1.4}
.ny-valg .pickrow .tag{flex:none;margin-left:10px}
.ny-konk-tittel{margin:0 0 4px}
tr.rad-varsel td{background:#FFFDF7}
.arktabell td.bryt{white-space:normal;min-width:220px}
.kunngj-hvor{margin:8px 0 0;padding-left:18px;line-height:1.7;font-size:13.5px;color:var(--ink-2)}

/* --- runde 8c (23.9.2026): kontraktsendring -------------------------------- */
.endr-skjema{border:0;margin:0;padding:0;min-width:0}
.endr-valg{cursor:pointer}
.endr-valg input{margin:0;flex:none;width:16px;height:16px;accent-color:var(--accent)}
.endr-valg:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.endr-valg .nm{line-height:1.4}
.endr-valg .tag{flex:none;margin-left:10px}
.endr-skjema[disabled] .endr-valg{cursor:default}
.grid-3col{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 16px}
.maaler-rad{display:flex;flex-direction:column;gap:7px;margin:2px 0 14px}
.maaler{position:relative;height:8px;border-radius:4px;background:var(--surface-2);border:1px solid var(--line);overflow:hidden}
.maaler i{position:absolute;left:0;top:0;bottom:0;background:var(--good)}
.maaler.over i{background:var(--crit)}
.endr-ny{margin:6px 0 0}
.endr-ny summary{cursor:pointer;font-size:13.5px;font-weight:600;color:var(--ink-2)}
.endr-funn{margin:6px 0 0;padding-left:18px;font-size:13px;line-height:1.55}
.endr-funn code{font-family:var(--mono);font-size:12px;margin-right:6px}
.btn-row form{margin:0}
@media (max-width:860px){.grid-3col{grid-template-columns:1fr}}

/* --- runde 8d (23.9.2026): nye sakstyper ------------------------------------ */
.pm-sak span{display:block;font-size:11px;color:#8FA4B5;margin-top:3px;line-height:1.3}
.ny-valg a.pickrow{text-decoration:none;color:inherit;cursor:pointer}
.ny-valg a.pickrow:hover{border-color:var(--accent);text-decoration:none}
.ny-valg a.pickrow .nm{color:var(--ink)}
.ny-skjema .panel h2,section.panel > h2,section.panel .h2row h2{margin-top:0}
.cpv-fjern{border:0;background:none;cursor:pointer;margin-left:6px;font:inherit}

/* --- runde 8a (23.9.2026): mobilnullstilling etter rail-regelen -----------
   body.med-meny{padding-left:248px} (rail 19.9.2026) står etter mobilregelen
   for bredder under 860 px og overstyrte den, så innholdet ble klemt på
   telefon. Denne regelen må stå sist. */
@media (max-width: 860px){body.med-meny{padding-left:0}}
