/* Struktur fra org-kartet: grupper i hovedkort, detaljene ved siden av. */
.kfs-under { color:var(--text-muted); font-size:12px; margin:5px 0 0; line-height:1.5; }
/* Gjenbruk org-kartets geometri og typografi direkte. */
.kfs-arbeidsflate { min-width:0; }
.kfs-kart { padding:0; align-items:start; }
.kfs-kort { min-width:0; }
.kfs-kort .ok-sektor-stripe { background:var(--primary); }
.kfs-korthode { display:flex; align-items:start; gap:8px; }
.kfs-fold { flex:1; min-width:0; padding:0; background:none; border:0; text-align:left; font:inherit; color:var(--text); cursor:pointer; }
.kfs-fold > span { display:block; }
.kfs-fold .ok-sektor-navn { overflow-wrap:anywhere; }
.kfs-fold:focus-visible, .kfs-gruppe:focus-visible { outline:2px solid var(--primary); outline-offset:3px; }
.kfs-oppsett { font-size:12px; color:var(--text-muted); }
.kfs-gruppe { display:block; width:100%; border-left:3px solid var(--primary); color:var(--text); text-align:left; cursor:pointer; font:inherit; }
.kfs-gruppe .ok-team-navn { display:block; overflow-wrap:anywhere; }
.kfs-gruppe .kfs-behov { display:block; font-size:12px; color:var(--text-muted); margin-bottom:10px; }
.kfs-gruppe .kfs-delt { display:block; color:var(--primary-dark-adaptiv); font-size:11px; font-weight:600; margin-top:8px; }
.kfs-gruppe .kof-avatar { width:24px; height:24px; font-size:10px; border:2px solid var(--surface); margin-left:-5px; }
.kfs-gruppe .kof-avatar:first-child { margin-left:0; }
.kfs-kart > .kof-tom { grid-column:1 / -1; }
.kfs-ukoblet { font-size:12px; color:var(--text-muted); line-height:1.6; }
.kfs-visninger { display:flex; flex-wrap:wrap; gap:6px; }
.kfs-visninger [aria-pressed=true] { background:var(--primary-pill); color:var(--primary-dark-adaptiv); }
.kfs-detalj { background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:20px; min-width:0; }
.kfs-arbeidsflate:has(.kfs-detalj:not([hidden])) > .kfs-kart { display:none; }
.kfs-detalj h3 { font:700 18px Inter,sans-serif; margin:20px 0 10px; }
.kfs-detalj p { font-size:13px; line-height:1.6; }
.kfs-felter { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr)); gap:12px; margin:14px 0; }
.kfs-felt { display:flex; flex-direction:column; gap:6px; min-width:0; font-size:12px; font-weight:600; }
.kfs-avkryss { display:flex; gap:8px; align-items:center; padding:8px 0; font-size:13px; }
.kfs-lagre { margin-top:24px; border-top:1px solid var(--border); padding-top:16px; }
.kfs-roller summary { cursor:pointer; padding:4px 0; font-size:13px; font-weight:600; }
.kfs-personer { display:grid; gap:10px; margin-top:16px; }
.kfs-personer > div { display:flex; align-items:center; gap:10px; font-size:13px; }
@media(max-width:640px) {
  .kfs-detalj { padding:16px; }
  #kfs-sok { flex-basis:100%; }
}
.ktj-overlay { position:fixed; inset:0; z-index:var(--z-modal); display:flex; align-items:center; justify-content:center; background:var(--overlay-bg); backdrop-filter:blur(var(--overlay-blur)); padding:16px; }
.ktj-panel { width:100%; max-width:1000px; max-height:90vh; overflow:auto; padding:20px; background:var(--surface); border-radius:var(--modal-r); box-shadow:var(--modal-shadow); }
.ktj-person { display:flex; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid var(--border); }
.ktj-person > div { flex:1; }
.ktj-person p { margin:4px 0; color:var(--text-muted); font-size:12px; }
/* Tjenesteområdet er mellomnivået; teamene beholder org-kartets kort. */
.kfs-omrade + .kfs-omrade { margin-top:20px; padding-top:12px; border-top:1px solid var(--border); }
.kfs-omrade h3 { display:flex; justify-content:space-between; gap:12px; margin:0 0 10px; font-size:13px; color:var(--text); }
.kfs-omrade h3 span { color:var(--text-muted); font-size:11px; font-weight:400; }
.kfs-omrade .kfs-gruppe + .kfs-gruppe { margin-top:10px; }
.kfs-teamroller { display:flex; flex-wrap:wrap; gap:8px 20px; }
.kfs-teammedlemmer { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr)); gap:12px; }
#kfs-team-feil { min-height:1.5em; color:var(--st-feil-tekst-adaptiv); }
#kfs-handlinger { display:flex; flex-wrap:wrap; gap:8px; }
.kfs-fold:hover .ok-sektor-navn { color:var(--primary-dark-adaptiv); }

/* Team er første valg i både opprettelse og redigering av bemanningsbehov. */
.ktj-teamvelger {display:flex;align-items:flex-end;gap:10px;margin:12px 0;}
.ktj-teamvelger label {flex:1;min-width:0;}
.ktj-teamvelger select {width:100%;}
/* Redigeringen bruker Eventlabs team-chips (.chip-select i stil-mobil.css,
   .chip-gruppe-velg i stil-personell.css). Eventlabs 120 px-tak rommer knapt
   ett tjenesteområde, så her får lista plass til flere før den ruller. */
.ktj-teamchipvelger .chip-select {max-height:min(280px,40vh);}
/* «Ny gudstjeneste»: #ngt-roller ruller allerede selv (38vh); én rulleflate. */
#ngt-roller .chip-select {max-height:none;}
/* Med alle teamene som chips fyller rollelista sitt 38vh-tak, og da havnet
   «Opprett gudstjeneste» under skjermkanten. Status og knapper står fast
   nederst i dialogen (22px = dialogens innerkant). */
.ngt-fot {position:sticky;bottom:-22px;margin:0 -22px -22px;padding:0 22px 22px;background:var(--bg);}
.ktj-teamchipvelger .chip[aria-disabled=true] {cursor:not-allowed;}
/* Mobilens button{min-height:40px} gjelder også overskriften: sentrer teksten
   i trykkflaten i stedet for å la den henge øverst over en tom luke. */
.ktj-teamchipvelger .chip-select > .chip-gruppe-velg {align-items:center;}
.ktj-standardhjelp {font-size:12px;line-height:1.5;color:var(--text-muted);margin:8px 0 16px;}
.ktj-teamseksjon {border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:16px;}
.ktj-teamhode {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;background:var(--bg2);border-bottom:1px solid var(--border);}
.ktj-teamhode h3 {margin:0;font:400 23px/1.2 var(--kirke-tittelskrift,'Bebas Neue',sans-serif);overflow-wrap:anywhere;}
.ktj-teamhode p {font-size:11px;color:var(--text-muted);margin:4px 0 0;}
.ktj-teamseksjon .ktj-behovrad {padding:12px 14px;border:0;border-radius:0;border-bottom:1px solid var(--border);margin:0;}
.ktj-teamseksjon>[data-team-rolle] {margin:10px;max-width:calc(100% - 20px);white-space:normal;text-align:left;}
/* Kompakte teamrader: valgbryter til venstre, rolleåpner til høyre. */
.ngt-team {position:relative;border:1px solid var(--border);border-radius:14px;margin-top:8px;background:var(--surface);overflow:hidden;}
.ngt-team>header {display:flex;align-items:center;gap:10px;padding:10px 100px 10px 12px;min-height:62px;box-sizing:border-box;}
.ngt-team>header label,.ngt-teamrolle label {display:flex;align-items:center;gap:11px;min-width:0;flex:1;font-size:13px;cursor:pointer;}
.ngt-team>header label {min-height:40px;}
.ngt-team>header strong {font-weight:600;line-height:1.4;overflow-wrap:anywhere;}
.ngt-team-avtekst {display:none;position:absolute;right:16px;font-size:11px;color:var(--text-muted);}
.ngt-team:has([data-ngt-teamvalg]:not(:checked)) {background:transparent;}
.ngt-team:has([data-ngt-teamvalg]:not(:checked)) .ngt-team-avtekst {display:block;}
.ngt-team input[type=checkbox] {appearance:none;-webkit-appearance:none;position:relative;display:inline-block;flex-shrink:0;margin:0;cursor:pointer;border:1px solid var(--border);background:var(--bg2);}
.ngt-team [data-ngt-teamvalg] {width:32px;height:20px;border-radius:99px;}
.ngt-team [data-ngt-teamvalg]::after {content:'';position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:50%;background:var(--text-muted);transition:transform .15s;}
.ngt-team input[type=checkbox]:checked {background:var(--primary);border-color:var(--primary);}
.ngt-team [data-ngt-teamvalg]:checked::after {background:var(--surface);transform:translateX(12px);}
.ngt-team input[type=checkbox]:focus-visible,.ngt-team summary:focus-visible {outline:2px solid var(--primary);outline-offset:3px;}
.ngt-team details>summary {position:absolute;top:14px;right:10px;display:flex;align-items:center;gap:7px;min-height:34px;padding:0 8px;border-radius:99px;list-style:none;cursor:pointer;font-size:11px;color:var(--text-muted);}
.ngt-team details>summary::-webkit-details-marker {display:none;}
.ngt-team details>summary:hover {background:var(--primary-pill);color:var(--primary-dark-adaptiv);}
.ngt-team details>summary svg {transition:transform .15s;}
.ngt-team details[open]>summary {color:var(--primary-dark-adaptiv);background:var(--primary-pill);}
.ngt-team details[open]>summary svg {transform:rotate(90deg);}
.ngt-team details[open] {padding:4px 12px 10px;border-top:1px solid var(--border);}
.ngt-teamrolle {display:flex;align-items:center;gap:12px;padding:7px 0 7px 2px;}
.ngt-teamrolle .ngt-rolle {width:20px;height:20px;border-radius:50%;}
.ngt-teamrolle .ngt-rolle:checked::after {content:'';position:absolute;left:6px;top:3px;width:5px;height:9px;border:solid var(--surface);border-width:0 2px 2px 0;transform:rotate(45deg);}
.ngt-teamrolle .ngt-antall {width:60px;flex:0 0 60px;text-align:center;padding:7px;border:1px solid var(--border);border-radius:9px;background:var(--bg);color:var(--text);font:inherit;}
@media(max-width:480px){.ktj-teamvelger{flex-wrap:wrap;}.ktj-teamvelger label{flex-basis:100%;}.ktj-teamhode{align-items:flex-start;}.ktj-teamhode h3{font-size:21px;}}
@media(prefers-reduced-motion:reduce){.ngt-team [data-ngt-teamvalg]::after,.ngt-team details>summary svg{transition:none;}}
@media(forced-colors:active){.ngt-team input[type=checkbox]{appearance:auto;-webkit-appearance:auto;}.ngt-team input[type=checkbox]::after{display:none;}}
