:root{--navy:#283149;--deep:#161b28;--slate:#3a476a;--ice:#dbedf3;--aqua:#b5dae6;--blue:#0789bd;--cyan:#37c5df;--white:#fff;--green:#35a85a;--text:#10243a;--muted:#6c8192;--line:#dce8ee;--shadow:0 12px 40px rgba(27,67,91,.10);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}*{box-sizing:border-box}html{background:#eef7fa}body{margin:0;color:var(--text);background:linear-gradient(180deg,#f8fcfd 0,#eaf6f9 100%);min-height:100vh}a{color:inherit}button,input,select,textarea{font:inherit}.app-header{height:72px;background:linear-gradient(110deg,#062f4e,#075d83);display:flex;align-items:center;justify-content:space-between;padding:10px max(18px,calc((100vw - 1160px)/2));position:sticky;top:0;z-index:20;box-shadow:0 8px 24px rgba(0,38,61,.14)}.header-brand img{width:210px;max-height:50px;object-fit:contain;filter:invert(1);display:block}.header-actions{display:flex;align-items:center;gap:10px;color:#fff}.user-chip{font-size:.86rem;opacity:.88}.avatar,.student-avatar{display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#bfeef5,#52c4df);color:#063e5d;font-weight:900;text-decoration:none}.avatar{width:42px;height:42px;border:2px solid rgba(255,255,255,.75)}.desktop-nav{height:48px;background:#fff;display:flex;gap:4px;padding:5px max(18px,calc((100vw - 1160px)/2));border-bottom:1px solid var(--line);position:sticky;top:72px;z-index:19}.desktop-nav a{padding:8px 15px;border-radius:12px;text-decoration:none;font-weight:700;font-size:.9rem}.desktop-nav a.active,.desktop-nav a:hover{background:#e7f6fa;color:#007aa7}.app-main{max-width:1160px;margin:0 auto;padding:26px 18px 100px}.eyebrow{font-size:.68rem;font-weight:800;letter-spacing:.24em;color:#bceefa}.eyebrow.dark{color:#168caf}.hero-dashboard{min-height:265px;border-radius:28px;padding:28px;color:white;background:linear-gradient(120deg,#062f4e,#075d83);display:grid;grid-template-columns:1fr 1.15fr;gap:24px;overflow:hidden;box-shadow:0 22px 60px rgba(8,78,110,.22)}.hero-copy{align-self:center}.hero-copy h1{font-size:clamp(2rem,5vw,3.4rem);letter-spacing:-.04em;margin:10px 0 2px}.hero-copy p{font-size:1.15rem;color:#d8f1f6;margin:0}.hero-photo{border-radius:22px;min-height:205px;background:linear-gradient(90deg,rgba(3,40,67,.15),rgba(3,40,67,.03)),url('assets/login-bg.jpg') center 58%/cover;display:flex;align-items:flex-end;padding:22px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}.hero-photo div{display:flex;flex-direction:column;font-size:1.2rem;text-shadow:0 2px 8px #001}.hero-photo span{color:#bfeef5}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0}.quick-card{background:#fff;border-radius:20px;padding:22px 18px;box-shadow:var(--shadow);text-decoration:none;display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;gap:4px 13px;align-items:center;border:1px solid #e4eef2}.quick-icon{grid-row:1/3;width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,#e4f7fb,#c1eaf2);color:#087cab;font-size:1.55rem}.quick-card strong{font-size:1.03rem}.quick-card small{color:var(--muted)}.quick-card b{grid-column:3;grid-row:1/3;font-size:1.6rem;color:#0b7ca7}.stats-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;background:#fff;padding:14px;border-radius:20px;box-shadow:var(--shadow);margin-bottom:20px}.stats-strip div{text-align:center;padding:10px;border-right:1px solid var(--line)}.stats-strip div:last-child{border:0}.stats-strip strong{display:block;font-size:1.65rem;color:#087eaa}.stats-strip span{color:var(--muted);font-size:.8rem}.section-card,.student-form-card{background:#fff;border-radius:24px;padding:22px;margin-bottom:18px;box-shadow:var(--shadow);border:1px solid #e5eef2}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.section-head h2{margin:3px 0}.section-head a{color:#0786b4;text-decoration:none;font-weight:700;font-size:.88rem}.upcoming-list{margin-top:12px}.upcoming-item,.student-main{display:flex;align-items:center;gap:14px;padding:12px 6px;border-bottom:1px solid #edf2f4;text-decoration:none}.upcoming-item:last-child,.student-card:last-child{border-bottom:0}.date-pill{width:48px;height:54px;border-radius:14px;background:#e9f7fa;display:grid;place-items:center;color:#087ca8;line-height:1}.date-pill b{font-size:1.25rem}.date-pill span{font-size:.62rem;letter-spacing:.1em}.grow{flex:1;min-width:0}.upcoming-item strong,.student-main strong{display:block}.upcoming-item .grow span,.student-main .grow span,.manage-skills span,.skill-row span{display:block;color:var(--muted);font-size:.8rem}.lesson-badge,.status-pill,.count-pill{border-radius:999px;background:#e0f4f9;color:#0879a4;padding:5px 10px;font-weight:800;font-size:.75rem;white-space:nowrap}.status-pill.done{background:#dcf5e4;color:#238447}.chev{font-size:1.4rem;color:#7191a3}.community-card{min-height:190px;border-radius:26px;padding:28px;color:#fff;background:linear-gradient(90deg,rgba(3,44,72,.88),rgba(3,44,72,.28)),url('assets/login-bg.jpg') center 75%/cover;display:flex;align-items:center;box-shadow:0 18px 50px rgba(0,61,92,.2)}.community-card h2{font-size:2.2rem;letter-spacing:.12em;margin:5px 0}.community-card p{margin:0;color:#d5eef4}.page-intro{margin:4px 0 20px}.page-intro h1{font-size:2.25rem;margin:3px 0 2px;letter-spacing:-.04em}.page-intro p{margin:0;color:var(--muted)}.week-switcher{background:#fff;display:grid;grid-template-columns:50px 1fr 50px;align-items:center;border-radius:18px;padding:8px;box-shadow:var(--shadow);margin-bottom:16px}.week-switcher a{text-decoration:none;text-align:center;font-size:1.8rem;color:#087fab}.week-switcher div{text-align:center}.week-switcher small,.week-switcher strong{display:block}.week-switcher small{color:var(--muted)}.week-list{display:grid;gap:12px}.day-card{background:#fff;border-radius:20px;padding:14px 16px;box-shadow:var(--shadow);border:1px solid #e8f0f3}.day-card.today{border-color:#64cee3;box-shadow:0 10px 35px rgba(27,164,196,.16)}.day-heading{display:flex;align-items:center;gap:12px}.date-bubble{width:46px;height:52px;background:#e7f6fa;border-radius:13px;display:grid;place-items:center;line-height:1;color:#087fa9}.date-bubble b{font-size:1.1rem}.date-bubble span{font-size:.62rem}.day-heading h2{font-size:1rem;margin:0}.day-heading small{color:var(--muted)}.add-toggle{margin-left:auto;width:38px;height:38px;border-radius:50%;border:0;background:#087fab;color:#fff;font-size:1.5rem;cursor:pointer}.lesson-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid #edf2f4}.lesson-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#e7f7fa;color:#0784b1}.delete-x{text-decoration:none;color:#9aaab4;font-size:1.35rem;padding:4px 8px}.no-lessons{padding:10px 0;color:#9aabb5;font-size:.85rem}.add-form{display:none;grid-template-columns:1.5fr 1fr auto;gap:10px;padding:14px;margin-top:10px;background:#edf8fa;border-radius:16px}.adding .add-form{display:grid}.add-form label,.form-grid label,.skill-add label,.student-form-card label{font-size:.8rem;font-weight:800;color:#3b5a6c}.add-form select,.form-grid input,.form-grid select,.student-form-card input,.student-form-card select,.student-form-card textarea,.skill-add input,.skill-add select{width:100%;margin-top:5px;border:1px solid #cbdde5;border-radius:12px;padding:11px;background:#fff;color:var(--text)}.primary-btn{border:0;border-radius:13px;background:linear-gradient(100deg,#078bb8,#056c98);color:#fff;font-weight:800;padding:12px 18px;cursor:pointer;align-self:end;text-decoration:none;display:inline-block;text-align:center}.primary-btn.wide{width:100%;margin-top:14px}.toolbar{display:flex;gap:10px;margin-bottom:12px}.searchbox{flex:1;background:#fff;border:1px solid #dce9ee;border-radius:15px;padding:0 14px;display:flex;align-items:center;box-shadow:var(--shadow)}.searchbox input{border:0;outline:0;width:100%;padding:13px;background:transparent}.round-add{width:48px;height:48px;border:0;border-radius:15px;background:#0787b3;color:#fff;font-size:1.6rem;box-shadow:var(--shadow)}.filter-chips{display:flex;gap:8px;overflow:auto;padding:2px 0 14px}.filter-chips a{white-space:nowrap;text-decoration:none;padding:8px 13px;border-radius:999px;background:#fff;border:1px solid #dfe9ed;font-size:.8rem;font-weight:750}.filter-chips a.active{background:#087fa9;color:#fff;border-color:#087fa9}.student-form-card{display:none}.show-student-form .student-form-card,.student-form-card.force-show{display:block}.close-btn{width:36px;height:36px;border-radius:50%;border:0;background:#eef5f7;color:#496777;font-size:1.3rem}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.student-list{display:grid;gap:11px}.student-card{background:#fff;border-radius:18px;padding:4px 12px;box-shadow:var(--shadow);border:1px solid #e6eff2}.student-avatar{width:48px;height:48px;flex:0 0 auto}.student-avatar.large{width:72px;height:72px;font-size:1.5rem}.student-avatar.small{width:38px;height:38px}.mini-progress,.big-progress{height:7px;border-radius:99px;background:#dfebef;overflow:hidden;margin-top:7px}.mini-progress i,.big-progress i{height:100%;display:block;background:linear-gradient(90deg,#08a8cc,#38c5c4);border-radius:99px}.big-progress{height:10px}.progress-count{font-size:.82rem;font-weight:800;color:#3e6275}.student-actions{display:flex;justify-content:flex-end;gap:15px;padding:7px 4px 9px;border-top:1px solid #edf2f4}.student-actions a{text-decoration:none;font-size:.78rem;color:#0780ac;font-weight:750}.profile-hero{display:flex;align-items:center;gap:16px;background:linear-gradient(120deg,#063653,#07698c);color:#fff;border-radius:24px;padding:20px;margin-bottom:18px;box-shadow:0 18px 45px rgba(8,80,112,.2)}.profile-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.profile-title h1{margin:0;font-size:1.8rem}.profile-hero p{margin:4px 0;color:#cde9ef}.back-link{text-decoration:none;font-size:2rem}.skills-list{margin-top:8px}.skill-row{display:flex;gap:12px;align-items:center;padding:13px 0;border-top:1px solid #edf2f4}.skill-check{width:32px;height:32px;border-radius:8px;border:2px solid #bdd2da;background:#fff;color:#fff;font-weight:900;cursor:pointer;flex:0 0 auto}.skill-row.done .skill-check{background:#36a95b;border-color:#36a95b}.skill-row.done strong{color:#1d3847}.lesson-history div,.manage-skills>div{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #edf2f4}.lesson-history span{color:var(--muted);flex:1}.manage-skills a{margin-left:auto;text-decoration:none;color:#a96363}.skill-dot{width:34px;height:34px;border-radius:10px;display:grid!important;place-items:center;background:#e4f6fa;color:#087fa9;font-size:1.1rem}.count-pill{margin-left:auto}.skill-add{display:grid;grid-template-columns:2fr 1fr .7fr auto;gap:10px;align-items:end}.empty-state{text-align:center;padding:28px;color:var(--muted)}.empty-state>span{font-size:2rem;color:#18a1c5}.empty-state strong{display:block;color:var(--text);margin-top:4px}.bottom-nav{display:none}
/* login */body.login-page{background:#06304c url('assets/login-bg.jpg') center/cover fixed no-repeat;min-height:100svh;color:#fff}body.login-page:before{content:"";position:fixed;inset:0;background:linear-gradient(180deg,rgba(9,107,145,.16),rgba(3,43,68,.48) 52%,rgba(2,27,46,.86));pointer-events:none}.login-main{position:relative;z-index:1;min-height:100svh}.login-shell{min-height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:max(28px,env(safe-area-inset-top)) 18px max(24px,env(safe-area-inset-bottom));gap:24px}.login-branding{text-align:center}.login-logo{width:min(520px,86vw);filter:invert(1) drop-shadow(0 4px 12px rgba(0,0,0,.3))}.login-tagline{font-size:.72rem;letter-spacing:.27em;font-weight:800;margin-top:10px;color:#d9f7fb}.login-tagline b{color:#7ee6f4}.login-card{width:min(540px,94vw);padding:32px;border-radius:22px;background:linear-gradient(180deg,rgba(6,64,94,.72),rgba(3,43,67,.84));border:1px solid rgba(188,234,243,.35);box-shadow:0 25px 70px rgba(0,0,0,.25);backdrop-filter:blur(14px)}.login-card h1{text-align:center;font-size:2.25rem;margin:0}.login-card>p{text-align:center;color:#d8edf2;margin:5px 0 24px}.login-field{height:58px;display:flex;align-items:center;gap:12px;border:1px solid rgba(224,246,250,.32);background:rgba(33,103,132,.42);border-radius:16px;padding:0 15px;margin-bottom:14px}.login-field span{font-size:1.3rem}.login-field input{border:0;outline:0;background:transparent;color:#fff;width:100%;font-size:1rem}.login-field input::placeholder{color:rgba(255,255,255,.58)}.login-button{width:100%;height:60px;border:0;border-radius:17px;background:linear-gradient(100deg,#c5f4fa,#58d8ed);color:#063653;font-size:1.05rem;font-weight:900;display:flex;justify-content:center;align-items:center;gap:18px;cursor:pointer}.login-button b{font-size:1.5rem}.login-motto{display:flex;align-items:center;gap:10px;margin-top:28px;font-size:.63rem;letter-spacing:.22em;color:#c9e4ea;white-space:nowrap}.login-motto i{height:1px;background:rgba(205,234,240,.35);flex:1}.login-error{background:rgba(157,38,38,.55);border:1px solid rgba(255,198,198,.4);padding:10px;border-radius:12px;margin-bottom:12px}.login-footer-words{display:grid;grid-template-columns:repeat(4,1fr);width:min(580px,94vw);text-align:center}.login-footer-words span{font-size:1.35rem;color:#9ee4ef;border-right:1px solid rgba(255,255,255,.18)}.login-footer-words span:last-child{border:0}.login-footer-words b{display:block;color:#fff;font-size:.58rem;letter-spacing:.16em;margin-top:4px}
@media(max-width:780px){.app-header{height:62px;padding:7px 14px}.header-brand img{width:170px}.desktop-nav{display:none}.user-chip{display:none}.app-main{padding:18px 12px 88px}.hero-dashboard{grid-template-columns:1fr;padding:22px;min-height:auto}.hero-photo{min-height:150px}.quick-grid{grid-template-columns:repeat(2,1fr);gap:10px}.quick-card{padding:17px 13px;grid-template-columns:auto 1fr auto}.quick-icon{width:42px;height:42px}.stats-strip{padding:8px}.stats-strip strong{font-size:1.25rem}.stats-strip span{font-size:.68rem}.page-intro h1{font-size:2rem}.add-form,.skill-add{grid-template-columns:1fr}.add-form .primary-btn,.skill-add .primary-btn{width:100%}.form-grid{grid-template-columns:1fr}.bottom-nav{position:fixed;left:0;right:0;bottom:0;height:70px;padding:6px max(6px,env(safe-area-inset-left)) max(7px,env(safe-area-inset-bottom));background:rgba(255,255,255,.95);backdrop-filter:blur(18px);border-top:1px solid #dce8ee;display:grid;grid-template-columns:repeat(5,1fr);z-index:40}.bottom-nav a{text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#708491;font-size:.61rem;font-weight:700;border-radius:12px}.bottom-nav a.active{color:#0785b1;background:#e5f6f9}.nav-icon{font-size:1.28rem;line-height:1}.section-card{padding:17px;border-radius:20px}.community-card{min-height:150px}.community-card h2{font-size:1.65rem}.profile-hero{padding:16px;gap:11px}.student-avatar.large{width:58px;height:58px}.profile-title h1{font-size:1.45rem}.login-shell{justify-content:center;gap:18px}.login-logo{width:min(390px,86vw)}.login-card{padding:27px 20px}.login-card h1{font-size:2rem}.login-motto{font-size:.52rem;letter-spacing:.15em}.login-footer-words{font-size:.55rem}}
@media(min-width:781px){.student-list{grid-template-columns:repeat(2,1fr)}}

.student-filter-row{display:flex;align-items:end;gap:12px;margin:0 0 14px}.student-filter-form{flex:1}.student-filter-form label{display:block;font-size:.75rem;font-weight:800;color:#3b5a6c;margin:0 0 5px 2px}.student-filter-form select{width:100%;border:1px solid #dce9ee;border-radius:15px;padding:12px 42px 12px 14px;background:#fff;color:var(--text);box-shadow:var(--shadow);font-weight:700}.archive-link{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 15px;border-radius:15px;background:#fff;border:1px solid #dce9ee;box-shadow:var(--shadow);text-decoration:none;color:#087fa9;font-weight:800;white-space:nowrap}@media(max-width:640px){.student-filter-row{align-items:stretch}.student-filter-form{min-width:0}.archive-link{padding:0 12px;font-size:.85rem}}
/* v6 skill progress */
.progress-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px;color:var(--muted);font-size:.82rem}.progress-legend span{display:flex;align-items:center;gap:7px}.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.legend-dot.practiced{background:#f0a92e}.legend-dot.approved{background:var(--green)}
.lesson-skill-group{margin-top:18px;border:1px solid #e4eef2;border-radius:20px;overflow:hidden;background:#fbfdfe}.lesson-skill-head{padding:14px 16px;background:linear-gradient(100deg,#eef9fb,#f7fcfd);display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #e4eef2}.lesson-skill-head>div:first-child{display:flex;align-items:center;gap:10px}.lesson-number{background:#087fab;color:#fff;border-radius:999px;padding:6px 10px;font-size:.75rem;font-weight:900}.lesson-progress{display:flex;gap:10px;font-size:.72rem;color:var(--muted)}.lesson-progress b{color:#238447}.skills-list{display:grid;gap:0}.skill-card{padding:15px 16px;border-bottom:1px solid #edf2f4;background:#fff}.skill-card:last-child{border-bottom:0}.skill-card.practiced{background:#fffdf8}.skill-card.approved{background:#f7fcf8}.skill-title{display:flex;align-items:flex-start;gap:10px}.skill-index{width:25px;height:25px;border-radius:8px;background:#e8f5f8;color:#087fab;display:grid;place-items:center;font-size:.72rem;font-weight:900;flex:0 0 auto}.skill-title strong{line-height:1.35}.skill-actions{display:flex;gap:8px;margin:12px 0 0 35px;flex-wrap:wrap}.skill-actions form{margin:0}.status-btn{border:1px solid #d8e5ea;background:#fff;color:#537082;border-radius:999px;padding:8px 12px;font-size:.78rem;font-weight:800;cursor:pointer}.status-btn span{margin-right:4px}.status-btn.practice.active{background:#fff2d8;border-color:#f3c66b;color:#8b5a00}.status-btn.approve.active{background:#def5e5;border-color:#95d4a8;color:#237b42}.skill-history{margin:12px 0 0 35px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.skill-history>div{display:flex;align-items:center;gap:9px;background:#f4f8fa;border-radius:13px;padding:9px}.skill-history small,.skill-history strong,.skill-history span{display:block}.skill-history small{font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:#78909d}.skill-history strong{font-size:.76rem}.skill-history span{font-size:.7rem;color:var(--muted)}.instructor-avatar{width:34px;height:34px;border-radius:50%;overflow:hidden;display:grid;place-items:center;flex:0 0 auto;background:#bdebf3;color:#075778;font-weight:900}.instructor-avatar img,.student-avatar.photo img{width:100%;height:100%;object-fit:cover}.instructor-avatar.initials{font-size:.78rem}.user-manage-list>div{gap:12px}.inline-photo-form{margin-left:auto}.photo-upload-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid #dce9ee;border-radius:11px;padding:7px 10px;color:#087fa9;font-size:.72rem;font-weight:800;cursor:pointer;background:#fff}.photo-upload-btn input{display:none}.student-avatar.photo{overflow:hidden}
@media(max-width:640px){.lesson-skill-head{align-items:flex-start}.lesson-progress{flex-direction:column;gap:2px;text-align:right}.skill-history{grid-template-columns:1fr}.skill-actions,.skill-history{margin-left:0}.skill-card{padding:14px 13px}.status-btn{padding:8px 10px}.inline-photo-form{width:auto}.photo-upload-btn{font-size:.67rem}}
.status-btn:disabled{opacity:.7;cursor:not-allowed}
/* v8 profile + password recovery */
.avatar.has-photo{overflow:hidden;background:#fff}.avatar.has-photo img{width:100%;height:100%;object-fit:cover}.user-profile-hero{align-items:center}.profile-section h2{margin:3px 0}.muted-copy{color:var(--muted);font-size:.88rem}.profile-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;margin-top:14px}.profile-form.password-form{grid-template-columns:repeat(3,minmax(0,1fr)) auto}.profile-form label{font-size:.8rem;font-weight:800;color:#3b5a6c}.profile-form input{width:100%;margin-top:5px;border:1px solid #cbdde5;border-radius:12px;padding:11px;background:#fff;color:var(--text)}.forgot-link,.login-back-link{display:block;text-align:center;color:#bfeef5;margin-top:15px;font-size:.88rem;font-weight:750;text-decoration:none}.forgot-link:hover,.login-back-link:hover{text-decoration:underline}.link-button{text-decoration:none}.reset-card{max-width:540px}.notice{padding:12px 14px;border-radius:14px;margin:0 0 16px;font-weight:700}.notice.success{background:#def5e5;color:#237b42;border:1px solid #b9e3c5}.notice.error{background:#fde7e7;color:#9d3434;border:1px solid #f0c1c1}@media(max-width:780px){.profile-form,.profile-form.password-form{grid-template-columns:1fr}.profile-form .primary-btn{width:100%}.desktop-nav a[href="profile.php"]{display:none}}


/* v9 - uitloggen */
.logout-button{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .75rem;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;text-decoration:none;font-size:.82rem;font-weight:700;border:1px solid rgba(255,255,255,.18);transition:.2s ease}
.logout-button:hover{background:rgba(255,255,255,.2);transform:translateY(-1px)}
.logout-button span{font-size:1rem;line-height:1}
.desktop-logout{margin-left:auto!important;color:#fff!important;background:rgba(255,255,255,.10);border-radius:999px;padding:.45rem .8rem!important}
@media(max-width:760px){.logout-button{padding:.52rem;width:38px;height:38px;justify-content:center}.logout-button b{display:none}.user-chip{display:none}.desktop-logout{display:none!important}}
.user-admin-card{display:flex;align-items:flex-start;gap:14px;width:100%;padding:16px 0;border-bottom:1px solid rgba(40,49,73,.10)}
.user-admin-card:last-child{border-bottom:0}.user-details-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.user-details-form label{font-size:.82rem}.user-details-form .secondary-btn{align-self:end}
@media(max-width:720px){.user-admin-card{flex-wrap:wrap}.user-details-form{grid-template-columns:1fr;width:calc(100% - 58px)}.inline-photo-form{margin-left:58px}}
/* v11 public registration */
.login-public-actions{display:grid;gap:8px;margin-top:12px}.login-public-actions .forgot-link{margin-top:0}.signup-link{display:block;text-align:center;text-decoration:none;color:#fff;border:1px solid rgba(181,218,230,.5);border-radius:13px;padding:11px;background:rgba(255,255,255,.08)}.signup-link strong{color:#9eeaf5}.signup-page{background:linear-gradient(rgba(3,37,60,.7),rgba(3,37,60,.88)),url('assets/login-bg.jpg') center/cover fixed}.signup-page .login-main{max-width:none}.signup-shell{min-height:100vh;padding:28px 16px 60px}.signup-top{max-width:900px;margin:0 auto 16px;display:flex;align-items:center;justify-content:space-between;color:#fff}.signup-top img{width:230px;filter:invert(1)}.signup-top a{color:#d7f3f7;text-decoration:none;font-weight:750}.signup-card{max-width:900px;margin:auto;background:rgba(248,252,253,.97);border-radius:28px;padding:28px;box-shadow:0 25px 80px rgba(0,20,35,.35)}.signup-section{border-top:1px solid #dce8ee;padding:20px 0}.signup-section:first-of-type{border-top:0}.signup-section h2{margin:0 0 14px}.signup-form .form-grid input,.signup-form .form-grid select,.signup-form>section>label input,.signup-form>section>label select{width:100%;margin-top:5px;border:1px solid #cbdde5;border-radius:12px;padding:11px;background:#fff}.course-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.course-option{border:1px solid #dce8ee;border-radius:15px;padding:12px;display:flex;gap:10px;background:#fff;cursor:pointer}.course-option input{margin-top:3px}.course-option span{display:flex;justify-content:space-between;gap:10px;width:100%}.course-option small{color:#0780a8;font-weight:800}.specialty-select{display:block;margin-top:14px;font-size:.8rem;font-weight:800;color:#3b5a6c}.specialty-select select{width:100%;margin-top:5px;border:1px solid #cbdde5;border-radius:12px;padding:11px;background:#fff}.terms-box details{background:#f2f8fa;border-radius:14px;padding:12px;margin-bottom:14px}.terms-box summary{font-weight:800;color:#087fab;cursor:pointer}.terms-copy{font-size:.82rem;color:#526c7b;line-height:1.45}.check-row{display:flex!important;align-items:flex-start;gap:10px;margin:12px 0;font-weight:700}.check-row input{width:auto!important;margin-top:3px!important}.captcha-section .cf-turnstile{margin-top:8px}.hp-field{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important}.signup-submit:disabled{opacity:.5}.signup-success{text-align:center;padding:50px 15px}.signup-success>span{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#def5e5;color:#238447;font-size:2rem;margin:0 auto}.enrollment-tabs{display:flex;gap:8px;margin-bottom:16px}.enrollment-tabs a{text-decoration:none;padding:9px 14px;border-radius:999px;background:#fff;border:1px solid #dce8ee;font-weight:800}.enrollment-tabs a.active{background:#087fab;color:#fff}.enrollment-list{display:grid;gap:14px}.enrollment-head{display:flex;justify-content:space-between;gap:16px}.enrollment-head h2{margin:8px 0 3px}.enrollment-head p{margin:0;color:var(--muted)}.enrollment-date{font-size:.78rem;color:var(--muted)}.enrollment-data,.student-data-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}.enrollment-data>div,.student-data-grid>div{background:#f5f9fa;border-radius:13px;padding:11px}.enrollment-data small,.student-data-grid small{display:block;color:#6c8192;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}.enrollment-data strong,.student-data-grid strong{display:block;margin-top:3px;font-size:.87rem}.accept-form{margin-top:18px;text-align:right}.accepted-info{margin-top:16px;padding:10px 12px;background:#edf8f1;border-radius:12px;color:#327649;font-size:.83rem}.student-data-card .section-head a{color:#0786b4;text-decoration:none;font-weight:700}
@media(max-width:700px){.signup-card{padding:19px 15px;border-radius:22px}.signup-top img{width:180px}.signup-top{align-items:flex-start}.course-options{grid-template-columns:1fr}.course-option span{flex-direction:column;gap:2px}.enrollment-data,.student-data-grid{grid-template-columns:1fr 1fr}.enrollment-head{flex-direction:column}.enrollment-date{order:-1}.accept-form .primary-btn{width:100%}}

/* v13 - richer public registration */
.detailed-courses{grid-template-columns:1fr}.detailed-course{padding:15px;align-items:flex-start}.detailed-course .course-copy{display:block!important}.course-title-row{display:flex!important;justify-content:space-between;gap:12px;align-items:center}.detailed-course em{display:block;font-style:normal;color:#526c7b;font-size:.82rem;line-height:1.4;margin-top:5px}.detailed-course b{display:block;color:#29445a;font-size:.76rem;margin-top:5px}.advanced-extra,.specialty-group{display:none;margin:-2px 0 8px 34px;padding:12px 14px;border-left:3px solid #15a6c8;background:#eef9fb;border-radius:0 12px 12px 0}.advanced-extra.visible,.specialty-group.visible{display:block}.compact-check{margin:0!important}.compact-check span{display:flex;flex-direction:column}.compact-check small{color:#607888;font-weight:500}.specialty-label{font-weight:800;font-size:.8rem;margin-bottom:8px}.specialty-pills{display:flex;flex-wrap:wrap;gap:7px}.specialty-pills label input{position:absolute;opacity:0;pointer-events:none}.specialty-pills label span{display:block;padding:8px 11px;border:1px solid #c8dce5;border-radius:999px;background:#fff;font-size:.78rem;font-weight:700;cursor:pointer}.specialty-pills label input:checked+span{background:#087fab;color:#fff;border-color:#087fab}.suit-notice{background:#fff8e8;border:1px solid #f2d795;border-radius:14px;padding:13px 14px;margin-bottom:14px}.suit-notice strong{color:#7e5a0b}.suit-notice p{margin:5px 0 0;font-size:.82rem;line-height:1.45;color:#62553a}.terms-copy ul{padding-left:19px;margin:8px 0}.terms-copy li{margin:0 0 8px}.course-intro{margin-top:-6px}.signup-section>h2{color:#1d3850}

/* v14 Advanced Open Water */
.adventure-choice-box,.advanced-student-fields{margin:14px 0;padding:16px;border-radius:18px;background:#f5fbfd;border:1px solid #d9edf3}.fixed-dives{margin:10px 0}.fixed-pill,.adventure-chip{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;background:#dbedf3;color:#283149;font-size:.88rem;font-weight:700;margin:4px}.fixed-pill,.adventure-chip.required{background:#b5dae6}.adventure-picks{display:flex;flex-wrap:wrap;gap:6px}.adventure-picks label input{position:absolute;opacity:0}.adventure-picks label span{display:block;padding:9px 12px;border:1px solid #c8dce5;border-radius:999px;background:#fff;cursor:pointer}.adventure-picks label input:checked+span{background:#0b7fa8;color:#fff;border-color:#0b7fa8}.adventure-picks label input:disabled+span{opacity:.45;cursor:not-allowed}.adventure-summary{display:flex;flex-wrap:wrap;gap:4px}.advanced-student-fields{grid-column:1/-1}


/* v18 - mobiele header en werkend Meer-menu */
.bottom-more{border:0;background:transparent;font:inherit;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#708491;font-size:.61rem;font-weight:700;border-radius:12px;cursor:pointer;padding:0}
.bottom-more.active{color:#0785b1;background:#e5f6f9}
.more-menu-backdrop{position:fixed;inset:0;background:rgba(8,26,40,.38);opacity:0;transition:opacity .2s ease;z-index:70;backdrop-filter:blur(2px)}
.more-menu-backdrop.open{opacity:1}
.more-menu-sheet{position:fixed;left:10px;right:10px;bottom:calc(78px + env(safe-area-inset-bottom));z-index:71;background:#fff;border-radius:24px;padding:8px 16px 16px;box-shadow:0 24px 70px rgba(3,39,61,.28);transform:translateY(calc(100% + 110px));opacity:0;transition:transform .24s ease,opacity .2s ease;pointer-events:none;max-width:560px;margin:0 auto}
.more-menu-sheet.open{transform:translateY(0);opacity:1;pointer-events:auto}
.more-menu-handle{width:42px;height:4px;border-radius:99px;background:#cbdce3;margin:3px auto 12px}
.more-menu-profile{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:11px;padding:8px 2px 14px;border-bottom:1px solid #e7eef1}
.more-profile-avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;overflow:hidden;text-decoration:none;background:linear-gradient(145deg,#bfeef5,#52c4df);color:#063e5d;font-weight:900}
.more-profile-avatar img{width:100%;height:100%;object-fit:cover}
.more-menu-profile strong,.more-menu-profile span{display:block}.more-menu-profile span{font-size:.75rem;color:var(--muted);margin-top:2px}.more-profile-link{color:#0785b1;text-decoration:none;font-weight:800;font-size:.82rem}
.more-menu-links{display:grid;padding-top:8px}.more-menu-links a{display:grid;grid-template-columns:34px 1fr auto;gap:8px;align-items:center;padding:12px 7px;border-radius:13px;text-decoration:none;color:var(--text)}.more-menu-links a:hover{background:#edf8fa}.more-menu-links a>span{width:30px;height:30px;border-radius:10px;background:#e7f6fa;color:#0785b1;display:grid;place-items:center;font-weight:900}.more-menu-links a b{font-size:.92rem}.more-menu-links a i{font-style:normal;color:#8aa0ac;font-size:1.3rem}.more-menu-links .more-logout{color:#a33b3b}.more-menu-links .more-logout>span{background:#fdecec;color:#a33b3b}
body.menu-open{overflow:hidden}

@media(max-width:780px){
  .app-header{height:calc(62px + env(safe-area-inset-top));padding:calc(7px + env(safe-area-inset-top)) 14px 7px;top:0;align-items:center}
  .header-brand{display:flex;align-items:center;min-width:0;max-width:calc(100% - 64px)}
  .header-brand img{width:min(170px,48vw);max-height:44px;object-position:left center}
  .header-actions{gap:0;position:relative;z-index:25}
  .header-actions .logout-button{display:none!important}
  .avatar{width:46px;height:46px;min-width:46px;position:relative;z-index:30;border-width:2px;box-shadow:0 2px 12px rgba(0,0,0,.18)}
  .bottom-nav{grid-template-columns:repeat(auto-fit,minmax(60px,1fr));height:calc(70px + env(safe-area-inset-bottom));padding-bottom:max(7px,env(safe-area-inset-bottom))}
}
@media(min-width:781px){.more-menu-sheet,.more-menu-backdrop{display:none!important}.bottom-more{display:none}}

/* v20 planning views */
.planning-view-toggle{display:inline-flex;gap:4px;padding:4px;background:#dfeef3;border-radius:14px;margin:0 0 14px}.planning-view-toggle a{padding:9px 17px;border-radius:10px;text-decoration:none;font-weight:800;font-size:.86rem;color:#557180}.planning-view-toggle a.active{background:#fff;color:#087fa9;box-shadow:0 4px 14px rgba(20,75,99,.10)}.planning-range-switcher .today-link,.month-switcher .today-link{font-size:.72rem;color:#087fa9;text-decoration:none;font-weight:800;margin-top:3px}.calendar-help{font-size:.82rem;color:var(--muted);margin:-4px 0 12px}.month-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.calendar-weekday{text-align:center;font-size:.7rem;font-weight:900;color:#6a8392;padding:5px 0;text-transform:uppercase;letter-spacing:.08em}.calendar-day{min-height:120px;background:#fff;border:1px solid #e1edf1;border-radius:15px;padding:9px;text-decoration:none;position:relative;overflow:hidden;box-shadow:0 5px 18px rgba(27,67,91,.07)}.calendar-day.outside-month{opacity:.36}.calendar-day.today{border:2px solid #48c5de;background:#f4fcfe}.calendar-date{font-weight:900;font-size:.92rem;color:#23475c}.calendar-day.today .calendar-date{color:#0584b3}.calendar-count{position:absolute;right:8px;top:8px;background:#087fa9;color:#fff;border-radius:999px;min-width:20px;height:20px;padding:0 6px;display:grid;place-items:center;font-size:.65rem;font-weight:900}.calendar-events{display:grid;gap:4px;margin-top:8px}.calendar-events span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#edf8fb;border-radius:7px;padding:4px 5px;font-size:.62rem;color:#476575}.calendar-events b{color:#067da9}.calendar-events .more-events{background:transparent;color:#087fa9;font-weight:800;padding-left:2px}
@media(max-width:700px){.month-calendar{gap:3px}.calendar-weekday{font-size:.6rem}.calendar-day{min-height:78px;border-radius:9px;padding:5px}.calendar-date{font-size:.75rem}.calendar-count{right:4px;top:4px;min-width:16px;height:16px;padding:0 4px;font-size:.54rem}.calendar-events{margin-top:5px;gap:2px}.calendar-events span{font-size:.48rem;padding:2px 3px}.calendar-events span b{display:block}.calendar-events span:not(:first-child){display:none}.calendar-events .more-events{display:block!important;font-size:.48rem}.planning-view-toggle{display:flex;width:100%}.planning-view-toggle a{flex:1;text-align:center}.week-switcher{margin-bottom:12px}}

/* v21 - compacter mobiel dashboard */
.stats-strip-compact{grid-template-columns:repeat(3,minmax(0,1fr))}
.quick-card,.quick-card strong,.quick-card small{min-width:0}
.quick-card strong,.quick-card small{overflow-wrap:anywhere}
@media(max-width:520px){
  .app-main{overflow-x:hidden}
  .quick-grid{grid-template-columns:1fr;gap:10px}
  .quick-card{width:100%;grid-template-columns:46px minmax(0,1fr) 20px;padding:15px 14px}
  .quick-card strong{font-size:1rem}
  .quick-card small{font-size:.82rem;line-height:1.3}
  .stats-strip-compact{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:6px}
  .stats-strip-compact div{padding:10px 5px}
  .stats-strip-compact strong{font-size:1.35rem}
  .stats-strip-compact span{font-size:.68rem;line-height:1.15;display:block;overflow-wrap:anywhere}
  .section-head{align-items:flex-start}
  .section-head a{max-width:42%;text-align:right;white-space:normal}
}


/* v22 - vernieuwd publiek inschrijfformulier */
.signup-page{background:linear-gradient(180deg,#eaf7fa 0%,#f7fbfc 45%,#edf7f9 100%)}
.signup-shell{max-width:980px;margin:0 auto;padding:24px 18px 70px}
.signup-top{margin-bottom:18px}
.signup-card{background:rgba(255,255,255,.96);border:1px solid rgba(181,218,230,.72);box-shadow:0 28px 80px rgba(20,65,88,.14);overflow:hidden}
.signup-hero-copy{margin:-2px -2px 24px;padding:28px 28px 24px;border-radius:22px;background:linear-gradient(135deg,#eef9fb 0%,#fff 62%);border:1px solid #d7edf2;position:relative;overflow:hidden}
.signup-hero-copy:after{content:"";position:absolute;width:210px;height:210px;border-radius:50%;right:-90px;top:-105px;background:radial-gradient(circle,rgba(73,196,220,.25),rgba(73,196,220,0) 70%)}
.signup-hero-copy h1{font-size:clamp(2rem,5vw,3.05rem);line-height:1.03;margin:6px 0 9px;color:#102f45;letter-spacing:-.035em}
.signup-hero-copy p{max-width:660px;color:#5d7584;font-size:1rem;line-height:1.55;margin:0}
.signup-benefits{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.signup-benefits span{font-size:.76rem;font-weight:800;color:#176887;background:#fff;border:1px solid #d8ebf1;border-radius:999px;padding:7px 10px;box-shadow:0 4px 12px rgba(25,84,107,.06)}
.signup-section{background:#fff;border:1px solid #e2edf1;border-radius:20px;padding:20px;margin-bottom:16px}
.signup-section>h2{margin-top:0;font-size:1.12rem;display:flex;align-items:center;gap:9px}
.signup-section>h2:before{content:"";width:7px;height:24px;border-radius:999px;background:linear-gradient(180deg,#35c3dd,#087fa9)}
.detailed-courses{gap:10px}
.detailed-course{position:relative;display:grid!important;grid-template-columns:44px minmax(0,1fr) 24px;gap:13px;align-items:center!important;border:1.5px solid #dcebf0;background:linear-gradient(135deg,#fff,#f8fcfd);border-radius:18px;padding:15px 16px!important;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease,background .18s ease;cursor:pointer}
.detailed-course:hover{border-color:#9fd9e7;box-shadow:0 10px 25px rgba(14,92,122,.09);transform:translateY(-1px)}
.detailed-course>input[type=radio]{position:absolute;opacity:0;pointer-events:none}
.course-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#dff5f9,#b9e8f1);color:#087da7;font-size:1.15rem;font-weight:900}
.course-check{width:24px;height:24px;border-radius:50%;border:2px solid #cbdde4;color:transparent;display:grid;place-items:center;font-size:.7rem;font-weight:900;transition:.18s}
.detailed-course:has(input:checked){border-color:#1aa8cb;background:linear-gradient(135deg,#f4fcfe,#e9f8fb);box-shadow:0 10px 28px rgba(10,132,174,.12)}
.detailed-course:has(input:checked) .course-mark{background:linear-gradient(145deg,#0b86b1,#3ec6df);color:#fff}
.detailed-course:has(input:checked) .course-check{background:#0785b1;border-color:#0785b1;color:#fff}
.course-title-row{align-items:flex-start!important}
.course-title-row strong{font-size:.97rem;color:#15354b}
.course-price{background:#e3f6fa;color:#087fa9;border-radius:999px;padding:5px 9px;font-size:.72rem!important;font-weight:900;white-space:nowrap}
.detailed-course em{font-size:.81rem!important;color:#5b7482!important;margin-top:5px!important}
.detailed-course b{font-size:.76rem!important;color:#254d63!important;background:#f1f8fa;border-radius:8px;padding:6px 8px;margin-top:8px!important;line-height:1.35}
.signup-form input,.signup-form select{border:1px solid #cfdee5;background:#fbfdfe;border-radius:12px;min-height:46px;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.signup-form input:focus,.signup-form select:focus{outline:none;border-color:#2db6d2;background:#fff;box-shadow:0 0 0 4px rgba(45,182,210,.12)}
.signup-submit{min-height:52px;border-radius:14px;font-size:1rem;box-shadow:0 12px 26px rgba(8,127,169,.2)}
@media(max-width:700px){.signup-shell{padding:14px 10px 55px}.signup-card{padding:12px!important}.signup-hero-copy{padding:22px 17px 20px;margin:0 0 14px}.signup-hero-copy h1{font-size:2rem}.signup-section{padding:16px 13px;border-radius:17px}.detailed-course{grid-template-columns:38px minmax(0,1fr) 22px;padding:13px!important;gap:10px}.course-mark{width:38px;height:38px;border-radius:12px}.course-title-row{gap:7px}.course-title-row strong{font-size:.9rem}.course-price{font-size:.65rem!important;padding:4px 7px}.detailed-course em{font-size:.76rem!important}.detailed-course b{font-size:.71rem!important}.advanced-extra,.specialty-group{margin-left:8px;margin-right:0}.signup-benefits{gap:6px}.signup-benefits span{font-size:.68rem}.form-grid{grid-template-columns:1fr}.signup-form label{min-width:0}}
/* v23 - course-specific equipment sizing + branded course icon */
.course-mark.logo-mark{overflow:hidden;background:linear-gradient(145deg,#f5fcfd,#dff5f9);padding:5px}
.course-mark.logo-mark img{display:block;width:100%;height:100%;object-fit:contain}
.detailed-course:has(input:checked) .course-mark.logo-mark{background:linear-gradient(145deg,#dff7fb,#b9eaf3)}
.course-size-fields{display:none;margin:-5px 0 8px 57px;padding:12px 14px 14px;border:1px solid #cfe7ee;border-top:0;border-radius:0 0 16px 16px;background:#f5fbfd}
.course-size-fields.visible{display:block}
.course-size-title{display:flex;align-items:baseline;gap:8px;margin-bottom:9px;color:#17374d}.course-size-title strong{font-size:.84rem}.course-size-title span{font-size:.7rem;color:#6a8190}
.course-size-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.course-size-grid label{font-size:.72rem;font-weight:700;color:#39566a}.course-size-grid select{margin-top:5px;width:100%}
.suit-notice#owd-suit-notice{display:none}.suit-notice#owd-suit-notice.visible{display:block}
@media(max-width:700px){.course-size-fields{margin:-4px 0 8px 48px;padding:10px 11px 12px}.course-size-grid{grid-template-columns:1fr 1fr;gap:8px}.course-size-title{display:block}.course-size-title span{display:block;margin-top:2px}}

/* v26 - compacte vaardighedenlijst op telefoon */
@media(max-width:640px){
  .skill-overview-card{padding-left:14px;padding-right:14px}
  .lesson-skill-group{margin-top:12px;border-radius:16px}
  .lesson-skill-head{padding:10px 11px;align-items:center}
  .lesson-number{padding:5px 9px}
  .lesson-progress{font-size:.66rem}
  .skill-card{
    padding:10px 10px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:7px 8px;
    align-items:center
  }
  .skill-title{gap:8px;align-items:center;min-width:0}
  .skill-index{width:23px;height:23px;border-radius:7px;font-size:.68rem}
  .skill-title strong{font-size:.84rem;line-height:1.2}
  .skill-actions{margin:0;gap:5px;flex-wrap:nowrap}
  .status-btn{
    width:34px;height:34px;padding:0;border-radius:10px;
    font-size:0;display:grid;place-items:center
  }
  .status-btn span{margin:0;font-size:1rem;line-height:1}
  .skill-history{
    grid-column:1/-1;margin:0 0 0 31px;display:flex;gap:10px;
    font-size:.65rem;color:var(--muted)
  }
  .skill-history>div{background:transparent;padding:0;gap:4px;border-radius:0}
  .skill-history .instructor-avatar{display:none}
  .skill-history small{display:none}
  .skill-history strong,.skill-history span{display:inline;font-size:.65rem;font-weight:600}
  .skill-history strong:after{content:" · "}
}

/* v27 - vernieuwde home hero en opgeschoonde login */
.hero-dashboard{grid-template-columns:minmax(0,.92fr) minmax(0,1.28fr);align-items:stretch;padding:26px 28px;min-height:245px}
.hero-copy{padding:8px 4px 8px 0}
.hero-copy h1{font-size:clamp(2.35rem,5vw,3.65rem);line-height:1.03;margin:20px 0 12px}
.hero-copy p{font-size:1.08rem}
.hero-photo{padding:0;min-height:190px;background:url('assets/login-bg.jpg') center 58%/cover no-repeat;box-shadow:inset 0 0 0 1px rgba(255,255,255,.17),0 10px 30px rgba(0,36,58,.12)}
.login-branding{margin-bottom:0}
.login-motto{justify-content:center}
@media(max-width:780px){
 .hero-dashboard{grid-template-columns:1fr;padding:22px;gap:18px}
 .hero-copy{padding:0}
 .hero-copy h1{font-size:2.35rem;margin:12px 0 8px}
 .hero-photo{min-height:165px}
}
/* v28 security & archive privacy */
.logout-form,.desktop-logout-form,.more-logout-form,.student-actions form{margin:0}
.logout-button,.desktop-logout,.more-logout{font:inherit}
.more-logout-form button.more-logout{width:100%;border:0;background:transparent;text-align:left;cursor:pointer}
.archive-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.link-action{border:0;background:transparent;color:#0785b1;font-weight:800;cursor:pointer;padding:6px 0}
.delete-details{margin-left:auto}
.delete-details summary{cursor:pointer;color:#a83232;font-weight:800;font-size:.88rem}
.delete-details form{margin-top:10px;padding:12px;border:1px solid #f0cccc;border-radius:12px;background:#fff7f7;display:flex;gap:8px;align-items:end;flex-wrap:wrap}
.delete-details label{font-size:.76rem;color:#7c3030;display:grid;gap:4px}
.delete-details input{min-width:150px;border:1px solid #dfb6b6;border-radius:9px;padding:8px}
.danger-btn{border:0;border-radius:10px;background:#a83232;color:#fff;font-weight:850;padding:9px 13px;cursor:pointer}
.security-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px}
.security-check{display:flex;gap:13px;align-items:flex-start;padding:18px;border-radius:18px;background:#fff;border:1px solid #dfe9ee;box-shadow:0 8px 24px rgba(5,53,78,.05)}
.security-check>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:900;flex:0 0 auto}
.security-check.ok>span{background:#dff5e7;color:#1b8145}.security-check.warn>span{background:#fff0d9;color:#a26408}
.security-check strong{display:block;color:#0d2940;margin-bottom:4px}.security-check p{margin:0;color:#718795;font-size:.86rem;line-height:1.4}
@media(max-width:700px){.security-grid{grid-template-columns:1fr}.delete-details{margin-left:0;width:100%}.delete-details form{align-items:stretch}.delete-details input,.danger-btn{width:100%}}

/* v29 - duidelijkere dashboardiconen, status in header, desktop logout fix */
.quick-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.header-stats{display:flex;align-items:center;gap:8px;margin-left:auto;margin-right:14px}
.header-stats a{min-width:76px;padding:7px 10px;border-radius:14px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.14);text-decoration:none;color:#fff;text-align:center;line-height:1.05}
.header-stats strong{display:block;font-size:1.05rem}
.header-stats span{display:block;margin-top:3px;font-size:.61rem;opacity:.82}
.header-stats a:hover{background:rgba(255,255,255,.17)}
.desktop-logout-form{display:none!important}
@media(max-width:900px){
 .header-stats{gap:5px;margin-right:8px}
 .header-stats a{min-width:55px;padding:6px 7px}
 .header-stats span{font-size:.55rem}
}
@media(max-width:700px){
 .app-header{height:auto;min-height:72px;flex-wrap:wrap;row-gap:7px;padding-bottom:8px}
 .header-brand{order:1}.header-actions{order:2}.header-stats{order:3;width:100%;margin:0;justify-content:center}
 .header-stats a{flex:1;max-width:120px;min-width:0;padding:5px 6px;border-radius:10px}
 .header-stats strong{font-size:.9rem}.header-stats span{font-size:.52rem}
 .desktop-nav{top:112px}
}\n
/* v30 - consistente lijniconen op dashboard en mobiele navigatie */
.quick-icon svg,
.bottom-nav .nav-icon svg{
  width:25px;
  height:25px;
  display:block;
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.bottom-nav .nav-icon{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  margin:0 auto 2px;
  font-size:0;
}
.bottom-nav .nav-icon svg{width:23px;height:23px}
.bottom-nav a.active .nav-icon svg,
.bottom-nav button.active .nav-icon svg{stroke:currentColor !important}

/* v31 - consistente lijniconen in Meer-menu */
.more-menu-links a,
.more-menu-links .more-logout{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
}
.more-menu-links .more-icon{
  width:42px;
  height:42px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:#e7f7fb;
  color:#0785b1;
}
.more-menu-links .more-icon svg{
  width:22px;
  height:22px;
  display:block;
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.more-menu-links .more-logout{color:#a83232}
.more-menu-links .more-logout .more-icon{
  background:#fff0f0;
  color:#a83232;
}

/* v32 - statusoverzicht vast op iedere ingelogde pagina */
.header-stats .header-stat-static{
  min-width:76px;
  padding:7px 10px;
  border-radius:14px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.14);
  color:#fff;
  text-align:center;
  line-height:1.05;
}
.header-stats .header-stat-static strong{display:block;font-size:1.05rem}
.header-stats .header-stat-static>span{display:block;margin-top:3px;font-size:.61rem;opacity:.82}
@media(max-width:900px){
  .header-stats .header-stat-static{min-width:55px;padding:6px 7px}
  .header-stats .header-stat-static>span{font-size:.55rem}
}
@media(max-width:700px){
  .header-stats .header-stat-static{flex:1;max-width:120px;min-width:0;padding:5px 6px;border-radius:10px}
  .header-stats .header-stat-static strong{font-size:.9rem}
  .header-stats .header-stat-static>span{font-size:.52rem}
}

/* v33 - PADI Specialty vaardigheden */
.optional-skill-badge{display:inline-block;margin-left:7px;padding:2px 7px;border-radius:999px;background:#eef5f8;color:#6b8190;font-size:.62rem;font-style:normal;font-weight:800;vertical-align:middle}
.legend-dot.optional{background:#9bb0bb}
.skill-optional-check{display:flex!important;align-items:center;justify-content:center;gap:8px;min-width:90px}
.skill-optional-check input{width:18px;height:18px;min-height:0}
@media(max-width:640px){.optional-skill-badge{display:block;width:max-content;margin:4px 0 0;font-size:.55rem}.lesson-skill-head strong{font-size:.78rem}.skill-optional-check{justify-content:flex-start}}

/* v34 - groepsplanning met tijd, cursisten en instructeurs */
.event-add-form{grid-template-columns:150px minmax(240px,1.35fr) minmax(190px,.9fr) minmax(220px,1fr) auto;align-items:end}
.event-add-form input[type=time],.event-add-form select{width:100%;margin-top:5px;border:1px solid #cbdde5;border-radius:12px;padding:11px;background:#fff;color:var(--text);min-height:44px}
.multi-picker{border:0;padding:0;margin:0;min-width:0}
.multi-picker legend{font-size:.8rem;font-weight:800;color:#3b5a6c;margin-bottom:5px}
.picker-list{background:#fff;border:1px solid #cbdde5;border-radius:12px;padding:6px;max-height:180px;overflow:auto;display:grid;gap:3px}
.picker-list.compact{max-height:180px}
.picker-option{display:flex!important;align-items:center;gap:8px;padding:7px 8px;border-radius:9px;cursor:pointer;font-size:.8rem!important;font-weight:700!important;color:#26495d!important}
.picker-option:hover{background:#eff9fb}.picker-option:has(input:checked){background:#e2f6fa;color:#087fa9!important}
.picker-option input{width:18px!important;height:18px;margin:0!important;accent-color:#0785b1;flex:0 0 auto}
.picker-option span{display:grid;min-width:0}.picker-option b{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.picker-option small{font-size:.63rem;color:#718895;font-weight:600}
.event-row{align-items:flex-start}.lesson-time{min-width:54px;padding:6px 8px;border-radius:9px;background:#e6f6fa;color:#087fa9;font-weight:900;font-size:.78rem;text-align:center}
.event-row .grow{display:grid;gap:2px}.event-row .grow>span{font-size:.78rem;color:#56717f}.event-row .grow>small{font-size:.68rem;color:#8498a4}.student-count{font-size:.69rem;font-weight:850;color:#557180;background:#f0f6f8;border-radius:999px;padding:5px 8px;white-space:nowrap}
.event-row form{margin:0}.event-row .delete-x{border:0;background:transparent;cursor:pointer}
.lesson-history small{color:#7b919d;font-size:.7rem;margin-left:auto}
@media(max-width:1100px){.event-add-form{grid-template-columns:130px 1fr 1fr}.event-add-form .instructors-picker{grid-column:1/3}.event-add-form .primary-btn{grid-column:3}}
@media(max-width:780px){.event-add-form{grid-template-columns:1fr}.event-add-form .instructors-picker,.event-add-form .primary-btn{grid-column:auto}.picker-list{max-height:155px}.event-row{gap:8px}.student-count{display:none}.lesson-time{min-width:49px;padding:5px 6px}.event-row .grow>span{line-height:1.25}}

/* v35 - duiklocatie per afspraak */
.event-location{display:block;color:#087da7;font-weight:750;margin:2px 0 1px}
.event-add-form input[name="location"]{width:100%}
.month-calendar .calendar-events span{line-height:1.25}

/* v36 - compacte keuzemenu's voor groepsplanning */
.event-add-form{grid-template-columns:130px minmax(200px,1fr) minmax(220px,1.15fr) minmax(220px,1.15fr) minmax(200px,1fr);gap:14px;align-items:end}
.event-add-form .primary-btn{grid-column:1/-1;justify-self:start}.smart-picker{position:relative;min-width:0}.smart-label{display:block;font-size:.8rem;font-weight:800;color:#3b5a6c;margin-bottom:5px}.smart-trigger{width:100%;min-height:48px;border:1px solid #cbdde5;border-radius:12px;background:#fff;color:#26495d;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;font:inherit;font-weight:750;cursor:pointer}.smart-trigger:hover,.smart-picker.open .smart-trigger{border-color:#78bdd4;box-shadow:0 0 0 3px rgba(7,133,177,.08)}.smart-trigger .smart-summary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.smart-trigger>b{font-size:1.05rem;transition:transform .18s}.smart-picker.open .smart-trigger>b{transform:rotate(180deg)}.smart-panel{display:none;position:absolute;z-index:40;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1px solid #cbdde5;border-radius:14px;box-shadow:0 14px 35px rgba(22,27,40,.16);padding:7px}.smart-picker.open .smart-panel{display:block}.smart-panel .picker-list{border:0;border-radius:9px;max-height:260px;padding:2px;background:#fff}.picker-empty{padding:12px;color:#78909c;font-size:.78rem}.event-add-form select[name="lesson_time"]{appearance:auto}
@media(max-width:1100px){.event-add-form{grid-template-columns:1fr 1fr 1fr}.event-add-form .primary-btn{grid-column:1/-1}.smart-panel{z-index:50}}@media(max-width:780px){.event-add-form{grid-template-columns:1fr}.event-add-form .primary-btn{grid-column:auto}.smart-panel{position:static;margin-top:6px}.smart-trigger{min-height:46px}}

/* v37 - status ingepland / uitgevoerd */
.event-title-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.event-status{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:4px 8px;font-style:normal;font-size:.68rem;font-weight:850;white-space:nowrap}
.event-status.planned{background:#e7f5fb;color:#087fa9}
.event-status.completed{background:#dcf5e4;color:#238447}
.event-completed{background:linear-gradient(90deg,rgba(220,245,228,.34),transparent)}
.event-status-btn{width:31px;height:31px;border:1px solid #bcdde7;background:#eef9fc;color:#087fa9;border-radius:9px;font-weight:900;cursor:pointer}
.event-status-btn.done{background:#e4f6e9;border-color:#bce4c8;color:#238447}
.picker-option.already-scheduled{opacity:.72;background:#f4f8fa}
.picker-option.already-scheduled b{color:#477080}
.picker-option.already-scheduled small{color:#238447;font-weight:800}
.picker-option input:disabled{cursor:not-allowed}
.calendar-event-done{opacity:.72;text-decoration:none}
.calendar-event-done b{color:#238447}
.calendar-event-planned b:before{color:#087fa9}
.detailed-lesson-history .student-lesson-row{display:grid;grid-template-columns:minmax(125px,.8fr) minmax(170px,1.4fr) auto minmax(100px,.8fr);gap:10px;align-items:center}
.detailed-lesson-history .student-lesson-row>span{flex:none}
.detailed-lesson-history .student-lesson-row>small{margin-left:0}
.detailed-lesson-history .lesson-location{color:#56717f}
@media(max-width:700px){
 .event-title-line{gap:5px}.event-status{font-size:.61rem;padding:3px 6px}
 .event-status-btn{width:29px;height:29px}
 .detailed-lesson-history .student-lesson-row{grid-template-columns:1fr auto;gap:4px 8px;padding:11px 0}
 .detailed-lesson-history .student-lesson-row>strong{grid-column:1/2}
 .detailed-lesson-history .student-lesson-row>.event-status{grid-column:2/3;grid-row:1/3;align-self:center}
 .detailed-lesson-history .student-lesson-row>small{grid-column:1/-1}
}

/* v39 - inklapbare vaardigheidsgroepen + verplichte-duikenvoortgang */
.skill-group-toggle{width:100%;border:0;font:inherit;color:inherit;cursor:pointer;text-align:left}
.skill-group-main{display:flex;align-items:center;gap:14px;min-width:0}
.skill-group-copy{display:grid;gap:7px;min-width:0}
.skill-group-mini-progress{display:block;width:min(220px,28vw);height:5px;background:#dcecf1;border-radius:999px;overflow:hidden}
.skill-group-mini-progress i{display:block;height:100%;background:#0c8bb5;border-radius:999px}
.group-complete .skill-group-mini-progress i{background:#23915a}
.lesson-progress{display:flex;align-items:center;gap:10px}
.group-chevron{font-style:normal;font-size:1.25rem;transition:transform .18s ease;color:#66808f}
.skill-group-toggle[aria-expanded="true"] .group-chevron{transform:rotate(180deg)}
.skill-group-content[hidden]{display:none!important}
.required-dives-progress{margin-top:18px;padding-top:18px;border-top:1px solid #e1ebef}
.required-dives-head{display:flex;justify-content:space-between;gap:14px;align-items:end;margin-bottom:9px}
.required-dives-head>div{display:grid;gap:2px}.required-dives-head strong{color:#102e45}.required-dives-head span{font-size:.78rem;color:#708796}.required-dives-head>b{color:#087fa9}
.required-dives-bar{height:7px;border-radius:999px;background:#e3eef2;overflow:hidden;margin-bottom:12px}.required-dives-bar i{display:block;height:100%;background:#279661;border-radius:999px}
.required-dive-chips{display:flex;flex-wrap:wrap;gap:8px}
.dive-status-chip{display:grid;grid-template-columns:auto 1fr;column-gap:7px;align-items:center;padding:8px 10px;border:1px solid #d8e6eb;border-radius:12px;background:#f8fbfc;color:#526c7c;font-size:.78rem;font-weight:800}
.dive-status-chip i{grid-row:1/3;font-style:normal;font-size:1rem}.dive-status-chip small{font-size:.62rem;font-weight:700;color:#8195a1}
.dive-status-chip.planned{background:#eef9fc;border-color:#bfe8f2;color:#087fa9}.dive-status-chip.planned small{color:#438aa4}
.dive-status-chip.completed{background:#edf9f1;border-color:#bde8cb;color:#23824c}.dive-status-chip.completed small{color:#52936a}
@media(max-width:700px){
 .skill-group-main{gap:8px}.skill-group-copy strong{font-size:.8rem}.skill-group-mini-progress{width:120px}.lesson-progress{gap:5px}.lesson-progress span{display:none}.lesson-progress b{font-size:.64rem}.group-chevron{font-size:1rem}
 .required-dives-head{align-items:start}.required-dives-head span{font-size:.68rem}.required-dive-chips{display:grid;grid-template-columns:1fr 1fr}.dive-status-chip{font-size:.7rem;padding:7px 8px}.dive-status-chip small{font-size:.58rem}
}

/* v40 - voortgangsbalk voor alle opleidingen */
.course-progress-note{margin-top:16px;padding:14px 16px;border:1px solid #d7e8ee;border-radius:14px;background:#f5fbfd;display:grid;gap:4px}
.course-progress-note strong{color:#12314a;font-size:.88rem}
.course-progress-note span{color:#6d8493;font-size:.79rem;line-height:1.4}

/* v43 - ouder/voogd bij minderjarige inschrijving */
.guardian-email-field{display:none}.guardian-email-field.visible{display:block}.guardian-email-field small,.guardian-admin-field small{display:block;margin-top:5px;color:var(--muted);font-weight:500;font-size:.72rem}

/* v44 - declaraties */
.declaration-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}.declaration-form label{display:grid;gap:6px;font-size:.8rem;font-weight:800;color:#365568}.declaration-form input,.declaration-form textarea{width:100%;border:1px solid #cbdde5;border-radius:12px;padding:12px 13px;background:#fff;color:var(--text);font:inherit}.declaration-form input[readonly]{background:#f4f8fa;color:#617985}.declaration-form textarea{resize:vertical;min-height:110px}.declaration-form label small{font-size:.68rem;color:#7a909c;font-weight:600}.declaration-purpose{grid-column:1/-1}.declaration-form .primary-btn{grid-column:1/-1;justify-self:start}.declaration-list{display:grid;gap:10px}.declaration-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:15px;border:1px solid #dce8ed;border-radius:15px;background:#fbfdfe}.declaration-id{width:48px;height:48px;border-radius:13px;background:#e4f6fa;color:#087fa9;display:grid;place-items:center;line-height:1}.declaration-id span{font-size:.6rem;align-self:end}.declaration-id b{font-size:.84rem;align-self:start}.declaration-row .grow{display:grid;gap:4px;min-width:0}.declaration-row .grow>strong{color:#12314a}.declaration-row .grow>span{font-size:.8rem;color:#486777;line-height:1.4}.declaration-row .grow>small{font-size:.68rem;color:#82949f}.declaration-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.compact{padding:8px 11px!important;min-height:0!important;font-size:.72rem!important}.count-pill{display:inline-grid;place-items:center;min-width:34px;height:34px;padding:0 9px;border-radius:999px;background:#e4f6fa;color:#087fa9;font-weight:900}
@media(max-width:760px){.declaration-form{grid-template-columns:1fr}.declaration-purpose,.declaration-form .primary-btn{grid-column:auto}.declaration-row{grid-template-columns:auto 1fr}.declaration-actions{grid-column:1/-1;justify-content:flex-start;padding-left:62px}.declaration-actions a{flex:1;justify-content:center}.declaration-form-card{padding-left:18px;padding-right:18px}}

/* v45 - rekeningnummer bij declaraties */
.declaration-iban{grid-column:1/-1}
.declaration-remember{grid-column:1/-1!important;display:flex!important;align-items:center;gap:9px!important;padding:2px 0 5px;font-weight:700!important}
.declaration-remember input{width:18px!important;height:18px!important;flex:0 0 auto;margin:0}
.declaration-remember span{font-size:.78rem;color:#486777}
@media(max-width:760px){.declaration-iban,.declaration-remember{grid-column:auto}}

/* v46 - betaalstatus declaraties */
.declaration-payment{display:inline-flex;align-items:center;width:max-content;margin-top:4px;padding:5px 9px;border-radius:999px;font-size:.68rem;font-weight:850}
.declaration-payment.paid{background:#e2f6e9;color:#177443}
.declaration-payment.open{background:#fff1dc;color:#98610c}
.paid-form{margin:0}
.paid-btn{border:0;border-radius:10px;background:#198754;color:#fff;font-weight:850;cursor:pointer;padding:8px 11px}
.paid-btn:hover{filter:brightness(.96)}
