:root{font:17px system-ui,sans-serif;color:#172e36;background:#f1f5f6;--accent:#123e48;--line:#cbd8dc}*{box-sizing:border-box}body{margin:0}header{position:sticky;top:0;z-index:5;background:var(--accent);color:white;padding:14px max(16px,calc((100vw - 740px)/2));display:flex;gap:12px;align-items:center;min-height:66px}header a{color:white;text-decoration:none;font-size:22px;white-space:nowrap}header span{flex:1;font-size:13px}header button{min-height:40px;padding:6px 9px;background:transparent;color:white;border-color:#74929b;font-size:14px}main{max-width:740px;margin:auto;padding:22px 16px 100px}h1{font-size:28px;overflow-wrap:anywhere}h2{font-size:21px}h3{font-size:18px}p{line-height:1.5}button,input,select,textarea{font:inherit;border:1px solid var(--line);border-radius:9px;min-height:50px;padding:12px}button{cursor:pointer;background:white;color:var(--accent);font-weight:650}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);color:white;border-color:var(--accent)}button:focus-visible,input:focus,select:focus,textarea:focus{outline:3px solid #eab951;outline-offset:2px}input,textarea{width:100%;background:white}label{display:block;font-weight:600;margin:16px 0 8px}small,.muted{color:#4d636c;font-size:14px}a{color:var(--accent)}.login{max-width:420px;margin:36px auto}.login button{width:100%;margin-top:16px}.otp{font-size:32px;letter-spacing:.25em;text-align:center}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:18px 0}.stat{background:white;border:1px solid var(--line);border-radius:12px;padding:16px}.stat strong{display:block;font-size:26px}.searchbar{position:sticky;top:70px;z-index:3;background:#f1f5f6;padding:8px 0}.filters{display:flex;gap:7px;margin:10px 0;flex-wrap:wrap}.filters select{flex:1;min-width:100px;max-width:100%;font-size:14px}.card{display:block;width:100%;text-align:left;padding:16px;background:white;border:1px solid var(--line);border-radius:12px;margin:10px 0;overflow-wrap:anywhere}.card strong{display:block;font-size:18px}.badge{display:inline-block;font-size:13px;font-weight:700;background:#e4edef;color:#354f58;border-radius:6px;padding:5px 9px;margin:8px 0}.OK{background:#d8f1e2;color:#145a31}.FEIL,.TAVLEFEIL,.FEIL_I_FELT{background:#ffe1dc;color:#922514}.IKKE_MULIG{background:#fff0c7;color:#684700}.row{display:flex;gap:10px;align-items:center}.row>*{flex:1}.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fields div{border-bottom:1px solid var(--line);padding:9px 0;overflow-wrap:anywhere}.fields small{display:block}.results{display:flex;gap:8px}.results label{flex:1;font-size:14px;text-align:center;margin:0;border:2px solid var(--line);border-radius:9px;padding:12px 4px;background:white}.results input{width:20px;min-height:20px;display:block;margin:0 auto 8px}.results label:has(input:checked){border-color:var(--accent);background:#dceced}textarea{min-height:100px;resize:vertical}.save{width:100%;margin-top:14px}.sticky{position:sticky;bottom:8px;box-shadow:0 2px 15px #123e4820}.history{border-left:3px solid var(--line);padding:5px 15px;margin:16px 0}.history p{white-space:pre-wrap}.error{color:#922514}.success{color:#145a31}#notice{position:fixed;bottom:15px;left:16px;right:16px;z-index:10;max-width:700px;margin:auto;background:#153f48;color:white;border-radius:10px;padding:15px;display:none}pre{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;background:white;padding:14px;border:1px solid var(--line);max-height:420px;overflow:auto}video,canvas,.photo{width:100%;max-height:50vh;object-fit:contain;border-radius:12px}details{margin:18px 0}summary{cursor:pointer;padding:12px 0;font-weight:650}.file{padding:15px;background:white;border:1px dashed #728e98;border-radius:10px}input[type=file]{padding:8px;font-size:14px}.spacer{margin-top:24px}@media(max-width:380px){.results{gap:4px}header{gap:6px}}

header button{white-space:nowrap}#identity{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card>span:not(.badge){font-weight:400}

button.stat{text-align:left;font-weight:400;color:#172e36}button.stat strong{font-weight:750}button.stat:hover{border-color:#123e48;background:#e6f0f2}

header .brand{display:flex;flex:none;align-items:center}header .brand img{display:block;width:120px;height:40px;object-fit:contain;background:white;border-radius:4px}#plcFilter,#excelPLC{width:100%;max-width:100%}

.results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.MA_UTBEDRES{background:#ffe6c7;color:#783b00}

.report-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}.report-fields input,.report-fields select{width:100%;min-width:0}.report-comment{white-space:pre-wrap}@media(max-width:420px){.report-fields{grid-template-columns:1fr}}

.header-actions{display:flex;gap:8px;align-items:center}@media(max-width:520px){header{flex-wrap:wrap;gap:8px;padding:12px 16px}.header-actions{width:100%}.header-actions button{flex:1}.searchbar{top:112px}.header-actions:has(button:not([hidden])){min-height:40px}.header-actions:not(:has(button:not([hidden]))){display:none}}

.tag-choice{display:flex;align-items:center;gap:.75rem}.tag-choice input{width:auto;min-height:24px;flex:none}.tag-choice strong{overflow-wrap:anywhere}#tagPreview li{overflow-wrap:anywhere}

.header-actions{flex-wrap:wrap}.header-actions button{flex-shrink:0}.help-page{line-height:1.6;overflow-wrap:anywhere}.help-page section{scroll-margin-top:calc(var(--header-height,130px) + 16px);margin-top:2rem}.help-page h1{scroll-margin-top:calc(var(--header-height,130px) + 16px)}.help-page li{margin:.5rem 0}.help-page code{overflow-wrap:anywhere}.help-contents{background:white;border:1px solid var(--line);border-radius:12px;padding:0 18px 12px}.help-page section:focus{outline:none}@media print{header,#notice,.help-contents{display:none}main{max-width:none;padding:0}.help-page section{break-inside:avoid}}

.searchbar{top:var(--header-height,112px)}

#offlineBanner{padding:.6rem 1rem;background:#fff3cd;color:#493a0a;font-size:.9rem}#offPLCs label{display:block;margin:.6rem 0}#offContent{margin-top:1.5rem}#offContent .card{width:100%}#offMessage{white-space:pre-wrap}

.offline-actions{flex-wrap:wrap;align-items:stretch}.offline-actions>button{flex:1 1 150px;min-width:0;overflow-wrap:anywhere}#offPLCs input[type=checkbox]{width:20px;min-height:20px;vertical-align:middle}

/* Keep logout beside the username, above the mobile navigation. */
header{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"brand identity actions logout"}header .brand{grid-area:brand}#identity{grid-area:identity}#logout{grid-area:logout}.header-actions{grid-area:actions}
@media(max-width:520px){header{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"brand identity logout" "actions actions actions"}}

.system-information{margin:.7rem 0;padding:.7rem;border-left:3px solid #718096;background:#f1f5f9;color:#253348;overflow-wrap:anywhere}.system-information p{white-space:pre-wrap;margin:.3rem 0}.system-info-option{display:flex;align-items:center;gap:.6rem;margin:1rem 0}.system-info-option input{width:auto;flex:none}

.configurator{overflow-wrap:anywhere}.configurator select{max-width:100%;width:100%}.configurator .fields{grid-template-columns:repeat(2,minmax(0,1fr))}.configurator .row{flex-wrap:wrap}.configurator summary{overflow-wrap:anywhere}.configurator .config-version{font-size:12px}

.measurement-card{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;width:100%;text-align:left;cursor:pointer}.measurement-card span{display:block}.measurement-line{display:grid;grid-template-columns:80px minmax(150px,1.2fr) minmax(130px,1fr) minmax(130px,.8fr) minmax(150px,1.2fr);gap:8px;align-items:end;padding:10px 0;border-bottom:1px solid var(--line)}.measurement-line label{margin:0}.measurement-line input,.measurement-line select{width:100%;min-width:0}.measurement-signal{display:flex;flex-direction:column;min-height:42px;justify-content:center}.measurement-signal small{color:var(--muted)}@media(max-width:760px){.measurement-line{grid-template-columns:1fr 1fr}.measurement-line>strong{grid-column:1/-1}.measurement-signal{grid-column:1/-1}}
.measurement-line{grid-template-columns:48px minmax(180px,1.4fr) minmax(90px,.6fr) 92px minmax(150px,1fr) 82px;align-items:center}.measurement-line input[readonly]{background:#f1f5f9}.measurement-result{width:92px!important;min-width:0}.measurement-line small{display:block;color:var(--muted)}@media(max-width:760px){.measurement-line{grid-template-columns:42px 1fr 80px}.measurement-line .measurement-signal{grid-column:auto}.measurement-line input[name=comment]{grid-column:2/-1}.measurement-line button{grid-column:3}.measurement-result{width:80px!important}}

/* Målelinje: TAG over råverdi, kompakt resultat og egen godkjenning per kanal. */
.measurement-line{grid-template-columns:48px minmax(220px,1.6fr) minmax(90px,.65fr) 88px minmax(120px,1fr) 82px;gap:6px;align-items:center}
.measurement-tag{display:flex;flex-direction:column;min-width:0;line-height:1.15}
.measurement-tag small{font-size:.68rem;text-transform:uppercase;color:var(--muted)}
.measurement-tag b{overflow-wrap:anywhere;font-size:.9rem}
.measurement-signal{min-height:0;white-space:nowrap;font-variant-numeric:tabular-nums}
.measurement-result{width:88px!important;font-size:.85rem;padding:.25rem!important}
.measurement-line input[name=comment]{padding:.35rem .45rem}
@media(max-width:760px){.measurement-line{grid-template-columns:42px minmax(0,1fr) 78px}.measurement-signal{grid-column:2}.measurement-result{grid-column:3;grid-row:2;width:78px!important}.measurement-line input[name=comment]{grid-column:2/-1}.measurement-line button{grid-column:3;grid-row:3}}
/* Author display rules (cards, rows and labels) must respect the hidden state. */
[hidden]{display:none!important}

.report-actions{flex-wrap:wrap;align-items:stretch}.report-actions>button{flex:1 1 190px;min-width:0}

#scheduleFilterFields{min-width:0;margin:20px 0;padding:12px;border:1px solid var(--line);border-radius:8px}#scheduleFilterFields legend{font-weight:650;padding:0 6px}

.report-rio{min-width:0;margin:16px 0 8px}.report-rio>span{font-weight:600}.report-rio details{margin:0;background:white;border:1px solid var(--line);border-radius:9px}.report-rio summary{padding:12px;min-height:50px;overflow-wrap:anywhere}.report-rio summary:focus-visible{outline:3px solid #eab951}.rio-options{max-height:260px;overflow:auto;padding:0 12px 12px}.rio-options label{display:flex;align-items:center;gap:10px;min-height:44px;margin:0;overflow-wrap:anywhere}.report-fields .rio-options input{width:20px;min-height:20px;height:20px;flex-shrink:0}.rio-options button{width:100%;font-size:14px}

/* Compact drive signal rows; details and manual tests expand on demand. */
#driveSignals .drive-signal-details{margin:0}
#driveSignals .drive-signal-details>summary strong{font-size:inherit}
#driveSignals .drive-signal-row{border-bottom:1px solid #d6dfe1;margin:0;padding:0}
#driveSignals .drive-signal-details>summary,#driveSignals .drive-signals-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.65fr) 100px 112px;gap:12px;align-items:center;min-height:48px;padding:8px 0}
#driveSignals .drive-signal-details>summary{cursor:pointer;list-style:none}
#driveSignals .drive-signals-heading{font-size:.8rem;color:#4d636c;border-bottom:1px solid #d6dfe1;min-height:32px;font-weight:600}
#driveSignals .drive-signals-heading>span:last-child{width:112px}
#driveSignals .drive-signal-details>summary::-webkit-details-marker{display:none}
#driveSignals .drive-signal-details>summary strong,#driveSignals .drive-signal-current{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#driveSignals .drive-tested{white-space:nowrap;font-size:.85rem;font-weight:500}
#driveSignals .drive-detail-link{color:#075c78;text-decoration:underline;white-space:nowrap;font-size:.9rem}
#driveSignals .drive-signal-details>summary:focus-visible{outline:2px solid #075c78;outline-offset:2px}
#driveSignals .drive-signal-details[open]>.drive-signal-content{padding:8px 12px 16px;background:#f3f7f8;border-radius:6px;margin-bottom:8px;overflow-wrap:anywhere}
@media(max-width:600px){
 #driveSignals .drive-signal-details>summary,#driveSignals .drive-signals-heading{grid-template-columns:minmax(0,1fr) 70px 60px;gap:4px;font-size:.75rem}
 #driveSignals .drive-signal-current{display:none}
 #driveSignals .drive-tested,#driveSignals .drive-detail-link{font-size:.75rem}
 #driveSignals .drive-signals-heading>span:last-child{width:60px}
}
@media(max-width:600px){#driveSignals .drive-warning-label{display:none}}
@media(max-width:600px){#drivePanel{padding:4px}#driveSignals .drive-signal-details>summary strong{letter-spacing:-.02em}}

#reportDetails{margin:16px 0;padding:12px;border:1px solid var(--line);border-radius:9px;min-width:0}#reportDetails legend{font-weight:600}#reportDetails p{margin:0 0 8px}.report-detail-options{display:flex;flex-wrap:wrap;gap:8px 24px}.report-detail-options label{display:flex;align-items:center;gap:8px;margin:0;min-height:44px}.report-detail-options input{width:20px;min-height:20px;height:20px;flex:none}.report-row-details{overflow-wrap:anywhere}.report-row-details:empty{display:none}

/* Test registration remains visible beside each drive signal. */
#driveSignals .drive-row-heading,#driveSignals .drive-signal-row{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;align-items:start}
#driveSignals .drive-signal-details{min-width:0}
#driveSignals .drive-signal-details>summary,#driveSignals .drive-signals-heading{grid-template-columns:minmax(0,1fr) minmax(0,.65fr) 100px 112px;gap:8px}
#driveSignals .drive-signals-heading>span:last-child{width:auto}
#driveSignals [data-drive-test],#driveSignals .drive-test-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 150px;gap:8px;align-items:center;margin:0;padding:8px 0}
#driveSignals [data-drive-test] label{min-width:0;margin:0}
#driveSignals [data-drive-test] label>span{display:none}
#driveSignals [data-drive-test] input,#driveSignals [data-drive-test] select{width:100%;min-width:0;margin:0}
#driveSignals [data-drive-test] button{margin:0;font-size:.8rem;min-height:44px}
#driveSignals [data-test-notice]{grid-column:1/-1;margin:0;overflow-wrap:anywhere}
#driveSignals [data-test-notice]:empty{display:none}
#driveSignals .drive-test-heading{font-size:.8rem;color:#4d636c;font-weight:600;min-height:32px}
#driveSignals .drive-test-unavailable{font-size:.85rem;overflow-wrap:anywhere}
@media(max-width:1100px){
 #driveSignals .drive-row-heading,#driveSignals .drive-signal-row{grid-template-columns:minmax(0,1fr);gap:0}
 #driveSignals .drive-test-heading{display:none}
 #driveSignals [data-drive-test] label>span{display:block;font-size:.8rem}
 #driveSignals [data-drive-test]{align-items:end;padding:0 0 12px}
}
@media(max-width:600px){
 #driveSignals .drive-signal-details>summary,#driveSignals .drive-signals-heading{grid-template-columns:minmax(0,1fr) 70px 60px;gap:4px}
 #driveSignals [data-drive-test]{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 #driveSignals [data-drive-test] button{grid-column:1/-1;justify-self:start}
}

main:has(#driveSignals){max-width:1440px}
#driveSignals .drive-tag{min-width:0}
#driveSignals .drive-tag-description{display:block;white-space:normal;overflow-wrap:anywhere;font-size:.8rem;font-weight:400;color:#4d636c;margin-top:4px}
#driveSignals .drive-tag strong{white-space:normal;overflow-wrap:anywhere}

.signal-logic-field{grid-column:1/-1;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.signal-logic-field label{margin:0}.signal-logic-field input,.signal-logic-field select{width:22rem;max-width:100%;margin:0}
.signal-logic-field>small{flex-basis:100%}
.failsafe-info{position:relative;margin:0}.failsafe-info summary{cursor:help;text-decoration:underline;text-underline-offset:.2em}
.failsafe-popup{display:none;position:absolute;z-index:30;top:100%;left:0;width:min(36rem,85vw);max-height:65vh;overflow:auto;padding:1rem;background:#fff;color:#172b32;border:1px solid #486b74;border-radius:.4rem;box-shadow:0 .4rem 1.2rem #0004}
.failsafe-info[open]>.failsafe-popup{display:block}

@media(max-width:700px){.failsafe-popup{position:fixed;left:5vw;right:5vw;top:22vh;width:auto;max-height:65vh}.signal-logic-field input,.signal-logic-field select{width:100%}}

/* Keep the compact signal selector beside its explanation, also on mobile. */
.signal-logic-field>label{flex-basis:100%;order:0}
.signal-logic-field select{width:7.5rem;max-width:7.5rem;flex:0 0 7.5rem;order:1}
.signal-logic-field>.failsafe-info{flex:1 1 0;min-width:0;order:2}
.signal-logic-field>.failsafe-info summary{padding:.25rem 0}
.signal-logic-field>small{order:3}

/* Master cleanup comparison remains readable on narrow screens. */
.cleanup-choice{display:flex;align-items:center;gap:.75rem}.cleanup-choice input{width:1.4rem;flex:0 0 1.4rem}
.cleanup-card{overflow-wrap:anywhere}.cleanup-card details{margin-top:1rem}.cleanup-comparison{width:100%;table-layout:fixed;border-collapse:collapse;font-size:.9rem}.cleanup-comparison th,.cleanup-comparison td{padding:.5rem;border-bottom:1px solid #ccd9dc;text-align:left;vertical-align:top;overflow-wrap:anywhere}.cleanup-comparison th:first-child{width:25%}.cleanup-difference{background:#fff6dc;color:#302400}.cleanup-actions{position:sticky;bottom:0;background:#fff;padding:1rem;display:flex;gap:1rem;align-items:center;justify-content:space-between;box-shadow:0 -2px 8px #0002;z-index:2}.cleanup-actions button{white-space:normal}
