/* Feiken Schouwtool — front-end (kale standalone pagina) */

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body.fst-page { overflow-x: clip; }   /* voorkomt horizontaal scrollen; breekt (anders dan hidden) de sticky balk niet */

body.fst-page {
	background:
		radial-gradient(circle at 15% -10%, rgba(255,170,0,.10), transparent 40%),
		#FDFBF7;
	color: #16191D;
	font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	-webkit-font-smoothing: antialiased;
	min-height: 100vh;
	padding: 28px 16px 72px;
}

#fst-app {
	background: #fff;
	max-width: 760px;
	margin: 0 auto;
	padding: 26px 28px 32px;
	border-radius: 16px;
	text-align: left;
	box-shadow: 0 10px 40px rgba(16,25,29,.10), 0 2px 6px rgba(16,25,29,.05);
}
#fst-app, #fst-app label, #fst-app .fst-label, #fst-app .fst-pslabel { text-align: left; }

.fst-head { border-bottom: 3px solid #FFAA00; padding-bottom: 14px; margin-bottom: 18px; }
.fst-brand { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #E61E1E; }
.fst-head h1 { font-family: "Nunito", sans-serif; font-size: 26px; margin: 4px 0 6px; }
.fst-sub { color: #5A6068; margin: 0; font-size: 14px; }

.fst-meta { background: #F4F6F8; border: 1px solid #E4E8EC; border-radius: 14px; padding: 16px 18px; margin-bottom: 22px; }
.fst-meta-title { margin: 0 0 12px; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #6A7079; }
.fst-project { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; margin: 0; }
.fst-project label { display: flex; flex-direction: column; font-size: 13px; font-weight: 600; color: #3A4048; gap: 4px; }
.fst-project .fst-wb { grid-column: 1 / -1; }
.fst-project input { background: #fff; }

/* Startscherm */
.fst-start { text-align: center; background: #fff; border: 1px dashed #D4D8DD; border-radius: 14px; padding: 28px 24px; margin-bottom: 8px; }
.fst-start-text { margin: 0 0 16px; color: #5A6068; font-size: 14px; }

/* Sectiekoppen: duidelijk uitstekend zodat secties los van elkaar lezen */
.fst-section {
	font-family: "Nunito", sans-serif; font-weight: 800; font-size: 14.5px;
	letter-spacing: .02em; color: #0E2C40;
	margin: 26px 0 14px; padding: 10px 15px;
	background: #0E2C40; color: #fff; border-radius: 9px;
	display: flex; align-items: center; gap: 10px;
}
.fst-section::before { content: ""; width: 5px; height: 17px; background: #FFAA00; border-radius: 3px; display: inline-block; flex: 0 0 auto; }
.fst-section:first-of-type { margin-top: 4px; }

.fst-field { margin-bottom: 14px; padding: 6px 0 6px 12px; border-left: 3px solid #EDEFF1; border-radius: 0 8px 8px 0; transition: border-color .15s, background .15s; }
.fst-field.fst-st-akkoord { border-left-color: #1a7f37; background: #F4FBF6; }
.fst-field.fst-st-anders { border-left-color: #E07B00; background: #FFF9F0; }
.fst-field > label.fst-label { display: block; font-weight: 600; font-size: 14px; margin-bottom: 6px; }
.fst-field .fst-hint { color: #6A7079; font-size: 12.5px; margin: 0 0 6px; }
.fst-field.fst-locked .fst-answer { opacity: .72; }
.fst-field.fst-locked .fst-answer input,
.fst-field.fst-locked .fst-answer select,
.fst-field.fst-locked .fst-answer textarea { background: #F1F3F5; cursor: not-allowed; }
.fst-field.fst-locked .fst-choices label { cursor: default; }
.fst-req { color: #E61E1E; }

input[type="text"], input[type="number"], textarea, select {
	font: inherit; width: 100%; padding: 9px 11px;
	border: 1px solid #D4D8DD; border-radius: 9px; background: #fff; color: inherit;
}
input:focus, textarea:focus, select:focus { outline: none; border-color: #FFAA00; box-shadow: 0 0 0 3px rgba(255,170,0,.18); }
textarea { min-height: 78px; resize: vertical; }

.fst-choices { display: flex; flex-direction: column; gap: 6px; }
.fst-choices label { display: flex; align-items: center; gap: 9px; font-size: 14px; font-weight: 500; padding: 8px 11px; border: 1px solid #E2E5E9; border-radius: 9px; cursor: pointer; }
.fst-choices label:hover { border-color: #FFAA00; }
.fst-choices input { width: auto; }
.fst-anders-wrap { margin-top: 7px; }

.fst-actions { margin-top: 24px; }
.fst-btn {
	font: inherit; font-weight: 700; cursor: pointer;
	background: linear-gradient(135deg, #FFAA00 0%, #E61E1E 100%); color: #fff;
	border: 0; border-radius: 11px; padding: 13px 22px; width: 100%; font-size: 16px;
}
.fst-btn:disabled { opacity: .6; cursor: default; }

.fst-result { margin-top: 12px; font-size: 14px; }
.fst-result.err { color: #C0392B; }
.fst-thanks { margin-top: 16px; padding: 22px; background: #F3FAF4; border: 1px solid #BFE3C8; border-radius: 12px; text-align: center; }
.fst-thanks h2 { font-family: "Nunito", sans-serif; margin: 0 0 6px; }

.fst-guard { max-width: 520px; margin: 12vh auto 0; background: #fff; border: 1px solid #E4E7EB; border-radius: 14px; padding: 28px 26px; text-align: center; color: #5A6068; box-shadow: 0 10px 40px rgba(16,25,29,.10); }

@media (max-width: 640px) {
	body.fst-page { padding: 0; }
	#fst-app { max-width: none; border-radius: 0; padding: 20px 16px 44px; box-shadow: none; min-height: 100vh; }
	.fst-project { grid-template-columns: 1fr; }
	.fst-guard { margin: 8vh 14px 0; }
}

/* Per-vraag bevestiging (op locatie) */
.fst-confirm { display: flex; gap: 8px; align-items: center; margin-top: 8px; flex-wrap: wrap; }
.fst-cbtn { font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; padding: 7px 16px; border-radius: 8px; border: 1px solid #D4D8DD; background: #fff; color: #5A6068; }
.fst-cbtn:hover { border-color: #B6BcC4; }
.fst-cbtn-ok.on { background: #1a7f37; border-color: #1a7f37; color: #fff; }
.fst-cbtn-edit.on { background: #E07B00; border-color: #E07B00; color: #fff; }
.fst-status-tag { font-size: 12px; font-weight: 600; color: #9AA0A6; margin-left: 2px; }
.fst-st-akkoord .fst-status-tag { color: #1a7f37; }
.fst-st-anders .fst-status-tag { color: #C46A00; }
.fst-todo-hint { margin: 4px 0 14px; padding: 10px 14px; background: #EAF2FB; border: 1px solid #C5DBF3; border-radius: 9px; font-size: 13.5px; color: #1B4D7E; font-weight: 600; }

/* Werkbeschrijving (monteur) */
.fst-werklijst { font-size: 15px; line-height: 1.6; padding-left: 22px; }
.fst-werklijst li { margin-bottom: 8px; }
@media print {
	body.fst-page { background: #fff; padding: 0; }
	#fst-app { box-shadow: none; border-radius: 0; max-width: none; }
	.fst-noprint { display: none !important; }
}

/* Tweekoloms-layout met live schouwrapport */
.fst-layout { display: flex; gap: 24px; max-width: 1240px; margin: 0 auto; align-items: flex-start; }
.fst-layout #fst-app { flex: 1 1 auto; max-width: none; margin: 0; }
.fst-side { flex: 0 0 420px; position: sticky; top: 24px; }
.fst-side-card { background: #fff; border-radius: 16px; box-shadow: 0 10px 40px rgba(16,25,29,.10), 0 2px 6px rgba(16,25,29,.05); padding: 24px 26px 28px; text-align: left; }
.fst-side-card h2 { font-family: "Nunito", sans-serif; font-size: 19px; margin: 0 0 2px; }
.fst-side-sub { color: #6A7079; font-size: 12.5px; margin: 0 0 16px; }
.fst-side-block { margin-top: 20px; padding-top: 20px; border-top: 2px solid #ECEEF0; }
.fst-side-block:first-of-type { margin-top: 16px; }
.fst-side-block h3 { font-size: 11px; text-transform: uppercase; letter-spacing: .07em; color: #0E2C40; margin: 0 0 10px; padding-bottom: 6px; border-bottom: 2px solid #FFAA00; display: inline-block; }
.fst-rap-empty { color: #9AA0A6; font-size: 13px; margin: 4px 0; }
.fst-rap-row { display: flex; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1px solid #F2F3F5; font-size: 14px; }
.fst-rap-row:last-child { border-bottom: 0; }
.fst-rap-naam { color: #16191D; }
.fst-rap-aantal { color: #5A6068; white-space: nowrap; }
.fst-rap-warn .fst-rap-naam { color: #C0392B; }
.fst-rap-totaal { margin-top: 12px; padding-top: 12px; border-top: 1px solid #E6E8EB; font-weight: 700; font-size: 15px; color: #0E2C40; display: flex; justify-content: space-between; gap: 10px; }
.fst-rap-totaal:empty { display: none; }
.fst-rap-werk { margin: 0; padding-left: 18px; font-size: 14px; line-height: 1.5; }
.fst-rap-werk li { margin-bottom: 6px; }
@media (max-width: 1040px) {
	.fst-layout { flex-direction: column; max-width: 760px; }
	.fst-side { position: static; flex-basis: auto; width: 100%; }
}

/* Volledig schouwrapport (print) */
.fst-rep-h { font-family: "Nunito", sans-serif; font-size: 15px; margin: 22px 0 8px; padding-bottom: 6px; border-bottom: 2px solid #FFAA00; }
.fst-rep-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.fst-rep-table th, .fst-rep-table td { text-align: left; padding: 7px 8px; border-bottom: 1px solid #ECEEF0; vertical-align: top; }
.fst-rep-table thead th { font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: #5A6068; }
.fst-rep-table tfoot th { border-top: 2px solid #16191D; border-bottom: 0; }

/* Opmerking per vraag + algemene opmerking (monteur) */
.fst-note-wrap { margin-top: 8px; }
.fst-note { display: block; width: 100%; min-height: 46px; margin-top: 0; padding: 8px 10px; border: 1px solid #E6C9A0; border-radius: 8px; font: inherit; font-size: 13.5px; background: #FFFCF6; box-sizing: border-box; resize: vertical; }
.fst-note::placeholder { color: #B79B73; }
.fst-algemene-notitie { margin: 18px 0; }
.fst-algemene-notitie textarea { width: 100%; padding: 10px 12px; border: 1px solid #d7dbe0; border-radius: 8px; font-size: 14px; box-sizing: border-box; resize: vertical; }

/* Eenmalige inzending: bevestiging + waarschuwing */
.fst-confirm-once { margin: 18px 0 6px; padding: 14px 16px; background: #FFF8E6; border: 1px solid #FFE08A; border-radius: 10px; }
.fst-confirm-once label { display: flex; gap: 9px; align-items: flex-start; font-size: 14px; cursor: pointer; }
.fst-confirm-once input[type=checkbox] { margin-top: 2px; width: 18px; height: 18px; flex: 0 0 auto; }
.fst-confirm-once .fst-warn { margin: 8px 0 0; font-size: 13px; color: #8A4B00; }
.fst-btn:disabled { opacity: .5; cursor: not-allowed; }

/* Vergrendelde link (al ingezonden) */
.fst-locked { max-width: 560px; margin: 60px auto; text-align: center; }
.fst-locked h2 { margin: 0 0 10px; }
.fst-locked p { color: #4a5158; }

/* Productselector als aanvink-lijst met aantal */
.fst-psel { border: 1px solid #e3e6ea; border-radius: 10px; overflow: hidden; }
.fst-psrow { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 12px; border-bottom: 1px solid #f0f2f4; }
.fst-psrow:last-child { border-bottom: none; }
.fst-pslabel { display: flex; align-items: center; gap: 10px; cursor: pointer; flex: 1; margin: 0; }
.fst-pslabel input[type=checkbox] { width: 18px; height: 18px; flex: 0 0 auto; }
.fst-psqty { display: flex; align-items: center; gap: 6px; flex: 0 0 auto; }
.fst-psnum { width: 80px; padding: 6px 8px; border: 1px solid #d7dbe0; border-radius: 8px; text-align: right; }
.fst-psnum:disabled { background: #f3f4f6; color: #9aa0a6; }
.fst-pseh { color: #6b7177; font-size: 13px; min-width: 28px; }

/* ----------------------------------------------------------------
   Thema-marges neutraliseren binnen het formulier en exact ritme
   afdwingen. Veel thema's voegen verticale marges toe aan elk
   blok-element (label, div, p); dat zorgt voor overdreven witruimte.
   ID-gescopt zodat het de thema-regels overschrijft.
-----------------------------------------------------------------*/
#fst-app #fst-questions > .fst-field { margin: 0 0 10px; }
#fst-app #fst-questions > .fst-section { margin: 20px 0 10px; }
#fst-app #fst-questions > .fst-section:first-child { margin-top: 2px; }
#fst-app .fst-field > label.fst-label { margin: 0 0 5px; }
#fst-app .fst-field > .fst-hint { margin: 0 0 5px; }
#fst-app .fst-field > .fst-answer { margin: 0; }
#fst-app .fst-field > .fst-confirm { margin: 7px 0 0; }
#fst-app .fst-field > .fst-note-wrap { margin: 7px 0 0; }
#fst-app .fst-answer .fst-choices,
#fst-app .fst-answer .fst-psel,
#fst-app .fst-answer > input,
#fst-app .fst-answer > textarea,
#fst-app .fst-answer > select { margin: 0; }
#fst-app .fst-choices label { margin: 0; }
#fst-app .fst-psrow { margin: 0; }
#fst-app .fst-meta { margin: 0 0 18px; }
#fst-app .fst-meta .fst-project label { margin: 0; }
#fst-app .fst-start { margin: 0 0 6px; }
#fst-app .fst-start > * { margin: 0; }
#fst-app .fst-start .fst-start-text { margin: 0 0 14px; }
#fst-app #fst-formbody > * { margin-top: 0; }
#fst-app #fst-formbody > #fst-questions { margin: 0; }
#fst-app .fst-confirm > * { margin: 0; }
#fst-app .fst-note-wrap > * { margin: 0; }

/* =====================================================================
   MOCKUP-DOORVOERING (v0.27) — monteur-flow op locatie
   Voortgangsbalk, projectkop, secties met spoor, kaarten, actiebalk.
   Later in het bestand → overschrijft eerdere regels.
===================================================================== */
:root{
  --fk-navy:#0E2C40; --fk-navy2:#163a55; --fk-orange:#FF9E00;
  --fk-green:#1F9D55; --fk-green-bg:#EAF7EF; --fk-amber:#E07B00; --fk-amber-bg:#FFF6EA;
  --fk-red:#C8102E; --fk-line:#E4E8ED; --fk-ink:#16202B; --fk-muted:#6B7785; --fk-muted2:#9AA6B2;
}
body.fst-page{ padding-bottom:140px; }

/* Sticky voortgangsbalk bovenin */
.fst-progress{ position:sticky; top:0; z-index:30; background:rgba(255,255,255,.94); backdrop-filter:saturate(1.1) blur(8px); border-bottom:1px solid var(--fk-line); }
.fst-progress-inner{ max-width:760px; margin:0 auto; padding:11px 16px; }
.fst-progress-top{ display:flex; align-items:center; gap:10px; margin:0 0 9px; }
.fst-brand-min{ font-family:"Nunito",sans-serif; font-weight:800; letter-spacing:.14em; font-size:11px; color:var(--fk-red); }
.fst-progress-title{ font-family:"Nunito",sans-serif; font-weight:800; font-size:15px; color:var(--fk-navy); margin-right:auto; }
.fst-count-pill{ font-weight:700; font-size:12.5px; color:var(--fk-navy); background:#fff; border:1px solid var(--fk-line); border-radius:999px; padding:3px 11px; white-space:nowrap; }
.fst-count-pill b{ color:var(--fk-green); }
.fst-bar{ height:7px; border-radius:999px; background:#E1E6EB; overflow:hidden; }
.fst-bar > i{ display:block; height:100%; width:0; border-radius:999px; background:linear-gradient(90deg,var(--fk-orange),#ffbb3d); transition:width .45s cubic-bezier(.2,.8,.2,1); }

/* Projectkop met navy header */
#fst-app .fst-meta{ margin:0 0 18px; padding:0; background:#fff; border:1px solid var(--fk-line); border-radius:14px; overflow:hidden; }
.fst-meta-head{ background:var(--fk-navy); color:#fff; padding:12px 16px; display:flex; align-items:center; gap:10px; }
.fst-meta-wb{ font-family:"Nunito",sans-serif; font-weight:800; font-size:15px; }
.fst-meta-tag{ margin-left:auto; font-size:10.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#ffd58a; }
#fst-app .fst-meta .fst-project{ display:grid; grid-template-columns:1fr; gap:1px; background:var(--fk-line); margin:0; }
#fst-app .fst-meta .fst-project label{ display:flex; flex-direction:column; gap:3px; background:#fff; padding:11px 16px; margin:0; font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--fk-muted2); }
#fst-app .fst-meta .fst-project label.fst-wb{ grid-column:1 / -1; }
#fst-app .fst-meta .fst-project input{ font-family:"Open Sans",sans-serif; font-weight:600; font-size:14.5px; letter-spacing:0; text-transform:none; color:var(--fk-ink); border:0; border-bottom:2px solid transparent; background:transparent; padding:2px 0 0; }
#fst-app .fst-meta .fst-project input:focus{ outline:none; border-bottom-color:var(--fk-orange); }

/* Startscherm */
#fst-start{ text-align:center; background:#fff; border:1px dashed #cfd6dd; border-radius:14px; padding:20px 18px; }
.fst-start-text{ margin:0 0 14px; color:var(--fk-muted); font-size:13.5px; }
#fst-start .fst-btn{ background:var(--fk-navy); color:#fff; border:0; border-radius:12px; padding:14px 22px; font-weight:700; font-size:15px; box-shadow:0 6px 16px rgba(14,44,64,.22); cursor:pointer; }

/* Secties met balk + spoor */
#fst-app .fst-section-wrap{ margin:22px 0 0; }
#fst-app .fst-section-wrap:first-child{ margin-top:4px; }
#fst-app #fst-questions > .fst-section-wrap{ margin:22px 0 0; }
.fst-section{ display:flex; align-items:center; gap:11px; background:var(--fk-navy); color:#fff; border-radius:11px; padding:11px 15px; margin:0; font-family:"Nunito",sans-serif; font-weight:800; font-size:14px; box-shadow:0 4px 14px rgba(14,44,64,.14); }
.fst-sec-tick{ width:5px; height:18px; border-radius:3px; background:var(--fk-orange); flex:0 0 auto; }
.fst-sec-naam{ }
.fst-sec-count{ margin-left:auto; font-size:11px; font-weight:600; color:#a9bccc; letter-spacing:.04em; }

.fst-spine{ position:relative; margin:12px 0 0; padding-left:30px; }
.fst-spine::before{ content:""; position:absolute; left:11px; top:10px; bottom:10px; width:2px; background:var(--fk-line); border-radius:2px; }

/* Vraagkaart */
#fst-app .fst-spine > .fst-field{ position:relative; background:#fff; border:1px solid var(--fk-line); border-left:4px solid var(--fk-line); border-radius:14px; box-shadow:0 1px 2px rgba(16,32,45,.05), 0 8px 22px rgba(16,32,45,.06); padding:14px 15px; margin:0 0 13px; transition:border-color .2s, background .2s; }
.fst-node{ position:absolute; left:-30px; top:16px; width:22px; height:22px; border-radius:50%; background:#fff; border:2px solid #cfd6dd; display:flex; align-items:center; justify-content:center; transition:.2s; }
.fst-node svg{ width:12px; height:12px; display:none; }
#fst-app .fst-spine > .fst-field > .fst-label{ font-family:"Nunito",sans-serif; font-weight:800; font-size:15.5px; color:var(--fk-navy); margin:0; }
.fst-label .fst-req{ color:var(--fk-red); }
.fst-prepared{ margin:4px 0 0; font-size:11.5px; color:var(--fk-muted); }
.fst-prepared b{ color:var(--fk-muted2); font-weight:700; text-transform:uppercase; letter-spacing:.07em; font-size:10.5px; }
#fst-app .fst-spine > .fst-field > .fst-answer{ margin:10px 0 0; }

/* statussen */
#fst-app .fst-spine > .fst-field.fst-st-akkoord{ border-left-color:var(--fk-green); background:var(--fk-green-bg); }
#fst-app .fst-spine > .fst-field.fst-st-akkoord .fst-node{ background:var(--fk-green); border-color:var(--fk-green); }
#fst-app .fst-spine > .fst-field.fst-st-akkoord .fst-node svg{ display:block; }
#fst-app .fst-spine > .fst-field.fst-st-anders{ border-left-color:var(--fk-amber); background:var(--fk-amber-bg); }
#fst-app .fst-spine > .fst-field.fst-st-anders .fst-node{ background:var(--fk-amber); border-color:var(--fk-amber); }
#fst-app .fst-spine > .fst-field.fst-st-anders .fst-node::after{ content:"✎"; color:#fff; font-size:11px; }

/* vergrendeld antwoord */
.fst-field.fst-locked .fst-answer{ opacity:.9; pointer-events:none; }
.fst-field.fst-locked .fst-answer input, .fst-field.fst-locked .fst-answer select, .fst-field.fst-locked .fst-answer textarea{ background:#F4F6F8; }

/* Knoppen Klopt / Aanpassen met icoon */
#fst-app .fst-confirm{ display:flex; gap:9px; align-items:center; margin:13px 0 0; flex-wrap:wrap; }
.fst-cbtn{ font:inherit; font-weight:700; font-size:14px; cursor:pointer; border-radius:11px; padding:11px 15px; border:1.5px solid var(--fk-line); background:#fff; color:var(--fk-muted); display:inline-flex; align-items:center; gap:7px; transition:.12s; }
.fst-cbtn:hover{ border-color:#b9c2cb; }
.fst-cbtn svg{ width:16px; height:16px; }
.fst-cbtn-ok.on{ background:var(--fk-green); border-color:var(--fk-green); color:#fff; }
.fst-cbtn-edit.on{ background:var(--fk-amber); border-color:var(--fk-amber); color:#fff; }
.fst-status-tag{ margin-left:auto; font-size:12px; font-weight:700; color:var(--fk-muted2); }
.fst-st-akkoord .fst-status-tag{ color:var(--fk-green); }
.fst-st-anders .fst-status-tag{ color:var(--fk-amber); }

/* opmerkingveld */
#fst-app .fst-note-wrap{ margin:11px 0 0; }
.fst-note{ width:100%; min-height:60px; border:1px solid #ecc89a; background:#FFFCF6; border-radius:10px; padding:10px 12px; font:inherit; font-size:14px; resize:vertical; box-sizing:border-box; }

/* Vaste actiebalk onderaan */
.fst-actionbar{ position:fixed; left:0; right:0; bottom:0; z-index:40; background:#fff; border-top:1px solid var(--fk-line); box-shadow:0 -2px 18px rgba(16,32,45,.10); }
.fst-actionbar-inner{ max-width:760px; margin:0 auto; padding:11px 16px max(12px, env(safe-area-inset-bottom)); }
.fst-confirm-once{ display:flex; align-items:flex-start; gap:10px; font-size:13px; color:var(--fk-ink); margin:0 0 10px; cursor:pointer; }
.fst-confirm-once input{ width:20px; height:20px; flex:0 0 auto; margin-top:1px; accent-color:var(--fk-green); }
.fst-confirm-once .fst-warn{ color:var(--fk-muted); font-size:11.5px; }
.fst-submit{ width:100%; border:0; border-radius:13px; padding:14px; font:inherit; font-weight:800; font-size:16px; color:#fff; background:var(--fk-green); cursor:pointer; transition:.15s; box-shadow:0 8px 20px rgba(31,157,85,.28); }
.fst-submit[disabled]{ background:#C7CDD4; cursor:not-allowed; box-shadow:none; }
.fst-submit-sub{ display:block; font-weight:600; font-size:11.5px; opacity:.92; margin-top:1px; }

/* sidebar wat rustiger onder de vragen op mobiel */
@media (max-width:1040px){ .fst-side{ margin-top:8px; } }

@media (prefers-reduced-motion: reduce){ *{ transition:none !important; } }

/* Kaarten altijd volledige breedte (ongeacht inhoud of bewerk-status) */
#fst-app .fst-section-wrap,
#fst-app .fst-spine,
#fst-app .fst-spine > .fst-field,
#fst-app .fst-spine > .fst-field > .fst-answer{ display:block; width:100%; box-sizing:border-box; }
#fst-app .fst-spine > .fst-field > .fst-answer > .fst-psel,
#fst-app .fst-spine > .fst-field > .fst-answer > .fst-choices{ width:100%; box-sizing:border-box; }

/* Groepskopjes in het Schouwrapport */
.fst-rap-groep{ margin:14px 0 4px; font-size:10.5px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:#0E2C40; }
.fst-rap-groep:first-child{ margin-top:2px; }
.fst-rap-list .fst-rap-row + .fst-rap-groep{ border-top:1px solid #EEF1F4; padding-top:12px; }

/* Algemene opmerking voor kantoor — opvallend kader */
#fst-app .fst-algemene-notitie{ margin:24px 0 6px; background:#F3F7FB; border:1px solid #D8E2EC; border-left:4px solid var(--fk-orange); border-radius:14px; padding:16px 18px; box-shadow:0 1px 2px rgba(16,32,45,.05); }
#fst-app .fst-algemene-notitie > label.fst-label{ display:flex; align-items:center; gap:8px; font-family:"Nunito",sans-serif; font-weight:800; font-size:14.5px; color:var(--fk-navy); margin:0 0 4px; }
#fst-app .fst-algemene-notitie > label.fst-label::before{ content:""; width:20px; height:20px; flex:0 0 auto; background:var(--fk-orange); border-radius:6px; -webkit-mask:center/14px no-repeat url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M4 20h4L18.5 9.5a2 2 0 0 0-3-3L5 17v3z"/></svg>'); mask:center/14px no-repeat url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M4 20h4L18.5 9.5a2 2 0 0 0-3-3L5 17v3z"/></svg>'); }
#fst-app .fst-algemene-notitie textarea{ width:100%; min-height:84px; padding:11px 13px; border:1px solid #C9D6E2; border-radius:10px; font:inherit; font-size:14px; background:#fff; box-sizing:border-box; resize:vertical; }
#fst-app .fst-algemene-notitie textarea:focus{ outline:none; border-color:var(--fk-orange); box-shadow:0 0 0 3px rgba(255,158,0,.15); }

/* =====================================================================
   v0.28 — kaarten vol breedte, voortgangsspoor weg, helderder antwoord
===================================================================== */
/* Spoor + nodes verwijderen (veroorzaakten breedte-rem en veel grijs) */
#fst-app .fst-spine{ padding-left:0 !important; }
#fst-app .fst-spine::before{ display:none !important; }
.fst-node{ display:none !important; }

/* Kaarten en containers hard op volledige breedte (zonder display te forceren,
   anders zou verbergen via display:none niet meer werken) */
#fst-app .fst-section-wrap,
#fst-app .fst-spine,
#fst-app .fst-spine > .fst-field{ width:100% !important; max-width:none !important; box-sizing:border-box; }

/* Vergrendeld antwoord: toon alleen de gekozen optie(s), helder i.p.v. grijs */
.fst-field.fst-locked .fst-answer{ opacity:1 !important; }
.fst-field.fst-locked .fst-choices label:not(:has(input:checked)){ display:none; }
.fst-field.fst-locked .fst-choices label{ background:#fff; border-color:#D4E4DA; color:#16202B; font-weight:600; }
.fst-field.fst-locked .fst-choices label:has(input:checked){ border-color:var(--fk-green); background:#F4FBF6; }
.fst-field.fst-locked .fst-choices input{ display:none; }
.fst-field.fst-locked .fst-psrow:not(:has(.fst-psinc:checked)){ display:none; }
.fst-field.fst-locked .fst-psrow{ background:#fff; }
.fst-field.fst-locked .fst-pslabel input[type=checkbox]{ display:none; }
.fst-field.fst-locked .fst-pslabel::before{ content:""; width:16px; height:16px; flex:0 0 auto; border-radius:5px; background:var(--fk-green); -webkit-mask:center/11px no-repeat url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M5 13l4 4L19 7"/></svg>'); mask:center/11px no-repeat url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M5 13l4 4L19 7"/></svg>'); }
.fst-field.fst-locked .fst-psnum{ -webkit-text-fill-color:#16202B; color:#16202B; opacity:1; background:#F4F7FA; border-color:#E2E7EC; font-weight:600; }
.fst-field.fst-locked input, .fst-field.fst-locked select, .fst-field.fst-locked textarea{ -webkit-text-fill-color:#16202B; color:#16202B; }
.fst-field.fst-locked .fst-answer input[type=text], .fst-field.fst-locked .fst-answer textarea, .fst-field.fst-locked .fst-answer select{ background:#F8FAFC; font-weight:600; }

/* Genummerde vragen per sectie */
#fst-app .fst-spine > .fst-field > .fst-label{ display:flex; align-items:flex-start; gap:9px; flex-wrap:wrap; }
.fst-qnum{ display:inline-flex; align-items:center; justify-content:center; width:23px; height:23px; flex:0 0 auto; border-radius:50%; background:var(--fk-navy); color:#fff; font-family:"Inter",system-ui,sans-serif; font-size:12px; font-weight:800; margin-top:1px; }
.fst-field.fst-st-akkoord .fst-qnum{ background:var(--fk-green); }
.fst-field.fst-st-anders .fst-qnum{ background:var(--fk-amber); }

/* Zachte kleuren op de Klopt/Aanpassen-knoppen (vol gekleurd zodra gekozen) */
.fst-cbtn-ok{ background:#EAF7EF; border-color:#C2E6D1; color:#1C7D44; }
.fst-cbtn-ok:hover{ border-color:#9CD7B4; background:#E2F4E9; }
.fst-cbtn-edit{ background:#FFF4E5; border-color:#F2D3A3; color:#B26A00; }
.fst-cbtn-edit:hover{ border-color:#E9BE7E; background:#FFEFD7; }
.fst-cbtn-ok.on{ background:var(--fk-green); border-color:var(--fk-green); color:#fff; }
.fst-cbtn-edit.on{ background:var(--fk-amber); border-color:var(--fk-amber); color:#fff; }

/* Actiebalk niet sticky maken — gewoon onderaan in de flow */
body.fst-page{ padding-bottom:0; }
.fst-actionbar{ position:static; left:auto; right:auto; bottom:auto; z-index:auto; box-shadow:none; margin-top:18px; border-top:1px solid var(--fk-line); border-radius:14px; background:#fff; }
.fst-actionbar-inner{ padding:16px; }

/* =====================================================================
   Hint: info-icoon + zwevende uitleg-kaart (mobiel-vriendelijk)
===================================================================== */
.fst-hint-data{ display:none !important; }

.fst-hint-btn{ flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; padding:0; margin:0; border:0; border-radius:50%; background:transparent; color:var(--fk-orange); cursor:pointer; vertical-align:middle; -webkit-tap-highlight-color:transparent; transition:background .15s, color .15s; }
.fst-hint-btn svg{ width:20px; height:20px; }
.fst-hint-btn:hover{ background:rgba(255,158,0,.14); }
.fst-hint-btn:focus-visible{ outline:2px solid var(--fk-orange); outline-offset:2px; }

/* Overlay + kaart */
.fst-hint-overlay{ position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:16px; background:rgba(14,44,64,.45); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); }
.fst-hint-overlay[hidden]{ display:none !important; }
body.fst-hint-open{ overflow:hidden; }
.fst-hint-card{ position:relative; width:100%; max-width:460px; max-height:82vh; overflow:auto; background:#fff; border-radius:16px; box-shadow:0 18px 50px rgba(14,44,64,.34); padding:22px 22px 24px; -webkit-overflow-scrolling:touch; animation:fst-hint-in .16s ease-out; }
@keyframes fst-hint-in{ from{ opacity:0; transform:translateY(8px) scale(.98); } to{ opacity:1; transform:none; } }
.fst-hint-close{ position:absolute; top:8px; right:8px; width:40px; height:40px; border:0; background:transparent; color:#6B7785; font-size:28px; line-height:1; cursor:pointer; border-radius:10px; display:flex; align-items:center; justify-content:center; }
.fst-hint-close:hover{ background:#F1F4F7; color:#16202B; }
.fst-hint-close:focus-visible{ outline:2px solid var(--fk-orange); outline-offset:2px; }

/* Inhoud van de hint */
.fst-hint-body{ padding-right:30px; color:#26313C; font-size:15px; line-height:1.55; }
.fst-hint-body :first-child{ margin-top:0; }
.fst-hint-body :last-child{ margin-bottom:0; }
.fst-hint-body p{ margin:0 0 10px; }
.fst-hint-body ul, .fst-hint-body ol{ margin:0 0 10px; padding-left:22px; }
.fst-hint-body li{ margin:3px 0; }
.fst-hint-body a{ color:var(--fk-orange); text-decoration:underline; }
.fst-hint-body strong{ color:var(--fk-navy); }

/* Mobiel: kaart als onderblad, makkelijker te bereiken met de duim */
@media (max-width:560px){
  .fst-hint-overlay{ align-items:flex-end; padding:0; }
  .fst-hint-card{ max-width:none; border-radius:18px 18px 0 0; max-height:80vh; padding:20px 18px calc(22px + env(safe-area-inset-bottom)); animation:fst-hint-up .2s ease-out; }
  @keyframes fst-hint-up{ from{ transform:translateY(100%); } to{ transform:none; } }
}

/* =====================================================================
   Tab-weergave (één sectie per keer)
===================================================================== */
.fst-tabs{ display:flex; gap:7px; overflow-x:auto; padding:2px 2px 12px; -webkit-overflow-scrolling:touch; scrollbar-width:thin; }
.fst-tabs::-webkit-scrollbar{ height:6px; }
.fst-tabs::-webkit-scrollbar-thumb{ background:#cdd5dd; border-radius:3px; }
.fst-tab{ flex:0 0 auto; display:inline-flex; align-items:center; gap:8px; border:1.5px solid var(--fk-line); background:#fff; color:var(--fk-muted); border-radius:999px; padding:9px 15px; font:inherit; font-weight:700; font-size:13.5px; cursor:pointer; white-space:nowrap; transition:.12s; }
.fst-tab:hover{ border-color:#b9c2cb; }
.fst-tab.on{ background:var(--fk-navy); border-color:var(--fk-navy); color:#fff; box-shadow:0 4px 12px rgba(14,44,64,.18); }
.fst-tab-count{ font-size:11px; font-weight:600; opacity:.75; }
.fst-tab.on .fst-tab-count{ color:#ffd58a; opacity:1; }
.fst-tabnav{ display:flex; justify-content:space-between; gap:10px; margin:16px 0 0; }
.fst-tabnav button{ flex:1; border:1.5px solid var(--fk-line); background:#fff; color:var(--fk-navy); border-radius:12px; padding:13px; font:inherit; font-weight:700; font-size:14.5px; cursor:pointer; transition:.12s; }
.fst-tabnav button:hover:not(:disabled){ border-color:#b9c2cb; background:#fafbfc; }
.fst-tabnav button:disabled{ opacity:.4; cursor:not-allowed; }
.fst-tabnav .fst-tabnext{ background:var(--fk-navy); border-color:var(--fk-navy); color:#fff; }
.fst-tabnav .fst-tabnext:hover:not(:disabled){ background:#163a55; }
@media (max-width:560px){ .fst-tabnav button{ padding:14px 10px; font-size:14px; } }

/* =====================================================================
   Optie B — maptabs (verbonden paneel). Overschrijft de pill-stijl.
===================================================================== */
.fst-tabs{ display:flex; gap:6px; overflow-x:auto; padding:14px 12px 0; background:var(--fk-navy); border-radius:14px 14px 0 0; scrollbar-width:none; }
.fst-tabs::-webkit-scrollbar{ display:none; }
.fst-tab{ flex:0 0 auto; border:0; cursor:pointer; padding:11px 15px 13px; margin-bottom:-1px; font-family:"Nunito",sans-serif; font-weight:800; font-size:13px; color:#cdd9e3; background:rgba(255,255,255,.10); border-radius:11px 11px 0 0; display:inline-flex; align-items:center; gap:7px; white-space:nowrap; box-shadow:none; transition:.12s; }
.fst-tab:hover{ background:rgba(255,255,255,.18); color:#fff; border-color:transparent; }
.fst-tab.on{ background:#fff; color:var(--fk-navy); box-shadow:0 -3px 0 var(--fk-orange) inset; }
.fst-tab-count{ font-size:10.5px; font-weight:700; opacity:.85; }
.fst-tab.on .fst-tab-count{ color:var(--fk-green); opacity:1; }

/* Verbonden wit paneel onder de tabs */
body.fst-tabsmode #fst-questions{ background:#fff; border:1px solid var(--fk-line); border-top:0; border-radius:0 0 14px 14px; padding:14px; margin:0; box-shadow:0 6px 18px rgba(16,32,45,.06); }
body.fst-tabsmode #fst-app .fst-section{ display:none; }       /* de tab toont de sectienaam al */
body.fst-tabsmode #fst-app .fst-section-wrap{ margin:0 !important; }
body.fst-tabsmode #fst-app .fst-spine{ margin-top:0; }

/* =====================================================================
   Foto-upload per vraag (op locatie)
===================================================================== */
.fst-foto{ margin:12px 0 0; }
.fst-foto-grid{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.fst-foto-grid:empty{ margin-bottom:0; }
.fst-foto-thumb{ position:relative; width:84px; height:84px; border-radius:10px; overflow:hidden; border:1px solid var(--line); background:#f2f5f8; display:flex; align-items:center; justify-content:center; }
.fst-foto-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.fst-foto-del{ position:absolute; top:3px; right:3px; width:24px; height:24px; border:0; border-radius:50%; background:rgba(14,44,64,.78); color:#fff; font-size:17px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.fst-foto-del:hover{ background:var(--fk-red); }
.fst-foto-err span{ color:var(--fk-red); font-size:11px; text-align:center; padding:4px; }
.fst-foto-spin{ width:22px; height:22px; border:3px solid #d7dee5; border-top-color:var(--fk-orange); border-radius:50%; animation:fst-spin .8s linear infinite; }
@keyframes fst-spin{ to{ transform:rotate(360deg); } }
.fst-foto-add{ display:inline-flex; align-items:center; gap:8px; border:1.5px dashed #c7d0d9; background:#fff; color:var(--navy); border-radius:11px; padding:10px 14px; font:inherit; font-weight:700; font-size:13.5px; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.fst-foto-add svg{ width:18px; height:18px; }
.fst-foto-add:hover{ border-color:var(--orange); color:var(--orange); }

/* Foto's in het printbare schouwrapport */
.fst-rep-fotos{ margin:0 0 14px; }
.fst-rep-foto-label{ font-weight:700; color:var(--navy,#0E2C40); margin:0 0 6px; font-size:14px; }
.fst-rep-foto-grid{ display:flex; flex-wrap:wrap; gap:8px; }
.fst-rep-foto-grid img{ width:140px; height:140px; object-fit:cover; border-radius:10px; border:1px solid #e2e7ec; display:block; }
@media print{ .fst-rep-foto-grid img{ width:120px; height:120px; } .fst-noprint{ display:none !important; } }

/* =====================================================================
   Maptabs op mobiel: schermbreed binnen de app-kaart, nette verbinding
===================================================================== */
@media (max-width:640px){
  body.fst-tabsmode #fst-app{ overflow:hidden; }               /* geen horizontale paginascroll door de strook */
  body.fst-tabsmode .fst-tabs,
  body.fst-tabsmode #fst-questions{ margin-left:-16px; margin-right:-16px; } /* tot de rand van de app-kaart (16px padding) */
  body.fst-tabsmode .fst-tabs{ border-radius:0; padding-left:16px; padding-right:8px; }
  body.fst-tabsmode #fst-questions{ border-radius:0; border-left:0; border-right:0; }
  .fst-tab{ padding:10px 13px 12px; font-size:12.5px; }         /* iets compacter, betere pasvorm */
  .fst-tabnav{ gap:8px; }
}

/* Subtiel "meer info"-linkje bij een materiaal/product */
.fst-prodlink{ font-size:11px; font-weight:700; color:var(--orange,#FF9E00); text-decoration:none; white-space:nowrap; opacity:.9; }
.fst-prodlink:hover{ text-decoration:underline; opacity:1; }
.fst-rep-table .fst-prodlink{ margin-left:4px; }

/* "meer info"-linkje in de productkeuze-lijst */
.fst-psrow .fst-pslink { flex: 0 0 auto; align-self: center; }

/* Productminiatuur in de keuze-lijst */
.fst-psthumb { width: 72px; height: 72px; object-fit: cover; border-radius: 8px; border: 1px solid var(--line,#e2e7ec); flex: 0 0 auto; background: #fff; }

/* Placeholder als een product geen afbeelding heeft */
.fst-psthumb-empty { display: flex; align-items: center; justify-content: center; color: #b6c0ca; background: #f5f7f9; border-style: dashed; }
.fst-psthumb-empty svg { width: 60%; height: 60%; }
