:root{color-scheme:light;--purple:#6f42c1;--purple-dark:#4d2c91;--yellow:#ffc928;--surface:#fff;--background:#f5f3fa;--text:#292636;--muted:#6f6a7d;--border:#ded9e9;--danger:#b42318;--shadow:0 18px 50px rgba(59,40,94,.14)}
.impersonation-bar .button{background:#fff2b3;color:#332b1c}.impersonation-bar .button:hover{background:#ffe994}
[data-theme="dark"]{color-scheme:dark;--surface:#292733;--background:#1c1a24;--text:#f5f2fb;--muted:#c2bdcc;--border:#45414f;--shadow:0 18px 50px rgba(0,0,0,.3)}
*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--text);background:var(--background)}a{color:var(--purple)}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px clamp(20px,5vw,70px);color:#fff;background:linear-gradient(110deg,var(--purple-dark),var(--purple))}.brand{font-size:1.25rem;font-weight:800}.top-actions{display:flex;gap:10px}.page{width:min(1040px,calc(100% - 32px));margin:42px auto}.auth-shell{width:min(520px,calc(100% - 32px));margin:55px auto}
.card{background:var(--surface);border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow);overflow:hidden}.card-header{padding:22px 26px;color:#fff;background:linear-gradient(110deg,var(--purple-dark),var(--purple))}.card-header h1,.card-header h2{margin:0}.card-body{padding:28px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}label{font-weight:700}input{width:100%;padding:12px 14px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:11px;font:inherit}input:focus{outline:3px solid rgba(111,66,193,.2);border-color:var(--purple)}input[readonly]{color:var(--muted);background:var(--background)}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 18px;border:0;border-radius:11px;color:#fff;background:var(--purple);font:inherit;font-weight:800;cursor:pointer;text-decoration:none}.button:hover{background:var(--purple-dark)}.button.secondary{color:var(--text);background:var(--yellow)}.button.ghost{color:#fff;background:rgba(255,255,255,.15)}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.message{display:none;margin:0 0 18px;padding:12px 14px;border-radius:10px}.message.visible{display:block}.message.error{color:var(--danger);background:#fee4e2}.message.success{color:#067647;background:#dcfae6}
.profile-layout{display:grid;grid-template-columns:220px 1fr;gap:28px}.profile-photo{width:180px;height:180px;border-radius:50%;object-fit:cover;border:6px solid var(--surface);box-shadow:var(--shadow);background:#ded9e9}.muted{color:var(--muted)}.hero{padding:70px 20px;text-align:center}.hero h1{margin:0 0 12px;font-size:clamp(2rem,5vw,4rem)}.hero p{max-width:620px;margin:0 auto 28px;color:var(--muted);font-size:1.12rem}
@media(max-width:720px){.form-grid,.profile-layout{grid-template-columns:1fr}.profile-photo{width:140px;height:140px}.topbar{padding:14px 18px}}
select,textarea{width:100%;padding:12px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:11px;font:inherit}fieldset{border:0;padding:18px 0}legend{font-size:1.3rem;font-weight:700}[hidden]{display:none!important}.crm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin:24px 0}.session{display:grid;gap:12px;margin:18px 0}.top-actions{flex-wrap:wrap}
/* WereldBus palette from https://wereldbus.nl/styles/maincolors.css */
:root{--purple:#a45f00;--purple-dark:#754300;--yellow:#ec9600;--surface:#fff;--background:#fdfbe8;--text:#332b1c;--muted:#6c614b;--border:#e9dfbe;--shadow:0 18px 50px rgba(117,67,0,.10)}
[data-theme="dark"]{--purple:#ec9600;--purple-dark:#b36c00;--yellow:#ec9600;--surface:#302b20;--background:#211e17;--text:#fffbed;--muted:#dbd1b5;--border:#61543b;--shadow:0 18px 50px rgba(0,0,0,.25)}
.topbar{background:var(--surface);color:var(--text);border-bottom:4px solid #ec9600}.topbar .button.ghost{color:var(--text);background:var(--background)}.card-header{background:#ec9600;color:#332b1c}.button{background:#ec9600;color:#332b1c}.button:hover{background:#d58500;color:#211e17}.button.secondary{background:#fdfbe8;color:#754300;border:1px solid #ec9600}.brand-logo{display:block;width:76px;height:76px}.brand{padding:0;background:transparent!important}.topbar>a:first-child{padding:0;background:transparent!important}a{color:var(--purple-dark)}

.hero .actions{justify-content:center}
.calendar{width:100%;table-layout:fixed;border-collapse:collapse;margin-top:20px}.calendar th,.calendar td{padding:8px;border:1px solid var(--border);vertical-align:top}.calendar td{height:90px}.calendar-visit{display:block;width:100%;font:inherit;font-size:.8rem;background:var(--background);color:var(--text);border:1px solid var(--border);border-radius:5px;margin-top:6px;padding:5px;overflow-wrap:anywhere;cursor:pointer}@media(max-width:600px){.calendar td,.calendar th{padding:2px}.calendar-visit{font-size:.65rem}}
/* Clear feedback without erasing entered form values. */
.message{white-space:pre-line}.field-error{color:var(--danger);font-size:.9rem;font-weight:600;line-height:1.5}[aria-invalid="true"]{border:2px solid var(--danger)!important}.button:disabled{opacity:.6;cursor:wait}.button:focus-visible,a:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #ec9600;outline-offset:3px}
/* Guided school requests and calm dashboard details. */
.page-intro{margin-bottom:28px}.page-intro h1{margin:8px 0 12px;font-size:clamp(1.8rem,3.5vw,2.65rem);line-height:1.15;letter-spacing:-.035em}.page-intro>.muted{max-width:650px;line-height:1.7}.eyebrow{font-size:.78rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--purple-dark)}.wizard-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:24px;align-items:start}.wizard-sidebar{position:sticky;top:24px}.wizard-sidebar h2{font-size:1.05rem;margin:0 0 24px}.step-list{list-style:none;counter-reset:step;margin:0;padding:0;display:grid;gap:8px}.step-list li{counter-increment:step;display:flex;align-items:center;gap:11px;padding:9px 0;font-size:.9rem;line-height:1.4;color:var(--muted)}.step-list li:before{content:counter(step);display:grid;place-items:center;flex:0 0 29px;height:29px;border:1px solid var(--border);border-radius:50%;font-size:.8rem;font-weight:800;background:var(--background)}.step-list li.current{font-weight:800;color:var(--text)}.step-list li.current:before{background:#ec9600;color:#332b1c;border-color:#ec9600}.step-list li.completed:before{content:'✓';background:var(--background);color:var(--purple-dark);border-color:#ec9600}.price-summary{border-top:1px solid var(--border);padding-top:24px;margin-top:24px;display:grid;gap:5px;font-size:.85rem;color:var(--muted)}.price-summary strong{font-size:2rem;letter-spacing:-.04em;color:var(--text)}.price-summary p{line-height:1.6;margin:8px 0 0}.wizard-main .card-body{padding:32px}.wizard-main fieldset{margin:12px 0 20px;padding:0;min-width:0}.wizard-main legend{font-size:1.55rem;font-weight:800;letter-spacing:-.025em;padding:0;max-width:100%}.wizard-main legend:focus{outline:0}.wizard-main .muted{line-height:1.7}.wizard-main #count{max-width:160px}.wizard-actions{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:24px;margin-top:30px}.wizard-actions>.button:last-child{margin-left:auto}.button.outline{border:1px solid var(--border);background:var(--surface);color:var(--text)}.contact-card,.session-card,#review{padding:20px;border:1px solid var(--border);border-radius:14px;background:var(--background);margin:18px 0;display:grid;gap:10px}.contact-card p{margin:0}.session-card h3{margin:0 0 6px;font-size:1rem}.session-card .field-hint{margin:0}.date-entry{display:flex;align-items:flex-end;gap:12px;margin-top:24px}.date-entry label{display:grid;gap:8px;flex:1}.date-entry input{min-height:46px}.date-entry .button{min-height:46px}.date-chips{display:flex;gap:10px;flex-wrap:wrap;list-style:none;padding:0;margin:18px 0}.date-chips li{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:10px;background:var(--background);padding:7px 8px 7px 12px;font-size:.9rem}.date-chips button{border:0;background:transparent;color:var(--text);font-size:1.3rem;cursor:pointer;padding:4px 8px;border-radius:6px}.date-chips button:hover{background:var(--border)}.field-hint{font-size:.85rem;font-weight:400;line-height:1.6;color:var(--muted)}.info-note{padding:16px;border-left:3px solid #ec9600;background:var(--background);border-radius:0 10px 10px 0;font-size:.9rem;line-height:1.7;margin:20px 0}.feedback{white-space:pre-line;background:#fff0eb;border:1px solid #eeb7a9;color:#922b16;padding:14px 16px;border-radius:12px;font-size:.95rem;line-height:1.65;margin:20px 0}.feedback.success{background:#edf8ee;border-color:#b7d8ba;color:#235b2a}.feedback.info{background:var(--surface);border-color:var(--border);color:var(--muted)}#review h3{margin:9px 0 0;font-size:.88rem;color:var(--muted)}#review p{margin:0;line-height:1.65}.review-total{border-top:1px solid var(--border);padding-top:14px;margin-top:8px!important;font-weight:800}.status-badge{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border:1px solid var(--border);border-radius:999px;font-size:.8rem;font-weight:800;line-height:1.4;width:fit-content;background:var(--background)}.status-badge[data-status="Aangevraagd"]{background:#fff4d9;color:#744c00}.status-badge[data-status="Ingepland"]{background:#fdfbe8;color:#754300}.status-badge[data-status="Factuur verzonden"]{background:#eaf1fb;color:#31557e}.status-badge[data-status="Definitief gepland"]{background:#e9f5e9;color:#245c2d}#detail{margin:24px 0;scroll-margin-top:24px}#detail h2{margin-top:16px}#detail>p{line-height:1.7}#detail>select{margin:16px 0;max-width:360px}#detail>.button{margin:8px 8px 0 0}#management{margin-top:32px;border-top:1px solid var(--border);padding-top:24px}#management>form:not(#thema-form){padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:14px;margin:16px 0;display:grid;gap:12px}#thema-form{padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:16px;margin:18px 0}#thema-form label{display:grid;gap:8px}#thema-form>.button{grid-column:1/-1;justify-self:start}.crm-grid .card h2{font-size:1.2rem;margin-top:0}.crm-grid .card p{line-height:1.65}.crm-grid .card>.button{margin-top:14px}.calendar th{font-size:.8rem;color:var(--muted);font-weight:700}.calendar td{height:78px}.calendar strong{font-size:.85rem}.calendar-visit{background:var(--background)}input:focus{outline:3px solid #ec960033}.brand-logo{object-fit:contain;border-radius:12px}.button{line-height:1.3}.muted{line-height:1.6}
@media(max-width:850px){.wizard-layout{grid-template-columns:1fr}.wizard-sidebar{position:static}.wizard-sidebar .card-body{padding:20px}.wizard-sidebar h2,.price-summary{display:none}.step-list{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.step-list li{justify-content:center;padding:4px;font-size:0;gap:0}.step-list li:before{font-size:.85rem}.wizard-main .card-body{padding:24px}}
@media(max-width:500px){.page{margin-top:26px}.wizard-main .card-body{padding:20px}.wizard-main legend{font-size:1.25rem}.date-entry{align-items:stretch;flex-direction:column}.wizard-actions>.button{flex:1}.topbar{gap:12px}.top-actions{gap:6px}.top-actions .button{padding:9px 11px;font-size:.82rem}.brand-logo{width:62px;height:62px}.calendar td{height:58px}}

.card{min-width:0}.page p,.contact-card,#review,.message,.feedback{overflow-wrap:anywhere}
#management>form label{display:grid;gap:8px}[data-theme="dark"]{--danger:#ffb4a8}[data-theme="dark"] .message.error{background:#49291f;color:#ffd1c7}
[data-theme="dark"] .eyebrow{color:#f1b752}
/* Shared collapsible application navigation. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{--sidebar-width:260px;padding-left:var(--sidebar-width);transition:padding-left .18s ease}.app-shell.sidebar-collapsed{--sidebar-width:78px}.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);z-index:60;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;transition:width .18s ease}.sidebar-head{display:flex;align-items:center;gap:8px;min-height:106px;padding:20px 16px}.sidebar-brand{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0;flex:1}.sidebar-brand img{width:48px;height:48px;object-fit:contain;border-radius:10px;background:#fff;flex-shrink:0}.sidebar-brand-text{font-weight:850;font-size:1.15rem;color:var(--text)}.sidebar-collapse,.app-menu-trigger{display:grid;place-items:center;border:1px solid var(--border);border-radius:10px;width:34px;height:34px;flex-shrink:0;background:var(--surface);color:var(--text);cursor:pointer}.sidebar-collapse:hover,.app-menu-trigger:hover{background:var(--background)}.nav-icon{width:21px;height:21px;flex:0 0 21px}.sidebar-caption{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:800;padding:0 24px;margin:4px 0 14px}.sidebar-nav{display:grid;gap:6px;padding:0 12px}.nav-link{display:flex;align-items:center;gap:13px;width:100%;min-height:47px;padding:12px;border:0;border-radius:11px;background:transparent;color:var(--muted);text-align:left;font:inherit;font-size:.93rem;font-weight:650;text-decoration:none;cursor:pointer;white-space:nowrap}.nav-link:hover{background:var(--background);color:var(--text)}.nav-link.active{background:#fff0cb;color:#744800;box-shadow:inset 3px 0 #ec9600}.nav-link.active .nav-icon{color:#a45f00}.nav-group summary{list-style:none}.nav-group summary::-webkit-details-marker{display:none}.nav-group summary:after{content:'›';margin-left:auto;font-size:1.2rem;transform:rotate(90deg)}.nav-group[open] summary:after{transform:rotate(-90deg)}.nav-children{padding:4px 0 4px 19px;display:grid;gap:3px}.nav-children .nav-link{min-height:41px;font-size:.87rem}.nav-children .nav-icon{width:18px;height:18px;flex-basis:18px}.sidebar-footer{margin-top:auto;padding:24px 12px 16px;display:grid;gap:5px}.sidebar-profile{display:flex;align-items:center;gap:11px;padding:12px;margin-bottom:8px;border-top:1px solid var(--border);text-decoration:none;color:var(--text);font-size:.9rem;font-weight:700;white-space:nowrap}.user-avatar{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:50%;background:#fff0cb;color:#744800;font-weight:800}.app-topbar{min-height:78px;padding:16px 32px;border-bottom:1px solid var(--border);gap:16px;position:sticky;top:0;z-index:30}.app-topbar .app-menu-trigger{width:40px;height:40px}.app-page-title{font-size:.95rem;font-weight:750;margin-right:auto}.app-environment{font-size:.8rem;color:var(--muted)}.app-shell .page{width:calc(100% - 64px);max-width:1200px;margin:36px auto}.app-shell .page-intro h1{font-size:clamp(1.65rem,3vw,2.3rem)}.sidebar-collapsed .app-sidebar .nav-label,.sidebar-collapsed .nav-children,.sidebar-collapsed .nav-group summary:after{display:none}.sidebar-collapsed .sidebar-head{flex-direction:column;padding:18px 10px;gap:14px}.sidebar-collapsed .sidebar-collapse{transform:rotate(180deg)}.sidebar-collapsed .sidebar-nav,.sidebar-collapsed .sidebar-footer{padding-left:10px;padding-right:10px}.sidebar-collapsed .nav-link{justify-content:center;padding:12px}.sidebar-collapsed .sidebar-profile{justify-content:center;padding:12px 0}.sidebar-backdrop{display:none}.view-heading{font-size:1.15rem}.empty-state{grid-column:1/-1;padding:32px;background:var(--surface);border:1px dashed var(--border);border-radius:16px;color:var(--muted);text-align:center}.empty-state h2{font-size:1.1rem;color:var(--text)}.invoice-total{font-size:1.65rem;font-weight:800;letter-spacing:-.03em}.school-address{white-space:pre-line}.school-person{display:flex;align-items:center;gap:12px;justify-content:space-between;border-top:1px solid var(--border);padding:14px 0}.school-person p{margin:0}.school-person .muted{font-size:.85rem}.app-shell #management{border-top:0;padding-top:0;margin-top:24px}.app-shell #management>h2{font-size:1.15rem}.app-shell #detail{margin-top:24px}.app-shell .wizard-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:22px}.wizard-progress{border:1px solid var(--border);border-radius:18px;background:var(--surface);padding:24px;min-width:0}.wizard-progress .step-list{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.wizard-progress .step-list li{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:11px;padding:0 4px;font-size:.78rem;line-height:1.5;min-width:0}.wizard-progress .step-list li:before{position:relative;z-index:1;flex:0 0 29px;width:29px;height:29px;font-size:.8rem}.wizard-progress .step-list li:not(:last-child):after{content:'';position:absolute;top:14px;left:calc(50% + 21px);width:calc(100% - 34px);height:1px;background:var(--border)}.wizard-progress .step-list li.current{color:var(--text)}.wizard-cost-note{border-top:1px solid var(--border);margin:22px 0 0;padding-top:16px;font-size:.83rem;color:var(--muted);text-align:center;line-height:1.6}.app-shell .wizard-main .card-body{padding:30px}.app-shell .wizard-main{min-width:0}.app-shell .wizard-page{max-width:1050px}.app-shell .wizard-main fieldset{min-height:190px}
[data-theme="dark"] .nav-link.active{background:#523b16;color:#ffda91}[data-theme="dark"] .nav-link.active .nav-icon{color:#ffcb69}[data-theme="dark"] .user-avatar{background:#523b16;color:#ffda91}
@media(max-width:1100px){.app-shell .page{width:calc(100% - 40px)}.app-topbar{padding:14px 20px}.wizard-progress{padding:20px 14px}.wizard-progress .step-list li{font-size:.72rem}}
@media(max-width:850px){.app-shell,.app-shell.sidebar-collapsed{padding-left:0;--sidebar-width:260px}.app-sidebar{transform:translateX(-100%);transition:transform .18s ease;width:260px}.sidebar-open .app-sidebar{transform:translateX(0)}.sidebar-open{overflow:hidden}.sidebar-open .sidebar-backdrop{display:block;position:fixed;inset:0;z-index:50;border:0;background:#17130f66}.sidebar-collapsed .app-sidebar .nav-label{display:initial}.sidebar-collapsed .app-sidebar .nav-children{display:grid}.sidebar-collapsed .app-sidebar .nav-group summary:after{display:block}.sidebar-collapsed .sidebar-head{flex-direction:row;padding:20px 16px}.sidebar-collapsed .sidebar-collapse{transform:none}.sidebar-collapsed .nav-link{justify-content:flex-start}.sidebar-collapsed .sidebar-profile{justify-content:flex-start;padding:12px}.app-environment{display:none}.app-shell .page{width:calc(100% - 32px);margin:28px auto}.app-topbar{min-height:70px;padding:12px 16px}.app-shell .wizard-main .card-body{padding:24px}.app-shell .wizard-layout{gap:18px}}
@media(max-width:550px){.wizard-progress .step-list{grid-template-columns:repeat(6,minmax(88px,1fr));overflow-x:auto;padding:4px 0 12px;gap:0}.wizard-progress .step-list li{font-size:.73rem}.wizard-progress{padding:18px 10px}.wizard-cost-note{font-size:.78rem}.app-shell .wizard-main .card-body{padding:20px}.school-person{align-items:flex-start;flex-direction:column}.app-page-title{font-size:.88rem}}
@media(prefers-reduced-motion:reduce){.app-shell,.app-sidebar{transition:none}}

@media(min-width:851px) and (max-width:1150px){.app-shell .profile-layout{grid-template-columns:180px minmax(0,1fr)}.app-shell #account-form{grid-template-columns:1fr}.app-shell .profile-photo{width:150px;height:150px}}
.wizard-actions #next,.wizard-actions #submit{margin-left:auto}
@media(max-width:550px){.wizard-progress .step-list{grid-template-columns:repeat(6,minmax(0,1fr));overflow:visible;padding:4px 0;gap:6px}.wizard-progress .step-list li{font-size:0;gap:0;padding:0}.wizard-progress .step-list li:before{font-size:.8rem}.wizard-progress .step-list li:not(:last-child):after{width:calc(100% - 30px)}}
.app-shell{transition:none}.app-sidebar{transition:none}.status-badge[data-status="Betaald"]{background:#e9f5e9;color:#245c2d}.status-badge[data-status="Openstaand"]{background:#eaf1fb;color:#31557e}.status-badge[data-status="Verzending mislukt"]{background:#fff0eb;color:#922b16}@media(max-width:850px){.app-sidebar{transition:transform .18s ease}}@media(prefers-reduced-motion:reduce){.app-sidebar{transition:none}}
/* Header account menu and password dialog. */
.account-menu{position:relative;flex-shrink:0}.account-menu-trigger{display:flex;align-items:center;gap:10px;padding:5px 10px 5px 5px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font:inherit;font-size:.87rem;font-weight:750;cursor:pointer}.account-menu-trigger:hover,.account-menu-trigger[aria-expanded="true"]{background:var(--background)}.user-avatar{overflow:hidden}.user-avatar img{width:100%;height:100%;object-fit:cover}.account-chevron{display:block;width:14px;height:14px;flex:0 0 14px;margin-left:3px;align-self:center}.account-popup{position:absolute;right:0;top:calc(100% + 12px);width:280px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:8px;z-index:40}.account-identity{display:grid;gap:5px;padding:12px 12px 16px;border-bottom:1px solid var(--border);margin-bottom:6px;font-size:.88rem;overflow-wrap:anywhere}.account-identity>span{font-size:.78rem;color:var(--muted)}.account-menu-item{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:11px 12px;background:transparent;border:0;border-radius:9px;color:var(--text);font:inherit;font-size:.88rem;text-align:left;text-decoration:none;cursor:pointer}.account-menu-item:hover{background:var(--background)}.account-menu-exit{border-top:1px solid var(--border);border-radius:0 0 9px 9px;margin-top:5px}.account-menu-item[aria-pressed="true"]:after{content:'✓';margin-left:auto}.account-menu-trigger:focus-visible,.account-menu-item:focus-visible,.dialog-close:focus-visible{outline:3px solid #ec9600;outline-offset:3px}.password-dialog{width:min(500px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;border:1px solid var(--border);border-radius:20px;padding:28px;background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.password-dialog::backdrop{background:#17130f88}.password-form{display:grid;gap:18px}.password-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.password-dialog h2{font-size:1.3rem;letter-spacing:-.02em;margin:0}.password-dialog p{margin:0;font-size:.88rem}.dialog-close{display:grid;place-items:center;flex-shrink:0;width:34px;height:34px;font-size:1.5rem;border:1px solid var(--border);border-radius:10px;background:var(--background);color:var(--text);cursor:pointer}.password-dialog .actions{justify-content:flex-end;margin-top:4px}
@media(max-width:550px){.app-topbar{gap:10px}.account-menu-trigger{gap:6px;font-size:.78rem;padding-right:8px}.account-menu-trigger .user-avatar{width:29px;height:29px;flex-basis:29px;font-size:.75rem}.account-chevron{display:none}.app-page-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.password-dialog{padding:20px}.password-dialog .actions{flex-direction:column-reverse}.password-dialog .button{width:100%}}
.account-identity>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Theme management and school theme previews. */
.theme-editor{margin:22px 0;padding:28px}.theme-editor h3{font-size:1.3rem;margin:0 0 20px}.theme-editor h4{margin:0 0 14px;font-size:1.05rem}.theme-fields{display:grid;gap:22px}.theme-fields>label,.theme-upload>label{display:grid;gap:9px;font-size:.92rem;font-weight:700}.theme-fields textarea{resize:vertical;line-height:1.65}.theme-fields>.button{justify-self:start}.theme-group-fieldset{padding:0;margin:0;min-width:0}.theme-group-fieldset legend{font-size:.95rem;font-weight:750;margin-bottom:8px}.theme-group-fieldset .field-hint{margin:0 0 12px}.theme-group-choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.theme-grade-choice{display:flex;align-items:center;gap:9px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-size:.85rem;cursor:pointer}.theme-grade-choice:has(input:checked){border-color:#ec9600;background:var(--background)}.theme-grade-choice input,.theme-fields .theme-active input{width:18px;height:18px;padding:0;margin:0;accent-color:#a45f00;flex-shrink:0}.theme-fields>.theme-active{display:flex;align-items:center;gap:10px;font-size:.87rem;font-weight:600}.theme-photos{margin-top:28px;padding-top:24px;border-top:1px solid var(--border)}.theme-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.theme-photo-tile{margin:0;padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--background);display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0}.theme-photo-tile>img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px}.theme-photo-tile figcaption{font-size:.8rem;overflow-wrap:anywhere}.theme-photo-tile .actions{margin-top:auto;gap:6px;flex-wrap:wrap}.theme-photo-tile .button{padding:8px 10px;font-size:.75rem}.theme-photo-tile .status-badge{font-size:.7rem;padding:4px 8px}.theme-upload{display:grid;gap:16px;margin-top:22px;padding:20px;border:1px dashed var(--border);border-radius:12px}.theme-upload .button{justify-self:start}.theme-upload .field-hint{margin:0}.theme-upload input[type=file]{font-size:.85rem;max-width:100%}.theme-details{display:grid;gap:14px;min-width:0}.theme-details:empty{display:none}.theme-details p,.theme-details h4{margin:0}.theme-details h4{font-size:.93rem;margin-top:6px}.theme-text{white-space:pre-line;line-height:1.75;font-size:.92rem}.theme-hero{width:100%;max-height:300px;aspect-ratio:16/7;object-fit:cover;border-radius:12px}.theme-grades-summary{color:var(--purple-dark);font-size:.82rem;font-weight:750}.theme-preview-gallery{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px}.theme-preview-gallery a{flex:0 0 100px}.theme-preview-gallery img{width:100px;height:75px;object-fit:cover;border-radius:8px}
@media(max-width:600px){.theme-editor{padding:20px}.theme-group-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.theme-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.theme-photo-tile{padding:8px}.theme-upload{padding:16px}.theme-hero{aspect-ratio:4/3}.theme-grade-choice{padding:10px}.theme-photo-tile .actions{flex-direction:column;align-items:stretch;width:100%}}

.theme-editor-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;list-style:none}.theme-editor-summary::-webkit-details-marker{display:none}.theme-editor-summary:after{content:"+";font-size:1.5rem;color:var(--purple-dark)}.theme-editor[open]>.theme-editor-summary:after{content:"−"}.theme-editor-summary h3{margin:0}.theme-editor[open]>.theme-editor-summary{margin-bottom:24px}.theme-editor-summary:focus-visible{outline:3px solid #ec9600;outline-offset:6px}.theme-editor{scroll-margin-top:95px}
.theme-fields input:not([type=checkbox]),.theme-fields textarea,.theme-upload input{font-weight:400}
/* Employee planning and visit preparation. */
.trip-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:24px 0;padding:24px;border:1px solid var(--border);border-radius:14px;background:var(--background)}.trip-info-grid h3{margin:0 0 14px;font-size:.95rem}.trip-info-grid p{font-size:.87rem;line-height:1.65;margin:7px 0;overflow-wrap:anywhere}.trip-info-grid strong{font-size:.95rem}.trip-assignment{display:flex;align-items:flex-end;gap:12px;padding:20px;margin:24px 0;border:1px solid var(--border);border-radius:12px}.trip-assignment label{display:grid;gap:9px;flex:1;font-size:.87rem;font-weight:700}.trip-assignment select{font-weight:400}.trip-assignment .button{flex-shrink:0}.trip-sessions{margin:26px 0}.trip-sessions h3{margin-bottom:8px}.trip-sessions>.muted{font-size:.87rem}.table-scroll{max-width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:12px;margin-top:16px}.session-table{width:100%;border-collapse:collapse;text-align:left;font-size:.88rem}.session-table th{background:var(--background);font-size:.78rem;color:var(--muted)}.session-table th,.session-table td{padding:14px 16px;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.session-table tr:last-child td{border-bottom:0}.session-table th:last-child,.session-table td:last-child{text-align:right}.trip-notes{white-space:pre-line}.employee-card-head{display:flex;align-items:center;gap:14px;margin-bottom:18px}.employee-card-head h2{margin:0!important}.employee-card-head .user-avatar{width:48px;height:48px;flex-basis:48px;font-size:1.1rem}.employee-card>p{overflow-wrap:anywhere}.employee-card .status-badge{margin-bottom:8px}
@media(max-width:1000px){.trip-info-grid{grid-template-columns:1fr 1fr}.trip-info-grid>section:last-child{grid-column:1/-1}}
@media(max-width:600px){.trip-info-grid{grid-template-columns:1fr;padding:18px;gap:22px}.trip-info-grid>section:last-child{grid-column:auto}.trip-assignment{align-items:stretch;flex-direction:column;padding:16px}.session-table th,.session-table td{padding:10px;font-size:.8rem}.session-table{min-width:300px}}

@media(max-width:600px){.session-table{min-width:0;table-layout:fixed}.session-table th,.session-table td{padding:10px 6px;font-size:.72rem}.session-table th:first-child{width:18%}.session-table th:nth-child(2){width:31%}.session-table th:nth-child(3){width:27%}.session-table th:last-child{width:24%}}
/* Compact calendar with closed weekend columns. */
#calendar{max-width:900px;padding:22px}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.calendar-toolbar h2{margin:0;font-size:1.15rem}.calendar-toolbar .actions{gap:8px}.calendar-toolbar .button{padding:9px 12px;font-size:.78rem;background:var(--background);color:var(--text);border:1px solid var(--border)}.calendar-toolbar .button:hover{border-color:#ec9600}.calendar-note{font-size:.75rem;color:var(--muted);margin:14px 0 0;line-height:1.6}.calendar{margin-top:12px}.calendar td{height:46px;padding:6px}.calendar th{padding:7px 6px;font-size:.72rem}.calendar strong{font-size:.76rem}.calendar-visit{padding:4px;font-size:.72rem}.calendar th:nth-child(n+6){width:9%}.calendar .calendar-weekend{background:repeating-linear-gradient(135deg,transparent,transparent 5px,var(--border) 5px,var(--border) 6px),var(--background);color:var(--muted)}.calendar .calendar-weekend strong{font-weight:500}.calendar .calendar-weekend .calendar-visit{background:var(--surface)}
@media(max-width:600px){#calendar{padding:16px}.calendar-toolbar{gap:10px}.calendar-toolbar h2{font-size:1rem}.calendar-toolbar .button{font-size:.7rem;padding:8px 9px}.calendar td{height:38px;padding:3px}.calendar th{padding:6px 3px}.calendar-visit{font-size:.65rem}.calendar-note{font-size:.7rem}}
/* School date selection: available, booked and closed days. */
.visit-calendar{max-width:460px;margin:24px 0 12px;padding:18px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.visit-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.visit-calendar-toolbar h3{margin:0;font-size:1rem;text-transform:capitalize}.visit-month-button{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--border);border-radius:9px;background:var(--background);color:var(--text);font:inherit;font-size:1.5rem;cursor:pointer}.visit-month-button:disabled{opacity:.35;cursor:default}.visit-calendar-grid{width:100%;border-collapse:separate;border-spacing:5px;table-layout:fixed}.visit-calendar-grid th{font-size:.73rem;font-weight:650;color:var(--muted);padding:4px 0}.visit-calendar-grid td{padding:0;vertical-align:middle}.visit-day{position:relative;width:100%;aspect-ratio:1;min-height:34px;padding:4px;border:1px solid transparent;border-radius:9px;font:inherit;font-size:.85rem;font-weight:650;cursor:pointer}.visit-day-available{background:#e3f3e7;color:#235d34;border-color:#b9d9c1}.visit-day-available:hover{background:#cce7d3;border-color:#437b50}.visit-day-busy{background:#ffe5bf;color:#854800;border-color:#efc18a}.visit-day-weekend{background:#ecebea;color:#73716c;border-color:#deddd8}.visit-day-outside{background:transparent;color:var(--muted);opacity:.35}.visit-day:disabled{cursor:default}.visit-day.is-selected{background:#24703d;color:#fff;border-color:#174d28;box-shadow:0 0 0 2px var(--surface),0 0 0 3px #24703d}.visit-day.is-selected:after{content:'✓';position:absolute;right:3px;top:0;font-size:.6rem}.visit-day:focus-visible,.visit-month-button:focus-visible{outline:3px solid #ec9600;outline-offset:3px}.visit-calendar-legend{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0 0;padding:0;list-style:none;font-size:.71rem;color:var(--muted)}.visit-calendar-legend li{display:flex;align-items:center;gap:6px}.visit-calendar-legend li:before{content:'';width:10px;height:10px;border:1px solid #b9d9c1;border-radius:3px;background:#e3f3e7}.visit-calendar-legend .legend-busy:before{background:#ffe5bf;border-color:#efc18a}.visit-calendar-legend .legend-weekend:before{background:#ecebea;border-color:#deddd8}.visit-calendar-legend .legend-selected:before{background:#24703d;border-color:#174d28}
[data-theme=dark] .visit-day-available{background:#254531;color:#c7eed1;border-color:#4b7857}[data-theme=dark] .visit-day-busy{background:#5e3c18;color:#ffd7a4;border-color:#99703c}[data-theme=dark] .visit-day-weekend{background:#403f3b;color:#b6b3aa;border-color:#575650}[data-theme=dark] .visit-day.is-selected{background:#78c78d;color:#182b1d;border-color:#a4dcb2}
@media(max-width:550px){.visit-calendar{padding:10px;margin-top:20px}.visit-calendar-grid{border-spacing:4px}.visit-day{border-radius:7px;font-size:.78rem;min-height:30px}.visit-calendar-legend{gap:9px;font-size:.65rem}.visit-calendar-toolbar h3{font-size:.9rem}}
/* Daily operations, dashboard and preparation. */
.operations-view{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;margin:24px 0}.operations-view h2{font-size:1.2rem;margin:0 0 18px}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.stat-tile{text-decoration:none;display:grid;gap:12px;color:var(--text)}.stat-tile strong{font-size:2rem;letter-spacing:-.04em}.stat-tile span{font-size:.82rem;color:var(--muted)}.stat-tile:hover{border-color:#ec9600}.ops-warning{border-left:4px solid #ec9600}.ops-section{margin:22px 0;border:1px solid var(--border);border-radius:13px;background:var(--surface);overflow:hidden}.ops-section>summary{padding:18px 20px;font-weight:750;font-size:.95rem;cursor:pointer;background:var(--background)}.ops-section-body{padding:20px}.ops-section-body h4{font-size:.88rem;margin:20px 0 8px}.ops-text{white-space:pre-line;line-height:1.75;font-size:.9rem}.ops-form{display:grid;gap:17px;padding:20px;margin:18px 0;border:1px solid var(--border);border-radius:12px}.ops-form label{display:grid;gap:9px;font-size:.87rem;font-weight:650}.ops-form input,.ops-form textarea,.ops-form select{font-weight:400}.ops-form textarea{resize:vertical;line-height:1.65}.ops-form>.button{justify-self:start}.ops-form>.ops-checkbox{display:flex;align-items:center;gap:10px}.ops-checkbox input{width:19px;height:19px;accent-color:#a45f00;flex-shrink:0}.ops-list-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:16px 0;border-bottom:1px solid var(--border);font-size:.87rem}.ops-list-row:last-child{border-bottom:0}.ops-list-row>strong{flex:1;min-width:140px}.ops-list-row>.button{font-size:.78rem;padding:9px 12px}.ops-note{padding:16px 0;border-bottom:1px solid var(--border);display:grid;gap:6px}.ops-note p{margin:6px 0}.ops-note small{font-size:.76rem}.notification-item{padding:22px 0;border-bottom:1px solid var(--border)}.notification-item h3{font-size:1rem;margin:0 0 8px}.notification-item>.button{margin:8px 8px 0 0;font-size:.8rem}.notification-item.unread{border-left:3px solid #ec9600;padding-left:18px}.trip-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0;padding:22px}.trip-filters label{display:grid;gap:8px;font-size:.8rem;font-weight:700}.trip-filters input,.trip-filters select{font-weight:400;font-size:.85rem}.trip-filters>.button{align-self:end;justify-self:start;font-size:.82rem}.school-practical{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:20px 0;margin:24px 0}.status-badge[data-status=Geannuleerd]{background:#f0ece7;color:#655a4a}
@media(max-width:750px){.trip-filters{grid-template-columns:1fr 1fr}.dashboard-stats{grid-template-columns:1fr 1fr}.ops-section-body{padding:16px}.ops-form{padding:16px}.ops-list-row{align-items:flex-start;flex-direction:column;gap:9px}.ops-list-row>strong{min-width:0}}
@media(max-width:450px){.trip-filters{grid-template-columns:1fr}.ops-form>.button{width:100%}.ops-section>summary{padding:15px}.dashboard-stats{gap:10px}.stat-tile{padding:18px}.stat-tile strong{font-size:1.7rem}}
@media print{body.app-shell{padding:0;background:white;color:black}.app-sidebar,.topbar,.sidebar-backdrop,.no-print,button,form{display:none!important}.app-shell .page{width:100%;max-width:none;margin:0}.page>*,.page-intro,#calendar,#trips{display:none!important}.page>#detail{display:block!important;border:0;box-shadow:none;margin:0;padding:0}#detail .run-sheet{display:block!important}#detail .run-sheet>summary{display:none}#detail .run-sheet details{display:block}#detail .run-sheet details>div{display:block!important}.ops-section{border:0}.trip-info-grid{break-inside:avoid}.session-table{break-inside:avoid}.ops-text{color:black}}

.dashboard-stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.status-badge[data-status="Te laat"]{background:#fff0eb;color:#922b16}@media(max-width:750px){.dashboard-stats{grid-template-columns:1fr 1fr}.dashboard-stats>.stat-tile:last-child:nth-child(odd){grid-column:1/-1}}

.theme-main-photo,.theme-preview-gallery figure{margin:0;min-width:0}.theme-photo-credit{font-size:.78rem;line-height:1.6;color:var(--text-muted);margin:.5rem 0 1rem;overflow-wrap:anywhere}.theme-photo-credit a{color:inherit;text-decoration:underline}.theme-preview-gallery figure img{width:100%;object-fit:cover}
.theme-preview-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));overflow:visible}.theme-preview-gallery figure>a{display:block}.theme-preview-gallery figure img{height:auto;max-height:320px;aspect-ratio:16/10;object-fit:cover}

.invoice-preview-link{grid-column:1/-1;margin:0 0 8px}

body.impersonating{padding-bottom:100px}.impersonation-bar{position:fixed;z-index:10000;bottom:16px;left:50%;transform:translateX(-50%);display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;max-width:calc(100% - 24px);width:max-content;padding:12px 18px;border:1px solid var(--border);border-radius:16px;background:var(--surface,#fff);color:var(--text,#302a20);box-shadow:0 8px 32px #0002}.impersonation-bar>span:first-child{font-weight:700}.impersonation-bar [role="alert"]{width:100%;font-weight:400}.login-as-view>section,.login-as-filters{margin:20px 0}.login-as-filters{display:flex;align-items:end;gap:16px;flex-wrap:wrap}.login-as-filters>label{flex:1 1 260px}.login-as-view .management-table td:last-child{white-space:nowrap}@media(max-width:600px){.impersonation-bar{bottom:8px;width:calc(100% - 24px);gap:8px;padding:10px}.impersonation-bar>span:first-child{font-size:.875rem}}
