:root{
  --bg:#f6f8fa;--card:#fff;--text:#151b27;--muted:#677386;--brand:#70b9c8;--brand-dark:#4aa3b5;--brand-soft:#eaf7fa;--line:#dce3e8;--green:#15784f;--green-bg:#e4f6ec;--orange:#b35d00;--orange-bg:#fff0dc;--blue:#1768aa;--blue-bg:#e6f2fb;--shadow:0 2px 10px rgba(21,27,39,.045)
}
.start-page{min-height:100vh;background:linear-gradient(135deg,#eaf7fa 0%,#f6f8fa 52%,#dceff3 100%);display:grid;place-items:center;padding:24px}.start-shell{width:min(560px,100%)}.start-panel{background:#fff;border:1px solid #c9e2e7;border-radius:12px;padding:clamp(26px,6vw,48px);box-shadow:0 14px 36px rgba(43,105,118,.12)}.start-panel .aventus-logo-img{height:42px}.start-kicker{margin:18px 0 4px;color:var(--brand-dark);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.start-panel h1{margin-bottom:8px;color:#183f49}.start-intro{margin-bottom:24px;color:var(--muted)}.route-list{display:grid;gap:10px}.route-option{display:grid;grid-template-columns:40px minmax(0,1fr) 20px;align-items:center;gap:13px;padding:14px 15px;border:1px solid var(--line);border-radius:8px;background:#fff;text-decoration:none;transition:.16s ease}.route-option:hover{border-color:var(--brand);background:var(--brand-soft);transform:translateY(-1px)}.route-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#e7f5f7;color:var(--brand-dark);font-weight:800}.route-option strong,.route-option small{display:block}.route-option strong{font-size:15px}.route-option small{margin-top:3px;color:var(--muted);font-size:12px}.route-arrow{color:var(--brand-dark);font-size:20px;text-align:right}.start-footer{margin:22px 0 0;color:var(--muted);font-size:12px;text-align:center}
.student-choice-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;font-size:13px}.student-choice-details strong{grid-column:1/-1;color:var(--brand-dark);font-size:18px}.student-choice-details span{color:var(--muted)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:inherit}.hidden{display:none!important}.muted{color:var(--muted)}.small{font-size:12px}.field-label{display:block;font-size:13px;font-weight:750;margin:16px 0 7px}.aventus-logo,.login-brand{display:flex;align-items:center;gap:7px;text-decoration:none}.aventus-word{font-size:34px;font-weight:800;letter-spacing:-2px;color:#3d6672}.aventus-mark{font-size:29px;color:var(--brand);transform:rotate(-12deg);display:inline-block}.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:20px;box-shadow:var(--shadow)}h1,h2,h3,p{margin-top:0}h1{font-size:31px;letter-spacing:-.03em;margin-bottom:4px}h2{font-size:17px;margin-bottom:8px}button,input,select,textarea{font:inherit}input,select,textarea{width:100%;border:1px solid #cfd8de;background:#fff;border-radius:6px;padding:11px 12px;outline:none;color:var(--text)}input:focus,select:focus,textarea:focus{border-color:var(--brand-dark);box-shadow:0 0 0 3px rgba(112,185,200,.16)}button{border:1px solid transparent;border-radius:5px;padding:10px 14px;font-weight:750;cursor:pointer;background:#eef2f4;color:#25313a;transition:.16s}button:hover{transform:translateY(-1px);filter:brightness(.99)}button.primary{background:linear-gradient(180deg,var(--brand),var(--brand-dark));color:#fff}.outline{background:#fff;border-color:#cfd8de}.full-button{width:100%}.row{display:flex;gap:9px}.adminlink{text-decoration:none;font-weight:700;color:#3f8492}

/* Student */
.student-page{background:#fff}.student-shell{max-width:470px;min-height:100vh;border-right:1px solid var(--brand);background:#fbfcfd}.student-header{height:58px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:18px;padding:0 20px;border-bottom:1px solid var(--line);background:#fff}.student-header .aventus-word{font-size:31px}.student-header .aventus-mark{font-size:25px}.page-title{font-weight:750;color:#3a9aae;font-size:15px}.student-content{padding:22px 20px 32px}.student-intro{display:flex;align-items:start;justify-content:space-between;gap:14px;margin-bottom:18px}.student-intro h3{margin:0 0 4px;font-size:17px}.student-intro p{font-size:13px;color:var(--muted);margin-bottom:0}.compact-week{min-width:132px}.weekbox label,.toolbar label{display:block;font-size:11px;color:var(--muted);font-weight:800;margin-bottom:5px}.weekbox input{padding:8px}.lookup-card{margin-bottom:14px}.lookup-row input{flex:1}.lookup-row button{min-width:105px}.student-found{margin:10px 0 0;font-weight:700;color:#397d8a}.profiles{border:1px solid var(--line);border-radius:6px;overflow:hidden;margin:15px 0}.profile{padding:13px 13px 13px 44px;border-bottom:1px solid var(--line);position:relative;cursor:pointer;background:#fff}.profile:last-child{border-bottom:0}.profile:before{content:"";width:16px;height:16px;border:1.5px solid #aebbc4;border-radius:50%;position:absolute;left:13px;top:17px;background:#fff}.profile.selected{background:var(--brand-soft)}.profile.selected:before{border:5px solid var(--brand-dark)}.profile.full{opacity:.56;cursor:not-allowed}.profile h3{font-size:14px;margin:0 0 4px}.meta{display:flex;justify-content:space-between;gap:8px;align-items:center;color:#485760;font-size:12px}.meta span:last-child{background:#e8f7fa;border:1px solid #a8dce5;border-radius:4px;padding:3px 8px;color:#267c8d}.profile.full .meta span:last-child{background:#eef0f1;border-color:#d9dddf;color:#59636a}.info-strip{margin-top:12px;padding:11px 12px;background:#eff8fa;border:1px solid #d3edf2;border-radius:6px;color:#4f8590;font-size:12px}.current-choice{background:#fff;border:1px solid var(--line);border-radius:8px;padding:20px;margin-top:14px;box-shadow:var(--shadow);line-height:1.7}.current-choice b{color:#25333a}

/* Admin login */
.admin-login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login{width:min(470px,100%)}.login h1{font-size:27px;margin-top:16px}.login input{margin-bottom:12px}

/* Admin */
.admin-page{background:#f7f9fa}.admin-shell{min-height:100vh}.admin-topbar{height:56px;background:linear-gradient(90deg,var(--brand-dark),var(--brand));color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 23px;position:sticky;top:0;z-index:20}.topbar-left,.topbar-right{display:flex;align-items:center;gap:22px}.icon-button{background:transparent;color:#fff;padding:3px;border:0;font-size:22px}.top-week,.top-user{font-size:13px;text-decoration:none;font-weight:650}.admin-layout{display:grid;grid-template-columns:190px minmax(0,1fr);min-height:calc(100vh - 56px)}.sidebar{background:#fff;border-right:1px solid var(--line);padding:24px 12px}.sidebar nav{display:flex;flex-direction:column;gap:6px}.sidebar a,.sidebar button{display:flex;align-items:center;gap:12px;width:100%;text-decoration:none;border:0;background:#fff;border-radius:5px;padding:9px 12px;font-size:13px;font-weight:600;text-align:left}.sidebar .active,.sidebar a:hover,.sidebar button:hover{background:linear-gradient(90deg,var(--brand),var(--brand-dark));color:#fff}.admin-main{padding:24px 20px 40px;min-width:0;max-width:1450px;width:100%}.admin-controlbar{background:#fff;border:1px solid var(--line);padding:12px 14px;border-radius:7px}.toolbar{display:flex;justify-content:space-between;gap:18px;align-items:end;margin-bottom:15px}.toolbar>div:first-child{min-width:170px}.toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:15px}.stat{background:#fff;border:1px solid var(--line);border-radius:7px;padding:18px 19px;min-height:88px;position:relative}.stat:before{content:"◉";position:absolute;left:17px;top:23px;font-size:28px;color:var(--brand-dark)}.stat>span,.stat>div{display:block}.stat{padding-left:60px;font-size:12px}.stat b{display:block;font-size:25px;margin-bottom:2px;color:#111827}.overview-card{margin-bottom:15px}.profile-overview{margin-top:10px;border:1px solid var(--line);border-radius:6px;overflow:hidden}.profile-overview-row{display:grid;grid-template-columns:2fr .75fr repeat(4,.8fr);align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);font-size:13px}.profile-overview-row:last-child{border-bottom:0}.profile-overview-row.head{background:#fbfcfd;font-size:11px;font-weight:800;color:#56636d}.profile-overview-row .free{justify-self:start;background:#e4f6f8;border:1px solid #a9dce5;border-radius:4px;padding:3px 10px;color:#247b8b}.profile-overview-row .full-free{background:#eceff1;border-color:#d5dade;color:#4f5960}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.55fr);gap:15px;margin-bottom:15px}.sectionhead{display:flex;justify-content:space-between;align-items:center;gap:15px}.sectionhead select{max-width:220px}.count-pill{display:inline-grid;place-items:center;min-width:36px;height:28px;padding:0 9px;border-radius:999px;background:var(--brand-soft);color:#307f8e;font-weight:800}.mini-list{border-top:1px solid var(--line);margin-top:12px}.mini-row{display:grid;grid-template-columns:1fr 1.4fr .6fr;gap:10px;padding:10px 2px;border-bottom:1px solid var(--line);font-size:13px}.mini-row.head{font-size:11px;font-weight:800;color:#65727c}.actions-card button{margin-top:9px}.grid2{display:grid;grid-template-columns:1.15fr .85fr;gap:15px}.config-grid{margin-bottom:15px}.profileSetting{display:grid;grid-template-columns:1.45fr .65fr .42fr .42fr;gap:8px;align-items:center;margin-bottom:8px}.profileSetting input[type=checkbox]{width:auto}.tablewrap{overflow:auto;margin-top:12px}table{border-collapse:collapse;width:100%;min-width:900px}th,td{text-align:left;padding:11px 9px;border-bottom:1px solid #e5eaee;font-size:13px}th{color:#5c6872;font-size:11px;text-transform:none;background:#fbfcfd}.badge{display:inline-block;border-radius:4px;padding:4px 7px;font-size:11px;font-weight:750}.self{background:var(--green-bg);color:var(--green);border:1px solid #b9e8ce}.random{background:var(--orange-bg);color:var(--orange);border:1px solid #ffd29b}.manual{background:var(--blue-bg);color:var(--blue);border:1px solid #bedaf0}.none{background:#eef1f3;color:#657078;border:1px solid #d8dde1}#toast{position:fixed;right:18px;bottom:18px;background:#17212b;color:#fff;padding:12px 15px;border-radius:7px;opacity:0;pointer-events:none;transform:translateY(10px);transition:.2s;max-width:380px;z-index:50}#toast.show{opacity:1;transform:none}

@media(max-width:980px){.admin-layout{grid-template-columns:70px minmax(0,1fr)}.sidebar span{display:none}.sidebar a,.sidebar button{justify-content:center;font-size:18px}.stats{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.grid2{grid-template-columns:1fr}.profile-overview-row{grid-template-columns:1.4fr .7fr .7fr .7fr}.profile-overview-row>*:nth-child(5),.profile-overview-row>*:nth-child(6){display:none}}
@media(max-width:620px){.student-shell{max-width:none;border-right:0}.student-header{grid-template-columns:1fr auto}.page-title{display:none}.student-intro{flex-direction:column}.compact-week{width:100%}.row,.toolbar{flex-direction:column;align-items:stretch}.lookup-row{flex-direction:row}.admin-topbar{padding:0 12px}.top-user{display:none}.admin-layout{grid-template-columns:1fr}.sidebar{display:none}.admin-main{padding:14px 10px 30px}.stats{grid-template-columns:1fr 1fr;gap:8px}.stat{padding:13px 10px 13px 49px;min-height:78px}.stat:before{left:13px;top:20px}.profile-overview-row{grid-template-columns:1.3fr .7fr .7fr}.profile-overview-row>*:nth-child(4),.profile-overview-row>*:nth-child(5),.profile-overview-row>*:nth-child(6){display:none}.profileSetting{grid-template-columns:1fr 1fr}.profileSetting .pname{grid-column:1/-1}.sectionhead{align-items:stretch;flex-direction:column}.sectionhead select{max-width:none}.toolbar-actions{display:grid;grid-template-columns:1fr 1fr}.lookup-row button{min-width:95px}}

/* Student layout: full screen and centered */
.student-page{background:var(--bg)}
.student-shell{max-width:none;width:100%;min-height:100vh;border-right:0;background:var(--bg)}
.student-header{width:100%;padding-left:clamp(20px,4vw,64px);padding-right:clamp(20px,4vw,64px)}
.student-content{width:min(1080px,calc(100% - 40px));margin:0 auto;padding:42px 0 56px}
.student-intro{align-items:center;margin-bottom:24px}
.lookup-card{max-width:760px;margin:0 auto 18px;padding:28px}
#choicesSection{max-width:900px;margin:0 auto 18px;padding:28px}
.current-choice{max-width:900px;margin:18px auto 0;padding:24px}
.lookup-row input{min-height:46px}
.lookup-row button{min-width:125px}

@media(min-width:900px){
  .student-intro{padding:0 42px}
  .lookup-card h2,#choicesSection h2{font-size:20px}
}

@media(max-width:620px){
  .student-content{width:calc(100% - 24px);padding:24px 0 36px}
  .lookup-card,#choicesSection,.current-choice{max-width:none;padding:20px}
  .student-intro{padding:0}
}

.aventus-logo-img{display:block;width:auto;height:38px;object-fit:contain}.student-header .aventus-logo-img{height:38px}.login-brand .aventus-logo-img{height:46px}

/* Aventus header bar */
.student-header{
  background:#70B9C8;
  border-bottom-color:#70B9C8;
  color:#fff;
}
.student-header .page-title,
.student-header .adminlink{
  color:#fff;
}

/* Beheerpagina's als app-navigatie */
.admin-pageview{animation:pageIn .16s ease}.pageview-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.pageview-title h1{font-size:26px;margin:0 0 3px}.pageview-title p{margin:0}.week-page-card{max-width:850px}.week-page-grid{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:18px;align-items:end}.week-page-actions{display:flex;gap:8px}.week-status-box{margin-top:20px;padding:16px;border:1px solid var(--line);background:#fbfcfd;border-radius:7px}.week-status-box p{margin:5px 0 0}.status-info-card{margin-bottom:15px}.status-legend{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:9px}.reports-card{max-width:720px}.student-view-card{display:block;margin-top:16px;padding:13px 14px;border:1px solid #b9dfe6;background:var(--brand-soft);border-radius:7px;color:#28798a;font-weight:750;text-decoration:none}@keyframes pageIn{from{opacity:.45;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(max-width:700px){.week-page-grid{grid-template-columns:1fr}.week-page-actions{display:grid;grid-template-columns:1fr 1fr}.pageview-title h1{font-size:23px}}

.section-title-row{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}.section-title-row h2{margin-bottom:4px}.attendance-reports{display:grid;gap:10px;margin-top:18px}.attendance-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid #dce6ea;border-radius:12px;background:#fbfdfe}.attendance-card>div:first-child{display:flex;flex-direction:column;gap:4px}.attendance-card span{font-size:13px;color:#667681}.attendance-card .row{flex-wrap:wrap}@media(max-width:700px){.attendance-card{align-items:flex-start;flex-direction:column}.attendance-card .row,.attendance-card button{width:100%}}

/* Digitale presentie */
.reports-card.presence-card{max-width:980px}.digital-presence-group{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}.presence-group-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;background:#f8fcfd;border-bottom:1px solid var(--line)}.presence-group-head>div:first-child{display:flex;flex-direction:column;gap:4px}.presence-group-head strong{font-size:16px}.presence-group-head span{font-size:12px;color:var(--muted)}.presence-group-actions{display:flex;align-items:center;gap:10px}.presence-count{background:var(--brand-soft);border:1px solid #b9dfe6;color:#28798a!important;padding:6px 10px;border-radius:999px;font-weight:800}.digital-presence-list{display:flex;flex-direction:column}.presence-student-row{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 18px;border-bottom:1px solid #edf1f3;cursor:pointer;position:relative}.presence-student-row:last-child{border-bottom:0}.presence-student-row:hover{background:#fbfdfe}.presence-student-row input{position:absolute;opacity:0;pointer-events:none}.presence-checkmark{width:22px;height:22px;border:2px solid #b8c6cc;border-radius:6px;background:#fff;display:grid;place-items:center}.presence-student-row input:checked+.presence-checkmark{background:#70B9C8;border-color:#70B9C8}.presence-student-row input:checked+.presence-checkmark:after{content:'✓';color:white;font-weight:900;font-size:15px}.presence-student-name{display:flex;flex-direction:column;gap:2px}.presence-student-name b{font-size:14px}.presence-student-name small{font-size:12px;color:var(--muted)}.presence-status{font-size:11px;font-weight:800;color:#7a858c;background:#f1f3f4;border:1px solid #dce1e4;border-radius:999px;padding:5px 9px}.presence-status.is-present{color:#28798a;background:var(--brand-soft);border-color:#b9dfe6}.empty-presence{padding:18px;color:var(--muted);font-size:13px}@media(max-width:700px){.presence-group-head{align-items:flex-start;flex-direction:column}.presence-group-actions{width:100%;justify-content:space-between}.presence-student-row{grid-template-columns:24px 1fr}.presence-status{grid-column:2;justify-self:start}.presence-card .section-title-row button{width:100%}}

/* Inklapbare presentiegroepen */
.presenceToggle{appearance:none;border:0;background:transparent;padding:0;margin:0;display:flex;align-items:center;gap:11px;text-align:left;color:inherit;cursor:pointer;min-width:0;flex:1}
.presenceToggle:focus-visible{outline:3px solid rgba(112,185,200,.35);outline-offset:5px;border-radius:8px}
.presence-title{display:flex;flex-direction:column;gap:4px;min-width:0}
.presence-chevron{font-size:27px;line-height:1;color:#4f7e88;transition:transform .18s ease;transform:rotate(0deg)}
.digital-presence-group.is-open .presence-chevron{transform:rotate(90deg)}
.digital-presence-list.is-collapsed{display:none}
@media(max-width:700px){.presenceToggle{width:100%}.presence-group-head{gap:12px}}

.active-week-box{min-width:245px;padding:11px 14px;border:1px solid #b8dfe7;border-radius:8px;background:#eef9fb;text-align:right}.active-week-caption{display:block;font-size:11px;font-weight:800;color:#5e7f87;margin-bottom:3px}.active-week-box input{width:170px;padding:7px 9px;margin-bottom:5px;border-color:#b8dfe7;background:#fff}.active-week-box strong{display:block;color:#267c8d;font-size:15px;white-space:nowrap}@media(max-width:620px){.active-week-box{width:100%;min-width:0;text-align:left}.active-week-box input{width:100%}.active-week-box strong{white-space:normal}}
.schedule-note{display:inline-block;margin-top:10px;padding:7px 10px;border:1px solid #b9dfe6;border-radius:6px;background:#eef9fb;color:#28798a;font-size:12px;font-weight:750}
.start-shell{width:min(980px,100%)}.start-panel{padding:clamp(28px,6vw,60px)}.start-brand{display:flex;align-items:center;gap:14px;color:var(--brand-dark);font-size:17px;font-weight:800}.start-panel .aventus-logo-img{height:54px;max-width:210px}.start-panel h1{margin:48px 0 4px;color:#183f49;font-size:clamp(32px,5vw,48px)}.start-intro{margin-bottom:22px;font-size:16px}.route-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.route-option{grid-template-columns:42px minmax(0,1fr) 20px;min-height:112px;padding:18px}.route-option strong{font-size:18px}.route-icon{width:40px;height:40px;font-size:17px}.route-arrow{font-size:22px}@media(max-width:700px){.start-panel h1{margin-top:32px}.route-list{grid-template-columns:1fr}.route-option{min-height:76px}}

.choice-deadline{margin-top:10px;font-weight:700;color:#2f6670;background:#eaf6f8;border:1px solid #c8e6eb;border-radius:10px;padding:10px 14px;display:inline-block}.choice-deadline.is-open{color:#176b45;background:#e7f7ee;border-color:#a9dfbf}.choice-deadline.is-closed{color:#a32929;background:#fff0f0;border-color:#efb5b5}


/* Studentenbeheer: handmatig invoeren + Excel drag & drop */
.student-admin-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
.student-admin-grid .settings-info-card{grid-column:1/-1}
.student-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;margin-bottom:16px}
.format-table-wrap{overflow-x:auto;margin:12px 0 16px;border:1px solid var(--line);border-radius:7px}
.format-table{width:100%;border-collapse:collapse;min-width:760px;font-size:12px}
.format-table th{background:#eef8fa;padding:10px 9px;text-align:left;white-space:nowrap;border-right:1px solid var(--line)}
.format-table th:last-child{border-right:0}
.excel-dropzone{min-height:190px;border:2px dashed #9ecbd4;border-radius:10px;background:#f6fbfc;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px;cursor:pointer;transition:.18s;color:#34515a;outline:none}
.excel-dropzone:hover,.excel-dropzone:focus,.excel-dropzone.is-dragover{border-color:var(--brand-dark);background:#eaf7f9;box-shadow:0 0 0 4px rgba(112,185,200,.13)}
.excel-dropzone .drop-icon{font-size:34px;color:var(--brand-dark);margin-bottom:8px}.excel-dropzone strong{font-size:16px}.excel-dropzone span{font-size:13px;color:var(--muted);margin-top:5px}.excel-upload-status{font-size:13px;margin-top:10px}
@media(max-width:900px){.student-admin-grid{grid-template-columns:1fr}.student-form-grid{grid-template-columns:1fr}}

.semicolon-import-card textarea{width:100%;min-height:190px;resize:vertical;margin:12px 0;padding:14px;border:1px solid #ccd7dc;border-radius:12px;font:14px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;box-sizing:border-box;background:#fff;color:#17212b}.semicolon-import-card textarea:focus{outline:3px solid rgba(112,185,200,.24);border-color:#70B9C8}.format-example{margin-top:10px;padding:11px 13px;border-radius:10px;background:#eef8fa;overflow:auto}.format-example code{white-space:nowrap;color:#2b5963;font-size:12px}.semicolon-import-card .primary{margin-top:0}

/* Studenten zoeken */
.student-search-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.student-search-controls input[type="search"]{min-width:280px;max-width:420px}.student-search-controls select{min-width:190px}@media(max-width:700px){.student-search-controls{width:100%;align-items:stretch}.student-search-controls input[type="search"],.student-search-controls select{width:100%;max-width:none;min-width:0}}

button.danger{background:#fff1f1;border-color:#efb5b5;color:#b42318}button.danger:hover{background:#fee4e2;border-color:#e69a9a}

/* Dynamische profiellessen */
.dynamic-profile-row{display:grid;grid-template-columns:minmax(190px,1.6fr) minmax(100px,.8fr) minmax(140px,1fr) minmax(105px,.65fr) 90px auto auto;gap:10px;align-items:center}
.profile-name-input{font-weight:700}
.teacher-code-input{text-transform:uppercase}

/* Consistente bediening */
button,.button-link{min-height:42px;border-radius:7px;padding:10px 15px;font-weight:750;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px}
button:focus-visible,.button-link:focus-visible{outline:3px solid rgba(74,163,181,.28);outline-offset:2px}
button:disabled{cursor:not-allowed;opacity:.55;transform:none}
.secondary,.button-link.secondary{background:#fff;border:1px solid #c4d0d6;color:#33444d}
.button-link.primary{background:linear-gradient(180deg,var(--brand),var(--brand-dark));color:#fff}
.public-links{display:flex;gap:16px;align-items:center}
.top-logout{min-height:34px;padding:6px 10px;background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.35)}

/* Docentaccounts */
.teacher-account-form{display:grid;grid-template-columns:170px minmax(240px,1fr) auto;gap:12px;align-items:end;max-width:780px;margin:20px 0}
.teacher-account-form .field-label{margin-top:0}.teacher-account-form button{margin-bottom:0}
.teacher-accounts-list{border-top:1px solid var(--line)}
.teacher-account-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--line)}
.teacher-account-row>div{display:flex;flex-direction:column;gap:3px}.teacher-account-row span{font-size:12px;color:var(--muted)}
.teacher-account-row>.teacher-account-actions{flex-direction:row;gap:9px}

/* Algemene lestijd en status-schakelaars */
.lesson-times-card{margin-bottom:16px}.lesson-times-form{display:grid;grid-template-columns:150px 150px auto;gap:12px;align-items:end;max-width:620px;margin-top:18px}.lesson-times-form .field-label{margin-top:0}
.setting-switch-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:16px;padding:14px 0;border-top:1px solid var(--line)}.setting-switch-row>div{display:flex;flex-direction:column;gap:4px}.setting-switch-row>div>span{color:var(--muted);font-size:12px}.status-switch{display:inline-flex;align-items:center;justify-content:flex-start;gap:10px;min-height:42px;padding:6px 9px;border:1px solid #cad6de;border-radius:10px;background:#fff;cursor:pointer;white-space:nowrap}.switch-track{position:relative;flex:0 0 auto;width:54px;height:30px;border-radius:999px;background:#d04444;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);transition:background .2s}.switch-track:after{content:"";position:absolute;left:3px;top:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.2);transition:transform .2s}.status-switch:focus-visible{outline:3px solid rgba(74,163,181,.32);outline-offset:2px}.choice-status-switch[aria-checked="true"] .switch-track{background:#1b9a55}.maintenance-status-switch .switch-track{background:#1b9a55}.maintenance-status-switch[aria-checked="true"] .switch-track{background:#d04444}.status-switch[aria-checked="true"] .switch-track:after{transform:translateX(24px)}.status-switch>strong{min-width:68px;font-size:12px}
@media(max-width:620px){.lesson-times-form{grid-template-columns:1fr 1fr}.lesson-times-form button{grid-column:1/-1}.setting-switch-row{align-items:flex-start;flex-direction:column}.status-switch{width:100%;justify-content:space-between}}

/* Docentenweergave */
.teacher-page{background:var(--bg)}
.login-brand{width:max-content;background:var(--brand);border-radius:8px;padding:8px 12px;margin-bottom:14px}
.teacher-shell{min-height:100vh}.teacher-header{min-height:64px;padding:10px clamp(16px,4vw,48px);background:linear-gradient(90deg,var(--brand-dark),var(--brand));color:#fff;display:flex;align-items:center;justify-content:space-between;gap:20px;position:sticky;top:0;z-index:10}
.teacher-header>div{display:flex;align-items:center;gap:16px}.teacher-header .aventus-logo-img{height:36px}.teacher-header-actions{font-size:13px;font-weight:750}
.teacher-content{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:32px 0 56px}.teacher-title{align-items:end}.week-control{min-width:200px}.week-control .field-label{margin-top:0}
.teacher-group-card{margin-bottom:18px}.teacher-table{min-width:760px}.table-subline{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.teacher-attendance-list{border-top:1px solid var(--line)}.teacher-student-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 4px;border-bottom:1px solid var(--line)}.teacher-student-info{min-width:0;display:flex;flex-direction:column;gap:3px}.teacher-student-info strong{font-size:14px}.teacher-student-info span{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attendance-toggle{display:inline-flex;align-items:center;flex:0 0 auto;min-width:122px;justify-content:center;gap:8px;padding:8px 12px;border:1px solid #b8d8c0;border-radius:999px;background:#edf8ef;color:#176b2c;font-size:13px;font-weight:800;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.attendance-toggle.is-absent{border-color:#efb2ae;background:#fff1f0;color:#b42318}.attendance-toggle input{position:absolute;opacity:0;width:1px;height:1px}.attendance-toggle:has(input:focus-visible){outline:3px solid rgba(74,163,181,.28);outline-offset:2px}.attendance-toggle input:disabled+span{cursor:not-allowed}.attendance-toggle span:before{content:'✓';display:inline-grid;place-items:center;width:20px;height:20px;margin-right:4px;border-radius:50%;background:currentColor;color:#fff;font-size:13px}.attendance-toggle.is-absent span:before{content:'×'}
.export-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:760px){.teacher-header{align-items:flex-start}.teacher-header>div:first-child strong{display:none}.teacher-header-actions{flex-direction:column;align-items:flex-end!important;gap:6px!important}.teacher-title{align-items:stretch;flex-direction:column}.week-control{width:100%}.teacher-account-form{grid-template-columns:1fr}.teacher-account-row{align-items:flex-start;flex-direction:column}.teacher-account-row button{width:100%}.export-actions{width:100%}.export-actions button{flex:1}.public-links{gap:10px}.teacher-student-row{align-items:flex-start;gap:10px}.attendance-toggle{min-width:112px;padding:8px 9px}}
@media(max-width:900px){.dynamic-profile-row{grid-template-columns:1fr 1fr}.dynamic-profile-row .profile-name-input{grid-column:1/-1}}
@media(max-width:560px){.dynamic-profile-row{grid-template-columns:1fr}}


/* Instellingen tabbladen */
.settings-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px;padding:5px;background:#eef4f6;border:1px solid var(--line);border-radius:12px;width:max-content;max-width:100%}
.settings-tab{appearance:none;border:0;background:transparent;color:#53646d;font-weight:800;padding:10px 16px;border-radius:9px;cursor:pointer}
.settings-tab:hover{background:#fff}
.settings-tab.active{background:#70B9C8;color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.settings-tab:focus-visible{outline:3px solid rgba(112,185,200,.32);outline-offset:2px}
.settings-panel{animation:pageIn .14s ease}
.settings-panel .reports-card{max-width:none}
@media(max-width:620px){.settings-tabs{width:100%;display:grid;grid-template-columns:1fr}.settings-tab{width:100%;text-align:left}}

/* Inklapbaar beheermenu */
.admin-layout,.sidebar,.admin-main{transition:grid-template-columns .22s ease,width .22s ease,padding .22s ease,transform .22s ease}
.admin-layout.menu-collapsed{grid-template-columns:0 minmax(0,1fr)}
.admin-layout.menu-collapsed .sidebar{width:0;min-width:0;padding-left:0;padding-right:0;border-right:0;overflow:hidden;opacity:0;pointer-events:none}
.admin-layout.menu-collapsed .admin-main{max-width:none}
.icon-button{cursor:pointer;border-radius:8px;min-width:38px;min-height:38px;display:inline-grid;place-items:center}
.icon-button:hover{background:rgba(255,255,255,.15)}
@media(max-width:980px){.admin-layout.menu-collapsed{grid-template-columns:0 minmax(0,1fr)}}
@media(max-width:620px){.admin-layout.menu-open-mobile{grid-template-columns:190px minmax(0,1fr)}.admin-layout.menu-open-mobile .sidebar{display:block;position:relative;z-index:5}.admin-layout.menu-open-mobile .admin-main{min-width:0}.admin-layout.menu-collapsed{grid-template-columns:1fr}.admin-layout.menu-collapsed .sidebar{display:none}}

@media(max-width:700px){
  .start-page{padding:12px}.start-panel{padding:26px 20px}.start-brand{gap:10px;font-size:15px;flex-wrap:wrap}.start-panel .aventus-logo-img{height:44px;max-width:180px}.start-panel h1{font-size:34px;margin-top:28px}.start-intro{font-size:15px;margin-bottom:16px}.route-option{min-height:68px;padding:13px 12px}.route-option strong{font-size:16px}
  .student-header{height:54px;padding:0 14px}.student-content{width:calc(100% - 24px);padding:22px 0 32px}.student-intro{gap:16px;margin-bottom:16px}.student-intro h1{font-size:28px}.student-intro h3{font-size:15px}.active-week-box{padding:12px;width:100%;text-align:left}.active-week-box input{width:100%;min-height:42px}.active-week-box strong{font-size:14px}.choice-deadline{display:block;font-size:12px;line-height:1.45;padding:10px 12px}.lookup-card,#choicesSection,.current-choice{padding:18px}.lookup-row{gap:8px}.lookup-row input{min-width:0}.lookup-row button{min-width:92px}.student-choice-details{grid-template-columns:1fr;gap:7px}.student-choice-details strong{grid-column:auto}
  .admin-topbar{min-height:58px;height:auto;padding:9px 12px;gap:10px}.topbar-left{gap:9px;min-width:0}.topbar-left strong{font-size:13px;white-space:nowrap}.topbar-right{gap:8px}.top-week{font-size:11px;white-space:nowrap}.top-logout{font-size:12px;padding:7px 8px}.admin-main{padding:18px 10px 30px}.pageview-title{align-items:stretch;gap:12px}.pageview-title h1{font-size:24px}.admin-controlbar{padding:11px}.toolbar>div:first-child{min-width:0}.stats{gap:8px}.stat{min-width:0;overflow:hidden}.section-title-row{align-items:stretch;gap:12px}.section-title-row .row{flex-direction:column}.section-title-row button,.section-title-row .button-link{width:100%;text-align:center}.tablewrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.teacher-content{width:calc(100% - 24px);padding:22px 0 36px}.teacher-header{padding:9px 12px}.teacher-header .aventus-logo-img{height:30px}.teacher-title{gap:14px}.teacher-group-card{padding:16px}.teacher-group-card .section-title-row{align-items:flex-start}.export-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.export-actions button{min-width:0;padding:9px 5px;font-size:12px}.teacher-table{min-width:680px}.presence-group-head{align-items:stretch;flex-direction:column}.presence-group-actions{justify-content:space-between}.week-page-grid{gap:10px}
}
@media(max-width:400px){
  .start-panel .aventus-logo-img{height:38px;max-width:155px}.start-brand{font-size:13px}.start-panel h1{font-size:30px}.route-option{grid-template-columns:36px minmax(0,1fr) 16px;gap:9px}.route-icon{width:34px;height:34px}.route-arrow{font-size:18px}.lookup-row button{min-width:82px;padding-left:9px;padding-right:9px}.stats{grid-template-columns:1fr}.topbar-left strong{display:none}.top-week{display:none}.teacher-header-actions{font-size:12px}
}
.help-popover{position:relative;display:inline-block;vertical-align:middle;margin-left:7px;font-size:14px}.help-popover summary{display:grid;place-items:center;width:22px;height:22px;border:1px solid #9bbbc3;border-radius:50%;background:#eef9fb;color:#28798a;font-size:13px;font-weight:800;cursor:pointer;list-style:none}.help-popover summary::-webkit-details-marker{display:none}.help-popover p{position:absolute;z-index:30;top:30px;left:0;width:min(300px,calc(100vw - 36px));margin:0;padding:12px 14px;border:1px solid #b9dfe6;border-radius:7px;background:#fff;color:var(--text);box-shadow:0 8px 20px rgba(43,105,118,.16);font-size:12px;font-weight:500;line-height:1.5;text-align:left}.help-popover:not(.inline-help){margin:0 0 12px}.inline-help{font-size:inherit}.inline-help p{font-size:12px;font-weight:500}.start-panel>.help-popover{position:absolute}.start-panel{position:relative}.start-panel>.help-popover{right:22px;top:22px}@media(max-width:620px){.help-popover p{left:auto;right:0}.start-panel>.help-popover{right:16px;top:16px}}
.start-brand .aventus-logo-img{height:54px;max-width:210px;padding:8px 14px;background:var(--brand-dark);border-radius:7px}
.week-selector{appearance:none;min-width:230px;padding:12px 38px 12px 14px;border:1px solid #b9dfe6;border-radius:8px;background:#f7fcfd;color:#216b79;font-weight:750;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,#28798a 50%),linear-gradient(135deg,#28798a 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat}.week-selector:focus{border-color:var(--brand-dark);box-shadow:0 0 0 3px rgba(112,185,200,.16)}.active-week-box .week-selector{width:100%;min-width:0;background-color:#fff}
.week-overrides{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.week-overrides h2{margin-bottom:4px}.week-override-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(130px,.8fr) minmax(130px,.8fr);gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #edf1f3}.week-override-row strong{font-size:13px}.week-overrides button{margin-top:14px}@media(max-width:620px){.week-override-row{grid-template-columns:1fr}.week-overrides button{width:100%}}

/* Presentie tabs */
.presenceTabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 14px;padding-bottom:2px;border-bottom:1px solid var(--line)}
.presenceTab{appearance:none;border:1px solid var(--line);background:#f7fafb;color:#43515a;border-radius:10px 10px 0 0;padding:10px 14px;min-height:44px;display:flex;align-items:center;gap:9px;font-weight:800;cursor:pointer;transition:.15s ease}
.presenceTab small{display:inline-flex;align-items:center;justify-content:center;min-width:34px;padding:3px 7px;border-radius:999px;background:#e9eef0;color:#63717a;font-size:11px}
.presenceTab:hover{background:#eef8fa;border-color:#b9dfe6}
.presenceTab.active{background:#70B9C8;border-color:#70B9C8;color:#fff}
.presenceTab.active small{background:rgba(255,255,255,.24);color:#fff}
.presenceTab:focus-visible{outline:3px solid rgba(112,185,200,.35);outline-offset:2px}
.presenceTabPanels{margin-top:4px}.presenceTabPanel.hidden{display:none!important}
@media(max-width:700px){.presenceTabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;border-bottom:0}.presenceTab{border-radius:10px;justify-content:space-between;min-width:0}.presenceTab span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.presenceTab small{flex:0 0 auto}}
@media(max-width:430px){.presenceTabs{grid-template-columns:1fr}}

/* Homepage entrance */
.start-page{display:block;min-height:100vh;padding:0;background:#eaf4fc;overflow-x:hidden}
.start-page:before{height:8px;background:#063f82}
.start-page:after{content:"";position:fixed;inset:8px 0 0;background-image:linear-gradient(rgba(8,120,209,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(8,120,209,.055) 1px,transparent 1px);background-size:42px 42px;pointer-events:none}
.start-shell{width:min(1160px,calc(100% - 48px));margin:0 auto;padding:30px 0 34px;position:relative;z-index:1}
.home-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px;padding:0 8px}
.home-header .start-brand{color:#063f82;font-size:17px}
.home-header .start-brand .aventus-logo-img{height:44px;max-width:190px;padding:6px 12px;background:#063f82;border-radius:8px}
.home-status{display:inline-flex;align-items:center;gap:8px;color:#476984;font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.home-status i{width:8px;height:8px;border-radius:50%;background:#1ca660;box-shadow:0 0 0 5px rgba(28,166,96,.12)}
.start-panel{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:clamp(34px,7vw,90px);align-items:center;min-height:620px;padding:clamp(34px,6vw,76px);border:1px solid #c4dced;border-radius:22px;background:#fff;box-shadow:0 24px 60px rgba(20,75,125,.14);position:relative;overflow:hidden}
.start-panel:before{content:"";position:absolute;right:-140px;top:-190px;width:430px;height:430px;border:1px solid #d7eaf8;transform:rotate(35deg);pointer-events:none}
.home-copy{position:relative;z-index:1}
.start-kicker{margin:0 0 15px;color:#0878d1;font-size:11px;letter-spacing:.16em}
.start-panel h1{margin:0 0 14px;font-size:clamp(44px,6vw,78px);line-height:.98;letter-spacing:-.04em;color:#063f82}
.start-panel h1 em{font-style:normal;color:#0878d1}
.start-intro{margin:0 0 28px;color:#60748a;font-size:16px}
.home-copy>.help-popover{position:absolute;right:0;top:-4px;margin:0}
.route-list{gap:10px}
.route-option{grid-template-columns:45px minmax(0,1fr) 24px;min-height:78px;position:relative;padding:14px 16px;border:1px solid #d3e2ed;border-radius:11px;background:#fff;box-shadow:0 2px 0 rgba(8,120,209,.03)}
.route-option:hover{border-color:#0878d1;background:#f2f9ff;transform:translateX(4px);box-shadow:0 8px 18px rgba(8,120,209,.1)}
.route-option.route-student{border-color:#8fc6ed;background:#f2f9ff}
.route-option.route-student:hover{background:#e5f3ff}
.route-icon{width:42px;height:42px;border-radius:11px;background:#e6f3ff;color:#0878d1;font-size:17px}
.route-student .route-icon{background:#0878d1;color:#fff}
.route-option strong{font-size:16px;color:#12243a}
.route-option small{font-size:12px;color:#60748a}
.route-arrow{color:#0878d1;font-size:22px}
.route-tag{position:absolute;right:48px;top:8px;padding:3px 7px;border-radius:4px;background:#d9f3e4;color:#14743b;font-size:9px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.home-visual{min-height:390px;padding:28px;position:relative;overflow:hidden;border-radius:18px;background:#063f82;color:#fff;box-shadow:0 18px 28px rgba(6,63,130,.22);transform:rotate(2deg)}
.home-visual:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:28px 28px;opacity:.5}
.visual-glow{position:absolute;width:240px;height:240px;right:-60px;bottom:-80px;border:1px solid rgba(255,255,255,.25);border-radius:50%}
.visual-top,.visual-date,.visual-line,.visual-footer,.schedule-profiles{position:relative;z-index:1}
.visual-top{display:flex;justify-content:space-between;color:#a9d6f5;font-size:10px;font-weight:900;letter-spacing:.14em}
.visual-top b{color:#ffcf4a;font-size:10px}
.visual-date{display:flex;flex-direction:column;gap:5px;margin-top:58px;padding-bottom:26px;border-bottom:1px solid rgba(255,255,255,.24)}
.visual-date strong{font-size:34px;line-height:1}
.visual-date span{color:#b9ddf6;font-size:13px}
.schedule-profiles{display:grid;gap:0;margin-top:4px}
.schedule-profile{display:grid;gap:4px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.18)}
.schedule-profile:last-child{border-bottom:0}
.schedule-profile strong{font-size:13px;line-height:1.2}
.schedule-profile span{color:#b9ddf6;font-size:11px;font-weight:700}
.schedule-profile i{padding:0 4px;color:#55c4df;font-style:normal}
.schedule-loading{margin:18px 0;color:#b9ddf6;font-size:12px}
.visual-line{display:grid;grid-template-columns:16px 54px 1fr;gap:12px;align-items:center;padding:19px 0;border-bottom:1px solid rgba(255,255,255,.18);font-size:12px}
.visual-line i{width:10px;height:10px;border:3px solid #ffcf4a;border-radius:50%;box-shadow:0 0 0 4px rgba(255,207,74,.14)}
.visual-line span{color:#a9d6f5;font-weight:800}
.visual-line b{font-size:13px}
.muted-line i{border-color:#55c4df;box-shadow:0 0 0 4px rgba(85,196,223,.14)}
.muted-line b{color:#b9ddf6;font-weight:500}
.visual-stamp{position:absolute;right:25px;bottom:58px;z-index:2;display:grid;place-items:center;width:65px;height:65px;border:2px solid #ffcf4a;border-radius:50%;color:#ffcf4a;font-size:28px;font-weight:900;transform:rotate(-9deg)}
.visual-stamp span{font-size:13px;margin-top:-12px}
.visual-footer{display:flex;justify-content:space-between;margin-top:26px;color:#a9d6f5;font-size:10px;font-weight:900;letter-spacing:.18em}
.start-footer{grid-column:1/-1;margin:0;text-align:left;color:#8095a8;font-size:11px}.start-footer span{padding:0 6px;color:#0878d1}
@media(max-width:820px){.start-shell{width:min(620px,calc(100% - 28px));padding-top:20px}.home-header{padding:0 4px}.home-status{display:none}.start-panel{grid-template-columns:1fr;gap:34px;padding:30px;min-height:0}.home-visual{min-height:320px;transform:none}.visual-date{margin-top:34px}.start-footer{grid-column:auto;text-align:center}}
@media(max-width:480px){.start-panel{padding:24px 18px;border-radius:17px}.start-panel h1{font-size:48px}.start-intro{margin-bottom:22px;font-size:14px}.route-option{min-height:70px;padding:12px}.route-tag{display:none}.home-visual{padding:22px;min-height:290px}.visual-date strong{font-size:28px}.visual-line{padding:15px 0}.visual-stamp{right:18px;bottom:38px;width:55px;height:55px;font-size:23px}.home-header .start-brand{font-size:14px}.home-header .start-brand .aventus-logo-img{height:38px}}

/* Student flow */
.student-steps{display:flex;align-items:center;gap:9px;margin-top:18px;color:var(--muted);font-size:12px;font-weight:800}
.student-steps span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.student-steps b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--brand);color:#fff;font-size:11px}
.student-steps i{width:26px;height:1px;background:#b9d4e8}
.action-heading{display:flex;align-items:center;gap:13px;margin-bottom:20px}
.action-heading h2{margin-bottom:2px}
.action-heading p{margin:0;font-size:13px}
.action-icon{display:grid;place-items:center;flex:0 0 auto;width:38px;height:38px;border-radius:12px;background:var(--brand);color:#fff;font-size:17px;font-weight:800;box-shadow:0 6px 13px rgba(8,120,209,.18)}
.lookup-card .field-label{margin-top:0}
.lookup-row button{min-width:124px}
.success-burst{position:relative;display:grid;place-items:center;flex:0 0 auto;width:64px;height:64px;border-radius:50%;background:#1ca660;color:#fff;box-shadow:0 8px 18px rgba(28,166,96,.25)}
.success-burst span{font-size:34px;font-weight:900;line-height:1}
#success{position:relative;display:flex;align-items:center;gap:18px;border:1px solid #a8dfbf;background:#effbf3;color:#146e3b;overflow:hidden}
#success h2{color:#146e3b;margin-bottom:4px}
#success b{font-size:17px}
.celebrate #success{animation:successPop .45s ease both}
.confetti-layer{position:fixed;inset:0;z-index:9999;overflow:hidden;pointer-events:none}
.confetti-piece{position:absolute;top:-24px;left:var(--x);width:9px;height:17px;border-radius:2px;opacity:0;animation:pageConfetti var(--duration) cubic-bezier(.16,.74,.3,1) var(--delay) forwards}
.confetti-piece:nth-child(3n){width:12px;height:12px;border-radius:50%}
.confetti-piece:nth-child(4n){width:7px;height:20px}
@keyframes successPop{0%{transform:scale(.98)}55%{transform:scale(1.015)}100%{transform:scale(1)}}
@keyframes pageConfetti{0%{transform:translate3d(0,-4vh,0) rotate(0);opacity:1}85%{opacity:1}100%{transform:translate3d(var(--drift),105vh,0) rotate(var(--spin));opacity:0}}
@media(prefers-reduced-motion:reduce){.confetti-layer{display:none}.celebrate #success{animation:none}}
@media(max-width:560px){.student-steps{gap:6px}.student-steps i{width:13px}.student-steps span{font-size:11px}.action-heading{gap:10px}.action-icon{width:34px;height:34px;border-radius:10px}.lookup-row button{min-width:102px}.success-burst{width:54px;height:54px}.success-burst span{font-size:28px}}

/* Aventus visual system */
:root{
  --bg:#f3f7fb;
  --card:#ffffff;
  --text:#12243a;
  --muted:#60748a;
  --brand:#0878d1;
  --brand-dark:#07529b;
  --brand-soft:#e8f4ff;
  --line:#d7e2ec;
  --shadow:0 10px 28px rgba(22,61,99,.08);
  --shadow-strong:0 18px 44px rgba(8,73,132,.16);
}
body{font-family:"Trebuchet MS","Segoe UI",sans-serif;background:var(--bg);color:var(--text);line-height:1.45}
h1,h2,h3,strong,button,.settings-tab{font-family:"Trebuchet MS","Segoe UI",sans-serif;letter-spacing:0}
h1{font-size:clamp(28px,3vw,42px);line-height:1.08;font-weight:800;color:var(--text)}
h2{font-size:20px;color:var(--text)}
.muted{color:var(--muted)}
.eyebrow,.start-kicker{margin:0 0 8px;color:var(--brand);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.card{border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:24px}
input,select,textarea{border-color:#cbd9e5;border-radius:9px;background:#fff;color:var(--text);transition:border-color .16s,box-shadow .16s,background .16s}
input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(8,120,209,.14)}
button,.button-link{border-radius:9px;min-height:44px;transition:transform .16s,box-shadow .16s,background .16s,border-color .16s}
button:hover,.button-link:hover{transform:translateY(-2px)}
button.primary,.button-link.primary{background:var(--brand);box-shadow:0 6px 14px rgba(8,120,209,.2)}
button.primary:hover,.button-link.primary:hover{background:var(--brand-dark);box-shadow:0 9px 18px rgba(8,82,155,.24)}
.secondary,.button-link.secondary,.outline{border-color:#c6d7e5;background:#fff;color:var(--brand-dark)}
.secondary:hover,.button-link.secondary:hover,.outline:hover{border-color:var(--brand);background:var(--brand-soft)}
.start-page{background:#e9f4fd;position:relative;overflow-x:hidden}
.start-page:before{content:"";position:fixed;inset:0 0 auto;height:9px;background:var(--brand-dark);z-index:2}
.start-shell{width:min(1040px,100%);position:relative;z-index:1}
.start-panel{border:1px solid #c7ddec;border-radius:20px;padding:clamp(30px,6vw,68px);box-shadow:var(--shadow-strong);background:#fff}
.start-brand{color:var(--brand-dark);font-size:18px}
.start-panel .aventus-logo-img{height:58px;max-width:220px;background:var(--brand-dark);padding:8px 15px;border-radius:9px}
.start-kicker{margin-top:38px}
.start-panel h1{margin-top:0;color:var(--brand-dark);font-size:clamp(38px,6vw,64px)}
.start-intro{font-size:17px;margin-bottom:30px}
.maintenance-countdown{margin:0 0 18px;padding:13px 15px;border:1px solid #f1c35c;border-radius:8px;background:#fff7df;color:#7a4b00}
.maintenance-countdown p{margin:0 0 4px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.maintenance-countdown strong{font-variant-numeric:tabular-nums;font-size:20px;line-height:1.2}
.route-list{grid-template-columns:1fr;gap:16px}
.route-option{min-height:136px;border:1px solid #d2e0eb;border-radius:13px;padding:20px;background:#fff;box-shadow:0 3px 0 rgba(8,120,209,.03)}
.route-option:hover{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 10px 20px rgba(8,120,209,.1)}
.route-icon{width:44px;height:44px;background:var(--brand);color:#fff;font-size:18px}
.route-option strong{font-size:19px;color:var(--text)}
.route-option small{font-size:13px;color:var(--muted)}
.route-arrow{color:var(--brand);font-size:26px}
.student-page{background:var(--bg)}
.student-header{height:68px;background:var(--brand-dark);border-bottom:0;padding-left:clamp(20px,5vw,80px);padding-right:clamp(20px,5vw,80px);box-shadow:0 4px 16px rgba(8,82,155,.16)}
.student-header .aventus-logo-img{height:42px}
.student-header .page-title{color:#fff;display:flex;align-items:center;gap:12px;font-size:16px}
.page-eyebrow{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;opacity:.72}
.student-content{width:min(1120px,calc(100% - 40px));padding:54px 0 72px}
.student-intro{align-items:flex-end;margin-bottom:30px;padding:0 24px}
.student-intro h1{margin-bottom:10px}
.student-intro h3{color:var(--brand-dark)}
.active-week-box{border:1px solid #b5d9f4;background:var(--brand-soft);border-radius:14px;box-shadow:var(--shadow);text-align:left;padding:16px;min-width:260px}
.active-week-caption{color:var(--brand-dark)}
.active-week-box strong{color:var(--brand-dark)}
.lookup-card,#choicesSection{border-radius:16px;box-shadow:var(--shadow);padding:30px}
.lookup-card{max-width:820px;margin-bottom:20px}
#choicesSection{max-width:960px}
.profiles{border-color:#cbddea;border-radius:12px;margin:20px 0}
.profile{padding:17px 18px 17px 52px;transition:background .16s,transform .16s}
.profile:hover{background:var(--brand-soft);transform:translateX(3px)}
.profile:before{left:18px;top:21px;width:19px;height:19px;border-color:#9db3c5}
.profile.selected{background:#e5f3ff;box-shadow:inset 4px 0 var(--brand)}
.profile.selected:before{border-color:var(--brand-dark)}
.info-strip,.choice-deadline{border-radius:10px}
.choice-deadline{box-shadow:none}
.admin-page{background:var(--bg)}
.admin-login-wrap{background:#e9f4fd;position:relative}
.admin-login-wrap:before{content:"";position:absolute;inset:0 0 auto;height:9px;background:var(--brand-dark)}
.login{border-radius:18px;padding:32px;box-shadow:var(--shadow-strong)}
.login-brand{background:var(--brand-dark);border-radius:10px;padding:9px 14px}
.login-brand .aventus-logo-img{height:46px}
.admin-topbar{height:68px;background:var(--brand-dark);padding:0 clamp(16px,4vw,48px);box-shadow:0 4px 18px rgba(8,82,155,.18)}
.topbar-left,.topbar-right{gap:16px}
.topbar-left strong{font-size:15px}
.topbar-home,.teacher-home{display:flex;align-items:center;border-radius:8px;transition:background .16s,transform .16s}
.topbar-home:hover,.teacher-home:hover{background:rgba(255,255,255,.14);transform:translateY(-1px)}
.topbar-home:focus-visible,.teacher-home:focus-visible{outline:3px solid rgba(255,255,255,.7);outline-offset:3px}
.topbar-logo{height:35px;width:auto;object-fit:contain;padding:4px 8px;border-radius:6px;background:var(--brand-dark)}
.top-week{padding:8px 12px;border:1px solid rgba(255,255,255,.28);border-radius:8px;background:rgba(255,255,255,.1)}
.admin-layout{grid-template-columns:224px minmax(0,1fr);min-height:calc(100vh - 68px)}
.sidebar{padding:28px 14px;background:#fff;border-right:1px solid var(--line)}
.sidebar nav{gap:8px}
.sidebar a{min-height:46px;padding:11px 14px;border-radius:9px;color:#526b82;font-weight:700}
.sidebar a:hover{background:#edf6fd;color:var(--brand-dark)}
.sidebar .active{background:var(--brand);color:#fff;box-shadow:0 6px 13px rgba(8,120,209,.2)}
.admin-main{max-width:1540px;padding:36px clamp(18px,3vw,48px) 60px}
.admin-pageview{animation:pageIn .2s ease}
.pageview-title{margin-bottom:24px}
.pageview-title h1{margin-bottom:8px}
.admin-controlbar{border:1px solid #c6dced;border-radius:12px;background:#fff;box-shadow:var(--shadow);padding:16px 18px}
.week-selector{border-color:#b7d8ee;background:#f7fbff;color:var(--brand-dark);border-radius:9px}
.stats{gap:16px;margin:0 0 20px}
.stat{border-radius:14px;border-color:#d4e2ed;box-shadow:var(--shadow);padding:20px 18px 18px 66px}
.stat:before{content:none}
.stat-icon{position:absolute;left:17px;top:20px;display:grid!important;place-items:center;width:34px;height:34px;border-radius:10px;font-size:18px;font-weight:900}.stat-icon-chosen{background:#e5f7ed;color:#168249}.stat-icon-waiting{background:#fff3df;color:#b36b00}.stat-icon-lessons{background:#e7f3fd;color:#0878d1}.stat-icon-capacity{background:#eeeafd;color:#6846c7}
.stat b{color:var(--brand-dark)}
.overview-card,.status-info-card,.week-page-card{border-radius:16px}
.profile-overview{border-color:#d4e2ed;border-radius:11px}
.profile-overview-row.head{background:#f2f8fd;color:#526d84}
.settings-tabs{border-color:#c9ddeb;background:#edf6fd;border-radius:11px;padding:6px}
.settings-tab{color:#4d6680;border-radius:8px}
.settings-tab.active{background:var(--brand);box-shadow:0 5px 12px rgba(8,120,209,.18)}
.dynamic-profile-row{padding:10px;border:1px solid #d9e5ee;border-radius:11px;background:#fbfdff;margin-bottom:10px}
.teacher-account-row,.week-override-row{border-color:#dce6ee}
.teacher-page{background:var(--bg)}
.teacher-header{background:var(--brand-dark);box-shadow:0 4px 18px rgba(8,82,155,.18);padding-left:clamp(16px,4vw,56px);padding-right:clamp(16px,4vw,56px)}
.teacher-header .aventus-logo-img{background:var(--brand-dark);border-radius:7px;padding:4px 7px}
.header-product{display:flex;flex-direction:column;gap:0}
.header-product small{font-size:10px;opacity:.7;letter-spacing:.1em;text-transform:uppercase}
.teacher-content{width:min(1220px,calc(100% - 40px));padding:48px 0 72px}
.teacher-title{margin-bottom:28px}
.teacher-group-card{border-radius:16px;padding:0;overflow:hidden;margin-bottom:20px}
.teacher-group-card .section-title-row{padding:20px 24px;background:#f4f9fd;border-bottom:1px solid #dbe7ef}
.teacher-group-card .section-title-row h2{color:var(--brand-dark)}
.teacher-group-card .info-strip{margin:16px 24px 0}
.teacher-attendance-list{margin:0;padding:8px 24px 14px;border:0}
.teacher-student-row{padding:14px 4px}
.attendance-toggle{min-width:132px;padding:9px 14px}
.attendance-toggle.is-present{background:#e8f8ef;border-color:#a8dfbd;color:#14743b}
.attendance-toggle.is-absent{background:#fff0f0;border-color:#efb4b4;color:#b42318}
.digital-presence-group,.attendance-card{border-color:#d5e3ed;border-radius:13px;box-shadow:0 4px 14px rgba(22,61,99,.05)}
.presenceTab.active{background:var(--brand);border-color:var(--brand)}
.presence-group-head{background:#f3f9fd}
.presence-count{background:var(--brand-soft);border-color:#b6dbf4;color:var(--brand-dark)!important}
@media(max-width:760px){
  .start-panel{border-radius:16px}
  .route-option{min-height:88px}
  .student-content,.teacher-content{width:calc(100% - 28px);padding-top:30px}
  .student-intro{padding:0;align-items:stretch}
  .active-week-box{min-width:0}
  .admin-main{padding-top:26px}
  .topbar-logo{display:none}
  .teacher-group-card .section-title-row{padding:18px}
  .teacher-attendance-list{padding:8px 18px 12px}
}
