/* =========================================================
   ROOSTERAPP — style.css

   Doel:
   - Eén centrale stylesheet voor alle pagina’s
   - Duidelijke secties + commentaar voor later onderhoud
   - Opgeschoonde, consistente structuur
   ========================================================= */


/* =========================================================
   1) THEMA / ROOT VARIABELEN

   Pas hier centraal kleuren en basisinstellingen aan.
   ========================================================= */

:root{
  /* Algemene pagina */
  --bg: #f0f2f5;
  --text: #1e293b;
  --muted: #64748b;

  /* Container / cards */
  --card-bg: #EEF6FF;
  --card-border: #dbe7ff;

  /* Lijnen / borders */
  --line: #e5e7eb;
  --line-soft: #d8e1ef;

  /* Formulieren */
  --input-bg: #ffffff;
  --input-border: #b7c7e6;

  /* Primaire knop */
  --primary: #30363d;
  --primary-hover: #3a424a;

  /* Topbar */
  --topbar-bg: #0f172a;
  --topbar-border: rgba(255,255,255,.08);
  --topbar-text: rgba(255,255,255,.92);
  --topbar-muted: rgba(255,255,255,.70);
  --topbar-link: rgba(255,255,255,.85);
  --topbar-link-hover: #ffffff;
  --topbar-accent: #60a5fa;
}


/* =========================================================
   2) BASIS / RESET

   Algemene basis voor alle pagina’s.
   ========================================================= */

*{
  box-sizing: border-box;
}

body{
  margin: 0;
  font-family: system-ui, Segoe UI, Roboto, Arial, sans-serif;
  background: var(--bg);
  color: var(--text);
}

a{
  color: inherit;
}

.muted{
  color: var(--muted);
  margin-top: 6px;
}


/* =========================================================
   3) ALGEMENE PAGE LAYOUT

   Buitenste pagina-opmaak en centrale container.
   ========================================================= */

main{
  max-width: 1100px;
  margin: 40px auto;
  padding: 0 20px;
}

.container{
  max-width: 1100px;
  margin: 40px auto;
  padding: 32px;
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(30,41,59,.06);
}


/* =========================================================
   4) SHARED HEADER / TOPBAR

   Wordt gebruikt door header.js.
   ========================================================= */

#site-header{
  position: relative;
  z-index: 50;
}

.topbar{
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 0 16px;
  width: 100%;
  background: var(--topbar-bg);
  border-bottom: 1px solid var(--topbar-border);
}

.header__right{
  display: flex;
  align-items: center;
  gap: 18px;
}

.userNav{
  display: flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
}

.userNav a{
  color: var(--topbar-link);
  text-decoration: none;
  font-weight: 600;
}

.userNav a:hover{
  color: var(--topbar-link-hover);
}

.userName{
  color: var(--topbar-text);
  font-weight: 600;
}

.brand{
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: var(--topbar-text);
  min-width: 220px;
}

.brand__logo{
  width: 38px;
  height: 38px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.15);
  padding: 3px;
}

.brand__logo img{
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.brand__text{
  display: flex;
  flex-direction: column;
}

.brand__name{
  display: block;
  font-weight: 700;
  line-height: 1.1;
}

.brand__tag{
  display: block;
  font-size: 12px;
  color: var(--topbar-muted);
  line-height: 1.1;
}

.nav{
  display: flex;
  align-items: center;
  gap: 10px;
}

.nav a{
  color: var(--topbar-link);
  text-decoration: none;
  padding: 9px 12px;
  border-radius: 10px;
  border: 1px solid transparent;
  transition:
    transform .06s ease,
    background .15s ease,
    border-color .15s ease,
    color .15s ease;
  font-weight: 600;
  font-size: 14px;
}

.nav a:hover{
  color: var(--topbar-link-hover);
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.10);
}

.nav a:active{
  transform: translateY(1px);
}

.nav a.active{
  color: #ffffff;
  background: rgba(96,165,250,.18);
  border-color: rgba(96,165,250,.35);
}

.menuBtn{
  display: none;
  background: transparent;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 12px;
  padding: 10px;
  cursor: pointer;
}

.menuBtn__bar{
  display: block;
  width: 18px;
  height: 2px;
  background: rgba(255,255,255,.85);
  margin: 3px 0;
  border-radius: 99px;
}

@media (max-width: 820px){
  .brand{
    min-width: auto;
  }

  .brand__tag{
    display: none;
  }

  .menuBtn{
    display: inline-block;
  }

  .nav{
    position: absolute;
    left: 12px;
    right: 12px;
    top: 64px;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    padding: 10px;
    border-radius: 14px;
    background: #0b1224;
    border: 1px solid rgba(255,255,255,.10);
    box-shadow: 0 14px 40px rgba(0,0,0,.35);
  }

  .nav.open{
    display: flex;
  }

  .nav a{
    padding: 12px;
  }
}


/* =========================================================
   5) PAGINAKOPPEN / TOOLBARS
   ========================================================= */

.pagehead,
.page-head{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}

.pagehead h1,
.page-head h1{
  margin: 0;
}

.toolbar{
  margin: 12px 0;
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}

.toolbar input[type="search"]{
  width: 100%;
  max-width: 360px;
  height: 38px;
  padding: 8px 12px;
  background: #fff;
  border: 1px solid var(--input-border);
  border-radius: 8px;
  font-size: 14px;
}

.toolbar input[type="search"]:focus{
  outline: none;
  border-color: #7aa6ff;
  box-shadow: 0 0 0 3px rgba(122,166,255,.15);
}

.filter-group{
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.filter-group select{
  height: 38px;
  min-width: 180px;
  padding: 8px 12px;
  background: #fff;
  border: 1px solid var(--input-border);
  border-radius: 8px;
  font-size: 14px;
}

.filter-group select:focus{
  outline: none;
  border-color: #7aa6ff;
  box-shadow: 0 0 0 3px rgba(122,166,255,.15);
}

.filter-group label{
  font-weight: 600;
}

.page-head label{
  font-size: 14px;
  margin-right: 8px;
}

.page-head select{
  padding: 6px 10px;
  border: 1px solid #cfd8e3;
  border-radius: 6px;
  font-size: 14px;
  background: #fff;
}

.page-head .btn-primary{
  white-space: nowrap;
}


/* =========================================================
   6) KNOPPEN
   ========================================================= */

.btn-primary{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--primary);
  color: #ffffff;
  padding: 9px 14px;
  border-radius: 10px;
  text-decoration: none;
  font-weight: 700;
  border: 1px solid transparent;
  cursor: pointer;
}

.btn-primary:hover{
  background: var(--primary-hover);
}

.btn-secondary{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #e5e7eb;
  color: #111827;
  padding: 8px 14px;
  border-radius: 8px;
  border: 1px solid transparent;
  text-decoration: none;
  margin-right: 8px;
  font-weight: 600;
}

.btn-secondary:hover{
  background: #d1d5db;
}

.btn-new{
  display: inline-block;
  background: #e8f7ee;
  color: #1f7a4c;
  padding: 6px 12px;
  border-radius: 6px;
  border: 1px solid #bfe6cf;
  text-decoration: none;
  font-weight: 500;
  margin-bottom: 12px;
}

.btn-new:hover{
  background: #dff3e7;
}

.btn-small,
a.btn-small,
button.btn-small{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none !important;
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid #c8d8ff;
  background: #ffffff;
  color: #0f172a !important;
  padding: 7px 10px;
  border-radius: 10px;
  font-weight: 700;
  font-size: 13px;
  line-height: 1;
  cursor: pointer;
}

.btn-small:hover{
  background: #F2F7FF;
}

.btn-small.danger{
  border-color: #fecaca;
}

.btn-small.danger:hover{
  background: #fff1f2;
}

.actions{
  display: flex;
  gap: 10px;
  align-items: center;
}

.btn-icon{
  border: none;
  background: transparent;
  cursor: pointer;
  padding: 6px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.15s ease;
}

.btn-icon svg{
  width: 18px;
  height: 18px;
  color: #344054;
}

.btn-icon:hover{
  background: #f2f4f7;
  transform: scale(1.08);
}

.btn-icon:hover svg{
  color: #101828;
  transform: scale(1.15);
}

.btn-icon.danger svg{
  color: #d92d20;
}

.btn-icon.danger:hover{
  background: #fee4e2;
}

.btn-icon.danger:hover svg{
  color: #b42318;
}


/* =========================================================
   7) FORMULIEREN — ALGEMEEN
   ========================================================= */

form{
  max-width: 600px;
}

.formbox label{
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 6px;
  color: #2c3e55;
}

.formbox input,
.formbox select,
.formbox textarea{
  width: 100%;
  height: 36px;
  padding: 6px 10px;
  background: var(--input-bg);
  border: 1px solid var(--input-border);
  border-radius: 6px;
  font-size: 14px;
}

.formbox textarea{
  height: 80px;
  resize: vertical;
}

.formbox input:focus,
.formbox select:focus,
.formbox textarea:focus{
  outline: none;
  border-color: #7aa6ff;
  box-shadow: 0 0 0 3px rgba(122,166,255,.15);
}

.row{
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-bottom: 18px;
  align-items: flex-end;
}

.col{
  flex: 0 0 320px;
  display: flex;
  flex-direction: column;
}

.col-small{
  flex: 0 0 180px;
  display: flex;
  flex-direction: column;
}

.col-xsmall{
  flex: 0 0 110px;
  display: flex;
  flex-direction: column;
}

.form-section{
  margin-top: 28px;
  margin-bottom: 10px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--line-soft);
  font-size: 16px;
  font-weight: 800;
  color: #0f172a;
}

.form-actions{
  margin-top: 20px;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

@media (max-width: 700px){
  .col,
  .col-small,
  .col-xsmall{
    flex: 1 1 100%;
  }
}


/* =========================================================
   8) FORMULIEREN — COMPACTE 2-KOLOMS LAYOUT
   ========================================================= */

.form-row{
  display: grid;
  grid-template-columns: 180px 1fr;
  align-items: center;
  margin-bottom: 16px;
}

.form-row label{
  font-weight: 600;
}

.form-row input,
.form-row select,
.form-row textarea{
  width: 260px;
  padding: 8px 10px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  font-size: 14px;
  background: #ffffff;
  transition: border 0.2s, box-shadow 0.2s;
}

.form-row input:focus,
.form-row select:focus,
.form-row textarea:focus{
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 2px rgba(59,130,246,.15);
}

.form-row input[type="date"],
.form-row input[type="time"],
.form-row select{
  width: 200px;
}

.form-row textarea{
  width: 320px;
  height: 80px;
}


/* =========================================================
   9) TABELLEN
   ========================================================= */

.tableWrap{
  overflow-x: auto;
}

.table{
  width: 100%;
  border-collapse: collapse;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
}

.table th,
.table td{
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  font-size: 14px;
  vertical-align: middle;
}

.table thead th{
  background: #f8fafc;
  font-weight: 800;
  color: #0f172a;
}

.table tbody tr:hover{
  background: #f7fbff;
}


/* =========================================================
   10) STATUS BADGES
   ========================================================= */

.status{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 800;
  font-size: 12px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid transparent;
  background: #fff;
  white-space: nowrap;
}

.status .dot{
  width: 8px;
  height: 8px;
  border-radius: 999px;
  display: inline-block;
  flex: 0 0 auto;
}

.status--ok{
  border-color: #bbf7d0;
  background: #f0fdf4;
  color: #166534;
}

.status--ok .dot{
  background: #22c55e;
}

.status--sick{
  border-color: #fecaca;
  background: #fff1f2;
  color: #991b1b;
}

.status--sick .dot{
  background: #ef4444;
}

.status--leave{
  border-color: #fed7aa;
  background: #fff7ed;
  color: #9a3412;
}

.status--leave .dot{
  background: #f97316;
}

.status--out{
  border-color: #e5e7eb;
  background: #f8fafc;
  color: #475569;
}

.status--out .dot{
  background: #94a3b8;
}


/* =========================================================
   11) SEGMENTED CONTROL
   ========================================================= */

.seg{
  display: inline-flex;
  background: #fff;
  border: 1px solid #c8d8ff;
  border-radius: 12px;
  overflow: hidden;
  margin: 8px 0 10px;
}

.seg__btn{
  border: 0;
  background: transparent;
  padding: 9px 12px;
  font-weight: 800;
  cursor: pointer;
  color: #0f172a;
}

.seg__btn--active{
  background: #EEF6FF;
}


/* =========================================================
   12) ARCHIEF VIEW
   ========================================================= */

.archive-view tbody tr{
  background: #f8fafc;
}

.archive-view tbody tr:hover{
  background: #f1f5f9;
}


/* =========================================================
   13) TEGELS / CARDS
   ========================================================= */

.tiles{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 16px;
  margin-top: 12px;
}

.tile{
  display: flex;
  align-items: center;
  gap: 12px;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 14px 16px;
  text-decoration: none;
  color: var(--text);
  cursor: pointer;
  transition:
    box-shadow .15s ease,
    transform .12s ease,
    border-color .15s ease;
}

.tile:hover{
  box-shadow: 0 8px 20px rgba(0,0,0,.08);
  border-color: #d6deea;
  transform: translateY(-2px);
}

.tile:active{
  transform: translateY(-1px);
}

.tile .icon svg{
  width: 22px;
  height: 22px;
  display: block;
  fill: #1e293b;
}

.tile .text{
  display: flex;
  flex-direction: column;
}

.tile .title{
  font-weight: 700;
  line-height: 1.2;
}

.tile .desc{
  display: flex;
  align-items: center;
  gap: 8px;
  color: #64748b;
  font-size: 14px;
  line-height: 1.35;
}

.tile .dot{
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #3b82f6;
  display: inline-block;
  flex: 0 0 auto;
}


/* =========================================================
   14) ROOSTER PAGINA — ALGEMENE STRUCTUUR
   ========================================================= */

.rooster-toolbar,
.rooster-subtoolbar{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.rooster-tabs,
.rooster-nav{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.rooster-tab,
.rooster-nav button{
  border: 1px solid #cfd8e3;
  background: #fff;
  border-radius: 8px;
  padding: 10px 14px;
  cursor: pointer;
}

.rooster-tab.active{
  background: #1d4ed8;
  color: #fff;
  border-color: #1d4ed8;
}

.rooster-period-label{
  font-weight: 600;
}

.empty-state{
  padding: 20px;
  border: 1px solid #dbe4ee;
  border-radius: 10px;
  background: #f8fbff;
}


/* =========================================================
   15) ROOSTER — DAG WEERGAVE
   ========================================================= */

.rooster-list{
  display: grid;
  gap: 12px;
}

.rooster-card{
  display: block;
  padding: 14px;
  border: 1px solid #dbe4ee;
  border-radius: 10px;
  background: #fff;
  text-decoration: none;
  color: inherit;
}

.rooster-card:hover{
  background: #f7fbff;
}

.rooster-card__time{
  font-weight: 700;
  margin-bottom: 6px;
}

.rooster-card__title{
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 8px;
}

.rooster-card__meta{
  display: grid;
  gap: 4px;
  margin-bottom: 8px;
  font-size: 14px;
  color: #475569;
}

.rooster-card__note{
  color: #475569;
}


/* =========================================================
   16) ROOSTER — WEEK WEERGAVE
   ========================================================= */

.week-grid-wrap{
  overflow-x: auto;
}

.week-grid{
  width: 100%;
  border-collapse: collapse;
  min-width: 900px;
  table-layout: fixed;
}

.week-grid th,
.week-grid td{
  border: 1px solid #dbe4ee;
  padding: 0;
  vertical-align: top;
  background: #fff;
  position: relative;
}

.week-grid th{
  background: #eef2ff;
  font-weight: 700;
  text-align: center;
  font-size: 14px;
  padding: 10px 8px;
}

.week-grid tbody td{
  height: 84px;
}

.time-col{
  width: 90px;
  white-space: nowrap;
  font-weight: 700;
  background: #f1f5f9 !important;
  text-align: center;
  font-size: 13px;
  padding: 10px 6px !important;
}

.week-grid__slot-cell{
  vertical-align: top;
}

.grid-item{
  display: block;
  width: 100%;
  min-height: 76px;
  border: 1px solid #93c5fd;
  background: #dbeafe;
  border-radius: 6px;
  padding: 8px 10px;
  overflow: hidden;
  text-decoration: none;
  color: #1e293b;
  box-shadow: 0 1px 2px rgba(0,0,0,.08);
  transition: all 0.15s ease;
}

.grid-item:hover{
  background: #bfdbfe;
  border-color: #3b82f6;
  transform: scale(1.02);
  box-shadow: 0 4px 10px rgba(0,0,0,.15);
}

.grid-item__time{
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 2px;
}

.grid-item__title{
  font-weight: 700;
  font-size: 13px;
  line-height: 1.25;
  margin-bottom: 2px;
}

.grid-item__meta{
  font-size: 12px;
  line-height: 1.25;
  margin-top: 1px;
}

.cell-empty{
  min-height: 84px;
}


/* =========================================================
   17) ROOSTER — MAAND WEERGAVE
   ========================================================= */

.month-grid{
  display: grid;
  grid-template-columns: repeat(7,1fr);
  gap: 8px;
}

.month-head{
  font-weight: 700;
  text-align: center;
}

.month-cell{
  border: 1px solid #dbe4ee;
  border-radius: 8px;
  padding: 8px;
  background: #fff;
  min-height: 120px;
}

.month-cell--muted{
  opacity: 0.4;
}

.month-cell--today{
  outline: 2px solid #1d4ed8;
}

.month-cell__date{
  font-weight: 700;
  margin-bottom: 6px;
}

.month-cell__items{
  display: grid;
  gap: 4px;
}

.month-item{
  font-size: 12px;
  padding: 4px 6px;
  background: #eef5ff;
  border-radius: 4px;
  text-decoration: none;
  color: inherit;
}

.month-more{
  font-size: 12px;
  color: #64748b;
}


/* =========================================================
   18) ROOSTER — JAAR WEERGAVE
   ========================================================= */

.year-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(200px,1fr));
  gap: 12px;
}

.year-card{
  border: 1px solid #dbe4ee;
  border-radius: 8px;
  padding: 12px;
  background: #fff;
}

.year-card h3{
  margin: 0 0 8px 0;
}

.year-stat{
  font-size: 14px;
}

/* Extra bestaand */
.group-actions-head,
.group-subhead,
.action-col {
  text-align: center !important;
}

.table td:nth-child(4),
.table td:nth-child(5),
.table td:nth-child(6) {
  text-align: center;
  white-space: nowrap;
}

.table td:nth-child(4) .btn-small,
.table td:nth-child(5) .btn-small,
.table td:nth-child(6) .btn-small {
  margin: 0 auto;
}

.container-wide {
  max-width: 1400px;
}

.main-wide{
  max-width: 1400px;
}

.container-wide{
  max-width: 100%;
}

.header__right{
  display:flex;
  align-items:center;
  gap:20px;
  margin-left:auto;
}

.userNav{
  display:flex;
  align-items:center;
  gap:10px;
}

.userNav a{
  color:#ffffff;
  text-decoration:none;
  font-weight:600;
}

.userName{
  color:#ffffff;
  font-weight:600;
}

.userSep{
  color:rgba(255,255,255,0.6);
}

/* =========================================================
   WEEK PLANNER — HOOFDSTRUCTUUR
   ========================================================= */

.week-planner-wrap{
  overflow-x: auto;
}

.week-planner{
  min-width: 980px;
  border: 1px solid #dbe4ee;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}

/* HEADER (dagen + tijd kolom) */
.week-planner__head{
  display: grid;
  grid-template-columns: 90px repeat(7, 1fr);
}

/* HEADER CEL */
.week-planner__timehead,
.week-planner__dayhead{
  padding: 10px 8px;
  border-right: 1px solid #dbe4ee;
  border-bottom: 1px solid #dbe4ee;
  background: #eef2ff;
  text-align: center;
  font-weight: 700;
  font-size: 14px;
}

.week-planner__timehead{
  background: #f1f5f9;
}

.week-planner__dayhead:last-child{
  border-right: 0;
}

/* DATUM IN HEADER */
.week-planner__dayhead span{
  font-size: 12px;
  font-weight: 600;
  color: #64748b;
}

/* BODY GRID */
.week-planner__body{
  display: grid;
  grid-template-columns: 90px repeat(7, 1fr);
  position: relative;
}

/* TIJD KOLOM */
.week-planner__timecol{
  position: relative;
  border-right: 1px solid #dbe4ee;
  background: #f8fafc;
}

/* TIJD LABELS */
.week-planner__timelabel{
  position: absolute;
  left: 0;
  right: 0;
  transform: translateY(-50%);
  text-align: center;
  font-size: 12px;
  font-weight: 700;
  color: #334155;
}

/* DAG KOLOM */
.week-planner__daycol{
  position: relative;
  flex: 1;
  min-width: 0;
}

/* UURLIJNEN */
.week-planner__hourline{
  position: absolute;
  left: 0;
  right: 0;
  border-top: 1px solid #e5edf6;
}

/* =========================================================
   WEEK BLOCK — TRAINING BLOKKEN
   ========================================================= */

.week-block{
  position: absolute;
  display: block;
  padding: 8px 10px;
  border: 1px solid #93c5fd;
  background: #dbeafe;
  border-radius: 8px;
  text-decoration: none;
  color: #1e293b;
  box-shadow: 0 1px 2px rgba(0,0,0,.08);
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
  z-index: 2;
  box-sizing: border-box;
}

/* HOVER EFFECT */
.week-block:hover{
  background: #bfdbfe;
  border-color: #3b82f6;
  box-shadow: 0 4px 10px rgba(0,0,0,.15);
  transform: scale(1.01);
  z-index: 3;
}

/* TITEL (training naam) */
.week-block__title{
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 2px;
}

/* SUB (groep + naam) */
.week-block__meta{
  font-size: 11px;
  line-height: 1.25;
  overflow-wrap: break-word;
}

/* TIJD */
.week-block__time{
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
  margin-bottom: 2px;
}

.presence-actions{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}

.presence-actions button.active{
  background: #2f6fed;
  color: #fff;
  border-color: #2f6fed;
}

.popup{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.3);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 999;
}
.popup[hidden]{
  display: none !important;
}

.popup-content{
  background: #fff;
  padding: 20px;
  border-radius: 10px;
  min-width: 250px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.popup-title{
  font-weight: 700;
  margin-bottom: 5px;
}

.popup-btn{
  padding: 8px;
  border: 1px solid #dbe4ee;
  border-radius: 6px;
  background: #f8fafc;
  cursor: pointer;
}

.popup-btn:hover{
  background: #eef2ff;
}

.popup-actions{
  margin-top: 10px;
  text-align: right;
}

#andersInput{
  padding: 6px;
  border: 1px solid #dbe4ee;
  border-radius: 6px;
}

button.disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* ============================
   Status labels (aanwezigheid)
   ============================ */

.status {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 500;
}

.status-aanwezig {
  background: #e6f7ee;
  color: #1e7f4f;
}

.status-afwezig {
  background: #e8f0ff;
  color: #2f6fed;
}

.status-telaat {
  background: #fff4e5;
  color: #c77700;
}

.status-absent {
  background: #fdecea;
  color: #c0392b;
}

/* ============================
   Actieve knoppen kleur per status
   ============================ */

.btn-small.active[data-status="aanwezig"] {
  background: #e6f7ee;
  color: #1e7f4f;
  border-color: #bfe5d0;
}

.btn-small.active[data-status="afwezig"] {
  background: #e8f0ff;
  color: #2f6fed;
  border-color: #c7d8ff;
}

.btn-small.active[data-status="te_laat"] {
  background: #fff4e5;
  color: #c77700;
  border-color: #ffd9a8;
}

.btn-small.active[data-status="absent"] {
  background: #fdecea;
  color: #c0392b;
  border-color: #f5c6cb;
}

/* ============================
   Aanwezigheid bewerken layout
   ============================ */

#trainerLijst .rooster-card,
#deelnemersLijst .rooster-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

#trainerLijst .rooster-card__title,
#deelnemersLijst .rooster-card__title {
  flex: 1;
  margin: 0;
}

#trainerLijst .presence-actions,
#deelnemersLijst .presence-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

/* ============================
   Trainer ziek → training uitgevallen
   ============================ */

.week-block--uitgevallen {
  background: #fdecea !important;
  border: 1px solid #f5c6cb;
}

.week-block--uitgevallen .week-block__title {
  color: #c0392b;
  font-weight: 600;
}