
:root{
  --marine:#0c314a;--marine2:#123f5d;--marine3:#1f587a;--tekst:#173142;--dempet:#6b7f8d;
  --bak:#f2f5f8;--kort:#fff;--linje:#dbe4ea;--myk:#edf3f7;--ok:#246e46;--advarsel:#9a6816;
  --fare:#a43838;--info:#356d91;--skygge:0 8px 28px rgba(20,48,68,.075);--radius:16px
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--tekst);background:var(--bak)}
a{color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}.skjult{display:none!important}.dempet{color:var(--dempet)}.hoyre{text-align:right}.sentrert{text-align:center}
.innlogging-side{min-height:100vh;display:grid;place-items:center;padding:26px;background:linear-gradient(135deg,#eaf1f5,#f9fbfc)}
.innlogging{width:min(470px,100%);background:#fff;border:1px solid var(--linje);border-radius:22px;padding:34px;box-shadow:var(--skygge)}
.logo{font-size:31px;font-weight:850;color:var(--marine);letter-spacing:-.6px}.undertittel{font-weight:750;font-size:18px;margin-top:2px}.forklaring{line-height:1.55;color:var(--dempet);margin:18px 0 24px}
label{font-size:12px;font-weight:750;color:#506b7c;display:block;margin:10px 0 5px}
input,select,textarea{width:100%;border:1px solid #cad8e1;border-radius:10px;background:#fff;color:var(--tekst);padding:10px 12px;min-height:41px}
textarea{min-height:90px;resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid rgba(18,63,93,.12);border-color:var(--marine2)}
.knapp,.primar,.sekundar,.fare,.liten{border:0;border-radius:10px;padding:10px 14px;font-weight:750}.primar{background:var(--marine);color:#fff}.primar:hover{background:#08283d}.sekundar{background:#e6eef3;color:var(--marine)}.fare{background:#f8e5e5;color:var(--fare)}.liten{background:#e9f0f4;color:var(--marine);font-size:12px;padding:7px 10px}.full{width:100%}
.melding{min-height:22px;margin:10px 0;color:var(--fare)}.versjon{margin-top:20px;border-top:1px solid var(--linje);padding-top:14px;color:var(--dempet);font-size:12px}
.app{min-height:100vh;display:grid;grid-template-columns:272px minmax(0,1fr)}
.sidefelt{position:sticky;top:0;height:100vh;background:var(--marine);color:#fff;padding:22px 14px;display:flex;flex-direction:column}
.side-logo{padding:0 10px 19px;border-bottom:1px solid rgba(255,255,255,.14);margin-bottom:14px}.side-logo strong{font-size:23px;display:block}.side-logo span{font-size:13px;opacity:.78}
.meny{display:flex;flex-direction:column;gap:4px;overflow:auto}.meny button{border:0;background:transparent;color:#dce8ef;text-align:left;padding:10px 11px;border-radius:10px;font-weight:650}.meny button:hover,.meny button.aktiv{background:rgba(255,255,255,.12);color:#fff}.meny button .ikon{display:inline-block;width:25px;text-align:center}
.side-bunn{margin-top:auto}.rollefelt{font-size:12px;border:1px solid rgba(255,255,255,.16);padding:10px;border-radius:10px;margin-bottom:8px;color:#dfeaf0}
.arbeidsflate{min-width:0}.topp{min-height:92px;background:#fff;border-bottom:1px solid var(--linje);padding:18px 28px;display:flex;justify-content:space-between;align-items:center;gap:20px;position:sticky;top:0;z-index:20}
.topp h1{font-size:26px;margin:0 0 4px}.topp-hoyre{display:flex;align-items:center;gap:18px}.virksomhetsvalg{display:flex;align-items:center;gap:8px}.virksomhetsvalg label{margin:0}.virksomhetsvalg select{min-width:230px}.tid{text-align:right;font-size:13px}.tid strong,.tid span{display:block}.tid span{color:var(--dempet);margin-top:3px}
.innhold{padding:26px 28px 50px}.varsel{margin:18px 28px 0;padding:12px 14px;border-radius:12px;border:1px solid #e6d49b;background:#fff9e8;color:#6d5418}.varsel.ok{border-color:#b8d8c4;background:#eef8f1;color:#245e3d}.varsel.fare{border-color:#e2bcbc;background:#fbeeee;color:#862e2e}
.rutenett{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.rutenett.tre{grid-template-columns:repeat(3,minmax(0,1fr))}.rutenett.to{grid-template-columns:repeat(2,minmax(0,1fr))}
.kpi,.kort{background:#fff;border:1px solid var(--linje);border-radius:var(--radius);box-shadow:0 3px 12px rgba(20,48,68,.03)}.kpi{padding:18px}.kpi span{font-size:13px;color:var(--dempet);font-weight:650;display:block}.kpi strong{font-size:30px;display:block;margin-top:7px}.kpi small{display:block;margin-top:5px;color:var(--dempet)}
.kort{padding:20px;margin-bottom:18px}.kort h2{font-size:18px;margin:0 0 14px}.kort h3{font-size:15px;margin:16px 0 10px}.kort-topp{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.handlinger{display:flex;gap:8px;flex-wrap:wrap}
.merke{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:750;background:#e9f0f4;color:var(--marine)}.merke.ok{background:#e7f4eb;color:var(--ok)}.merke.advarsel{background:#fff4df;color:var(--advarsel)}.merke.fare{background:#fae8e8;color:var(--fare)}.merke.info{background:#e8f2f8;color:var(--info)}
.tabellramme{overflow:auto;border:1px solid var(--linje);border-radius:12px}table{width:100%;border-collapse:collapse;min-width:720px}th,td{padding:11px 12px;border-bottom:1px solid var(--linje);text-align:left;font-size:13px;vertical-align:top}th{font-size:12px;background:#f7f9fb;color:#536a79;position:sticky;top:0}tr:last-child td{border-bottom:0}
.tom{padding:24px;border:1px dashed #cad8e1;background:#fafcfd;border-radius:12px;text-align:center;color:var(--dempet)}.mini{border:1px solid var(--linje);border-radius:12px;padding:14px;background:#fbfcfd}.mini strong{display:block;margin-bottom:5px}
.to-kolonner{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.tre-kolonner{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.filterrad{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:14px}.filterrad .felt{min-width:180px;flex:1}.filterrad .smal{max-width:230px}
.kortliste{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.enhetskort,.alarmkort,.oppgavekort{border:1px solid var(--linje);border-radius:13px;padding:15px;background:#fff}.enhetskort-topp,.alarm-topp,.oppgave-topp{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.enhetskort dl{display:grid;grid-template-columns:130px 1fr;gap:6px 10px;font-size:13px}.enhetskort dt{color:var(--dempet)}.enhetskort dd{margin:0}
.alarmkort{border-left:5px solid var(--info)}.alarmkort.kritisk{border-left-color:var(--fare)}.alarmkort.hoy{border-left-color:#c37c13}.alarmkort.lav{border-left-color:#6d8798}.alarmkort p,.oppgavekort p{margin:8px 0;line-height:1.45}
.callout{padding:13px 14px;border-left:4px solid var(--marine2);background:#edf4f8;border-radius:8px;margin:12px 0}.callout.ok{border-left-color:var(--ok);background:#eef8f1}.callout.advarsel{border-left-color:#b27b18;background:#fff8e8}.callout.fare{border-left-color:var(--fare);background:#fbeeee}
.dialog-bakgrunn{position:fixed;inset:0;background:rgba(9,29,43,.5);display:grid;place-items:center;z-index:100;padding:20px}.dialog{width:min(800px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:18px;padding:22px;box-shadow:0 30px 90px rgba(0,0,0,.25)}.dialog-topp{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.dialog-topp h2{margin:0}.lukk{border:0;border-radius:9px;background:#ecf1f4;font-size:24px;width:38px;height:38px}
.skjema{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.skjema .bred{grid-column:1/-1}.feltverdi{min-height:42px;border:1px solid var(--linje);border-radius:10px;background:#f7fafc;padding:10px 12px;display:flex;flex-direction:column;justify-content:center;gap:3px}.feltverdi strong{font-size:14px}.feltverdi small{color:var(--dempet);font-size:11px}.modulvalg{display:flex;gap:12px;flex-wrap:wrap}.modulvalg label{display:flex;gap:7px;align-items:center;margin:0;font-size:13px}.modulvalg input{width:auto;min-height:auto}
.fremdrift{height:9px;background:#e7edf2;border-radius:999px;overflow:hidden;margin-top:7px}.fremdrift span{display:block;height:100%;background:var(--marine2)}
.statusrad{display:grid;grid-template-columns:190px 1fr 82px;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--linje)}.statusrad:last-child{border-bottom:0}
.portalrutenett{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-top:20px}.portalkort{display:block;text-decoration:none;background:#fff;border:1px solid var(--linje);border-radius:16px;padding:20px}.portalkort:hover{border-color:#9eb8c8;box-shadow:var(--skygge)}.portalkort strong{font-size:18px;display:block;margin-bottom:7px}.portalkort span{color:var(--dempet);line-height:1.45}
.graf{height:190px;border:1px solid var(--linje);border-radius:12px;background:linear-gradient(#fff,#fbfcfd);padding:10px}.graf svg{width:100%;height:100%}.graf text{font-size:10px;fill:#6b7f8d}.graf polyline{fill:none;stroke:var(--marine3);stroke-width:3}.graf circle{fill:var(--marine3)}
.infopar{display:grid;grid-template-columns:170px 1fr;gap:8px 12px;font-size:13px}.infopar dt{color:var(--dempet)}.infopar dd{margin:0;font-weight:650}
@media print{.sidefelt,.topp,.handlinger,.filterrad,.primar,.sekundar,.liten,.fare{display:none!important}.app{display:block}.innhold{padding:0}.kort,.kpi{box-shadow:none}}
@media(max-width:1180px){.rutenett{grid-template-columns:repeat(2,1fr)}.to-kolonner,.tre-kolonner{grid-template-columns:1fr}.kortliste{grid-template-columns:1fr}.portalrutenett{grid-template-columns:1fr 1fr}.topp-hoyre{flex-direction:column;align-items:flex-end;gap:6px}}
@media(max-width:820px){.app{grid-template-columns:1fr}.sidefelt{position:relative;height:auto}.meny{display:grid;grid-template-columns:repeat(2,1fr)}.side-bunn{margin-top:16px}.topp{position:relative;align-items:flex-start;flex-direction:column}.topp-hoyre{width:100%;align-items:stretch}.virksomhetsvalg{flex-direction:column;align-items:stretch}.tid{text-align:left}.innhold{padding:18px}.varsel{margin:14px 18px 0}.rutenett,.rutenett.tre,.rutenett.to{grid-template-columns:1fr}.portalrutenett{grid-template-columns:1fr}.skjema{grid-template-columns:1fr}.skjema .bred{grid-column:auto}.statusrad{grid-template-columns:1fr}.to-kolonner{grid-template-columns:1fr}}

/* NordNettCare 9.4.0 – rolleportaler */
.portalkort{transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.portalkort:hover{transform:translateY(-1px)}
.rollefelt{line-height:1.35}
@media print{#lederMeny{display:none!important}}

/* NordNettCare 9.4.0 – operativ arbeidsflyt */
.arbeidsflytlinje{margin:8px 0 10px;padding:8px 10px;border-radius:8px;background:rgba(15,23,42,.045);font-size:13px;line-height:1.45}

/* NordNettCare 9.4.0 – operativt Vaktbilde */
.vakt-topp{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:10px}.vakt-topp h2{margin:0 0 5px;font-size:24px}.vakt-sist{text-align:right;color:var(--dempet);font-size:12px;line-height:1.4}.vakt-sist strong{color:var(--tekst)}
.vakt-sammendrag{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.vakt-panel{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;align-items:stretch}.vakt-status-akse{border-radius:13px;background:var(--marine);color:#fff;display:flex;justify-content:center;align-items:center;min-height:290px;box-shadow:0 3px 12px rgba(20,48,68,.06)}.vakt-status-akse span{writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:.18em;font-size:12px;font-weight:850}
.vakt-liste{min-width:0}.vakt-hode,.vakt-rad{display:grid;grid-template-columns:118px 120px minmax(165px,1.25fr) 125px 130px minmax(150px,1fr) minmax(170px,1.1fr) 145px;gap:0;align-items:stretch}.vakt-hode{padding:0 10px;color:var(--dempet);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.vakt-hode>div{padding:8px 9px}.vakt-rad{background:#fff;border:1px solid var(--linje);border-radius:13px;margin-bottom:8px;overflow:hidden;box-shadow:0 2px 9px rgba(20,48,68,.025);transition:border-color .12s ease,box-shadow .12s ease;cursor:pointer}.vakt-rad:hover{border-color:#9eb8c8;box-shadow:0 5px 18px rgba(20,48,68,.08)}.vakt-rad>div:not(.vakt-status){padding:13px 10px;border-left:1px solid #edf1f4;display:flex;flex-direction:column;justify-content:center;min-width:0}.vakt-rad small{display:block;color:var(--dempet);font-size:11px;margin-top:4px;line-height:1.35}.vakt-status{display:flex;align-items:center;justify-content:center;text-align:center;font-size:12px;font-weight:900;letter-spacing:.02em;padding:10px 8px}.vakt-status.ok{background:#e7f4eb;color:#245e3d}.vakt-status.advarsel{background:#fff4df;color:#805b17}.vakt-status.alarm{background:#fff0e4;color:#8a4b0b}.vakt-status.fare{background:#f7dede;color:#8b2525}.vakt-status.arbeid{background:#e7f1f7;color:#184e70}.vakt-rad.fare{border-color:#dfb1b1}.vakt-rad.alarm{border-color:#e6c49e}.vakt-rad.advarsel{border-color:#e6d49b}.vakt-rad.arbeid{border-color:#b8cfdd}
.vakt-rom strong{font-size:16px}.vakt-person strong{font-size:14px}.vakt-puls{font-size:23px;line-height:1}.vakt-fall{display:inline-flex;width:max-content;border-radius:999px;padding:5px 8px;font-weight:850;font-size:11px}.vakt-fall.fare{background:#f7dede;color:#8b2525}.vakt-fall.ok{background:#edf4f0;color:#3d6650}.vakt-alarmcelle .merke{margin-top:4px}.vakt-knapper{gap:7px;align-items:stretch}.vakt-knapper button{width:100%}.vakt-handling{padding:8px 10px;font-size:12px}.vakt-detalj{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.vakt-detalj>div{border:1px solid var(--linje);border-radius:11px;padding:12px}.vakt-detalj span{display:block;color:var(--dempet);font-size:11px;margin-bottom:5px}.vakt-detalj strong{font-size:14px}
@media(max-width:1450px){.vakt-hode,.vakt-rad{grid-template-columns:105px 110px minmax(145px,1.2fr) 115px 120px minmax(135px,.9fr) minmax(150px,1fr) 125px}.vakt-rad>div:not(.vakt-status){padding:11px 8px}}
@media(max-width:1180px){.vakt-panel{grid-template-columns:36px minmax(0,1fr)}.vakt-hode{display:none}.vakt-rad{grid-template-columns:105px 105px 1fr 120px}.vakt-rad>div:nth-child(n+5){border-top:1px solid #edf1f4}.vakt-fallcelle,.vakt-enhetcelle,.vakt-alarmcelle,.vakt-knapper{grid-column:auto}.vakt-status-akse{min-height:400px}.vakt-detalj{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.vakt-topp{flex-direction:column}.vakt-sist{text-align:left}.vakt-panel{display:block}.vakt-status-akse{min-height:auto;height:34px;margin-bottom:8px}.vakt-status-akse span{writing-mode:horizontal-tb;transform:none}.vakt-rad{grid-template-columns:1fr 1fr}.vakt-status{grid-column:1/-1;min-height:42px}.vakt-rad>div:not(.vakt-status){border-left:0;border-top:1px solid #edf1f4}.vakt-person,.vakt-alarmcelle{grid-column:1/-1}.vakt-detalj{grid-template-columns:1fr}}

/* 9.4.0 – operativt lederbilde */
.leder-hode{padding-bottom:14px}.leder-situasjon{margin-top:14px;border:1px solid var(--linje);border-radius:14px;padding:15px 17px;display:flex;justify-content:space-between;align-items:center;gap:18px;background:#f7fafb}.leder-situasjon span,.leder-situasjon small{display:block;color:var(--dempet);font-size:12px}.leder-situasjon strong{display:block;font-size:22px;margin:3px 0}.leder-situasjon.ok{background:#eef8f1;border-color:#cae6d2}.leder-situasjon.advarsel{background:#fff8e9;border-color:#ead7a5}.leder-situasjon.fare{background:#fff0f0;border-color:#e4baba}.leder-kontrollert{text-align:right;color:var(--dempet);font-size:12px;white-space:nowrap}.leder-kontrollert strong{font-size:13px;color:var(--tekst)}.leder-tiltak{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.leder-tiltak-rad{border:1px solid var(--linje);border-radius:12px;padding:12px;display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;min-width:0}.leder-tiltak-rad strong{display:block}.leder-tiltak-rad small{display:block;color:var(--dempet);font-size:11px;margin-top:3px}.leder-tiltak-rad .liten{white-space:nowrap}
@media(max-width:1450px){.leder-tiltak{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.leder-tiltak{grid-template-columns:1fr}.leder-situasjon{align-items:flex-start;flex-direction:column}.leder-kontrollert{text-align:left}}

/* 9.4.0 – egen skrivebeskyttet Vaktvisning for stor skjerm */
.app.vaktvisning-modus{grid-template-columns:1fr;background:#eef3f6}.app.vaktvisning-modus .sidefelt{display:none}.app.vaktvisning-modus .topp{min-height:78px;padding:14px 22px}.app.vaktvisning-modus .innhold{padding:18px 22px 28px}.app.vaktvisning-modus .vakt-topp h2{font-size:28px}.app.vaktvisning-modus .vakt-rad{cursor:default}.app.vaktvisning-modus .vakt-rad:hover{border-color:var(--linje);box-shadow:0 2px 9px rgba(20,48,68,.025)}.app.vaktvisning-modus .vakt-status-akse{min-height:360px}.vakt-visning-ansvar{font-size:12px;font-weight:800;line-height:1.35}.vakt-visning-ansvar small{font-weight:500}.app.vaktvisning-modus .vakt-hode,.app.vaktvisning-modus .vakt-rad{grid-template-columns:125px 125px minmax(190px,1.3fr) 135px 140px minmax(165px,1fr) minmax(190px,1.15fr) 155px}
@media(max-width:1180px){.app.vaktvisning-modus .vakt-hode{display:none}.app.vaktvisning-modus .vakt-rad{grid-template-columns:115px 115px 1fr 130px}}
@media(max-width:820px){.app.vaktvisning-modus .topp{padding:14px 18px}.app.vaktvisning-modus .innhold{padding:14px 12px 22px}.app.vaktvisning-modus .vakt-rad{grid-template-columns:1fr 1fr}}

/* 9.4.0 – to nødvendige trykk i Omsorg */
.alarm-hovedhandlinger{align-items:center}.alarm-angre{background:#eef3f6;color:var(--marine);border-color:#d7e1e7;font-weight:750}.alarm-handlingsvarsel{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:1200;margin:0;min-width:min(420px,calc(100vw - 28px));max-width:calc(100vw - 28px);box-shadow:0 10px 32px rgba(20,48,68,.18);display:flex;align-items:center;justify-content:space-between;gap:12px}.alarm-handlingsvarsel .alarm-angre{margin-left:auto;white-space:nowrap}

/* 9.4.0 – skrivebeskyttede driftsvisninger for Vann og Teknisk */
.drift-hode,.drift-rad{display:grid;grid-template-columns:110px minmax(155px,1fr) minmax(150px,1fr) 150px minmax(180px,1.2fr) minmax(180px,1.2fr) minmax(155px,1fr);align-items:stretch;gap:0}
.drift-hode{padding:0 10px;color:var(--dempet);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.drift-hode>div{padding:8px 9px}
.drift-rad{background:#fff;border:1px solid var(--linje);border-radius:13px;margin-bottom:8px;overflow:hidden;box-shadow:0 2px 9px rgba(20,48,68,.025)}
.drift-rad>div:not(.drift-status){padding:13px 10px;border-left:1px solid #edf1f4;display:flex;flex-direction:column;justify-content:center;min-width:0}.drift-rad small{display:block;color:var(--dempet);font-size:11px;margin-top:4px;line-height:1.35}
.drift-status{display:flex;align-items:center;justify-content:center;text-align:center;font-size:12px;font-weight:900;padding:10px 8px}.drift-status.ok{background:#e7f4eb;color:#245e3d}.drift-status.advarsel{background:#fff4df;color:#805b17}.drift-status.alarm{background:#fff0e4;color:#8a4b0b}.drift-status.fare{background:#f7dede;color:#8b2525}
.drift-rad.ok{border-color:#d5e7da}.drift-rad.advarsel{border-color:#e6d49b}.drift-rad.alarm{border-color:#e6c49e}.drift-rad.fare{border-color:#dfb1b1}
.app.vaktvisning-modus .drift-hode,.app.vaktvisning-modus .drift-rad{grid-template-columns:120px minmax(170px,1fr) minmax(170px,1fr) 160px minmax(190px,1.25fr) minmax(190px,1.25fr) minmax(170px,1fr)}
.app.vaktvisning-modus .drift-hode.teknisk,.app.vaktvisning-modus .drift-hode.teknisk~.drift-rad{grid-template-columns:120px minmax(165px,1fr) minmax(150px,1fr) 155px 145px minmax(150px,1fr) minmax(170px,1.1fr) minmax(165px,1fr)}
@media(max-width:1180px){.drift-hode{display:none}.drift-rad,.app.vaktvisning-modus .drift-rad,.app.vaktvisning-modus .drift-hode.teknisk~.drift-rad{grid-template-columns:110px 1fr 1fr}.drift-rad>div:nth-child(n+4){border-top:1px solid #edf1f4}}
@media(max-width:820px){.drift-rad,.app.vaktvisning-modus .drift-rad,.app.vaktvisning-modus .drift-hode.teknisk~.drift-rad{grid-template-columns:1fr 1fr}.drift-status{grid-column:1/-1;min-height:42px}.drift-rad>div:not(.drift-status){border-left:0;border-top:1px solid #edf1f4}}
