:root{--green:#6f9f5b;--green2:#4f7842;--greenbg:#eef7ea;--bg:#f4f6f3;--card:#fff;--text:#202820;--muted:#6c746d;--border:#dce3d9;--warn:#fff4d6;--danger:#9a302d}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--green2)}
.topbar{background:var(--green);color:#fff}.topbar-inner{max-width:1200px;margin:auto;padding:15px 18px;display:flex;justify-content:space-between;align-items:center;gap:14px}.brand{font-weight:800;font-size:22px}.toplinks{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.toplinks a{color:#fff;text-decoration:none;padding:8px 10px;border-radius:8px}.toplinks a:hover{background:rgba(255,255,255,.13)}
.container{max-width:1200px;margin:auto;padding:22px 18px 45px}.card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px;margin-bottom:16px;box-shadow:0 2px 7px rgba(0,0,0,.025)}h1,h2,h3{margin-top:0}.muted{color:var(--muted)}.small{font-size:13px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
label{display:block;font-weight:700;margin:10px 0 5px}input,select,textarea{width:100%;padding:10px;border:1px solid #cbd4c8;border-radius:8px;font:inherit;background:#fff}textarea{min-height:80px}.check{display:flex;gap:8px;align-items:center;font-weight:400}.check input{width:auto}.btn{display:inline-block;border:0;background:var(--green);color:#fff;padding:10px 14px;border-radius:8px;text-decoration:none;font-weight:700;cursor:pointer}.btn.secondary{background:#fff;color:var(--green2);border:1px solid var(--green)}.btn.danger{background:#a94642}.btn.smallbtn{padding:6px 9px;font-size:13px}.actions{display:flex;gap:8px;flex-wrap:wrap}.flash{padding:11px 13px;border-radius:9px;margin-bottom:14px}.flash.success{background:#e9f6e4;color:#316d29}.flash.error{background:#fdebea;color:#8a2d27}.warning{background:var(--warn);padding:9px;border-radius:8px;font-size:13px}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--border);vertical-align:top}th{font-size:12px;text-transform:uppercase;color:var(--muted)}.badge{display:inline-block;padding:4px 7px;border-radius:999px;background:var(--greenbg);font-size:12px;font-weight:700}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}.tabs a{text-decoration:none;padding:8px 11px;background:#fff;border:1px solid var(--border);border-radius:8px}
.program{background:#fff}.program-day{border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:16px}.program-day>h2{background:var(--green);color:#fff;margin:0;padding:12px 15px}.section-title{padding:8px 14px;background:#eef2ec;text-transform:uppercase;font-size:13px}.section-title.main-section{font-weight:800}.section-title.secondary-section{font-weight:400}.program-label{font-weight:400}.program-row{display:grid;grid-template-columns:72px 1fr minmax(150px,240px);gap:10px;padding:9px 14px;border-top:1px solid #edf0eb}.program-row .time{color:var(--muted)}
.dropzone{border:2px dashed #aebba9;border-radius:12px;padding:24px;text-align:center;background:#fbfcfa;cursor:pointer}.dropzone.drag{background:var(--greenbg);border-color:var(--green)}.pdf-preview{width:170px;height:220px;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#eee}.pdf-preview iframe{width:100%;height:100%;border:0}.notice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.notice-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:13px}.notice-card .pdf-preview{width:100%;height:260px;margin-top:10px}
.task-groups{display:grid;grid-template-columns:1fr 1fr;gap:18px}.task-list{border:1px solid var(--border);border-radius:10px;padding:10px}.task-list h3{font-size:16px;margin-bottom:8px}.task-option{display:flex;align-items:center;gap:7px;padding:5px 2px}.task-option input{width:auto}
@media(max-width:760px){.grid2,.grid3,.task-groups{grid-template-columns:1fr}.program-row{grid-template-columns:58px 1fr}.program-row .person{grid-column:2}.topbar-inner{align-items:flex-start;flex-direction:column}.table-scroll{overflow:auto}}
@media print{.topbar,.no-print,.btn{display:none!important}body{background:#fff}.container{max-width:none;padding:0}.card,.program-day{box-shadow:none;border-color:#aaa}.program-row{break-inside:avoid}}
.section-time{display:inline-block;min-width:54px;margin-right:8px;font-variant-numeric:tabular-nums}

/* v1.2 – PDF thumbnails on the front page and clickable PDF previews */
.home-notices{margin:22px 0}.home-section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.home-section-head h2{margin:0}.home-notice-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.home-notice-card{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden}.home-notice-body{padding:12px}.home-notice-body h3{font-size:16px;margin:7px 0 3px}.pdf-thumb-link{display:block;text-decoration:none;color:inherit}.pdf-thumb{height:205px;position:relative;overflow:hidden;background:#e9ece8;border-bottom:1px solid var(--border)}.pdf-thumb iframe,.pdf-preview.clickable iframe{width:100%;height:100%;border:0;pointer-events:none}.pdf-open-label{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);background:rgba(39,49,40,.88);color:#fff;padding:6px 10px;border-radius:7px;font-size:13px;font-weight:700;white-space:nowrap}.pdf-thumb-link:hover .pdf-open-label{background:var(--green2)}.pdf-preview.clickable{position:relative;cursor:pointer}
@media(max-width:980px){.home-notice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.home-notice-grid{grid-template-columns:1fr}.home-section-head{align-items:flex-start;flex-direction:column}.pdf-thumb{height:280px}}


/* v1.3 – tydelig visuel adskillelse mellem frontend og administration */
:root{--admin:#40566f;--admin-dark:#314457;--admin-bg:#f1f4f7;--admin-soft:#e7edf3}
body.admin-area{background:var(--admin-bg)}
.admin-topbar{background:var(--admin)}
.admin-topbar .toplinks a:hover{background:rgba(255,255,255,.16)}
.admin-brand{display:flex;align-items:center;gap:9px}
.admin-brand small{font-size:10px;letter-spacing:.12em;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.28);padding:4px 6px;border-radius:6px}
.admin-area .btn:not(.danger):not(.secondary){background:var(--admin)}
.admin-area .btn.secondary{color:var(--admin-dark);border-color:var(--admin)}
.admin-area .tabs a:hover{border-color:var(--admin);color:var(--admin-dark)}
.admin-area .badge{background:var(--admin-soft)}


/* v1.4 – aktuelle uge på forsiden og kommende uger som PDF-knapper */
.upcoming-programs{margin:22px 0}.upcoming-programs h2{margin-bottom:10px}.upcoming-week-buttons{display:flex;gap:10px;flex-wrap:wrap}.future-week-btn{display:flex;flex-direction:column;gap:3px;min-width:165px;padding:11px 13px;background:#fff;border:1px solid var(--border);border-radius:10px;text-decoration:none;color:var(--text)}.future-week-btn:hover{border-color:var(--green);box-shadow:0 2px 7px rgba(0,0,0,.05)}.future-week-btn strong{font-size:15px}.future-week-btn span,.future-week-btn small{font-size:12px;color:var(--muted)}


/* v1.5 – bedre afstand mellem tider og tekst på mobil */
.section-title{display:flex;align-items:center;gap:14px}
.section-title .section-time{flex:0 0 58px;min-width:58px;margin-right:0;text-align:right}
.program-row .time{text-align:right;padding-right:2px;font-variant-numeric:tabular-nums}
@media(max-width:760px){
  .section-title{display:grid;grid-template-columns:64px minmax(0,1fr);column-gap:16px;align-items:center}
  .section-title .section-time{min-width:0;width:auto;margin:0;text-align:right}
  .program-row{grid-template-columns:64px minmax(0,1fr);column-gap:16px}
  .program-row .person{grid-column:2}
}


/* v1.8 – på mobil står sektions-tiden på sin egen linje over den lange overskrift */
@media(max-width:760px){
  .section-title{
    display:block;
    padding-top:9px;
    padding-bottom:9px;
  }

  .section-title .section-time{
    display:block;
    width:auto;
    min-width:0;
    margin:0 0 4px 0;
    text-align:left;
    line-height:1.1;
    font-weight:400;
  }
}

/* v1.9 – robust mobil-layout for sektionsoverskrifter */
@media (max-width:760px){
  .section-title{
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:3px !important;
  }
  .section-title .section-time{
    display:block !important;
    flex:none !important;
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    text-align:left !important;
    line-height:1.1 !important;
    font-weight:400 !important;
  }
  .section-title .section-label{
    display:block !important;
    width:100% !important;
    line-height:1.2 !important;
  }
}


/* v1.12 – Padlet-lignende opslagstavle med rigtige PDF-miniaturer */
.notice-board-wide{
  width:calc(100vw - 28px);
  margin-left:calc(50% - 50vw + 14px);
}
.notice-board-head{
  max-width:1600px;
  margin:0 auto 12px;
}
.notice-board-head h1{margin-bottom:4px}

.padlet-board{
  display:flex;
  align-items:flex-start;
  gap:16px;
  width:100%;
  overflow-x:auto;
  padding:0 2px 18px;
  scroll-snap-type:x proximity;
}
.padlet-column{
  flex:1 0 285px;
  min-width:285px;
  max-width:380px;
  border-radius:10px;
  padding:8px;
  scroll-snap-align:start;
}
.padlet-column-title{
  color:#fff;
  font-size:17px;
  font-weight:800;
  padding:7px 10px;
  border-radius:7px;
  margin-bottom:9px;
  text-transform:uppercase;
}
.padlet-cards{
  display:flex;
  flex-direction:column;
  gap:11px;
}
.padlet-card{
  background:#fff;
  border:1px solid rgba(0,0,0,.06);
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 1px 4px rgba(0,0,0,.04);
}
.padlet-card h3{
  font-size:16px;
  margin:0;
  padding:11px 12px 8px;
}
.padlet-card-text{
  padding:10px 12px 12px;
  font-size:14px;
  line-height:1.4;
}

/* Kolonnefarver inspireret af den eksisterende Padlet-tavle */
.notice-col-program{background:#d7f4d5}.notice-col-program .padlet-column-title{background:#5e8b51}
.notice-col-service{background:#c9ebf8}.notice-col-service .padlet-column-title{background:#4f7e6b}
.notice-col-practical{background:#ffd8dc}.notice-col-practical .padlet-column-title{background:#5d7e4e}
.notice-col-calendar{background:#ead4fb}.notice-col-calendar .padlet-column-title{background:#6d8561}
.notice-col-letters{background:#f2f2ef}.notice-col-letters .padlet-column-title{background:#66845d}
.notice-col-info{background:#fff1b9}.notice-col-info .padlet-column-title{background:#618052}
.notice-col-emergency{background:#ffd6d6}.notice-col-emergency .padlet-column-title{background:#7b665f}
.notice-col-default{background:#e7efe3}.notice-col-default .padlet-column-title{background:#63805a}

/* Ægte første-side-miniature */
.pdf-page-frame{
  position:relative;
  width:100%;
  background:#e9ece8;
  overflow:hidden;
  border-top:1px solid rgba(0,0,0,.05);
  border-bottom:1px solid rgba(0,0,0,.06);
}
.padlet-card .pdf-page-frame{
  min-height:240px;
}
.pdf-page-canvas{
  display:block;
  width:100%;
  height:auto;
  opacity:0;
  background:#fff;
  transition:opacity .18s ease;
}
.pdf-page-canvas.is-ready{opacity:1}
.pdf-loading{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px;
  color:#6a726c;
  font-size:13px;
  text-align:center;
}
.pdf-page-frame .pdf-open-label{
  z-index:3;
  opacity:.94;
}
.pdf-thumb-link:hover .pdf-page-canvas{
  filter:brightness(.97);
}

/* Forsidens miniaturer får også hele første side synlig */
.home-notice-card .pdf-thumb{
  height:auto;
  min-height:230px;
}
.home-notice-card .pdf-page-canvas{
  max-height:330px;
  object-fit:contain;
}

/* På stor skærm får tavlen mere plads; på mobil beholdes Padlet-princippet
   med vandret swipe mellem kolonnerne. */
@media(min-width:1500px){
  .padlet-column{min-width:300px}
}
@media(max-width:760px){
  .notice-board-wide{
    width:calc(100vw - 18px);
    margin-left:calc(50% - 50vw + 9px);
  }
  .padlet-column{
    flex-basis:86vw;
    min-width:86vw;
    max-width:86vw;
  }
  .padlet-card .pdf-page-frame{min-height:300px}
}


/* v1.17 */
.duplicate-member{
  border-color:#c98400 !important;
  box-shadow:0 0 0 2px rgba(201,132,0,.18) !important;
  background:#fff9e8 !important;
}


/* v1.18 – enkel topmenu og grøn brugermenu i footer */
html,body{min-height:100%}
body{
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
body > main.container{
  flex:1 0 auto;
  width:100%;
}
.site-footer{
  flex:0 0 auto;
  background:var(--green);
  color:#fff;
  margin-top:20px;
}
.site-footer-inner{
  max-width:1200px;
  margin:0 auto;
  padding:13px 18px;
  display:flex;
  justify-content:flex-end;
  align-items:center;
}
.footer-links{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.footer-links a{
  color:#fff;
  text-decoration:none;
  padding:8px 10px;
  border-radius:8px;
}
.footer-links a:hover{
  background:rgba(255,255,255,.13);
}
@media(max-width:760px){
  .site-footer-inner{
    justify-content:center;
  }
  .footer-links{
    width:100%;
    justify-content:center;
  }
}
@media print{
  .site-footer{display:none!important}
}


/* v1.19 – kommende uger skal være tydelige og vigtige */
.upcoming-programs{
  margin:26px 0 30px;
}
.upcoming-programs h2{
  margin-bottom:12px;
}
.upcoming-week-buttons{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
}
.future-week-btn{
  min-width:230px;
  padding:17px 19px;
  border:2px solid #cfdac9;
  border-radius:12px;
  box-shadow:0 2px 7px rgba(0,0,0,.035);
}
.future-week-btn:hover{
  border-color:var(--green);
  transform:translateY(-1px);
}
.future-week-btn strong{
  font-size:18px;
}
.future-week-btn span{
  margin-top:2px;
  font-size:14px;
}
.future-week-btn small{
  margin-top:3px;
  font-size:13px;
}
.home-shortcuts{
  margin-top:20px;
}
@media(max-width:760px){
  .future-week-btn{
    width:100%;
    min-width:0;
    padding:16px 18px;
  }
  .future-week-btn strong{
    font-size:18px;
  }
}


/* v1.20 – frontendprogram i samme visuelle retning som PDF-layoutet */

/* Farvemarkering til venstre + let tonet sektionsbaggrund */
.section-title{
  position:relative;
  border-left:8px solid #7a827d;
  padding-left:14px;
}
.section-title.section-treasures{
  border-left-color:#2f6f6d;
  background:#edf6f4;
  color:#2f6f6d;
}
.section-title.section-ministry{
  border-left-color:#d59a00;
  background:#fff8e6;
  color:#b88000;
}
.section-title.section-christian{
  border-left-color:#d43a00;
  background:#fff1eb;
  color:#c73400;
}
.section-title.section-public{
  border-left-color:#34366f;
  background:#f1f1f8;
  color:#34366f;
}
.section-title.section-watchtower{
  border-left-color:#666;
  background:#f3f3f3;
  color:#5d5d5d;
}
.section-title.section-practical{
  border-left-color:#666;
  background:#f5f5f3;
  color:#202520;
}

/* Opgave og person skal være nemme at skelne visuelt */
.program-row{
  align-items:start;
}
.program-label{
  font-weight:650;
  color:#202720;
  line-height:1.32;
}
.program-row .person{
  justify-self:start;
  display:inline-block;
  min-width:0;
  padding:3px 8px;
  border-radius:7px;
  background:#eef3ec;
  color:#486043;
  font-weight:500;
  line-height:1.25;
}
.program-row .person:empty{
  display:none;
}
.program-row .small.muted{
  margin-top:3px;
  font-size:12px;
}

/* Praktiske linjer er stadig opgaver, men lidt mere kompakte */
.section-practical + .program-row .program-label,
.section-practical ~ .program-row .program-label{
  font-weight:600;
}

@media(max-width:760px){
  .section-title{
    border-left-width:7px;
  }
  .program-row .person{
    margin-top:3px;
    padding:3px 7px;
  }
}


/* v1.21 – studieleder og oplæser vises som to tydelige roller */
.program-row .person:has(.person-role){
  display:flex;
  flex-direction:column;
  gap:6px;
  background:transparent;
  padding:0;
}
.person-role{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:1px;
}
.person-role .person-name{
  display:inline-block;
  padding:3px 8px;
  border-radius:7px;
  background:#eef3ec;
  color:#486043;
  font-weight:500;
}
.person-role .role-label{
  padding-left:8px;
  color:#8a918c;
  font-size:11px;
  line-height:1.15;
}
@media(max-width:760px){
  .program-row .person:has(.person-role){
    margin-top:4px;
  }
}


/* v1.23 – talerens by/menighed som lille grå hjælpetekst */
.program-row .person:has(> .role-label){
  background:transparent;
  padding:0;
}
.program-row .person > .person-name{
  display:inline-block;
  padding:3px 8px;
  border-radius:7px;
  background:#eef3ec;
  color:#486043;
  font-weight:500;
}
.program-row .person > .role-label{
  margin-top:2px;
  padding-left:8px;
  color:#8a918c !important;
  font-size:11px;
  line-height:1.15;
  font-weight:400;
}


/* v1.30 – personlig opgaveoversigt øverst på forsiden */
.my-week-tasks{
  margin:0 0 24px;
  padding:18px 20px;
  border:1px solid #efc96a;
  border-left:8px solid #d79a00;
  border-radius:14px;
  background:linear-gradient(135deg,#fff8df 0%,#fff3cf 100%);
  box-shadow:0 3px 12px rgba(87,65,12,.07);
}
.my-week-tasks-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:12px;
}
.my-week-tasks-head h2{
  margin:2px 0 0;
  font-size:22px;
  color:#5c4400;
}
.my-week-kicker{
  display:block;
  font-size:11px;
  letter-spacing:.08em;
  font-weight:800;
  color:#9a7000;
}
.my-week-count{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:36px;
  height:36px;
  padding:0 10px;
  border-radius:999px;
  background:#d79a00;
  color:#fff;
  font-weight:800;
  font-size:17px;
}
.my-week-empty{
  margin:4px 0 0;
  color:#705b20;
}
.my-week-groups{
  display:grid;
  gap:11px;
}
.my-week-group{
  display:grid;
  grid-template-columns:minmax(160px,220px) 1fr;
  gap:18px;
  align-items:start;
  padding-top:10px;
  border-top:1px solid rgba(151,111,0,.18);
}
.my-week-date{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.my-week-date strong{
  color:#493900;
}
.my-week-date span{
  color:#806a2d;
  font-size:13px;
}
.my-week-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.my-week-task{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:34px;
  padding:6px 10px;
  border-radius:9px;
  background:#fff;
  border:1px solid rgba(151,111,0,.17);
  color:#32352f;
  font-weight:650;
}
.my-week-task small{
  margin-left:2px;
  padding:2px 5px;
  border-radius:5px;
  background:#edf2eb;
  color:#62705e;
  font-size:10px;
  font-weight:700;
}
.my-week-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  flex:0 0 auto;
  background:#d79a00;
}
.my-week-task.is-practical .my-week-dot{
  background:#6f7c6c;
}
@media(max-width:760px){
  .my-week-tasks{
    padding:15px 14px;
    border-left-width:6px;
  }
  .my-week-tasks-head h2{
    font-size:20px;
  }
  .my-week-group{
    grid-template-columns:1fr;
    gap:7px;
  }
  .my-week-list{
    flex-direction:column;
    align-items:stretch;
  }
  .my-week-task{
    width:100%;
  }
}


/* v1.32 – tydelig genvej til Opslagstavlen på forsiden */
.notice-board-shortcut{
  text-decoration:none;
  color:inherit;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:20px 22px;
  border:1px solid #9fbd94;
  border-left:7px solid #6f9f5b;
  background:#f4f8f2;
  transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.notice-board-shortcut:hover{
  transform:translateY(-1px);
  box-shadow:0 5px 14px rgba(51,82,42,.09);
  border-color:#80a974;
}
.notice-board-shortcut h3{
  margin:2px 0 5px;
  font-size:20px;
}
.notice-board-shortcut p{
  margin:0;
  color:#5f6b5b;
}
.notice-board-kicker{
  display:block;
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  color:#5f8b50;
}
.notice-board-open{
  flex:0 0 auto;
  padding:9px 12px;
  border-radius:8px;
  background:#6f9f5b;
  color:#fff;
  font-weight:700;
  white-space:nowrap;
}
@media(max-width:700px){
  .notice-board-shortcut{
    align-items:flex-start;
    flex-direction:column;
    padding:17px 16px;
  }
  .notice-board-open{
    width:100%;
    text-align:center;
  }
}
