@import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@500&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400&display=swap');

/* Avvik-fargetokens - lys modus (standard). Redeklareres i darkmode.css for mørk modus;
   alt som bruker var(--avvik-*-bg) - .AvvikFargeTG0/TG123/OK under og respStack-
   kortbakgrunnene i main-responsive.css - holder seg automatisk i sync uten å duplisere
   fargeverdiene flere steder. */
:root {
	--avvik-feil-bg: lightpink;
	--avvik-info-bg: lightyellow;
	--avvik-ok-bg: lightgreen;
}

html, body {
	font-family: Roboto, Tahoma, Geneva, sans-serif;
	font-size: 14px;
	padding: 0;
	margin: 0;
	height: 100%;
	min-height: 100%;
	background: #f3f3f3;
}

/* 2026-08-21: overflow-x:hidden her (som sikkerhetsnett mot en usynlig .tooltiptext som ga
   horisontal scroll) ble forsøkt og reversert - ga en alvorlig regresjon der modaler kunne
   åpnes usynlig (se .tooltip-edge-right i .tooltiptext-reglene for den faktiske fiksen, og
   dokumentasjon/endringslogg-teknisk.md for full historikk). html/body sin overflow skal
   IKKE endres for å løse enkelt-element-overflow - fiks kilden (elementet), ikke symptomet
   (sidens scroll-container). */

* {
  box-sizing: border-box;
}

#container {

	position: relative;
	float: left;
	width: 100%;
	height: 100%;

}

#top {
	position: fixed;
	top: 0;
	float: left;
	border: none;
	width:100%;
	height: 30px;
	text-align: right;
	color: #fff;
	background: #ffffff;
	z-index: 100;
}

#left {
	position: fixed;
	top: 50px;
	left: 0;
	width: 30px;
	background: linear-gradient(180deg, #15313e, transparent);
	min-height: calc(100vh - 50px);
	transition-duration: 0.2s;
	overflow: hidden;
}

#main {
	position: relative;
	top: 50px;
	min-height: calc(100vh - 50px);
	padding: 5px;
	width: fit-content;
	width: -moz-fit-content;
	margin: 0 auto;
}

.hovedskjema {
	float:left;
	border: 1px solid #ddd;
	border-radius: 8px;
	background: #fff;
	width: 900px;
	max-width: 95vw;
	padding: 50px;
	margin-bottom: 20px;
	box-shadow: 0 5px 15px 0 rgba(0,0,0,0.1);
}

h1.certifire {
	text-transform: uppercase;
	border-bottom: 2px solid #888888;
}

h1.error {
	background: maroon;
	margin: 0;
	text-align: center;
	color: #cccccc;
	font-size: 3em;
	font-family: 'Open Sans',Roboto,sans-serif;
	font-weight: 100;
	white-space: nowrap;
}

h1.good {
	background: darkgreen;
	margin: 0;
	text-align: center;
	color: whitesmoke;
	font-size: 3em;
	font-family: 'Open Sans',Roboto,sans-serif;
	font-weight: 100;
	white-space: nowrap;
}

h2 {
	font-size: 1.5em;
}

h4 {
	font-size: 18px;
}

ul.navbar {
	list-style-type: none;
	color: #0a0a0a;
	margin: 0;
	padding: 0;
	display: flex;
	justify-content: flex-start;
	font-size: 1.5em;
	float: left
}

ul.search {
	list-style-type: none;
	padding-inline-start:0;
	margin-block-start:0;
	filter: drop-shadow(2px 4px 6px black);
}

ul.search li {
	font-size:18px;
	width:100%;
	border:1px solid #ccc;
	color:#000;
	cursor: context-menu;
	background: #fff;
	padding: 10px 8px;
}

ul.search li:hover {
	background: #555;
	cursor: context-menu;
}

table.BAHovedskjema {

	vertical-align: middle;
	font-size:14px;
	table-layout: fixed;
	border-spacing: 0;
    border-collapse: collapse;	
}

td.utbedret, a.utbedret {

	color: #006600;
	font-weight: bold;
	font-size: 18px;

}

a.utbedret {
	margin-left: 3px;
}

td.feil, a.feil {

	color: #990000;
	font-weight: bold;
	font-size: 18px;
}

a.feil {
	margin-left: 3px;
}

.info {
	color: orange;
	font-weight: bold;
	font-size: 18px;
	margin-left: 3px;
}

table.BAUnderskjemaDel {

	float:left;
	width: 100%;
	border-spacing: 0;
    border-collapse: collapse;
    margin-top: 15px;
	table-layout: fixed;

}

table.BAUnderskjemaFrm {

	width: 100%;
	border-spacing: 0;
    border-collapse: collapse;
    margin-top: 15px;
    table-layout: fixed;

}

table.BrannobjektListe {
	table-layout: fixed;
	border-spacing: 0;
    border-collapse: collapse;
    margin-top: 15px;
    float: left;
	width: 100%;

}

.BrannobjektListe td {

	border-left: none;
	border-right: none;
	cursor: pointer;
	padding: 8px 2px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;

}

.tableDarkRow {
	background: whitesmoke;
}

.tableLightRow {
	background: #ffffff;
}

.tableRowHighlight {
	background: #005a9c;
	color: white;
}

/* !important + to klasser (spesifisitet 0,0,2,0): må vinne over .AvvikFargeTG0/TG123/OK
   sin !important (0,0,1,0) når musepeker er over en rad med prioritetsfarge - ellers
   forsvinner hover-highlighten på nøyaktig de radene som trenger den mest. JS legger alltid
   "tableRowHighlight" til på et element som allerede har "tabellFargeAlt", så kombinasjonen
   dekker alle reelle tilfeller (se inverio-jqeventcatcher.js). */
.tabellFargeAlt.tableRowHighlight {
	background: #005a9c !important;
}

.tableRowSelected {
	background: #ff8;
	color:#000;
	font-weight: bold;
}

table.avvikFrm {
	float: left;
	width: 100%;
	table-layout: fixed;
}

p.avvikFrm {
	border: 1px solid #cccccc;
	border-radius: 5px;
	padding: 5px;
	font-size: 1.2em;
}


/* !important: disse tre skal alltid vinne over rad-stripe-klassene (.tableLightRow/
   .tableDarkRow, samme spesifisitet - kun kildekode-rekkefølge avgjorde vinner før dette,
   skjørt). Brukes på både <tr> og <div> forskjellige steder (NotatFrm.php/Kontroll.class.php),
   så en tag-kvalifisert selektor (f.eks. tr.AvvikFargeTG123) kan ikke brukes i stedet. */
.AvvikFargeTG0 {
	background: var(--avvik-info-bg) !important;
}

.AvvikFargeTG123 {
	background: var(--avvik-feil-bg) !important;
}

.AvvikFargeOK {
	background: var(--avvik-ok-bg) !important;
}

th {
	text-align: left;
}

th.kontrollskjema {
	background: #eaeaea;
	border-bottom: 1px solid #777;
	font-size: 1.2em;
	margin: 0;
	padding: 5px;
	height: 20px;
	position: sticky;
	top: 50px;
	box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.4);
	z-index: 1;
	white-space: nowrap;
}

th.multiskjema {
	background: #eaeaea;
	border-bottom: 1px solid #777777;
	font-size: 1.2em;
	/*font-size: 14px;*/
	margin: 0;
	padding: 2px;
	height: 20px;
	position: sticky;
	top: -1px;

}

td.kontrollskjema {
	margin: 0;
	border: 1px solid #ccc;
	border-left: none;
	border-right: none;
	padding: 2px 0;
}

td.kontrollskjemafeil {
	margin: 0;
	border: 1px solid #ccc;
	color:#f00;
	font-weight: bold;
	text-align: center;

}

/* HovedskjemaFrm.php sin #hovedskjemaKontrollTabell (respStack-forsøk, se
   main-responsive.css) gjenbruker kontrollskjema/kontrollskjemafeil-klassene på
   Kontrollpunkt/Egenkontroll/Merknad/Skjema/OK/I.A./Avvik-cellene for å hekte seg på
   respStack-mekanikken (kun aktiv ≤800px). Disse cellene hadde imidlertid ALDRI de to
   reglene over fra før - Kontrollpunkt/Egenkontroll/Merknad/Skjema var uten klasse (ingen
   kant/midtstilling), og OK/I.A./Avvik brukte kun sine egne desktop-klasser (utbedret/feil,
   grønn/rød tekst uten kant/midtstilling). Nullstiller derfor de generiske reglene over kun
   for denne tabellen - id-selektoren gir nok spesifisitet til å vinne uansett kildeorden -
   slik at eksisterende desktop-utseende er upåvirket og kun mobilvisningen endres. */
#hovedskjemaKontrollTabell td.kontrollskjema,
#hovedskjemaKontrollTabell td.kontrollskjemafeil {
	border: none;
	text-align: left;
	font-weight: normal;
}

#hovedskjemaKontrollTabell td.utbedret.kontrollskjemafeil {
	color: #006600;
}

#hovedskjemaKontrollTabell td.feil.kontrollskjemafeil {
	color: #990000;
}

table.vedlikeholdsplan {

	vertical-align: top;
	font-size:14px;
	table-layout: fixed;
	/*border-spacing: 0 1mm;*/
	border-spacing: 0;
	border-collapse: separate;

}

td.avviksklassfiseringsgrad {
	font-size: 2em;
	vertical-align: middle;
	text-align: center;
	width: 130px;
}

td.avviksklassfiseringsbeskrivelse {
	font-size: 1.2em;
	vertical-align: top;
	text-align: left;
}

td.tittel {
	font-size:18px;
	width: 2.5cm;
	padding: 0 0.2cm;
	vertical-align: top;
}

.overflow {
	max-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

table.filarkiv td {
	padding: 5px;
}

p {
	font-size:16px;
}

label {
	font-weight: bold;
	font-size: 16px;
}


a.navbar {
	font-size:22px;
	font-weight:lighter;
	text-decoration:none;
/*	border:1px solid #000;*/
	color:#ccc;
	padding:2px;
/*	background-color:#ccc;*/
	display: block;
}

a.navbar:hover {
/*	background-color:royalblue;
/*	border:1px solid wheat;*/
	color: #0b7dda;
	filter: drop-shadow(2px 4px 6px #000000);
}

a {
	font-weight:bold;
	text-decoration:underline;
	color:inherit;
}

a:hover {
	text-decoration: none;
}

a.tablelink {
	font-size:12px;
	color:#000;

}

a.button {
	color: #444444;
}


i.large {
	font-size: 20px;
	color: #bbb;
	text-decoration: none;
	padding: 5px;
	transition-duration: 0.2s;
}

i.large:hover {
	color: #fff;
	transform: scale(1.5);
}

.tab {
  overflow: hidden;
  border: 1px solid #ccc;
  background-color: #f1f1f1;
}


.tabcontent {
  display: none;
  padding: 6px 12px;
  border: 1px solid #ccc;
  border-top: none;
}

.modal {
	display: none;
	position: absolute;
	z-index: 1;
	top: 0;
	left: 50%;
	transform: translate(-50%, 0);
}

.modal-content {
	/*min-width: 900px;*/
	margin: auto;
	margin-top: 100px;
	padding: 20px;
	background-color: #fefefe;
	border: 1px solid #888;
	border-radius: 8px;
	filter: drop-shadow(2px 4px 6px black);
}



.modal-content:after {
	clear: both;
	display: block;
	height: 0;
	overflow: hidden;
	visibility: hidden;
	content: ".";
	font-size: 0;
}

.modal-backdrop {
	position: fixed;
	height: 100%;
	width: 100%;
	top: 50px;
	left: 0;
	background: #000000;
	/*opacity: 0;*/
	z-index: 1;
	opacity : 0;
	/*transition: opacity 0.5s ease;*/
}

.vindu-liten {
	width: 550px;
}

.vindu-normal {
	width: 880px;
}

.vindu-stor {
	width: 1280px;
}

.vindu-relative {
	position: relative;
}

.vindu-fixed {
	position: fixed;
}



/* The Close Button */
.close {
	position: absolute;
	top: 5px;
	right: 10px;
	color: #aaaaaa;
	font-size: 36px;
	font-weight: bold;
}

.close:hover,
.close:focus {
  color: #000;
  text-decoration: none;
  cursor: pointer;
}

.tooltip {
	position: relative;
	display: inline-block;
}

.tooltip .tooltiptext {
	font-family: Roboto,sans-serif;
	visibility: hidden;
	width: 120px;
	background-color: #222222;
	color: #fff;
	text-align: center;
	border-radius: 6px;
	padding: 5px 5px;
	position: absolute;
	z-index: 1;
	top: 150%;
	left: 50%;
	margin-left: -60px;
	filter: drop-shadow(2px 4px 6px black);
}

.tooltip .tooltiptext::after {
	content: "";
	position: absolute;
	bottom: 100%;
	left: 50%;
	margin-left: -5px;
	border-width: 5px;
	border-style: solid;
	border-color: transparent transparent black transparent;
}

.tooltip:hover .tooltiptext {
	visibility: visible;
}

/* Modifikator for .tooltip-ikoner som sitter nær høyre kant av sin container (typisk et
   varselikon plassert rett etter en tekstlinje, f.eks. "Rapport er gamlere enn siste
   revisjon" i Kontroll.class.php). Standard .tooltiptext sentreres alltid symmetrisk rundt
   ikonet (left:50%;margin-left:-60px) uansett hvor ikonet står - på smal skjerm kan da
   halve boksen stikke utenfor viewport til høyre, noe som gjør SIDEN scrollbar horisontalt
   selv om boksen er visibility:hidden (usynlig innhold teller likevel med i scrollWidth).
   Denne klassen forankrer boksen til ikonets HØYRE kant og lar den vokse venstre i stedet
   for å sentreres - løser overflowen for ikoner som sitter nær høyre kant, uten å røre
   noen andre .tooltip-forekomster i appen (default oppførsel er uendret). Legg til på flere
   ikoner etter behov hvis samme overflow oppstår andre steder. */
.tooltip.tooltip-edge-right .tooltiptext {
	left: auto;
	right: 0;
	margin-left: 0;
}

.tooltip.tooltip-edge-right .tooltiptext::after {
	left: auto;
	right: 8px;
	margin-left: 0;
}

.rotate{
	-moz-transition: all 0.5s linear;
	-webkit-transition: all 0.5s linear;
	transition: all 0.5s linear;
}

.rotate.down{
	-moz-transform:rotate(90deg);
	-webkit-transform:rotate(90deg);
	transform:rotate(90deg);
}

.fade-out {
	animation: fadeOut ease 1s;
}

@keyframes fadeOut {
	0% {
		opacity:1;
	}
	50% {
		opacity:1;
	}
	100% {
		opacity:0;
	}
}

/* EXPERIMENTAL */

th.rotate {
	/* Something you can count on */
	/*height: 140px;*/
	white-space: nowrap;
}

th.rotate > div {
	transform:
		/* Magic Numbers */
		/*	translate(25px, 51px)*/
				/* 45 is really 360 - 45 */
			rotate(-90deg);
	width: 35px;
}
th.rotate > div > span {
	/*border-bottom: 1px solid #ccc;*/
	padding: 5px 10px;
}

div.navbuttons {
	float:right;
	margin-top: 25px;
	font-size: 16px
}

.navbuttons {
	list-style: none;
	padding-inline-start: 0;
	margin: 0;
	/*background: #3b97ca;*/
	display: -webkit-box;
	display: -moz-box;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;
	-webkit-flex-flow: row wrap;
	justify-content: space-around;
	font-size: 2em;

}

.navbuttons button {
	margin: 5px;
}

.visliste {
	display: block;
}

.skjul {
	display:none;
}


.thumbcontainer {
	position: relative;
	float: left;
	max-width: 200px;
	margin: 10px;
	filter: drop-shadow(2px 4px 6px black);
}

.overlay {
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
	width:100%;
	height:100%;
	vertical-align: middle;
	text-align: center;
	margin: auto;
	transition: .3s ease;
	overflow: hidden;
}

.thumbcontainer:hover .overlay{
	opacity:1;
	background:rgba(0,0,0,0.5) center no-repeat;
}

.image {
	display:block;
	height:auto;
}

div.inneroverlay {
	width: 280px;
	height: 80px;
	display:table-cell;
	vertical-align:middle;

}

/**
Pagination
 */
.pagination {
	display: inline-block;
	padding-left: 0;
	margin: 20px 0;
	border-radius: 4px;
}

.pagination>li {
	display: inline;
}

.pagination>li:first-child>a, .pagination>li:first-child>span {
	margin-left: 0;
	border-top-left-radius: 4px;
	border-bottom-left-radius: 4px;
}
.pagination>li>a, .pagination>li>span {
	position: relative;
	float: left;
	padding: 6px 12px;
	margin-left: -1px;
	line-height: 1.42857143;
	color: #337ab7;
	text-decoration: none;
	background-color: #fff;
	border: 1px solid #ddd;
}

.pagination>.active>a, .pagination>.active>a:focus, .pagination>.active>a:hover, .pagination>.active>span, .pagination>.active>span:focus, .pagination>.active>span:hover {
	z-index: 3;
	color: #fff;
	cursor: default;
	background-color: #337ab7;
	border-color: #337ab7;
}

.pagination>li>a:focus, .pagination>li>a:hover, .pagination>li>span:focus, .pagination>li>span:hover {
	z-index: 2;
	color: #23527c;
	background-color: #eee;
	border-color: #ddd;
}

/**
Topp-navigering
 */

.topnav {
	overflow: hidden;
	width: 1000px;
	margin-left: auto;
	margin-right: auto;
}

.topnav a {
	float: left;
	display: block;
	text-align: center;
	text-decoration: none;
	font-size: 17px;
	font-weight: normal;
	padding: 0 1vw;
	cursor: pointer;
}

.menyicon {
	padding: 0;
	background: url('/img/inverio-logo-liten.png');
	height: 50px;
	width: 50px;
	background-size: cover;
}

.menyiconguest {
	background: url('/img/inverio-logo-tekst-menytopp.png');
	background-repeat: no-repeat;
	background-size: 85%;
	width: 217px;
	height: 50px;
}

/*
.active {
	background-color: #4c61af;
	color: white;
}
*/
.topnav .icon {
	display: none;
}

.btnBar {
	display: flex;
	gap: 10px;
	justify-content: flex-end;
	margin-top: 10px
}

.btn-text {
	display: none;
}

.btnSlett  {
	background:#c0392b;
}

.dropdown {
	float: left;
	overflow: hidden;
}

.dropdown .dropbtn {
	font-size: 17px;
	border: none;
	outline: none;
	color: whitesmoke;
	padding: 14px 16px;
	background-color: inherit;
	font-family: inherit;
	margin: 0;
	height: 50px;
}


.dropdown-content {
	margin-top: 55px;
	display: none;
	position: absolute;
	background-color: #f9f9f9;
	border: 1px solid #cccccc;
	min-width: 200px;
	box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2);
	z-index: 1;
}


.submenu-content {
	display: none;
	position: absolute;
}

.dropdown-content a {
	float: none;
	color: black;
	padding: 8px 16px;
	text-decoration: none;
	display: block;
	text-align: left;
}


.topnav a:hover, .dropdown:hover .dropbtn {
/*	background: none;*/
	color: #4b33dd;
	border-bottom: 2px solid;
}

.topnav a.menyicon:hover {
	border: none;
}

/*
a.menuactive {
	background: none;
	color: #4b33dd;
	border-bottom: 2px solid;
}
*/

.dropbtn:hover .btn-text {
	display: block;
}

.dropdown-content a:hover {
	background-color: #ddd;
	border: none;
	color: black;
}

.dropdown:hover .dropdown-content {
	display: block;
}

.dropdown-submenu:hover .submenu-content {
	display: block;
}

.avatar {
	font-size:18px;
	color: #0a0a0a;
	float:right;
}

/* Div tables */

div.table-container {
	border-radius: 5px;
	padding: 20px;
}

div.table-col-10 {
	float: left;
	width: 10%;
	margin-top: 6px;
	text-align:left;
}

div.table-col-20 {
	float: left;
	width: 20%;
	margin-top: 6px;
	text-align:left;
}

div.table-col-25 {
	float: left;
	width: 25%;
	margin-top: 6px;
	text-align:left;
}

div.table-col-30 {
	float: left;
	width: 30%;
	margin-top: 6px;
	text-align:left;
}

div.table-col-40 {
	float: left;
	width: 40%;
	margin-top: 6px;
	text-align:left;
}

div.table-col-50 {
	float: left;
	width: 50%;
	margin-top: 6px;
	text-align:left;
}

div.table-col-60 {
	float: left;
	width: 60%;
	margin-top: 6px;
	text-align:left;
}

div.table-col-75 {
	float: left;
	width: 75%;
	margin-top: 6px;
}

/* Clear floats after the columns */
div.table-row:after {
	content: "";
	display: table;
	clear: both;
}

.responsiveOnly {
	display: none !important;
}

.kp-BA { background: #c0392b; }
.kp-LS { background: #27ae60; }
.kp-IA { background: #2980b9; }
.kp-AK { background: #8e44ad; }
.kp-TV { background: #e67e22; }
.kp-EV { background: #16a085; }
.kp-EL { background: #f39c12; color: #333; }
.kp-IT { background: #7f8c8d; }
.kp-UP { background: #2c3e50; }

.kp-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 2px 7px;
	border-radius: 12px;
	font-size: 0.78em;
	color: #fff;
	cursor: pointer;
	white-space: nowrap;
	max-width: 160px;
	overflow: hidden;
	text-overflow: ellipsis;
}
.kp-badge:hover { opacity: .85; }
.kp-badge.utfort  { opacity: .5; text-decoration: line-through; }
.kp-badge.avlyst  { opacity: .35; }