/* Tjenesteflatene bygger på Churchlabs felles knapper, typografi og fargetokens. */
.ktv-verktøy,.ktv-mobilteam-hode,.kmv-hode,.kmv-dato{display:flex;align-items:center;justify-content:space-between;gap:16px}
.ktv-verktøy{margin-bottom:12px}.ktv-verktøy p,.ktv-dempet,.kmv-dempet{color:var(--text-muted)}
.ktv-visninger{display:flex;gap:4px}.ktv-visninger [aria-pressed="true"]{background:var(--primary-pill);color:var(--primary-dark-adaptiv);border-color:var(--primary)}
.ktv-tabell{min-width:100%;table-layout:auto}.ktv-tabell th,.ktv-tabell td{vertical-align:top}
.ktv-tabell .ktv-valgtdato{min-width:220px;background:color-mix(in srgb,var(--primary-pill) 35%,var(--surface))}
.ktv-datoknapp,.ktv-teamknapp{border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;width:100%;padding:8px}
.ktv-datoknapp:hover,.ktv-teamknapp:hover{background:var(--primary-pill)}
.ktv-datoknapp span,.ktv-datoknapp small,.ktv-teamknapp small,.ktv-dekning,.ktv-personrad th small{display:block}
.ktv-teamknapp{font-weight:700}.ktv-teamknapp small{font-weight:400;margin-top:4px;font-size:11px}
.ktv-tabell .ktv-teamrad th,.ktv-tabell .ktv-teamrad td{background:var(--primary-pill);color:var(--primary-dark-adaptiv);border-top:1px solid var(--border)}
.ktv-dekning{font-size:12px;font-weight:600}.ktv-ledig{color:var(--text-muted);font-size:11px}
.ktv-ledigknapp{display:block;border:1px dashed var(--border);background:var(--bg);color:var(--text);padding:9px 10px;border-radius:var(--radius-sm,6px);width:100%;text-align:left;cursor:pointer;margin:0 0 6px;font:inherit;font-size:12px}
.ktv-ledigknapp small{display:block;color:var(--text-muted);font-size:10px;margin-top:4px}.ktv-ledigknapp:hover{border-color:var(--primary);background:var(--primary-pill)}
.ktv-personvakt{padding:10px;border:1px solid var(--border);border-radius:var(--radius-sm,6px);background:var(--surface);margin-bottom:4px}.ktv-personvakt small,.ktv-svar{display:block;color:var(--text-muted);font-size:10px;font-weight:400;margin-top:3px}.ktv-utilgjengelig{color:var(--text-muted);font-size:12px}
.ktv-mobilteam{border-top:1px solid var(--border);margin-top:16px}.ktv-mobilteam-hode{background:var(--primary-pill);padding:8px}.ktv-ledigliste{margin-top:12px}
.kmv-flate{max-width:1120px;margin:auto;padding:24px;min-width:0;color:var(--text)}.kmv-hode{align-items:flex-start}.kmv-hode h2{font-family:var(--kirke-tittelskrift);font-size:30px;letter-spacing:.01em;margin:4px 0 8px}.kmv-hode p{margin:0;color:var(--text-muted)}.kmv-overlinje{font-size:12px;font-weight:600}.kmv-melding{min-height:24px;margin:16px 0;font-size:13px}.kmv-innhold{display:grid;grid-template-columns:1.2fr 1fr;gap:28px}.kmv-innhold>section{min-width:0}.kmv-innhold>section>h3{font-size:15px;margin:0 0 14px}.kmv-vakt{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius,12px);padding:22px;margin-bottom:14px;overflow-wrap:anywhere}.kmv-neste{background:var(--primary-pill);border-color:var(--primary)}.kmv-dato{align-items:flex-start;font-size:12px;color:var(--text-muted)}.kmv-dato small{font-size:11px;white-space:nowrap}.kmv-vakt h3{font-family:var(--kirke-tittelskrift);font-size:24px;letter-spacing:.01em;margin:24px 0 8px}.kmv-vakt p{font-size:13px;color:var(--text-muted);margin:0}.kmv-tider{display:flex;gap:28px;padding:18px 0;margin:18px 0 0;border-top:1px solid var(--border)}.kmv-tider dt{font-size:11px;color:var(--text-muted)}.kmv-tider dd{margin:6px 0 0;font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}.kmv-svar{display:flex;gap:8px}.kmv-svar .btn{min-width:96px;min-height:44px}
@media(max-width:760px){.kmv-flate{padding:16px}.kmv-innhold{grid-template-columns:1fr;gap:20px}.kmv-hode h2{font-size:26px}.kmv-vakt{padding:18px}.kmv-dato{flex-wrap:wrap;gap:8px}.ktv-verktøy{flex-wrap:wrap}.ktv-teamknapp{min-height:44px}}

.kmv-flate.kof-flate{position:static;inset:auto;display:block;min-height:0;overflow:visible}

/* Personlig tjeneste er en seksjon på Hjem, med sidens naturlige rulling. */
.khj-flate .kmv-hjem{max-width:none;margin:36px 0 0;padding:28px 0 0;border-top:1px solid var(--border);scroll-margin-top:24px}
.kmv-hjem .kmv-hode h2{font-size:28px;font-weight:500;margin:6px 0 8px}
.kmv-hjem .kmv-hode p{font-size:13px;line-height:1.5}
.kmv-hjem .kmv-detaljer{min-height:180px}
/* Tom tjenesteliste på Hjem er en kort beskjed, uten reservert kortplass. */
.kmv-hjem .kmv-detaljer:has(.kmv-tom){min-height:0}
.kmv-hjem:has(.kmv-tom) [data-mv-oppsummering]{display:none}
.kmv-hjem .kmv-detaljer:has(.kmv-tom) .kmv-melding:empty{display:none}
.kmv-tom{padding:12px 0 0}
.kmv-tom h3{margin:0;font-family:inherit;font-size:14px;font-weight:600;line-height:1.5}
.kmv-tom p{margin:4px 0 0;font-size:13px;line-height:1.5;color:var(--text-muted)}
.kmv-hjem .kmv-melding{margin:8px 0;min-height:20px}
.kmv-hjem .kmv-vakt{padding:18px}
.kmv-hjem .kmv-vakt h3{margin-top:16px}
.kmv-hjem .kmv-tider{padding:14px 0;margin-top:14px;flex-wrap:wrap;gap:16px 28px}
.kmv-hjem .kmv-bytter{margin-top:20px}
.kmv-hjem:focus-visible{outline:2px solid var(--primary);outline-offset:6px}
@media(max-width:760px){.khj-flate .kmv-hjem{margin-top:28px;padding-top:24px}.kmv-hjem .kmv-hode{gap:12px}.kmv-hjem .kmv-hode h2{font-size:26px}.kmv-hjem .kmv-hode>.btn{flex-shrink:0}}

.trn-tavle .ktv-tabell .ktv-valgtdato{min-width:220px}
.ktv-tabell .ktv-datoknapp{white-space:normal;max-width:240px;line-height:1.4}
.ktv-datoknapp>strong{font-family:var(--kirke-tittelskrift);font-size:20px}
.ktv-datoknapp>span{font-weight:400;margin:4px 0 8px;font-size:11px}
.ktv-tabell .ktv-ledigrad td{vertical-align:top}

/* Filtre bruker samme native select som periode og hviletid. */
.ktv-filtre{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:12px 0 16px;border-bottom:1px solid var(--border);margin-bottom:12px}
.ktv-filtre .trn-hvile-felt{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:150px;max-width:100%}
.ktv-filtre select{max-width:100%;width:220px;min-height:36px}
.ktv-filtre p{flex-basis:100%;font-size:12px;color:var(--text-muted);margin:0}
@media(max-width:760px){.ktv-filtre .trn-hvile-felt{flex:1 1 140px}.ktv-filtre select{width:100%}}

.ktv-tabell thead .trn-kolonne{white-space:normal}.ktv-datoknapp{display:block}

.kmv-bytteinfo{margin-top:12px!important;font-size:12px!important}.kmv-svar{flex-wrap:wrap}.kmv-bytter{margin-top:28px}.kmv-bytter .btn{margin-top:12px}

/* Gudstjenestelenka i vaktkortet var en ustilet <a> — nettleserblå med
   understrek midt i et grønt kort. */
.kmv-vakt p a{color:var(--primary-dark-adaptiv);font-weight:600;text-decoration:none}.kmv-vakt p a:hover{text-decoration:underline}
