:root{color-scheme:light;--bg:#f4f7f8;--panel:#fff;--text:#172126;--muted:#64727a;--line:#d7e0e4;--brand:#ed1c24}.dark{color-scheme:dark;--bg:#101416;--panel:#192126;--text:#f5f7f8;--muted:#aebbc1;--line:#34434b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.45 system-ui,sans-serif}header{display:flex;justify-content:space-between;align-items:center;padding:.7rem 2rem;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.brand{display:flex;gap:.65rem;align-items:center;color:var(--text);font-weight:800;text-decoration:none}.brand img{width:44px;height:44px;border-radius:50%}.brand small,.plan-person small{display:block;color:var(--muted)}nav,.actions,.toolbar,.course-pager{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}nav a{color:var(--text)}main{max-width:1800px;margin:auto;padding:1rem 1.5rem}.card,.toolbar,.course-v3{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1rem}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.narrow{max-width:520px}label{display:grid;gap:.3rem;font-weight:700;margin:.6rem 0}input,select,button,.button{font:inherit;min-height:44px;padding:.6rem .8rem;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text)}button,.button{display:inline-flex;align-items:center;justify-content:center;background:var(--brand);border-color:var(--brand);color:white;font-weight:750;text-decoration:none;cursor:pointer}.secondary{background:transparent;color:var(--text);border-color:var(--line)}.badge{float:right}.alert{border-left:5px solid var(--brand);padding:.8rem}.course-pager{justify-content:center;margin:1rem 0}.planner-v3{display:grid;grid-template-columns:repeat(var(--visible,8),minmax(var(--column-width,180px),1fr));gap:.55rem;align-items:start}.course-v3{padding:.5rem;min-width:0}.course-v3[hidden]{display:none}.course-v3 h2{font-size:1rem;margin:.2rem 0 .6rem}.plan-group{border:2px solid var(--cat);background:color-mix(in srgb,var(--panel) 90%,var(--cat));border-radius:10px;margin:.5rem 0;overflow:hidden}.plan-group h3{margin:0;padding:.4rem .5rem;background:color-mix(in srgb,var(--panel) 75%,var(--cat));font-size:.88rem;cursor:grab}.handle{margin-right:.35rem}.plan-person{display:grid;grid-template-columns:43px minmax(0,1fr);gap:.35rem;padding:.4rem;border-top:1px solid color-mix(in srgb,var(--line) 60%,transparent);cursor:grab;font-size:.78rem}.plan-person b,.plan-person small{overflow-wrap:anywhere}.plan-person time{font-variant-numeric:tabular-nums}.cat0{--cat:#ef5350}.cat1{--cat:#42a5f5}.cat2{--cat:#66bb6a}.cat3{--cat:#ab47bc}.cat4{--cat:#ffa726}.cat5{--cat:#26a69a}.cat6{--cat:#ec407a}.cat7{--cat:#78909c}.outside{--cat:#607d8b}.drag-over{outline:3px dashed var(--brand);outline-offset:2px}.tablewrap{overflow:auto;background:var(--panel)}table{border-collapse:collapse;width:100%}th,td{padding:.6rem;border-bottom:1px solid var(--line);text-align:left}@media(max-width:900px){header{padding:.6rem 1rem}.planner-v3{grid-template-columns:repeat(var(--visible,3),minmax(190px,1fr))}}@media(max-width:520px){.planner-v3{grid-template-columns:1fr}.course-pager{position:sticky;top:64px;background:var(--bg);z-index:5}}
.admin-add{align-items:stretch}.admin-add>.card{display:flex;flex-direction:column;height:100%}.admin-add>.card>.actions{margin-top:auto;padding-top:1rem}.edit-form{max-width:1180px}.category-map{display:grid;grid-template-columns:120px minmax(180px,1fr) minmax(240px,1.4fr);gap:.75rem;margin:.5rem 0}.preview-table input[readonly]{border-color:transparent;background:transparent}.preview-table input:not([readonly]){border-color:var(--brand)}.preview-table td{vertical-align:middle}.preview-table button{min-height:36px;padding:.35rem .6rem}@media(max-width:700px){.category-map{grid-template-columns:1fr}}
button:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.4)}dialog{border:0;border-radius:14px;padding:0;background:var(--panel);color:var(--text);box-shadow:0 20px 70px #0008;max-width:min(560px,calc(100% - 2rem))}dialog::backdrop{background:#0009}.dialog-card{padding:1.25rem}.dialog-card h2{margin-top:0}.cat8{--cat:#8d6e63}.cat9{--cat:#7e57c2}.cat10{--cat:#29b6f6}.cat11{--cat:#9ccc65}
.cat12{--cat:#ff7043}.cat13{--cat:#26c6da}.cat14{--cat:#d4e157}.cat15{--cat:#5c6bc0}.cat16{--cat:#8bc34a}.cat17{--cat:#ffca28}.cat18{--cat:#b39ddb}.cat19{--cat:#4db6ac}
.plan-group{position:relative}.plan-group.drop-before::before,.plan-group.drop-after::after{content:"";position:absolute;left:.2rem;right:.2rem;height:5px;border-radius:999px;background:var(--brand);z-index:4;box-shadow:0 0 0 2px var(--panel)}.plan-group.drop-before::before{top:-5px}.plan-group.drop-after::after{bottom:-5px}.plan-group.dragging{opacity:.4}.group-list.drag-over{min-height:4rem;outline:3px dashed var(--brand);outline-offset:2px}
.plan-group h3{display:flex;align-items:center;gap:.35rem}.group-title{min-width:0;flex:1}.group-shift{display:inline-flex;gap:.2rem;margin-left:auto}.group-shift button{min-height:28px;height:28px;min-width:34px;padding:.1rem .35rem;border-radius:7px;font-size:.75rem;line-height:1}.group-shift button:disabled{opacity:.3}.group-shift button:not(:disabled){cursor:pointer}
.plan-group h3{min-width:0;flex-wrap:nowrap}.group-title{overflow-wrap:anywhere}.outside h3{flex-wrap:wrap}.outside .group-title{flex:1 1 calc(100% - 2rem)}.outside .group-shift{flex:0 0 100%;width:100%;justify-content:flex-end;margin-left:0;padding-top:.2rem}.outside .group-shift button{flex:0 0 auto}
.check-label{display:inline-flex;align-items:center;justify-content:flex-start;gap:.55rem;margin:.75rem 0;font-weight:700}.check-label input[type="checkbox"]{appearance:auto;-webkit-appearance:checkbox;width:18px;height:18px;min-width:18px;min-height:18px;margin:0;padding:0;accent-color:var(--brand)}.check-label span{line-height:1.25}.row-actions{display:flex;align-items:center;gap:.4rem;white-space:nowrap}.row-actions .button{min-height:36px;padding:.35rem .6rem}.tablewrap{margin-bottom:1.25rem}
/* 0.4.0 beheeracties en titelbalk */
.brand{font-weight:400}.brand span{font-weight:400}.brand small{font-weight:400}
.edit-button{background:var(--brand);border-color:var(--brand);color:#fff}
.delete-button{background:#1976d2;border-color:#1976d2;color:#fff}
.edit-button:hover,.edit-button:focus-visible{background:#c9141b;border-color:#c9141b}
.delete-button:hover,.delete-button:focus-visible{background:#125ca4;border-color:#125ca4}
.plan-person{position:relative;grid-template-columns:43px minmax(0,1fr) 30px;align-items:start}.delete-participant{width:28px;min-width:28px;height:28px;min-height:28px;padding:0;border-radius:50%;background:transparent;border-color:transparent;color:var(--muted);font-size:1.25rem;line-height:1}.delete-participant:hover,.delete-participant:focus-visible{background:#d32f2f;border-color:#d32f2f;color:#fff}.delete-confirm-button{background:#1976d2;border-color:#1976d2;color:#fff}
.planner-locked .plan-group h3,.planner-locked .plan-person{cursor:default}.planner-locked .handle{opacity:.35}.planner-locked .plan-group,.planner-locked .plan-person{user-select:text}.planner-locked .group-shift button{cursor:not-allowed}
.public-controls,.searchbar{display:flex;align-items:flex-end;gap:.75rem;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1rem;margin-bottom:1rem}.public-controls label,.searchbar label{margin:0;min-width:260px}.public-controls select{width:100%}.searchbar label{flex:1 1 360px}.searchbar input{width:100%}.public-controls button,.searchbar button{height:44px}.print-context{color:var(--muted);font-size:.9rem}.public-list td,.public-list th{white-space:nowrap}@media(max-width:620px){.public-controls,.searchbar{align-items:stretch}.public-controls label,.searchbar label{width:100%;min-width:0}.public-controls button,.searchbar button{width:100%}}@media print{header,.no-print{display:none!important}body{background:#fff;color:#000}main{max-width:none;padding:0}.tablewrap{overflow:visible;border:0}.public-list table{font-size:10pt}.public-list th,.public-list td{padding:.35rem;border-color:#bbb}.print-context{color:#000}a{color:#000;text-decoration:none}}
.search-context{margin:.25rem 0 1rem;color:var(--muted)}
@media print{
 html,html.dark{color-scheme:light!important;--bg:#fff!important;--panel:#fff!important;--text:#000!important;--muted:#333!important;--line:#b8b8b8!important;--brand:#ed1c24!important}
 html.dark body,body{background:#fff!important;color:#000!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
 html.dark main,html.dark .tablewrap,html.dark table,html.dark thead,html.dark tbody,html.dark tr,html.dark th,html.dark td,main,.tablewrap,table,thead,tbody,tr,th,td{background:#fff!important;color:#000!important}
 html.dark th,html.dark td,th,td{border-color:#b8b8b8!important}
 html.dark .print-context,.print-context{color:#000!important}
}
/* 0.5.4 PDF/print */
.print-only{display:none}.public-list tr.new-start-time td{border-top:3px solid var(--text)}
@page{size:A4 portrait;margin:10mm}
@media print{
 main>h1:not(.print-title){display:none!important}.print-only{display:table-row!important}.print-title{display:block!important;margin:0 0 2.5mm;font-size:15pt;line-height:1.1}.print-context{margin:0 0 2mm;font-size:8.5pt}
 .public-list table{font-size:8.2pt;line-height:1.05;table-layout:fixed}.public-list th,.public-list td{padding:1mm 1.4mm;height:6.45mm;max-height:6.45mm;vertical-align:middle}.public-list tr.new-start-time td{border-top:1.6pt solid #000!important}.public-list tr.no-starters td{font-style:italic;color:#333}
}
/* 0.6.0 print layout */
@page{size:A4 portrait;margin:9mm 10mm}
@media print{
  html,html.dark{color-scheme:light!important;background:#fff!important;color:#000!important}
  .print-heading{display:flex!important;align-items:flex-start;justify-content:space-between;gap:8mm;margin:0 0 2mm}
  .print-title{display:block!important;flex:1;margin:0;font-size:14pt;line-height:1.1;padding-top:1mm}
  .print-logo{display:block!important;flex:0 0 auto;width:18mm;height:18mm;object-fit:contain;margin:0 0 2mm 6mm}
  .public-list table{font-size:8pt;line-height:1;table-layout:fixed}
  .public-list th,.public-list td{padding:.75mm 1.2mm;height:6mm;max-height:6mm;vertical-align:middle}
  .public-list tr.no-starters td{font-style:italic;color:#222}
}
