/* Beyen Edu geconsolideerde Replit-componentlaag voor React + standalone shells. */
:root{
  --lvs-shell-header-height:64px;
  --lvs-shell-sidebar-width:var(--lvs-theme-sidebar-width,256px);
  --lvs-shared-bg:var(--lvs-theme-app-bg,#f9fafb);
  --lvs-shared-card-radius:var(--radius-2xl,1rem);
  --lvs-shared-control-radius:calc(var(--radius,.5rem) + 4px);
  --lvs-shared-card-shadow:var(--lvs-theme-card-shadow,var(--card-shadow,0 1px 3px #0000001a,0 1px 2px -1px #0000001a));
  --lvs-shared-modal-shadow:var(--modal-shadow,0 20px 50px #11182726);
  --lvs-page-x:32px;
  --lvs-page-y:32px;
  --lvs-page-gap:24px;
  --lvs-section-gap:16px;
  --lvs-card-padding:24px;
  --lvs-button-height:36px;
  --lvs-control-height:40px;
  --lvs-action-gap:8px;
}

/* Shell */
.lvs-standalone-app,.app{height:100dvh;min-height:0;display:flex;overflow:hidden;background:var(--lvs-shared-bg)}
.lvs-sidebar-shell,.sidebar{
  width:var(--lvs-shell-sidebar-width)!important;min-width:var(--lvs-shell-sidebar-width)!important;max-width:var(--lvs-shell-sidebar-width)!important;
  flex:0 0 var(--lvs-shell-sidebar-width)!important;height:100dvh;min-height:0;max-height:100dvh;display:flex;flex-direction:column;overflow:hidden;
  color:#fff;background:var(--lvs-theme-sidebar-background,linear-gradient(var(--lvs-theme-sidebar-start,#084c7c),var(--lvs-theme-sidebar-middle,#2f719a) 48%,var(--lvs-theme-sidebar-end,#9cb8cb)));
  box-shadow:0 1px 3px #0000001a;position:relative;z-index:20
}
.sidebar-head{padding:20px;border-bottom:1px solid #ffffff29;display:flex;align-items:center;justify-content:space-between;min-height:calc(var(--lvs-theme-logo-height,38px) + 40px);flex:0 0 auto}
.brand{display:flex;align-items:center;gap:8px;min-width:0}.brand img{width:auto;max-width:min(170px,calc(var(--lvs-shell-sidebar-width) - 72px));max-height:var(--lvs-theme-logo-height,38px);object-fit:contain;filter:drop-shadow(0 10px 18px #0000002e)}
.nav{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:16px 12px;display:flex;flex-direction:column;gap:20px}.nav-group{display:grid;gap:4px}
.nav-title{margin:0;padding:0 12px 8px;font-size:11px;line-height:1.35;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:#ffffff9e}
.lvs-nav-link,.nav button,.nav a{appearance:none;border:0;background:transparent;color:#ffffffe0;text-decoration:none;width:100%;padding:10px 12px;border-radius:var(--lvs-shared-control-radius);text-align:left;font-size:14px;line-height:20px;font-weight:600;display:flex;align-items:center;gap:12px;cursor:pointer;box-shadow:none}
.lvs-nav-link:hover,.nav button:hover,.nav a:hover{color:#fff;background:#ffffff24}
.lvs-nav-link-active,.nav button.active,.nav a.active{color:var(--lvs-theme-sidebar-start,#084c7c)!important;background:#fffffff0!important;box-shadow:var(--lvs-theme-sidebar-active-shadow,0 14px 30px #084c7c38)!important}
.nav-icon{width:20px;height:20px;min-width:20px;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}.nav-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-bottom{padding:16px;border-top:1px solid #ffffff29}.sidebar-user-card{display:flex;align-items:center;gap:12px;border:1px solid #fff3;background:#ffffff29;border-radius:var(--lvs-shared-card-radius);padding:12px;backdrop-filter:blur(10px)}
.user-avatar{width:32px;height:32px;min-width:32px;border-radius:999px;background:var(--color-blue-50,#eff6ff);color:var(--color-blue-700,#1d4ed8);font-size:12px;font-weight:700;display:grid;place-items:center}.sidebar-user-copy{flex:1;min-width:0}.sidebar-user-copy strong{display:block;color:#fff;font-size:14px;line-height:20px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-copy span{display:block;color:#ffffffb8;font-size:12px;line-height:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-logout{appearance:none;border:0;background:transparent;width:36px;height:36px;border-radius:var(--lvs-shared-control-radius);color:#ffffffbd;display:grid;place-items:center;padding:0}.sidebar-logout:hover{background:#ffffff24;color:#fff}.sidebar-logout .nav-icon{width:16px;height:16px}
.main{min-width:0;min-height:0;height:100dvh;flex:1;display:flex;flex-direction:column;overflow:hidden}.lvs-app-header,.topbar{height:var(--lvs-shell-header-height)!important;min-height:var(--lvs-shell-header-height)!important;max-height:var(--lvs-shell-header-height)!important;flex:0 0 var(--lvs-shell-header-height)!important;background:#fff;border-bottom:1px solid var(--color-gray-200,#e5e7eb);padding:0 var(--lvs-page-x);display:flex;align-items:center;justify-content:space-between;gap:20px;position:relative;z-index:10;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.topbar-left{display:flex;align-items:center;gap:12px;min-width:0}.topbar h1{font-size:20px;line-height:28px;font-weight:700;margin:0;color:var(--color-gray-900,#111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user{color:var(--color-gray-500,#6b7280);font-size:14px;line-height:20px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user strong{font-weight:600;color:var(--color-gray-700,#374151)}
.mobile-menu-button,.sidebar-close{display:none;appearance:none;border:0;background:transparent;color:var(--color-gray-600,#4b5563);width:40px;height:40px;border-radius:var(--lvs-shared-control-radius);padding:0;place-items:center}.mobile-menu-button:hover{background:var(--color-gray-100,#f3f4f6);color:var(--color-gray-900,#111827)}.sidebar-close{color:#ffffffc9}.sidebar-close:hover{background:#ffffff24;color:#fff}.sidebar-backdrop{display:none}
.content{width:100%;max-width:none;min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;margin:0;padding:var(--lvs-page-y) max(var(--lvs-page-x),calc((100% - var(--lvs-theme-content-max,1280px))/2 + var(--lvs-page-x)))}

/* Replit components — aliases are intentionally in this shared file only. */
.lvs-card,.card,.table-wrap{background:#fff;border:1px solid var(--color-gray-200,#e5e7eb);border-radius:var(--lvs-shared-card-radius);box-shadow:var(--lvs-shared-card-shadow)}
.lvs-card-pad,.card{padding:var(--lvs-card-padding)}
.lvs-primary-button,.btn.primary{appearance:none;border:1px solid var(--lvs-theme-accent,var(--color-blue-600,#2563eb));border-radius:var(--lvs-shared-control-radius);background:var(--lvs-theme-accent,var(--color-blue-600,#2563eb));color:#fff;padding:8px 16px;min-height:var(--lvs-button-height);font-size:14px;line-height:20px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;white-space:nowrap;box-shadow:none!important}
.lvs-primary-button:hover,.btn.primary:hover{background:var(--lvs-theme-accent-dark,var(--color-blue-700,#1d4ed8));border-color:var(--lvs-theme-accent-dark,var(--color-blue-700,#1d4ed8))}
.lvs-secondary-button,.lvs-button-secondary,.btn.secondary{appearance:none;border:1px solid var(--color-gray-200,#e5e7eb);border-radius:var(--lvs-shared-control-radius);background:#fff;color:var(--color-gray-700,#374151);padding:8px 16px;min-height:var(--lvs-button-height);font-size:14px;line-height:20px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;white-space:nowrap;box-shadow:none!important}.lvs-secondary-button:hover,.lvs-button-secondary:hover,.btn.secondary:hover{background:var(--color-gray-50,#f9fafb)}
.btn{appearance:none;border:1px solid transparent;border-radius:var(--lvs-shared-control-radius);padding:8px 16px;min-height:var(--lvs-button-height);font-size:14px;line-height:20px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;white-space:nowrap}.btn.danger{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.btn.danger:hover{background:#fee2e2}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}
.lvs-input,.field input,.field select,.field textarea{width:100%;min-height:var(--lvs-control-height);border:1px solid var(--color-gray-300,#d1d5db);border-radius:var(--radius,.5rem);background:#fff;color:var(--color-gray-900,#111827);padding:8px 12px;font-size:14px;line-height:20px;outline:0}.lvs-input::placeholder,.field input::placeholder,.field textarea::placeholder{color:var(--color-gray-400,#9ca3af)}.lvs-input:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--lvs-theme-accent,var(--color-blue-500,#3b82f6));box-shadow:0 0 0 2px color-mix(in srgb,var(--lvs-theme-accent,var(--color-blue-500,#3b82f6)) 22%,transparent);outline:0}.field{display:grid;gap:6px}.field label{font-size:14px;line-height:20px;font-weight:500;color:var(--color-gray-700,#374151)}
.table-wrap{overflow:auto}.table-wrap table{width:100%;border-collapse:collapse;min-width:760px}.table-wrap th,.table-wrap td{padding:16px 24px;text-align:left;border-bottom:1px solid var(--color-gray-100,#f3f4f6);font-size:14px;line-height:20px;vertical-align:middle}.table-wrap th{font-weight:500;text-transform:none;letter-spacing:0;color:var(--color-gray-500,#6b7280);background:var(--color-gray-50,#f9fafb)}.table-wrap tr:last-child td{border-bottom:0}.table-wrap tbody tr:hover{background:#f9fafb99}
.notice{padding:12px 16px;border-radius:var(--lvs-shared-control-radius);margin-bottom:16px;background:var(--lvs-theme-accent-soft,var(--color-blue-50,#eff6ff));color:var(--lvs-theme-accent-dark,var(--color-blue-700,#1d4ed8));border:1px solid color-mix(in srgb,var(--lvs-theme-accent,var(--color-blue-600,#2563eb)) 24%,#fff);font-size:14px;line-height:20px}.notice.error{background:#fef2f2;color:#b91c1c;border-color:#fecaca}
.modal{position:fixed;inset:0;background:#11182766;z-index:50;display:grid;place-items:center;padding:20px;overflow-y:auto;overscroll-behavior:contain}.modal-card{width:min(620px,100%);max-height:calc(100dvh - 40px);overflow-y:auto;background:#fff;border:1px solid var(--color-gray-200,#e5e7eb);border-radius:var(--lvs-shared-card-radius);padding:var(--lvs-card-padding);box-shadow:var(--lvs-shared-modal-shadow)}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.modal-head h3{margin:0;font-size:18px;line-height:28px;font-weight:600}.close{border:1px solid var(--color-gray-200,#e5e7eb);background:#fff;width:40px;height:40px;border-radius:var(--radius,.5rem);color:var(--color-gray-500,#6b7280);font-size:22px;line-height:1;display:grid;place-items:center}.close:hover{background:var(--color-gray-50,#f9fafb);color:var(--color-gray-900,#111827)}
/* : laat Tailwind responsive utilities (hidden md:flex / hidden lg:flex) zelf de visibility bepalen. */

@media(max-width:767px){
  :root{--lvs-page-x:16px;--lvs-page-y:16px;--lvs-card-padding:16px}
  .sidebar{position:fixed!important;left:0;top:0;bottom:0;width:min(var(--lvs-shell-sidebar-width),84vw)!important;min-width:min(var(--lvs-shell-sidebar-width),84vw)!important;max-width:min(var(--lvs-shell-sidebar-width),84vw)!important;flex-basis:min(var(--lvs-shell-sidebar-width),84vw)!important;transform:translateX(-102%);transition:transform .22s ease;box-shadow:0 20px 50px #11182740}.sidebar.open{transform:translateX(0)}#root .lvs-sidebar-shell:not(.sidebar){position:relative!important;left:auto!important;top:auto!important;bottom:auto!important;transform:none!important;transition:none!important;box-shadow:0 1px 3px #0000001a}.sidebar-close,.mobile-menu-button{display:grid}.sidebar-backdrop{display:block;position:fixed;inset:0;background:#0006;z-index:15;opacity:0;pointer-events:none;transition:opacity .2s ease}.sidebar-backdrop.open{opacity:1;pointer-events:auto}.lvs-app-header,.topbar{padding-inline:16px!important}.topbar h1{font-size:18px}.user{max-width:42vw;font-size:12px}.content{padding:16px!important}
}
@media(max-width:640px){.modal-card{padding:18px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Zoek/selectie binnen materiaalbeheer gebruikt vaste inline resultaten; geen zwevende comboboxlaag. */
.lvs-primary-button:disabled,.lvs-secondary-button:disabled,.lvs-button-secondary:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}
.lvs-ui-icon{width:18px;height:18px;min-width:18px;display:block}

/* route/component layouts share the same production stylesheet (no runtime <style> injection). */
.lvs-pl-mode-tabs{display:flex;gap:6px;margin-bottom:14px;padding:4px;border:1px solid var(--color-gray-200,#e5e7eb);border-radius:var(--lvs-shared-control-radius,.75rem);background:var(--color-gray-50,#f9fafb)}.lvs-pl-mode-tab{min-width:0;flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:calc(var(--lvs-shared-control-radius,.75rem) - 3px);padding:9px 12px;background:transparent;color:var(--color-gray-600,#4b5563);font-size:14px;font-weight:700;cursor:pointer}.lvs-pl-mode-tab:hover{background:#fff;color:var(--color-gray-900,#111827)}.lvs-pl-mode-tab.active{background:#fff;color:var(--lvs-theme-accent-dark,var(--color-blue-700,#1d4ed8));box-shadow:0 1px 3px rgba(15,23,42,.08)}.lvs-pl-mode-tab .lvs-ui-icon{width:17px;height:17px;flex:0 0 auto}.lvs-pl-body{padding:24px}.lvs-pl-step{border:1px solid var(--color-gray-200,#e5e7eb);border-radius:var(--lvs-shared-card-radius,1rem);background:#fff;padding:18px}.lvs-pl-step+.lvs-pl-step{margin-top:14px}.lvs-pl-step-title{display:flex;align-items:center;gap:10px;margin-bottom:12px}.lvs-pl-step-number{width:28px;height:28px;border-radius:999px;display:grid;place-items:center;background:var(--lvs-theme-accent-soft,var(--color-blue-50,#eff6ff));color:var(--lvs-theme-accent-dark,var(--color-blue-700,#1d4ed8));font-size:12px;font-weight:800}.lvs-pl-filter-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin-top:8px}.lvs-pl-selected{margin-top:10px;border:1px solid color-mix(in srgb,var(--lvs-theme-accent,var(--color-blue-600,#2563eb)) 22%,#fff);background:var(--lvs-theme-accent-soft,var(--color-blue-50,#eff6ff));border-radius:var(--lvs-shared-control-radius,.75rem);padding:12px}.lvs-pl-current{margin-top:12px;border:1px solid #bbf7d0;background:#f0fdf4;border-radius:var(--lvs-shared-control-radius,.75rem);padding:12px}.lvs-pl-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}.lvs-pl-upload{margin-top:14px;border:1px dashed var(--color-gray-300,#d1d5db);background:var(--color-gray-50,#f9fafb);border-radius:var(--lvs-shared-control-radius,.75rem);padding:14px}.lvs-pl-result-meta{font-size:12px;line-height:16px;color:var(--color-gray-500,#6b7280);margin-top:2px}.lvs-pl-status{display:inline-flex;align-items:center;border-radius:999px;padding:3px 7px;font-size:11px;line-height:14px;font-weight:700}.lvs-pl-status.yes{background:#dcfce7;color:#15803d}.lvs-pl-status.no{background:var(--color-gray-100,#f3f4f6);color:var(--color-gray-500,#6b7280)}
#lvs-class-create-v63{z-index:10000}#lvs-class-create-v63 .lvs-v63-dialog{max-height:calc(100dvh - 2rem);overflow:auto}#lvs-class-create-v63 .lvs-v63-icon svg{width:1rem;height:1rem}#lvs-class-create-v63 .lvs-v63-students{max-height:15rem;overflow:auto}#lvs-class-create-v63 .lvs-v63-new-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.35fr) 2.5rem;gap:.6rem;align-items:end}
#lvs-admin-platform-control .lvs-theme-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem}#lvs-admin-platform-control .lvs-theme-preview-label{letter-spacing:.14em}
/* Remote Inter uses font-display: optional so a slow font never swaps in late and shifts the shell. */
@media(min-width:1280px){#lvs-admin-platform-control .lvs-theme-layout{grid-template-columns:minmax(0,1fr) 340px}}
@media(max-width:760px){#lvs-class-create-v63 .lvs-v63-new-row{grid-template-columns:1fr 1fr}#lvs-class-create-v63 .lvs-v63-new-row .lvs-v63-parent{grid-column:1/-1}#lvs-class-create-v63 .lvs-v63-new-row .lvs-v63-remove{grid-column:2;justify-self:end}}
@media(max-width:640px){.lvs-pl-body{padding:16px}.lvs-pl-step{padding:14px}.lvs-pl-filter-grid{grid-template-columns:1fr}}


/* standalone pagina's hebben functionele .hidden states; scope die zodat React responsive utilities niet worden overschreven. */
.lvs-standalone-app .hidden,
body[data-lvs-shell-role] .modal.hidden,
body[data-lvs-shell-role] [data-page].hidden {
  display: none !important;
}

/* SPA-islands gebruiken native hidden-attributen; modal/card CSS mag die niet overrulen. */
#lvs-admin-organisaties-island [hidden],
#lvs-docent-moduletoegang-island [hidden] { display: none !important; }

/* modals staan buiten .lvs-standalone-app. Houd alleen de modal-state
   globaal hard verborgen; dit raakt React responsive utilities zoals hidden md:flex niet. */
.modal.hidden,
.modal[aria-hidden="true"] {
  display: none !important;
}

/* slimme bulk materiaalflow */
.lvs-pl-dropzone{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;border:1px dashed var(--color-gray-300,#d1d5db);border-radius:var(--lvs-shared-control-radius,.75rem);background:#fff;padding:14px;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}
.lvs-pl-dropzone>.lvs-ui-icon{width:24px;height:24px;color:var(--lvs-theme-accent-dark,var(--color-blue-700,#1d4ed8))}
.lvs-pl-dropzone>div{min-width:0;display:flex;flex-direction:column;gap:2px}.lvs-pl-dropzone strong{font-size:14px;color:var(--color-gray-900,#111827)}.lvs-pl-dropzone span{font-size:12px;color:var(--color-gray-500,#6b7280)}
.lvs-pl-dropzone.is-dragging{border-color:var(--lvs-theme-accent,var(--color-blue-600,#2563eb));background:var(--lvs-theme-accent-soft,var(--color-blue-50,#eff6ff));box-shadow:0 0 0 3px color-mix(in srgb,var(--lvs-theme-accent,var(--color-blue-600,#2563eb)) 12%,transparent)}
.lvs-pl-file-list{margin-top:12px;border:1px solid var(--color-gray-200,#e5e7eb);border-radius:var(--lvs-shared-control-radius,.75rem);overflow:hidden;background:#fff}.lvs-pl-file-list-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;background:var(--color-gray-50,#f9fafb);border-bottom:1px solid var(--color-gray-200,#e5e7eb);font-size:12px;font-weight:700;color:var(--color-gray-600,#4b5563)}
.lvs-pl-file-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:9px 11px;border-top:1px solid var(--color-gray-100,#f3f4f6)}.lvs-pl-file-row:first-of-type{border-top:0}.lvs-pl-file-name{min-width:0;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-gray-800,#1f2937)}.lvs-pl-file-name .lvs-ui-icon{width:16px;height:16px;flex:0 0 auto;color:var(--color-gray-500,#6b7280)}.lvs-pl-file-name>span{min-width:0;overflow-wrap:anywhere}.lvs-pl-file-size{font-size:12px;color:var(--color-gray-500,#6b7280);white-space:nowrap}
.lvs-inline-action{border:0;background:transparent;color:var(--lvs-theme-accent-dark,var(--color-blue-700,#1d4ed8));font-size:12px;font-weight:700;cursor:pointer}.lvs-icon-action{width:30px;height:30px;border:1px solid var(--color-gray-200,#e5e7eb);border-radius:9px;background:#fff;color:var(--color-gray-500,#6b7280);display:grid;place-items:center;cursor:pointer}.lvs-icon-action:hover{background:var(--color-gray-50,#f9fafb);color:var(--color-red-600,#dc2626)}.lvs-icon-action .lvs-ui-icon{width:15px;height:15px}
.lvs-pl-upload-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.lvs-pl-upload-footer>p{min-width:0;margin:0}.lvs-pl-upload-footer>button{flex:0 0 auto}
.lvs-pl-bulk-map{margin-top:16px;border-top:1px solid var(--color-gray-200,#e5e7eb);padding-top:16px}.lvs-pl-bulk-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:10px}.lvs-pl-bulk-head>div:first-child{min-width:0;display:flex;flex-direction:column;gap:3px}.lvs-pl-bulk-head strong{font-size:14px;color:var(--color-gray-900,#111827)}.lvs-pl-bulk-head span{font-size:12px;color:var(--color-gray-500,#6b7280)}.lvs-pl-bulk-tools{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;flex:0 0 auto}
.lvs-pl-map-row{display:grid;grid-template-columns:minmax(180px,.85fr) minmax(260px,1.15fr);gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--color-gray-100,#f3f4f6)}.lvs-pl-map-row.success{opacity:.72}.lvs-pl-map-row.error{background:#fef2f2;margin:0 -8px;padding:10px 8px;border-radius:10px}.lvs-pl-map-file{min-width:0;display:flex;flex-direction:column;gap:2px}.lvs-pl-map-file strong{font-size:13px;color:var(--color-gray-900,#111827);overflow-wrap:anywhere}.lvs-pl-map-file span{font-size:11px;color:var(--color-gray-500,#6b7280);overflow-wrap:anywhere}.lvs-pl-map-select-wrap{min-width:0}.lvs-pl-map-select{width:100%;min-width:0}.lvs-pl-map-warning{display:block;margin-top:4px;font-size:11px;font-weight:600;color:#b45309}.lvs-pl-map-alert{margin-top:10px;border:1px solid #fed7aa;background:#fff7ed;color:#9a3412;border-radius:10px;padding:9px 11px;font-size:12px;font-weight:600}.lvs-pl-rejected{margin-top:10px;border:1px solid #fecaca;background:#fff;border-radius:10px;padding:9px 11px;color:#991b1b;font-size:12px}.lvs-pl-rejected summary{cursor:pointer;font-weight:700}.lvs-pl-rejected>div{display:flex;flex-direction:column;gap:2px;padding-top:8px}.lvs-pl-rejected>div+div{border-top:1px solid #fee2e2;margin-top:8px}
@media(max-width:720px){.lvs-pl-dropzone{grid-template-columns:auto minmax(0,1fr)}.lvs-pl-dropzone>button{grid-column:1/-1;width:100%}.lvs-pl-upload-footer,.lvs-pl-bulk-head{align-items:stretch;flex-direction:column}.lvs-pl-upload-footer>button,.lvs-pl-bulk-tools>button{width:100%;justify-content:center}.lvs-pl-bulk-tools{display:grid;grid-template-columns:1fr}.lvs-pl-map-row{grid-template-columns:1fr;gap:7px}.lvs-pl-file-row{grid-template-columns:minmax(0,1fr) auto}.lvs-pl-file-size{display:none}}


/* productconsolidatie fase 1.
   Geen redesign: bestaande waarden zijn als tokens gecentraliseerd en oude componentvarianten
   krijgen alleen dezelfde ritmes, controlhoogtes en focusgedrag. */
.lvs-page-frame{
  width:100%;
  min-width:0;
  box-sizing:border-box;
}
.lvs-page-frame > *{min-width:0}
.lvs-page-header{
  width:100%;
  min-width:0;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:var(--lvs-section-gap);
}
.lvs-page-title-group{min-width:0}
.lvs-page-title-group > h1:first-child,.lvs-page-title-group > h2:first-child{margin-top:0}
.lvs-page-actions,.lvs-control-row{
  min-width:0;
  display:flex;
  align-items:center;
  gap:var(--lvs-action-gap);
  flex-wrap:wrap;
}
.lvs-action-control{
  min-height:var(--lvs-button-height)!important;
  border-radius:var(--lvs-shared-control-radius)!important;
}
.lvs-action-control svg{flex:0 0 auto}
.lvs-icon-control{
  width:40px;
  min-width:40px;
  height:40px;
  min-height:40px;
  display:inline-grid;
  place-items:center;
  padding:0!important;
  border-radius:var(--lvs-shared-control-radius)!important;
}
.lvs-surface-card{min-width:0}
.lvs-page-frame table{font-variant-numeric:tabular-nums}
.empty{
  text-align:center;
  padding:36px 24px!important;
  color:var(--color-gray-500,#6b7280)!important;
  font-size:14px;
  line-height:20px;
}

/* Eén focusring voor dezelfde controls in React en standalone. */
.lvs-action-control:focus-visible,.lvs-icon-control:focus-visible,
.btn:focus-visible,.lvs-primary-button:focus-visible,.lvs-secondary-button:focus-visible,.lvs-button-secondary:focus-visible{
  outline:3px solid color-mix(in srgb,var(--lvs-theme-accent,var(--color-blue-600,#2563eb)) 18%,transparent);
  outline-offset:2px;
}

/* Standalone page-head volgt exact dezelfde page-headerlogica. */
.lvs-standalone-app .page-head{align-items:flex-start}
.lvs-standalone-app .page-head > div:first-child{min-width:0}

@media(max-width:767px){
  .lvs-page-header{flex-direction:column}
  .lvs-page-actions{width:100%}
  .lvs-page-actions > .lvs-action-control:not(.lvs-icon-control){max-width:100%}
  .lvs-control-row{width:100%}
}

/* Admin UX & workflow consolidation.
   Zelfde Beyen Edu styling; alleen ritme, structuur en responsief gedrag zijn gelijkgetrokken. */
body[data-lvs-admin-consolidated="true"] .lvs-admin-page{
  display:flex;
  flex-direction:column;
  gap:var(--lvs-page-gap);
}
body[data-lvs-admin-consolidated="true"] .lvs-admin-page[class*="space-y-"] > :not([hidden]) ~ :not([hidden]){
  margin-top:0!important;
}
body[data-lvs-admin-consolidated="true"] .lvs-admin-page-head{
  width:100%;
  min-width:0;
  align-items:flex-end;
  margin:0!important;
}
body[data-lvs-admin-consolidated="true"] .lvs-admin-duplicate-title-group{display:none}
body[data-lvs-admin-consolidated="true"] .lvs-admin-page-head-compact{justify-content:flex-end}
body[data-lvs-admin-consolidated="true"] .lvs-admin-page-head-empty{display:none}
body[data-lvs-admin-consolidated="true"] .lvs-admin-page-actions{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:var(--lvs-action-gap);
  flex-wrap:wrap;
}
body[data-lvs-admin-consolidated="true"] .lvs-admin-toolbar{
  min-width:0;
  display:flex;
  align-items:center;
  gap:var(--lvs-action-gap);
  flex-wrap:wrap;
}
body[data-lvs-admin-consolidated="true"] .lvs-admin-toolbar > *{min-width:0}
body[data-lvs-admin-consolidated="true"] .lvs-admin-filter-control{
  min-height:var(--lvs-control-height);
}
body[data-lvs-admin-consolidated="true"] .lvs-admin-feedback{
  margin:0!important;
}
body[data-lvs-admin-consolidated="true"] .lvs-admin-surface{
  min-width:0;
}
body[data-lvs-admin-consolidated="true"] .lvs-admin-table-shell{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:auto!important;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
}
body[data-lvs-admin-consolidated="true"] .lvs-admin-table{
  width:100%;
  font-variant-numeric:tabular-nums;
}
body[data-lvs-admin-consolidated="true"] .lvs-admin-table th{
  white-space:nowrap;
}
body[data-lvs-admin-consolidated="true"] .lvs-admin-table td{
  vertical-align:middle;
}
body[data-lvs-admin-consolidated="true"] .lvs-admin-row-actions-cell{
  white-space:normal;
}
body[data-lvs-admin-consolidated="true"] .lvs-admin-row-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
body[data-lvs-admin-consolidated="true"] .lvs-admin-pagination{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
body[data-lvs-admin-consolidated="true"] .lvs-admin-tabs{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}
body[data-lvs-admin-consolidated="true"] .lvs-admin-tab{
  min-height:var(--lvs-control-height);
  flex:0 0 auto;
}
body[data-lvs-admin-consolidated="true"] .lvs-admin-form-panel{
  min-width:0;
}
body[data-lvs-admin-consolidated="true"] .lvs-admin-form-panel input,
body[data-lvs-admin-consolidated="true"] .lvs-admin-form-panel select,
body[data-lvs-admin-consolidated="true"] .lvs-admin-form-panel textarea{
  min-width:0;
  max-width:100%;
}
body[data-lvs-admin-consolidated="true"] .lvs-admin-modal-backdrop{
  padding:16px;
  overflow-y:auto;
  overscroll-behavior:contain;
}
body[data-lvs-admin-consolidated="true"] .lvs-admin-modal-dialog{
  width:100%;
  max-height:calc(100dvh - 32px);
  min-width:0;
  overflow:auto;
  overscroll-behavior:contain;
}
body[data-lvs-admin-consolidated="true"] .lvs-admin-modal-head{
  position:relative;
  min-width:0;
}
body[data-lvs-admin-consolidated="true"] .lvs-admin-modal-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:var(--lvs-action-gap);
  flex-wrap:wrap;
}

@media(max-width:767px){
  body[data-lvs-admin-consolidated="true"] .lvs-admin-page{
    gap:18px;
  }
  body[data-lvs-admin-consolidated="true"] .lvs-admin-page-head{
    align-items:stretch;
  }
  body[data-lvs-admin-consolidated="true"] .lvs-admin-page-actions,
  body[data-lvs-admin-consolidated="true"] .lvs-admin-toolbar{
    width:100%;
    justify-content:flex-start;
  }
  body[data-lvs-admin-consolidated="true"] .lvs-admin-page-actions > form,
  body[data-lvs-admin-consolidated="true"] .lvs-admin-toolbar > form{
    width:100%;
    max-width:100%!important;
  }
  body[data-lvs-admin-consolidated="true"] .lvs-admin-page-actions input[type="search"],
  body[data-lvs-admin-consolidated="true"] .lvs-admin-page-actions input[placeholder*="Zoek" i],
  body[data-lvs-admin-consolidated="true"] .lvs-admin-toolbar input,
  body[data-lvs-admin-consolidated="true"] .lvs-admin-toolbar select{
    width:100%;
    max-width:100%;
  }
  body[data-lvs-admin-consolidated="true"] .lvs-admin-table-wide{
    min-width:720px;
  }
  body[data-lvs-admin-consolidated="true"] .lvs-admin-pagination{
    justify-content:space-between;
  }
  body[data-lvs-admin-consolidated="true"] .lvs-admin-modal-backdrop{
    padding:8px;
    align-items:flex-start!important;
  }
  body[data-lvs-admin-consolidated="true"] .lvs-admin-modal-dialog{
    max-height:calc(100dvh - 16px);
  }
  body[data-lvs-admin-consolidated="true"] .lvs-admin-modal-actions > button,
  body[data-lvs-admin-consolidated="true"] .lvs-admin-modal-actions > a{
    min-width:0;
  }
}

/* Docent UX & workflow consolidation.
   Dezelfde Beyen Edu componenttaal; alleen page-flow, controls, tabellen, tabs en modals worden gelijkgetrokken. */
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-page{
  display:flex;
  flex-direction:column;
  gap:var(--lvs-page-gap);
}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-page[class*="space-y-"] > :not([hidden]) ~ :not([hidden]){
  margin-top:0!important;
}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-page-head{
  width:100%;
  min-width:0;
  align-items:flex-end;
  margin:0!important;
}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-duplicate-title-group{display:none}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-page-head-compact{justify-content:flex-end}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-page-head-empty{display:none}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-page-actions{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:var(--lvs-action-gap);
  flex-wrap:wrap;
}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-toolbar{
  min-width:0;
  display:flex;
  align-items:center;
  gap:var(--lvs-action-gap);
  flex-wrap:wrap;
}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-toolbar > *{min-width:0}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-filter-control{min-height:var(--lvs-control-height)}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-feedback{margin:0!important}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-table-shell{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:auto!important;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-table{
  width:100%;
  font-variant-numeric:tabular-nums;
}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-table th{white-space:nowrap}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-table td{vertical-align:middle}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-row-actions-cell{white-space:normal}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-row-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-pagination{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-tabs,
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-view-switch{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
  scrollbar-width:thin;
}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-tab,
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-view-switch-item{
  min-height:var(--lvs-control-height);
  flex:0 0 auto;
}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-form-panel{min-width:0}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-form-panel input,
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-form-panel select,
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-form-panel textarea{
  min-width:0;
  max-width:100%;
}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-back-action{
  width:max-content;
  max-width:100%;
}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-modal-backdrop{
  padding:16px;
  overflow-y:auto;
  overscroll-behavior:contain;
}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-modal-dialog{
  width:100%;
  max-height:calc(100dvh - 32px);
  min-width:0;
  overflow:auto;
  overscroll-behavior:contain;
}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-modal-head{position:relative;min-width:0}
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-modal-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:var(--lvs-action-gap);
  flex-wrap:wrap;
}
/* Agenda en Planning beheren blijven visueel exact dezelfde bestaande segmented control. */
body[data-lvs-teacher-consolidated="true"] .lvs-teacher-view-switch > *{white-space:nowrap}

@media(max-width:767px){
  body[data-lvs-teacher-consolidated="true"] .lvs-teacher-page{gap:18px}
  body[data-lvs-teacher-consolidated="true"] .lvs-teacher-page-head{align-items:stretch}
  body[data-lvs-teacher-consolidated="true"] .lvs-teacher-page-actions,
  body[data-lvs-teacher-consolidated="true"] .lvs-teacher-toolbar{
    width:100%;
    justify-content:flex-start;
  }
  body[data-lvs-teacher-consolidated="true"] .lvs-teacher-page-actions > form,
  body[data-lvs-teacher-consolidated="true"] .lvs-teacher-toolbar > form{
    width:100%;
    max-width:100%!important;
  }
  body[data-lvs-teacher-consolidated="true"] .lvs-teacher-page-actions input[type="search"],
  body[data-lvs-teacher-consolidated="true"] .lvs-teacher-page-actions input[placeholder*="Zoek" i],
  body[data-lvs-teacher-consolidated="true"] .lvs-teacher-toolbar input,
  body[data-lvs-teacher-consolidated="true"] .lvs-teacher-toolbar select{
    width:100%;
    max-width:100%;
  }
  body[data-lvs-teacher-consolidated="true"] .lvs-teacher-table-wide{min-width:720px}
  body[data-lvs-teacher-consolidated="true"] .lvs-teacher-pagination{justify-content:space-between}
  body[data-lvs-teacher-consolidated="true"] .lvs-teacher-modal-backdrop{padding:8px;align-items:flex-start!important}
  body[data-lvs-teacher-consolidated="true"] .lvs-teacher-modal-dialog{max-height:calc(100dvh - 16px)}
  body[data-lvs-teacher-consolidated="true"] .lvs-teacher-modal-actions > button,
  body[data-lvs-teacher-consolidated="true"] .lvs-teacher-modal-actions > a{min-width:0}
}


/* Organisatie UX & workflow consolidation.
   Zelfde Beyen Edu styling; page-flow, acties, formulieren, tabellen en modals volgen nu hetzelfde ritme als Admin/Docent. */
body[data-lvs-organization-consolidated="true"] .lvs-organization-page{
  display:flex;
  flex-direction:column;
  gap:var(--lvs-page-gap);
}
body[data-lvs-organization-consolidated="true"] .lvs-organization-page > .page-head,
body[data-lvs-organization-consolidated="true"] .lvs-organization-page > .section-title{
  margin:0!important;
}
body[data-lvs-organization-consolidated="true"] .lvs-organization-page > .section-title + .table-wrap{
  margin-top:-12px;
}
body[data-lvs-organization-consolidated="true"] .lvs-organization-page .dashboard-summary-grid{
  margin-top:0;
}
body[data-lvs-organization-consolidated="true"] .lvs-organization-page .student-toolbar-card{
  margin-bottom:0;
}
body[data-lvs-organization-consolidated="true"] .lvs-organization-page-head{
  width:100%;
  min-width:0;
  align-items:flex-end;
  justify-content:flex-end;
}
body[data-lvs-organization-consolidated="true"] .lvs-organization-duplicate-title-group{display:none}
body[data-lvs-organization-consolidated="true"] .lvs-organization-page-head-compact{justify-content:flex-end}
body[data-lvs-organization-consolidated="true"] .lvs-organization-page-head-empty{display:none}
body[data-lvs-organization-consolidated="true"] .lvs-organization-page-actions{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:var(--lvs-action-gap);
  flex-wrap:wrap;
}
body[data-lvs-organization-consolidated="true"] .lvs-organization-toolbar{
  min-width:0;
  display:grid;
  gap:var(--lvs-section-gap);
}
body[data-lvs-organization-consolidated="true"] .lvs-organization-filter-control{
  min-width:0;
  min-height:var(--lvs-control-height);
}
body[data-lvs-organization-consolidated="true"] .lvs-organization-form-panel,
body[data-lvs-organization-consolidated="true"] .lvs-organization-form-panel > *{
  min-width:0;
}
body[data-lvs-organization-consolidated="true"] .lvs-organization-table-shell{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:auto!important;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
}
body[data-lvs-organization-consolidated="true"] .lvs-organization-table{
  width:100%;
  font-variant-numeric:tabular-nums;
}
body[data-lvs-organization-consolidated="true"] .lvs-organization-table th{white-space:nowrap}
body[data-lvs-organization-consolidated="true"] .lvs-organization-table td{vertical-align:middle}
body[data-lvs-organization-consolidated="true"] .lvs-organization-row-actions-cell{white-space:normal}
body[data-lvs-organization-consolidated="true"] .lvs-organization-row-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
body[data-lvs-organization-consolidated="true"] .lvs-organization-modal-backdrop{
  padding:16px;
  overflow-y:auto;
  overscroll-behavior:contain;
}
body[data-lvs-organization-consolidated="true"] .lvs-organization-modal-dialog{
  width:min(560px,100%);
  max-height:calc(100dvh - 32px);
  min-width:0;
  overflow:auto;
  overscroll-behavior:contain;
}
body[data-lvs-organization-consolidated="true"] .lvs-organization-modal-head{min-width:0}
body[data-lvs-organization-consolidated="true"] .lvs-organization-modal-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:var(--lvs-action-gap);
  flex-wrap:wrap;
}
body[data-lvs-organization-consolidated="true"] #teacherFormCard.hidden,
body[data-lvs-organization-consolidated="true"] #classFormCard.hidden,
body[data-lvs-organization-consolidated="true"] #allocationFormCard.hidden{display:none!important}

@media(max-width:767px){
  body[data-lvs-organization-consolidated="true"] .lvs-organization-page{gap:18px}
  body[data-lvs-organization-consolidated="true"] .lvs-organization-page-head{align-items:stretch}
  body[data-lvs-organization-consolidated="true"] .lvs-organization-page-actions{width:100%;justify-content:flex-start}
  body[data-lvs-organization-consolidated="true"] .lvs-organization-page-actions > button,
  body[data-lvs-organization-consolidated="true"] .lvs-organization-page-actions > a{width:100%;justify-content:center}
  body[data-lvs-organization-consolidated="true"] .lvs-organization-table-wide{min-width:720px}
  body[data-lvs-organization-consolidated="true"] .lvs-organization-modal-backdrop{padding:8px;align-items:flex-start!important}
  body[data-lvs-organization-consolidated="true"] .lvs-organization-modal-dialog{max-height:calc(100dvh - 16px)}
  body[data-lvs-organization-consolidated="true"] .lvs-organization-modal-actions{align-items:stretch;flex-direction:column-reverse}
  body[data-lvs-organization-consolidated="true"] .lvs-organization-modal-actions > button{width:100%}
}

/* Ouder UX & workflow consolidation.
   Zelfde styling als de rest; alleen pagina-as, controls, oppervlakken, ziekmeldflow en mobiel gedrag zijn gelijkgetrokken. */
body[data-lvs-parent-consolidated="true"] .lvs-parent-page{
  width:100%;
  max-width:var(--lvs-theme-content-max,1280px);
  margin-left:auto;
  margin-right:auto;
  display:flex;
  flex-direction:column;
  gap:var(--lvs-page-gap);
}
body[data-lvs-parent-consolidated="true"] .lvs-parent-page[class*="space-y-"] > :not([hidden]) ~ :not([hidden]){
  margin-top:0!important;
}
body[data-lvs-parent-consolidated="true"] .lvs-parent-page-head{
  width:100%;
  min-width:0;
  align-items:flex-end;
  margin:0!important;
}
body[data-lvs-parent-consolidated="true"] .lvs-parent-duplicate-title-group{display:none}
body[data-lvs-parent-consolidated="true"] .lvs-parent-page-head-compact{justify-content:flex-end}
body[data-lvs-parent-consolidated="true"] .lvs-parent-page-head-empty{display:none}
body[data-lvs-parent-consolidated="true"] .lvs-parent-page-actions{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:var(--lvs-action-gap);
  flex-wrap:wrap;
}
body[data-lvs-parent-consolidated="true"] .lvs-parent-surface{
  width:100%;
  max-width:none!important;
  min-width:0;
}
body[data-lvs-parent-consolidated="true"] .lvs-parent-toolbar{
  min-width:0;
  display:flex;
  align-items:center;
  gap:var(--lvs-action-gap);
  flex-wrap:wrap;
}
body[data-lvs-parent-consolidated="true"] .lvs-parent-toolbar > *{min-width:0}
body[data-lvs-parent-consolidated="true"] .lvs-parent-filter-control{min-height:var(--lvs-control-height)}
body[data-lvs-parent-consolidated="true"] .lvs-parent-feedback{margin:0!important}
body[data-lvs-parent-consolidated="true"] .lvs-parent-form-panel,
body[data-lvs-parent-consolidated="true"] .lvs-parent-form-panel > *{min-width:0}
body[data-lvs-parent-consolidated="true"] .lvs-parent-table-shell{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:auto!important;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
}
body[data-lvs-parent-consolidated="true"] .lvs-parent-table{width:100%;font-variant-numeric:tabular-nums}
body[data-lvs-parent-consolidated="true"] .lvs-parent-table th{white-space:nowrap}
body[data-lvs-parent-consolidated="true"] .lvs-parent-table td{vertical-align:middle}
body[data-lvs-parent-consolidated="true"] .lvs-parent-row-actions-cell{white-space:normal}
body[data-lvs-parent-consolidated="true"] .lvs-parent-row-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
body[data-lvs-parent-consolidated="true"] .lvs-parent-pagination{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
body[data-lvs-parent-consolidated="true"] .lvs-parent-switcher{
  min-width:0;
  max-width:min(100%,360px);
}
body[data-lvs-parent-consolidated="true"] .lvs-parent-switcher select{min-width:0;max-width:240px}
body[data-lvs-parent-consolidated="true"] .lvs-parent-absence-child-step{display:none!important}
body[data-lvs-parent-consolidated="true"] .lvs-parent-absence-grid{grid-template-columns:minmax(0,1fr)!important}
body[data-lvs-parent-consolidated="true"] .lvs-parent-modal-backdrop{
  padding:16px;
  overflow-y:auto;
  overscroll-behavior:contain;
}
body[data-lvs-parent-consolidated="true"] .lvs-parent-modal-dialog{
  width:100%;
  max-height:calc(100dvh - 32px);
  min-width:0;
  overflow:auto;
  overscroll-behavior:contain;
}
body[data-lvs-parent-consolidated="true"] .lvs-parent-modal-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:var(--lvs-action-gap);
  flex-wrap:wrap;
}
@media(min-width:640px){body[data-lvs-parent-consolidated="true"] .lvs-parent-dashboard-stats-no-memo{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:767px){
  body[data-lvs-parent-consolidated="true"] .lvs-parent-page{gap:18px}
  body[data-lvs-parent-consolidated="true"] .lvs-parent-page-head{align-items:stretch}
  body[data-lvs-parent-consolidated="true"] .lvs-parent-page-actions,
  body[data-lvs-parent-consolidated="true"] .lvs-parent-toolbar{width:100%;justify-content:flex-start}
  body[data-lvs-parent-consolidated="true"] .lvs-parent-toolbar input,
  body[data-lvs-parent-consolidated="true"] .lvs-parent-toolbar select{width:100%;max-width:100%}
  body[data-lvs-parent-consolidated="true"] .lvs-parent-pagination{justify-content:space-between}
  body[data-lvs-parent-consolidated="true"] .lvs-parent-table-wide{min-width:720px}
  body[data-lvs-parent-consolidated="true"] .lvs-parent-switcher{width:100%;max-width:min(100%,72vw)}
  body[data-lvs-parent-consolidated="true"] .lvs-parent-switcher select{max-width:100%}
  body[data-lvs-parent-consolidated="true"] .lvs-parent-modal-backdrop{padding:8px;align-items:flex-start!important}
  body[data-lvs-parent-consolidated="true"] .lvs-parent-modal-dialog{max-height:calc(100dvh - 16px)}
}

/* finale cross-role consistency.
   Admin, Docent, Organisatie en Ouder delen nu één laatste gedragslaag voor
   headers, toolbars, tabellen, paginering, feedback en modals. De bestaande
   Beyen Edu styling/tokens blijven leidend. */
.lvs-role-page{
  width:100%;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:var(--lvs-page-gap);
}
.lvs-role-page-head{
  width:100%;
  min-width:0;
  align-items:flex-end;
  margin:0!important;
}
.lvs-role-page-actions,
.lvs-role-toolbar{
  min-width:0;
  display:flex;
  align-items:center;
  gap:var(--lvs-action-gap);
  flex-wrap:wrap;
}
.lvs-role-page-actions{justify-content:flex-end}
.lvs-role-toolbar{justify-content:flex-start}
.lvs-role-toolbar > *{min-width:0}
.lvs-organization-toolbar.organization-filter-grid{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:14px;
}
.lvs-role-filter-control{
  min-width:0;
  min-height:var(--lvs-control-height);
  max-width:100%;
}
.lvs-role-feedback{margin:0!important}
.lvs-role-form-panel,
.lvs-role-form-panel > *{min-width:0}
.lvs-role-form-panel input,
.lvs-role-form-panel select,
.lvs-role-form-panel textarea{max-width:100%}
.lvs-role-table-shell{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:auto!important;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
}
.lvs-role-table{
  width:100%;
  font-variant-numeric:tabular-nums;
}
.lvs-role-table th{white-space:nowrap}
.lvs-role-table td{vertical-align:middle}
.lvs-role-row-actions-cell{white-space:normal}
.lvs-role-row-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.lvs-role-pagination{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.lvs-role-tabs{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
  scrollbar-width:thin;
}
.lvs-role-tab{
  min-height:var(--lvs-control-height);
  flex:0 0 auto;
}
.lvs-role-modal-backdrop{
  padding:16px;
  overflow-y:auto;
  overscroll-behavior:contain;
}
.lvs-role-modal-dialog{
  min-width:0;
  max-width:100%;
  max-height:calc(100dvh - 32px);
  overflow:auto;
  overscroll-behavior:contain;
}
.lvs-role-modal-head{min-width:0}
.lvs-role-modal-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:var(--lvs-action-gap);
  flex-wrap:wrap;
}

@media(max-width:767px){
  .lvs-role-page{gap:18px}
  .lvs-role-page-head{align-items:stretch}
  .lvs-role-page-actions,
  .lvs-role-toolbar{
    width:100%;
    justify-content:flex-start;
  }
  .lvs-role-page-actions > form,
  .lvs-role-toolbar > form{width:100%;max-width:100%!important}
  .lvs-role-page-actions > .lvs-action-control:not(.lvs-icon-control),
  .lvs-role-page-actions > button:not(.lvs-icon-control),
  .lvs-role-page-actions > a:not(.lvs-icon-control){width:100%;justify-content:center}
  .lvs-role-toolbar input,
  .lvs-role-toolbar select,
  .lvs-role-toolbar textarea{width:100%;max-width:100%}
  .lvs-organization-toolbar.organization-filter-grid{grid-template-columns:1fr}
  .lvs-role-pagination{justify-content:space-between}
  .lvs-admin-table-wide,
  .lvs-teacher-table-wide,
  .lvs-organization-table-wide,
  .lvs-parent-table-wide{min-width:720px}
  .lvs-role-modal-backdrop{padding:8px;align-items:flex-start!important}
  .lvs-role-modal-dialog{max-height:calc(100dvh - 16px)}
  .lvs-role-modal-actions{
    width:100%;
    align-items:stretch;
    flex-direction:column-reverse;
  }
  .lvs-role-modal-actions > button,
  .lvs-role-modal-actions > a{width:100%;min-width:0;justify-content:center}
}


/* mobile nav state: op mobiel bestaat er per state maar één actieve menu-control. */
@media(max-width:767px){
  body.lvs-mobile-menu-open .mobile-menu-button{display:none!important}
  body:not(.lvs-mobile-menu-open) .sidebar-close{visibility:hidden;pointer-events:none}
  body.lvs-mobile-menu-open .sidebar-close{visibility:visible;pointer-events:auto}
}

/* klas aanmaken: volledige leerlinggegevens zonder horizontaal afsnijden. */
#lvs-class-create-v63 .lvs-v63-new-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(150px,.8fr) 2.5rem}
#lvs-class-create-v63 .lvs-v63-parent-name{grid-column:1/2}
#lvs-class-create-v63 .lvs-v63-parent-email{grid-column:2/4}
#lvs-class-create-v63 .lvs-v63-remove{grid-column:4;grid-row:1;align-self:end}
@media(max-width:760px){
  #lvs-class-create-v63 .lvs-v63-new-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  #lvs-class-create-v63 .lvs-v63-parent-name{grid-column:auto}
  #lvs-class-create-v63 .lvs-v63-parent-email{grid-column:1/-1}
  #lvs-class-create-v63 .lvs-v63-remove{grid-column:2;grid-row:auto;justify-self:end}
}
@media(max-width:480px){
  #lvs-class-create-v63 .lvs-v63-new-row{grid-template-columns:1fr}
  #lvs-class-create-v63 .lvs-v63-parent-email,#lvs-class-create-v63 .lvs-v63-remove{grid-column:1}
}

/* Admin → Organisaties gebruikt dezelfde native kaart-/formulier-/tabeltaal als de andere adminpagina's. */
#lvs-admin-organisaties-island.lvs-admin-organizations-page{
  width:100%;
  max-width:var(--lvs-page-content-max,80rem);
  margin-left:auto;
  margin-right:auto;
  box-sizing:border-box;
}
#lvs-admin-organisaties-island .page-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin:0;
}
#lvs-admin-organisaties-island .page-head h2{
  margin:0;
  font-size:24px;
  line-height:32px;
  font-weight:700;
  color:var(--color-gray-900,#111827);
}
#lvs-admin-organisaties-island .lvs-admin-org-invite-panel{
  padding:20px;
}
#lvs-admin-organisaties-island .lvs-admin-org-section{
  width:100%;
  min-width:0;
}
#lvs-admin-organisaties-island .lvs-admin-org-section-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 12px;
}
#lvs-admin-organisaties-island .lvs-admin-org-section-title h3{
  margin:0;
  font-size:16px;
  line-height:24px;
  font-weight:600;
  color:var(--color-gray-900,#111827);
}
#lvs-admin-organisaties-island .lvs-admin-org-invite-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) auto;
  gap:12px;
  align-items:end;
}
#lvs-admin-organisaties-island .lvs-admin-org-invite-action{
  display:flex;
  align-items:flex-end;
}
#lvs-admin-organisaties-island .lvs-admin-org-invite-action .btn{
  min-height:40px;
}
#lvs-admin-organisaties-island .muted{
  margin-top:2px;
  color:var(--color-gray-500,#6b7280);
  font-size:12px;
  line-height:16px;
}
#lvs-admin-organisaties-island .badge{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:4px 9px;
  font-size:12px;
  line-height:16px;
  font-weight:600;
  background:var(--color-gray-100,#f3f4f6);
  color:var(--color-gray-600,#4b5563);
}
#lvs-admin-organisaties-island .badge.ok{background:#f0fdf4;color:#15803d}
#lvs-admin-organisaties-island .badge.warn{background:#fffbeb;color:#b45309}
#lvs-admin-organisaties-island .toolbar{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
  margin:0;
}
#lvs-admin-organisaties-island .table-wrap{width:100%;max-width:100%;min-width:0}
@media(max-width:1024px){
  #lvs-admin-organisaties-island .lvs-admin-org-invite-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #lvs-admin-organisaties-island .lvs-admin-org-invite-action{grid-column:1/-1;justify-content:flex-end}
}
@media(max-width:640px){
  #lvs-admin-organisaties-island .page-head{align-items:stretch;flex-direction:column}
  #lvs-admin-organisaties-island .lvs-admin-org-invite-panel{padding:16px}
  #lvs-admin-organisaties-island .lvs-admin-org-invite-grid{grid-template-columns:1fr}
  #lvs-admin-organisaties-island .lvs-admin-org-invite-action{grid-column:auto}
  #lvs-admin-organisaties-island .lvs-admin-org-invite-action .btn{width:100%}
}

/* Presentaties & bijlagen is een volwaardige admin-tab, geen modal. */
.lvs-pl-page{min-width:0;width:100%}
.lvs-pl-page.hidden{display:none!important}
.lvs-pl-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:16px}
.lvs-pl-page-head h2{margin:0;font-size:18px;line-height:28px;font-weight:700;color:var(--color-gray-900,#111827)}
.lvs-pl-page .lvs-pl-body{padding:0}
@media(max-width:640px){.lvs-pl-page-head{align-items:stretch}.lvs-pl-page .lvs-pl-step{padding:14px}}


/* V98 shell-control guard: generic UX classes mogen responsive menu-controls nooit zichtbaar forceren. */
@media(min-width:768px){
  #root button[aria-label="Menu openen"],
  #root button[aria-label="Menu sluiten"]{display:none!important}
}
@media(max-width:767px){
  #root button[aria-label="Menu openen"].lvs-icon-control,
  #root button[aria-label="Menu sluiten"].lvs-icon-control{width:auto;min-width:0;height:auto;min-height:0;padding:.5rem!important}
}

/* V99 — stabiele materiaalpickers: geen zwevende dropdowns of focus-afhankelijke menus. */
.lvs-pl-picker-search{position:relative;display:flex;align-items:center;min-width:0}
.lvs-pl-picker-search>span{position:absolute;left:12px;top:50%;transform:translateY(-50%);display:grid;place-items:center;color:var(--color-gray-400,#9ca3af);pointer-events:none;z-index:1}
.lvs-pl-picker-search>span .lvs-ui-icon{width:16px;height:16px}
.lvs-pl-picker-search>.lvs-input{width:100%;min-width:0;padding-left:36px}
.lvs-pl-picker-search.is-disabled{opacity:.62}
.lvs-pl-picker-results{margin-top:10px;border:1px solid var(--color-gray-200,#e5e7eb);border-radius:var(--lvs-shared-control-radius,.75rem);background:#fff;overflow:hidden;min-width:0}
.lvs-pl-picker-results.is-disabled{background:var(--color-gray-50,#f9fafb)}
.lvs-pl-picker-option{appearance:none;width:100%;min-width:0;border:0;border-bottom:1px solid var(--color-gray-100,#f3f4f6);background:#fff;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;color:var(--color-gray-900,#111827);cursor:pointer}
.lvs-pl-picker-option:last-of-type{border-bottom:0}
.lvs-pl-picker-option:hover,.lvs-pl-picker-option:focus-visible{background:var(--color-gray-50,#f9fafb);outline:0}
.lvs-pl-picker-option.is-selected{background:var(--lvs-theme-accent-soft,var(--color-blue-50,#eff6ff));box-shadow:inset 3px 0 0 var(--lvs-theme-accent,var(--color-blue-600,#2563eb))}
.lvs-pl-picker-option-main{min-width:0;display:grid;gap:2px}
.lvs-pl-picker-option-main strong{font-size:14px;line-height:20px;font-weight:600;overflow-wrap:anywhere}
.lvs-pl-picker-option-main span{font-size:12px;line-height:16px;color:var(--color-gray-500,#6b7280);overflow-wrap:anywhere}
.lvs-pl-picker-empty{padding:16px 12px;text-align:center;color:var(--color-gray-500,#6b7280);font-size:13px}
.lvs-pl-picker-footer{padding:8px 10px;background:var(--color-gray-50,#f9fafb);border-top:1px solid var(--color-gray-100,#f3f4f6);display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--color-gray-500,#6b7280);font-size:11px}
.lvs-pl-picker-footer>div{display:flex;gap:4px;flex:0 0 auto}
.lvs-pl-picker-page{appearance:none;border:1px solid var(--color-gray-200,#e5e7eb);background:#fff;color:var(--color-gray-600,#4b5563);border-radius:var(--radius,.5rem);padding:5px 9px;font-size:11px;font-weight:600;cursor:pointer}.lvs-pl-picker-page:hover{background:var(--color-gray-100,#f3f4f6)}.lvs-pl-picker-page:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:640px){.lvs-pl-picker-footer{align-items:flex-start;flex-direction:column}.lvs-pl-picker-footer>div{width:100%}.lvs-pl-picker-footer .lvs-pl-picker-page{flex:1;min-height:36px}}

/* Lesbeheer/materialen delen één expliciete native admin-container.
   De materialen-tab krijgt geen eigen max-width-context en de interne mode-tabs
   volgen hetzelfde compacte tabgedrag als de rest van de app. */
#root .lvs-lesbeheer-native-container{
  width:100%!important;
  max-width:var(--lvs-page-content-max,80rem)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box;
}
#root .lvs-lesbeheer-native-container > #lvs-pl-page,
#root #lvs-pl-page > .lvs-pl-page-head,
#root #lvs-pl-page > .lvs-pl-body,
#root #lvs-pl-page .lvs-pl-workspace,
#root #lvs-pl-page .lvs-pl-step{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
#root .lvs-lesbeheer-native-container > #lvs-pl-page{
  margin:0;
  align-self:stretch;
  /* V108 guard: deze interne materialenpagina mag nooit door de generieke
     admin-headerheuristiek als flex-header worden behandeld. */
  display:block!important;
}
#root #lvs-pl-page.lvs-page-header,
#root #lvs-pl-page.lvs-admin-page-head,
#root #lvs-pl-page.lvs-role-page-head{
  display:block!important;
  align-items:initial!important;
  justify-content:initial!important;
}
#root #lvs-pl-page .lvs-pl-workspace{display:block}
#root #lvs-pl-page .lvs-pl-mode-tabs[data-lvs-own-tabs]{
  width:max-content;
  max-width:100%;
  overflow-x:auto;
  overflow-y:hidden;
}
#root #lvs-pl-page .lvs-pl-mode-tabs[data-lvs-own-tabs]>.lvs-pl-mode-tab{
  flex:0 0 auto!important;
  min-width:148px;
}
@media(max-width:640px){
  #root #lvs-pl-page .lvs-pl-mode-tabs[data-lvs-own-tabs]{width:100%}
  #root #lvs-pl-page .lvs-pl-mode-tabs[data-lvs-own-tabs]>.lvs-pl-mode-tab{flex:1 1 0!important;min-width:0}
}
.lvs-pl-choice-summary{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px;
  border:1px solid var(--color-gray-200,#e5e7eb);
  border-radius:var(--lvs-shared-control-radius,.75rem);
  background:var(--color-gray-50,#f9fafb);
}
.lvs-pl-choice-copy{min-width:0;display:grid;gap:2px}
.lvs-pl-choice-copy strong{min-width:0;font-size:14px;line-height:20px;color:var(--color-gray-900,#111827);overflow-wrap:anywhere}
.lvs-pl-choice-copy span{min-width:0;font-size:12px;line-height:17px;color:var(--color-gray-500,#6b7280);overflow-wrap:anywhere}
.lvs-pl-choice-summary>.lvs-secondary-button{flex:0 0 auto}
.lvs-pl-choice-summary>.lvs-secondary-button .lvs-ui-icon:last-child{width:14px;height:14px}
.lvs-pl-choice-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;flex:0 0 auto}
.lvs-pl-chooser{
  margin-top:10px;
  border:1px solid var(--color-gray-200,#e5e7eb);
  border-radius:var(--lvs-shared-control-radius,.75rem);
  background:#fff;
  padding:12px;
  min-width:0;
}
.lvs-pl-chooser.hidden{display:none!important}
.lvs-pl-chooser .lvs-pl-picker-results{margin-top:10px;max-height:360px;overflow:auto;overscroll-behavior:contain}
.lvs-pl-empty-current{margin-top:12px;border:1px dashed var(--color-gray-200,#e5e7eb);background:var(--color-gray-50,#f9fafb);border-radius:var(--lvs-shared-control-radius,.75rem);padding:12px;font-size:13px;color:var(--color-gray-500,#6b7280)}
.lvs-pl-current-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.lvs-pl-actions-compact{margin-top:0;flex:0 0 auto}
.lvs-pl-map-choice{
  width:100%;min-width:0;min-height:42px;appearance:none;
  border:1px solid var(--color-gray-300,#d1d5db);background:#fff;
  border-radius:var(--lvs-shared-control-radius,.75rem);padding:8px 10px;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  color:var(--color-gray-800,#1f2937);text-align:left;cursor:pointer;
}
.lvs-pl-map-choice:hover{background:var(--color-gray-50,#f9fafb)}
.lvs-pl-map-choice:disabled{opacity:.6;cursor:not-allowed}
.lvs-pl-map-choice>span{min-width:0;display:grid;gap:1px}
.lvs-pl-map-choice strong{font-size:13px;line-height:18px;overflow-wrap:anywhere}
.lvs-pl-map-choice small{font-size:11px;line-height:15px;color:var(--color-gray-500,#6b7280);overflow-wrap:anywhere}
.lvs-pl-map-choice>.lvs-ui-icon{width:15px;height:15px;flex:0 0 auto;color:var(--color-gray-500,#6b7280)}
.lvs-pl-map-chooser{margin-top:8px;border:1px solid var(--color-gray-200,#e5e7eb);border-radius:var(--lvs-shared-control-radius,.75rem);background:#fff;padding:10px;box-shadow:0 8px 22px rgba(15,23,42,.08)}
.lvs-pl-map-choices{margin-top:8px;max-height:240px;overflow:auto;border:1px solid var(--color-gray-100,#f3f4f6);border-radius:10px;overscroll-behavior:contain}
.lvs-pl-map-choices>button{width:100%;appearance:none;border:0;border-bottom:1px solid var(--color-gray-100,#f3f4f6);background:#fff;padding:9px 10px;display:grid;gap:2px;text-align:left;cursor:pointer}
.lvs-pl-map-choices>button:last-child{border-bottom:0}
.lvs-pl-map-choices>button:hover,.lvs-pl-map-choices>button:focus-visible{background:var(--color-gray-50,#f9fafb);outline:0}
.lvs-pl-map-choices strong{font-size:12px;line-height:17px;color:var(--color-gray-900,#111827)}
.lvs-pl-map-choices span{font-size:11px;line-height:15px;color:var(--color-gray-500,#6b7280)}
.lvs-pl-map-chooser-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}
@media(max-width:640px){
  .lvs-pl-choice-summary,.lvs-pl-current-row{align-items:stretch;flex-direction:column}
  .lvs-pl-choice-summary>.lvs-secondary-button,.lvs-pl-choice-actions,.lvs-pl-choice-actions>*{width:100%;justify-content:center}
  .lvs-pl-actions-compact,.lvs-pl-actions-compact>*{width:100%;justify-content:center}
  .lvs-pl-chooser{padding:10px}
  .lvs-pl-chooser .lvs-pl-picker-results{max-height:300px}
}

/* V102 — Smart Slider group-import: één pakket, losse presentaties */
.lvs-pl-group-import-card{margin-top:14px;border:1px solid var(--color-gray-200,#e5e7eb);background:#fff;border-radius:var(--lvs-shared-card-radius,1rem);overflow:visible}
.lvs-pl-group-head,.lvs-pl-group-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px}
.lvs-pl-group-head{border-bottom:1px solid var(--color-gray-100,#f3f4f6)}
.lvs-pl-group-head>div:first-child{min-width:0;display:flex;flex-direction:column;gap:2px}
.lvs-pl-group-head strong{font-size:14px;color:var(--color-gray-900,#111827)}
.lvs-pl-group-head span{font-size:12px;color:var(--color-gray-500,#6b7280)}
.lvs-pl-group-list{display:flex;flex-direction:column}
.lvs-pl-group-row{display:grid;grid-template-columns:auto minmax(260px,1fr) minmax(260px,.9fr);gap:12px;align-items:center;padding:12px 16px;border-top:1px solid var(--color-gray-100,#f3f4f6)}
.lvs-pl-group-row:first-child{border-top:0}
.lvs-pl-group-row.success{background:#f0fdf4}.lvs-pl-group-row.error{background:#fef2f2}
.lvs-pl-group-check{align-self:start;padding-top:10px;display:inline-flex;cursor:pointer}.lvs-pl-group-check input{width:16px;height:16px;accent-color:var(--lvs-theme-accent,var(--color-blue-600,#2563eb))}
.lvs-pl-group-main{min-width:0;display:flex;flex-direction:column;gap:5px}
.lvs-pl-group-title-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.lvs-pl-group-name{width:100%;min-width:0}
.lvs-pl-group-meta,.lvs-pl-group-source{font-size:11px;line-height:16px;color:var(--color-gray-500,#6b7280);overflow-wrap:anywhere}
.lvs-pl-group-source{display:block}.lvs-pl-group-footer{border-top:1px solid var(--color-gray-100,#f3f4f6)}
.lvs-pl-group-chooser{margin-top:8px}
@media(max-width:900px){.lvs-pl-group-row{grid-template-columns:auto minmax(0,1fr)}.lvs-pl-group-row>.lvs-pl-map-select-wrap{grid-column:2}.lvs-pl-group-title-row{grid-template-columns:1fr}.lvs-pl-group-meta{justify-self:start}}
@media(max-width:720px){.lvs-pl-group-head,.lvs-pl-group-footer{align-items:stretch;flex-direction:column}.lvs-pl-group-head .lvs-pl-bulk-tools{display:grid;grid-template-columns:1fr}.lvs-pl-group-head .lvs-pl-bulk-tools>button,.lvs-pl-group-footer>button{width:100%;justify-content:center}.lvs-pl-group-row{grid-template-columns:auto minmax(0,1fr);padding:12px}.lvs-pl-group-row>.lvs-pl-map-select-wrap{grid-column:1/-1;margin-left:28px}}

/* V109 — teacher notes bulk import */
#lvs-pl-teacher-notes-panel{margin-top:14px}
.lvs-tn-card{border:1px solid var(--color-gray-200,#e5e7eb);border-radius:var(--lvs-shared-card-radius,1rem);background:#fff;overflow:hidden}
.lvs-tn-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 18px 14px;border-bottom:1px solid var(--color-gray-100,#f3f4f6)}
.lvs-tn-head h3{margin:2px 0 4px;font-size:18px;line-height:1.35;font-weight:800;color:var(--color-gray-900,#111827)}
.lvs-tn-head p{margin:0;max-width:760px;font-size:13px;line-height:1.55;color:var(--color-gray-500,#6b7280)}
.lvs-tn-eyebrow{display:block;font-size:11px;line-height:1.3;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--lvs-theme-accent-dark,var(--color-blue-700,#1d4ed8))}
.lvs-tn-summary{display:flex;flex-wrap:wrap;gap:8px;padding:12px 18px;background:var(--color-gray-50,#f9fafb);border-bottom:1px solid var(--color-gray-100,#f3f4f6)}
.lvs-tn-summary span{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border:1px solid var(--color-gray-200,#e5e7eb);border-radius:999px;background:#fff;font-size:11px;font-weight:800;color:var(--color-gray-600,#4b5563)}
.lvs-tn-summary .good{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.lvs-tn-summary .warn{border-color:#fde68a;background:#fffbeb;color:#a16207}.lvs-tn-summary .replace{border-color:#fed7aa;background:#fff7ed;color:#c2410c}
.lvs-tn-filters{padding:12px 18px;border-bottom:1px solid var(--color-gray-100,#f3f4f6)}
.lvs-tn-list{max-height:560px;overflow:auto}
.lvs-tn-row{display:grid;grid-template-columns:28px minmax(220px,.8fr) minmax(280px,1.2fr);gap:14px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--color-gray-100,#f3f4f6)}
.lvs-tn-row:last-child{border-bottom:0}.lvs-tn-row.review{background:#fffbeb}.lvs-tn-row.conflict{background:#fef2f2}.lvs-tn-row.done{background:#f0fdf4}
.lvs-tn-check{display:grid;place-items:center}.lvs-tn-check input{width:18px;height:18px;accent-color:var(--lvs-theme-accent,var(--color-blue-600,#2563eb))}
.lvs-tn-source{min-width:0}.lvs-tn-title{display:flex;align-items:center;gap:8px;min-width:0}.lvs-tn-title strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--color-gray-900,#111827)}
.lvs-tn-source>span{display:block;margin-top:3px;font-size:11px;color:var(--color-gray-500,#6b7280)}
.lvs-tn-badge{flex:0 0 auto;display:inline-flex;align-items:center;min-height:23px;padding:2px 7px;border-radius:999px;background:var(--color-gray-100,#f3f4f6);font-size:10px;font-weight:800;color:var(--color-gray-600,#4b5563)}
.lvs-tn-badge.auto{background:#eff6ff;color:#1d4ed8}.lvs-tn-badge.review{background:#fef3c7;color:#a16207}.lvs-tn-badge.conflict{background:#fee2e2;color:#b91c1c}.lvs-tn-badge.done{background:#dcfce7;color:#15803d}.lvs-tn-badge.matched{background:#f3f4f6;color:#374151}
.lvs-tn-map{min-width:0}.lvs-tn-map .lvs-input{width:100%}.lvs-tn-map small{display:block;margin-top:5px;font-size:11px;line-height:1.35}.lvs-tn-replace{color:#c2410c}.lvs-tn-error{color:#b91c1c}
.lvs-tn-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;border-top:1px solid var(--color-gray-100,#f3f4f6);background:#fff}.lvs-tn-footer>div{display:flex;flex-direction:column;gap:2px}.lvs-tn-footer strong{font-size:12px;color:var(--color-gray-900,#111827)}.lvs-tn-footer span{font-size:11px;color:var(--color-gray-500,#6b7280)}
@media(max-width:760px){.lvs-tn-head{padding:15px}.lvs-tn-summary,.lvs-tn-filters{padding-left:15px;padding-right:15px}.lvs-tn-row{grid-template-columns:24px minmax(0,1fr);padding:13px 15px}.lvs-tn-map{grid-column:2}.lvs-tn-footer{align-items:stretch;flex-direction:column;padding:14px 15px}.lvs-tn-footer .lvs-primary-button{width:100%;justify-content:center}}
.lvs-teacher-note-term{font-weight:700;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px;cursor:help}

/* V113 — docentcockpit presentatie + notes layout stabiliteit */
.lvs-teacher-lesson-detail{
  width:100%;
  max-width:96rem!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box;
}
.lvs-cockpit-presentation-section{overflow:visible!important}
.lvs-cockpit-presentation-body{
  container-type:inline-size;
  container-name:lvs-cockpit-presenter;
}
.lvs-cockpit-presentation-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:14px!important;
  align-items:start!important;
}
.lvs-cockpit-stage{
  position:relative;
  width:100%;
  min-width:0;
  min-height:0!important;
  aspect-ratio:3/2;
  background:#fff;
  overflow:hidden!important;
}
.lvs-cockpit-presentation-iframe{
  display:block;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  border:0!important;
  background:#fff;
}
.lvs-cockpit-notes-nav{
  min-width:0;
  min-height:0!important;
  max-height:none!important;
}
.lvs-cockpit-notes-nav>div:last-child{
  max-height:320px;
  overflow:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.lvs-cockpit-notes-nav button span.block{
  min-width:0;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
.lvs-cockpit-notes-nav button span.block:first-child{
  display:-webkit-box!important;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
  overflow:hidden!important;
  line-height:1.35;
}
.lvs-cockpit-notes-nav button span.block:nth-child(2){
  display:-webkit-box!important;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
  overflow:hidden!important;
  line-height:1.4;
}
.lvs-cockpit-active-note{
  min-width:0;
  overflow:hidden;
}
.lvs-cockpit-active-note .prose{
  overflow-wrap:anywhere;
  word-break:normal;
}
.lvs-cockpit-active-note .prose img,
.lvs-cockpit-active-note .prose video,
.lvs-cockpit-active-note .prose iframe{
  max-width:100%!important;
  height:auto;
}

/* Alleen op echt brede cockpitruimte notes naast de presentatie.
   Op laptops/tablets blijft de 1200×800 presentatie volledige breedte houden. */
@container lvs-cockpit-presenter (min-width: 1320px){
  .lvs-cockpit-presentation-grid{
    grid-template-columns:minmax(0,1fr) 320px!important;
  }
  .lvs-cockpit-notes-nav{
    height:100%;
    max-height:min(68vh, 800px)!important;
  }
  .lvs-cockpit-notes-nav>div:last-child{
    flex:1 1 auto;
    min-height:0;
    max-height:none;
  }
}
@media(max-width:767px){
  .lvs-teacher-lesson-detail{padding-left:12px!important;padding-right:12px!important}
  .lvs-cockpit-presentation-body{padding:10px!important}
  .lvs-cockpit-stage{aspect-ratio:3/2;border-radius:14px}
  .lvs-cockpit-notes-nav>div:last-child{max-height:260px}
}

/* V113 — docentcockpit presentatie + notes layout stabiliteit */
.lvs-teacher-lesson-detail{
  width:100%;
  max-width:96rem!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box;
}
.lvs-cockpit-presentation-section{overflow:visible!important}
.lvs-cockpit-presentation-body{
  container-type:inline-size;
  container-name:lvs-cockpit-presenter;
}
.lvs-cockpit-presentation-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:14px!important;
  align-items:start!important;
}
.lvs-cockpit-stage{
  position:relative;
  width:100%;
  min-width:0;
  min-height:0!important;
  aspect-ratio:3/2;
  background:#fff;
  overflow:hidden!important;
}
.lvs-cockpit-presentation-iframe{
  display:block;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  border:0!important;
  background:#fff;
}
.lvs-cockpit-notes-nav{
  min-width:0;
  min-height:0!important;
  max-height:none!important;
}
.lvs-cockpit-notes-nav>div:last-child{
  max-height:320px;
  overflow:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.lvs-cockpit-notes-nav button span.block{
  min-width:0;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
.lvs-cockpit-notes-nav button span.block:first-child{
  display:-webkit-box!important;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
  overflow:hidden!important;
  line-height:1.35;
}
.lvs-cockpit-notes-nav button span.block:nth-child(2){
  display:-webkit-box!important;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
  overflow:hidden!important;
  line-height:1.4;
}
.lvs-cockpit-active-note{
  min-width:0;
  overflow:hidden;
}
.lvs-cockpit-active-note .prose{
  overflow-wrap:anywhere;
  word-break:normal;
}
.lvs-cockpit-active-note .prose img,
.lvs-cockpit-active-note .prose video,
.lvs-cockpit-active-note .prose iframe{
  max-width:100%!important;
  height:auto;
}

/* Alleen op echt brede cockpitruimte notes naast de presentatie.
   Op laptops/tablets blijft de 1200×800 presentatie volledige breedte houden. */
@container lvs-cockpit-presenter (min-width: 1320px){
  .lvs-cockpit-presentation-grid{
    grid-template-columns:minmax(0,1fr) 320px!important;
  }
  .lvs-cockpit-notes-nav{
    height:100%;
    max-height:min(68vh, 800px)!important;
  }
  .lvs-cockpit-notes-nav>div:last-child{
    flex:1 1 auto;
    min-height:0;
    max-height:none;
  }
}
@media(max-width:767px){
  .lvs-teacher-lesson-detail{padding-left:12px!important;padding-right:12px!important}
  .lvs-cockpit-presentation-body{padding:10px!important}
  .lvs-cockpit-stage{aspect-ratio:3/2;border-radius:14px}
  .lvs-cockpit-notes-nav>div:last-child{max-height:260px}
}

/* V114 — docentcockpit opent stabiel; Notes/Aanwezigheid als overlay i.p.v. layout-resize */
.lvs-lesmodus-main{
  position:relative!important;
  grid-template-columns:minmax(0,1fr)!important;
  overflow:hidden;
}
.lvs-lesmodus-stage{
  min-width:0!important;
  width:100%!important;
}
.lvs-lesmodus-presentation{
  min-width:0!important;
  width:100%!important;
  position:relative;
}
.lvs-lesmodus-presentation-iframe{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  border:0!important;
  background:#fff!important;
}
.lvs-lesmodus-drawer{
  position:absolute!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  z-index:60!important;
  width:min(410px,100%)!important;
  max-width:100%!important;
  max-height:none!important;
  border-top:0!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  box-shadow:-18px 0 42px rgba(2,6,23,.28);
  scrollbar-gutter:stable;
}
@media(max-width:767px){
  .lvs-lesmodus-drawer{
    width:100%!important;
    border-left:0!important;
  }
}

/* V121 admin: meerdere docenten per klas */
.lvs-admin-class-teacher-modal{width:min(760px,calc(100vw - 32px));max-height:min(82vh,760px);overflow:auto}.lvs-admin-class-list{display:grid;gap:10px}.lvs-admin-class-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}.lvs-admin-teacher-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.lvs-admin-teacher-chip{display:inline-flex;padding:5px 8px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:12px;font-weight:600}.lvs-admin-teacher-chip.is-primary{background:#dbeafe;color:#1d4ed8}.lvs-admin-teacher-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:420px;overflow:auto}.lvs-admin-teacher-option{display:flex;gap:10px;align-items:center;padding:12px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;cursor:pointer}.lvs-admin-teacher-option:hover{border-color:#93c5fd;background:#f8fbff}.lvs-admin-teacher-option.is-selected{border-color:#60a5fa;background:#eff6ff}.lvs-admin-teacher-option input{width:18px;height:18px;accent-color:#2563eb}.lvs-admin-teacher-option span{display:flex;flex-direction:column;min-width:0}.lvs-admin-teacher-option small{color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:680px){.lvs-admin-class-row{align-items:flex-start;flex-direction:column}.lvs-admin-class-row .btn{width:100%}.lvs-admin-teacher-picker{grid-template-columns:1fr}}
