:root{--color-orange: #f58220;--color-orange-dark: #c65f07;--color-orange-soft: #fff0df;--color-blue: #0f6fb6;--color-blue-dark: #104c7f;--color-blue-soft: #e7f3fb;--color-blue-faint: #f4f9fd;--color-white: #ffffff;--color-background: #f6f9fc;--color-surface: #ffffff;--color-border: #d8e4ee;--color-text: #122033;--color-muted: #5f6f82;--shadow-card: 0 14px 32px rgb(16 76 127 / .08);--shadow-panel: 0 20px 48px rgb(16 76 127 / .1);font-family:Inter,Aptos,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif}*{box-sizing:border-box}body{background:var(--color-background);color:var(--color-text);margin:0}a{color:inherit;text-decoration:none}.app-shell{display:grid;grid-template-columns:18.5rem minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);min-height:100vh}.app-header{align-items:center;background:var(--color-white);border-bottom:1px solid var(--color-border);box-shadow:0 8px 24px #104c7f0f;display:grid;gap:1rem;grid-column:1 / -1;grid-template-columns:minmax(18rem,auto) minmax(0,1fr) auto;min-height:4.75rem;padding:.75rem clamp(1rem,2vw,1.5rem);position:relative;z-index:2}.app-header__brand{align-items:center;display:flex;gap:1rem;min-width:0}.app-header__logo{display:block;flex:0 0 auto;height:auto;max-height:2.5rem;max-width:13.5rem;object-fit:contain;width:auto}.app-header__module{border-left:2px solid var(--color-orange);color:var(--color-blue-dark);font-weight:800;line-height:1.2;padding-left:1rem;white-space:nowrap}.app-header__page{min-width:0}.app-header__page h1{color:var(--color-blue-dark);font-size:1.25rem;margin:0}.app-header__user{align-items:center;display:flex;gap:.75rem;justify-content:flex-end}.app-header__user-name{color:var(--color-muted);font-size:.9rem;font-weight:700;white-space:nowrap}.app-header__logout{align-items:center;background:var(--color-blue-soft);border:1px solid #bdd9ec;border-radius:8px;color:var(--color-blue-dark);cursor:pointer;display:inline-flex;font:inherit;font-size:.86rem;font-weight:800;gap:.45rem;min-height:2.35rem;padding:.45rem .75rem}.app-header__logout:hover{background:var(--color-orange-soft);border-color:#f5b46e;color:var(--color-orange-dark)}.sidebar{background:linear-gradient(180deg,#104c7f,#0b3d66);color:var(--color-white);display:flex;flex-direction:column;gap:1.5rem;grid-column:1;grid-row:2;padding:1.25rem}.sidebar--docent{background:linear-gradient(180deg,#0f6fb6,#104c7f)}.sidebar--admin .brand{box-shadow:inset 4px 0 0 var(--color-orange)}.sidebar--docent .brand{box-shadow:inset 4px 0 #fff}.brand{align-items:center;background:#ffffff14;border:1px solid rgb(255 255 255 / .12);border-radius:8px;display:flex;gap:.9rem;min-height:2.8rem;padding:.75rem}.brand strong,.brand small,.nav-item strong,.nav-item small{display:block;line-height:1.25}.brand small,.nav-item small{color:#ffffffb8;font-size:.78rem;margin-top:.2rem}.nav-list{display:grid;gap:.45rem}.nav-item{align-items:center;border:1px solid transparent;border-radius:8px;display:grid;gap:.75rem;grid-template-columns:1.4rem minmax(0,1fr);min-height:4.15rem;padding:.75rem}.nav-item:hover,.nav-item--active{background:#ffffff1a;border-color:#ffffff2e}.nav-item--active{box-shadow:inset 4px 0 0 var(--color-orange)}.main-area{display:grid;grid-column:2;grid-row:2;min-width:0}.intro-panel h2,.module-panel h2{margin:0}.eyebrow{color:var(--color-orange-dark);display:block;font-size:.72rem;font-weight:800;letter-spacing:0;margin-bottom:.3rem;text-transform:uppercase}.status-pill{background:var(--color-blue-soft);border:1px solid #bdd9ec;border-radius:999px;color:var(--color-blue-dark);font-size:.78rem;font-weight:700;padding:.45rem .7rem}.status-pill--success{background:#e7f8ee;border-color:#b8e6c9;color:#176334}.status-pill--warning{background:var(--color-orange-soft);border-color:#ffd1a3;color:var(--color-orange-dark)}.content{padding:1.5rem clamp(1rem,2vw,2rem) 2rem}.page-grid{display:grid;gap:1rem;margin:0 auto;max-width:72rem}.admin-dashboard,.teacher-dashboard{display:grid;gap:1rem;margin:0 auto;max-width:78rem}.dashboard-hero,.dashboard-panel,.metric-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:var(--shadow-panel)}.dashboard-hero{align-items:center;border-top:4px solid var(--color-blue);display:flex;gap:1rem;justify-content:space-between;padding:clamp(1.25rem,2vw,1.75rem)}.dashboard-hero h2,.dashboard-panel h2,.metric-card h3{margin:0}.dashboard-hero h2{color:var(--color-blue-dark);font-size:clamp(1.45rem,2.1vw,1.9rem);line-height:1.2}.dashboard-hero p,.metric-card p,.dashboard-empty{color:var(--color-muted);line-height:1.55;margin:.45rem 0 0}.primary-action,.secondary-action{align-items:center;border-radius:8px;cursor:pointer;display:inline-flex;font:inherit;font-weight:800;gap:.5rem;justify-content:center;min-height:2.75rem;padding:.65rem .9rem;transition:background-color .14s ease,border-color .14s ease,box-shadow .14s ease,transform .14s ease}.primary-action{background:var(--color-orange);border:1px solid var(--color-orange);color:var(--color-white)}.primary-action:hover{background:var(--color-orange-dark);box-shadow:0 8px 18px #c65f0733}.secondary-action{background:var(--color-blue-soft);border:1px solid #bdd9ec;color:var(--color-blue-dark)}.secondary-action:hover{border-color:var(--color-blue);box-shadow:0 8px 18px #0f6fb61f}.primary-action:focus-visible,.secondary-action:focus-visible,.nav-item:focus-visible,.quick-action:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid rgb(245 130 32 / .35);outline-offset:2px}.dashboard-hero__badge{background:var(--color-orange-soft);border:1px solid #ffd1a3;border-radius:999px;color:var(--color-orange-dark);flex:0 0 auto;font-size:.8rem;font-weight:900;padding:.5rem .75rem}.metric-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}.metric-card{border-top:4px solid var(--color-blue);display:grid;gap:.6rem;min-height:10.75rem;padding:1.15rem}.metric-card--action{border-top-color:var(--color-orange)}.metric-card__top{align-items:center;color:var(--color-blue-dark);display:flex;font-size:.75rem;font-weight:800;gap:.45rem;text-transform:uppercase}.metric-card--action .metric-card__top{color:var(--color-orange-dark)}.metric-card__icon{align-items:center;background:var(--color-blue-soft);border-radius:6px;display:inline-flex;height:2rem;justify-content:center;width:2rem}.metric-card--action .metric-card__icon{background:var(--color-orange-soft)}.metric-card>strong{color:var(--color-blue-dark);font-size:clamp(1.8rem,3vw,2.35rem);line-height:1}.metric-card--action>strong{color:var(--color-orange-dark)}.metric-card h3{font-size:.98rem;line-height:1.25}.metric-card p{font-size:.86rem}.dashboard-columns{align-items:start;display:grid;gap:1rem;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)}.dashboard-panel{display:grid;gap:1rem;padding:1.25rem}.dashboard-panel__header{align-items:center;display:flex;justify-content:space-between}.quick-action-grid{display:grid;gap:.7rem}.quick-action{align-items:center;background:var(--color-orange-soft);border:1px solid #ffd1a3;border-radius:8px;color:var(--color-orange-dark);cursor:pointer;display:flex;font:inherit;font-weight:800;gap:.65rem;min-height:3rem;padding:.75rem .9rem;text-align:left}.quick-action:hover{background:#ffe3c5;border-color:var(--color-orange)}.activity-list{display:grid;gap:.7rem}.signal-list{display:grid;gap:.65rem}.signal-list--compact{margin-top:.75rem}.signal-row{align-items:center;background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px;display:grid;gap:.75rem;grid-template-columns:auto minmax(0,1fr);padding:.7rem}.signal-row--action{background:var(--color-orange-soft);border-color:#ffd1a3}.signal-row strong,.signal-row small{display:block;line-height:1.35}.signal-row small{color:var(--color-muted);font-size:.8rem;margin-top:.15rem}.admin-notification-panel{display:grid;gap:1rem}.notification-settings-grid{display:grid;gap:.75rem;grid-template-columns:minmax(16rem,1fr) repeat(2,minmax(12rem,.7fr))}.notification-settings-grid label{display:grid;gap:.35rem}.notification-settings-grid label>span{color:var(--color-muted);font-size:.78rem;font-weight:850}.notification-settings-grid input[type=text],.notification-settings-grid input:not([type]){background:var(--color-white);border:1px solid #bdd9ec;border-radius:8px;color:var(--color-blue-dark);font:inherit;min-height:2.65rem;padding:.6rem .75rem}.notification-toggle{align-items:center;background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px;display:flex!important;gap:.55rem!important;min-height:2.65rem;padding:.65rem}.notification-toggle input{accent-color:var(--color-orange)}.notification-log-list{display:grid;gap:.65rem}.notification-log-item{background:var(--color-blue-soft);border:1px solid #c8e0f0;border-left:4px solid var(--color-orange);border-radius:8px;display:grid;gap:.3rem;padding:.75rem}.notification-log-item strong{color:var(--color-blue-dark)}.notification-log-item p{color:var(--color-muted);line-height:1.4;margin:0;white-space:pre-wrap}.notification-log-item small{color:var(--color-muted);font-weight:750}.import-control-page{display:grid;gap:1rem;margin:0 auto;max-width:86rem}.import-control-summary,.import-test-panel,.import-log-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:var(--shadow-panel)}.import-control-summary{display:grid;gap:.75rem;grid-template-columns:repeat(6,minmax(0,1fr));padding:1rem}.import-control-summary div{background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px;display:grid;gap:.25rem;padding:.75rem}.import-control-summary strong{color:var(--color-blue-dark);font-size:1.1rem;line-height:1.2}.import-control-workspace{align-items:start;display:grid;gap:1rem;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.import-test-panel,.import-log-panel{display:grid;gap:1rem;padding:1rem}.import-test-panel textarea{background:var(--color-white);border:1px solid #bdd9ec;border-radius:8px;color:var(--color-blue-dark);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.86rem;line-height:1.45;padding:.85rem;resize:vertical}.import-mode-actions{display:flex;flex-wrap:wrap;gap:.55rem}.import-preview,.import-record{background:var(--color-blue-soft);border:1px solid #c8e0f0;border-left:4px solid var(--color-blue);border-radius:8px;display:grid;gap:.35rem;padding:.75rem}.import-preview--error,.import-record--error{background:var(--color-orange-soft);border-color:#ffd1a3;border-left-color:var(--color-orange)}.import-preview strong,.import-record strong{color:var(--color-blue-dark)}.import-preview span,.import-preview small,.import-record span{color:var(--color-muted);font-size:.85rem;line-height:1.35}.import-record-list{display:grid;gap:.65rem}.import-record dl{display:grid;gap:.5rem;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.import-record dt{color:var(--color-muted);font-size:.72rem;font-weight:850}.import-record dd{color:var(--color-blue-dark);font-size:.84rem;font-weight:750;margin:.1rem 0 0}.signal-badge{background:var(--color-white);border-radius:999px;color:var(--color-blue-dark);font-size:.72rem;font-weight:900;padding:.42rem .55rem}.signal-badge--action{color:var(--color-orange-dark)}.activity-item{align-items:center;background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px;display:grid;gap:.75rem;grid-template-columns:auto minmax(0,1fr);min-height:3.8rem;padding:.75rem}.activity-item__icon{align-items:center;background:var(--color-white);border-radius:6px;color:var(--color-blue-dark);display:inline-flex;height:2.25rem;justify-content:center;width:2.25rem}.activity-item__icon--orange{color:var(--color-orange-dark)}.activity-item--action{background:var(--color-orange-soft);border-color:#ffd1a3}.activity-item strong,.activity-item small{display:block;line-height:1.35}.activity-item small{color:var(--color-muted);font-size:.8rem;margin-top:.2rem}.teacher-group-overview{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-dashboard-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:var(--shadow-card);display:grid;gap:1rem;padding:1rem}.teacher-dashboard-card__head{align-items:center;display:grid;gap:.75rem;grid-template-columns:auto minmax(0,1fr)}.teacher-dashboard-card__icon{align-items:center;background:var(--color-blue-soft);border-radius:8px;color:var(--color-blue-dark);display:inline-flex;height:2.5rem;justify-content:center;width:2.5rem}.teacher-dashboard-card h3,.teacher-dashboard-card p{margin:0}.teacher-dashboard-card h3{color:var(--color-blue-dark);font-size:1rem}.teacher-dashboard-card p{color:var(--color-muted);font-size:.85rem;margin-top:.2rem}.teacher-dashboard-stats{display:grid;gap:.6rem;grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.teacher-dashboard-stats div{background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px;display:grid;gap:.15rem;padding:.65rem}.teacher-dashboard-stats dt{color:var(--color-muted);font-size:.72rem;font-weight:850}.teacher-dashboard-stats dd{color:var(--color-blue-dark);font-size:1.05rem;font-weight:900;margin:0}.teacher-dashboard-columns{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.docent-route-dashboard{display:grid;gap:1.35rem}.docent-route-dashboard__intro,.course-task-route,.docent-dashboard-block{background:var(--color-white);border:1px solid var(--color-border);border-radius:8px;box-shadow:var(--shadow-card)}.docent-route-dashboard__intro{align-items:end;display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) minmax(15rem,22rem);padding:clamp(1.1rem,2vw,1.5rem)}.docent-route-dashboard__intro h2,.course-task-route__header h2,.docent-dashboard-block h3{color:var(--color-blue-dark);margin:0}.docent-route-dashboard__intro p,.course-task-route__header p{color:var(--color-muted);line-height:1.55;margin:.45rem 0 0;max-width:58rem}.docent-route-dashboard__intro label{display:grid;gap:.4rem}.docent-route-dashboard__intro label span{color:var(--color-blue-dark);font-size:.78rem;font-weight:800;text-transform:uppercase}.docent-route-dashboard__intro select{background:var(--color-white);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);font:inherit;min-height:2.7rem;padding:.55rem .75rem}.course-task-route{overflow:hidden}.course-task-route__header{align-items:center;border-bottom:1px solid var(--color-border);display:flex;gap:1rem;justify-content:space-between;padding:clamp(1.1rem,2vw,1.5rem)}.course-task-route__map{background:linear-gradient(90deg,rgb(15 111 182 / .06) 1px,transparent 1px),linear-gradient(180deg,rgb(15 111 182 / .06) 1px,transparent 1px),linear-gradient(180deg,#fff,#f7fbff);background-size:54px 54px;min-height:26rem;overflow:hidden;padding:2rem 1.5rem;position:relative}.course-task-route__line{background:var(--color-blue);border-radius:999px;height:4px;left:3rem;opacity:.32;position:absolute;right:3rem;top:8.4rem}.course-task-route__scroll{align-items:stretch;display:grid;gap:1rem;grid-auto-columns:minmax(13.5rem,15rem);grid-auto-flow:column;overflow-x:auto;padding:.6rem 0 1rem;position:relative;scroll-snap-type:x proximity;z-index:1}.route-task-point{display:grid;gap:.65rem;justify-items:center;scroll-snap-align:start}.route-task-point__marker{align-items:center;background:var(--color-white);border:3px solid var(--color-blue);border-radius:999px;box-shadow:0 10px 24px #104c7f1f;color:var(--color-blue-dark);display:inline-flex;height:2.8rem;justify-content:center;width:2.8rem}.route-task-point--openstaand .route-task-point__marker,.route-task-point--deels-ingevuld .route-task-point__marker,.route-task-point--actie-nodig .route-task-point__marker{border-color:var(--color-orange);color:var(--color-orange-dark)}.route-task-point--ingevuld .route-task-point__marker{background:var(--color-blue);color:var(--color-white)}.route-task-point__body{background:#fffffff5;border:1px solid var(--color-border);border-radius:8px;box-shadow:0 12px 28px #104c7f14;display:grid;gap:.55rem;min-height:14.8rem;padding:1rem;width:100%}.route-task-point--openstaand .route-task-point__body,.route-task-point--deels-ingevuld .route-task-point__body,.route-task-point--actie-nodig .route-task-point__body{border-color:#f5b46e}.route-task-point__index{color:var(--color-muted);font-size:.72rem;font-weight:900}.route-task-point h3{color:var(--color-blue-dark);font-size:1rem;line-height:1.25;margin:0;min-height:2.5rem}.route-task-point p,.route-task-point small{color:var(--color-muted);line-height:1.35;margin:0}.route-task-point__status{align-self:start;background:var(--color-blue-soft);border:1px solid #bdd9ec;border-radius:999px;color:var(--color-blue-dark);font-size:.74rem;font-weight:900;justify-self:start;padding:.24rem .55rem}.route-task-point__status--openstaand,.route-task-point__status--deels-ingevuld,.route-task-point__status--actie-nodig{background:var(--color-orange-soft);border-color:#f5b46e;color:var(--color-orange-dark)}.route-task-point__button{align-items:center;align-self:end;background:var(--color-blue);border:1px solid var(--color-blue);border-radius:8px;color:var(--color-white);cursor:pointer;display:inline-flex;font:inherit;font-size:.86rem;font-weight:900;gap:.45rem;justify-content:center;min-height:2.35rem;padding:.5rem .75rem}.route-task-point--openstaand .route-task-point__button,.route-task-point--deels-ingevuld .route-task-point__button,.route-task-point--actie-nodig .route-task-point__button{background:var(--color-orange);border-color:var(--color-orange)}.docent-dashboard-blocks{display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr))}.docent-dashboard-block{display:grid;gap:1rem;padding:1.1rem}.docent-dashboard-block__head{align-items:center;color:var(--color-blue-dark);display:flex;gap:.75rem}.docent-dashboard-block ul{display:grid;gap:.7rem;list-style:none;margin:0;padding:0}.docent-dashboard-block li{background:var(--color-blue-faint);border:1px solid var(--color-border);border-radius:8px;display:grid;gap:.25rem;padding:.75rem}.docent-dashboard-block li strong{color:var(--color-blue-dark)}.docent-dashboard-block li span,.docent-dashboard-block li small,.docent-report-summary dt{color:var(--color-muted);line-height:1.35}.docent-dashboard-block li button{background:transparent;border:0;color:var(--color-blue-dark);cursor:pointer;font:inherit;font-weight:900;justify-self:start;padding:.2rem 0}.docent-report-summary{display:grid;gap:.65rem;margin:0}.docent-report-summary div{align-items:center;background:var(--color-blue-faint);border:1px solid var(--color-border);border-radius:8px;display:flex;justify-content:space-between;padding:.75rem}.docent-report-summary dd{color:var(--color-blue-dark);font-size:1.35rem;font-weight:900;margin:0}.teacher-signal-panel{align-self:start}.group-route-page{display:grid;gap:1rem;margin:0 auto;max-width:84rem}.group-route-hero,.group-route-header,.route-planner-panel,.group-analysis{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:var(--shadow-card)}.group-route-hero{align-items:center;display:flex;gap:1rem;justify-content:space-between;padding:1.5rem}.group-route-hero__main{max-width:48rem}.group-route-hero h2,.group-route-header h3,.route-planner-panel h2,.group-analysis h2,.group-analysis-panel h3{margin:0}.group-route-hero h2,.group-route-header h3,.route-planner-panel h2,.group-analysis h2{color:var(--color-blue-dark)}.group-route-hero p,.group-analysis p{color:var(--color-muted);line-height:1.55;margin:.45rem 0 0}.group-route-selector{display:grid;flex:0 0 17rem;gap:.35rem}.group-route-selector span{color:var(--color-muted);font-size:.75rem;font-weight:850}.group-route-selector select{background:var(--color-white);border:1px solid #bdd9ec;border-radius:8px;color:var(--color-blue-dark);font:inherit;font-weight:800;min-height:2.75rem;padding:.55rem .7rem}.group-route-header{align-items:stretch;display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) minmax(16rem,.32fr);padding:1.25rem}.group-route-header__info{display:grid;gap:.8rem}.route-type-chip,.route-step-type,.route-step-period{border-radius:999px;display:inline-flex;font-size:.74rem;font-weight:850;line-height:1;padding:.45rem .6rem}.route-type-chip{background:var(--color-blue-soft);color:var(--color-blue-dark);justify-self:start}.group-route-facts{display:grid;gap:.7rem;grid-template-columns:repeat(4,minmax(0,1fr));margin:0}.group-route-facts div,.group-route-progress,.route-step-stats div{background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px}.group-route-facts div{display:grid;gap:.15rem;padding:.7rem}.group-route-facts dt,.route-step-stats dt{color:var(--color-muted);font-size:.72rem;font-weight:850}.group-route-facts dd,.route-step-stats dd{color:var(--color-blue-dark);font-size:.95rem;font-weight:900;margin:0}.group-route-progress{align-content:center;display:grid;gap:.55rem;padding:1rem}.group-route-progress span{color:var(--color-muted);font-size:.78rem;font-weight:850}.group-route-progress strong{color:var(--color-blue-dark);font-size:2rem}.group-route-progress__bar{background:var(--color-white);border-radius:999px;height:.75rem;overflow:hidden}.group-route-progress__bar span{background:var(--color-orange);display:block;height:100%}.route-planner-panel,.group-analysis{display:grid;gap:1rem;padding:1.25rem}.route-step-list{display:grid;gap:1rem;position:relative}.route-step-list:before{background:linear-gradient(180deg,var(--color-blue) 0%,#c8e0f0 48%,var(--color-orange) 100%);bottom:1.5rem;content:"";left:1.32rem;position:absolute;top:1.5rem;width:3px}.route-step-card{align-items:start;background:linear-gradient(90deg,rgb(15 111 182 / .035),transparent 38%),var(--color-white);border:1px solid var(--color-border);border-left:4px solid var(--color-blue);border-radius:8px;box-shadow:0 10px 24px #104c7f12;display:grid;gap:.9rem;grid-template-columns:auto minmax(0,1fr);padding:1.1rem;position:relative}.route-step-card--action{border-left-color:var(--color-orange)}.route-step-card__order{align-items:center;background:var(--color-blue);border:3px solid var(--color-white);border-radius:999px;color:var(--color-white);display:inline-flex;font-size:.82rem;font-weight:900;box-shadow:0 0 0 4px var(--color-blue-faint);height:2.45rem;justify-content:center;width:2.45rem;z-index:1}.route-step-card--action .route-step-card__order{background:var(--color-orange)}.route-step-card__body{display:grid;gap:.8rem}.route-step-card__title{align-items:start;display:flex;gap:.8rem;justify-content:space-between}.route-step-card__title h3{color:var(--color-blue-dark);display:grid;font-size:1.08rem;gap:.25rem;margin:.35rem 0 0}.extra-step-label{color:var(--color-orange-dark);font-size:.72rem;font-weight:900}.route-step-type{background:var(--color-blue-soft);border:1px solid #c8e0f0;color:var(--color-blue-dark);text-transform:capitalize}.route-step-period{background:var(--color-orange-soft);border:1px solid #ffd1a3;color:var(--color-orange-dark);flex:0 0 auto}.route-step-stats{display:grid;gap:.65rem;grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.route-step-stats div{display:grid;gap:.15rem;padding:.65rem}.intranet-actions{align-items:start;display:grid;gap:.25rem;justify-items:start}.intranet-actions a,.intranet-actions>span{align-items:center;color:var(--color-muted);display:inline-flex;font-size:.85rem;font-weight:800;gap:.4rem;text-decoration:none}.intranet-actions a{background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px;color:var(--color-blue-dark);padding:.55rem .7rem}.intranet-actions small{color:var(--color-muted);font-size:.78rem;line-height:1.35}.intranet-actions--missing{background:var(--color-orange-soft);border:1px solid #ffd1a3;border-radius:8px;color:var(--color-orange-dark);display:inline-flex;font-size:.85rem;font-weight:850;gap:.45rem;padding:.6rem .7rem}.group-analysis__summary{display:grid;gap:.25rem}.group-analysis-grid{display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr))}.group-analysis-panel{border:1px solid var(--color-border);border-radius:8px;display:grid;gap:.8rem;padding:1rem}.group-analysis-panel__head{align-items:center;display:flex;gap:.65rem}.group-analysis-panel h3{color:var(--color-blue-dark);font-size:.98rem}.compact-group-analysis{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:var(--shadow-card);display:grid;gap:1rem;padding:1.25rem}.compact-group-analysis h2{color:var(--color-blue-dark);margin:0}.compact-analysis-cards{display:grid;gap:.75rem;grid-template-columns:repeat(4,minmax(0,1fr))}.compact-analysis-card{background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px;display:grid;gap:.25rem;padding:.85rem}.compact-analysis-card--action{background:var(--color-orange-soft);border-color:#ffd1a3}.compact-analysis-card span,.compact-analysis-card small{color:var(--color-muted);font-size:.76rem;font-weight:850}.compact-analysis-card strong{color:var(--color-blue-dark);font-size:1.55rem;line-height:1}.compact-analysis-card--action strong{color:var(--color-orange-dark)}.compact-analysis-grid{display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr))}.compact-analysis-panel{border:1px solid var(--color-border);border-radius:8px;display:grid;gap:.8rem;padding:1rem}.compact-analysis-panel h3{color:var(--color-blue-dark);font-size:.98rem;margin:0}.z-route-page .route-type-chip,.z-route-page .route-step-type{background:#e8f5ee;color:#236343}.z-route-page .route-step-card,.z-route-page .student-route-point{border-left-color:#2f7d54}.z-route-analysis{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:var(--shadow-card);display:grid;gap:1rem;padding:1.25rem}.z-route-analysis h2{color:var(--color-blue-dark);margin:0}.z-route-analysis p{color:var(--color-muted);line-height:1.55;margin:.45rem 0 0}.z-route-metrics{display:grid;gap:.7rem;grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.z-route-metrics--side{grid-template-columns:1fr}.z-route-metrics div{background:#e8f5ee;border:1px solid #b7dcc7;border-radius:8px;display:grid;gap:.15rem;padding:.7rem}.z-route-metrics dt{color:var(--color-muted);font-size:.72rem;font-weight:850}.z-route-metrics dd{color:#236343;font-size:1rem;font-weight:900;margin:0}.z-route-signal-list{display:grid;gap:.7rem}.student-route-page{display:grid;gap:1rem;margin:0 auto;max-width:84rem}.student-route-hero,.student-route-header,.student-route-panel,.student-route-checklist{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:var(--shadow-card)}.student-route-hero{align-items:center;display:flex;gap:1rem;justify-content:space-between;padding:1.5rem}.student-route-hero h2,.student-route-header h3,.student-route-panel h2,.student-route-checklist h2,.student-route-point h3{margin:0}.student-route-hero h2,.student-route-header h3,.student-route-panel h2,.student-route-checklist h2,.student-route-point h3{color:var(--color-blue-dark)}.student-route-hero p,.student-route-point p,.student-route-checklist p{color:var(--color-muted);line-height:1.55;margin:.45rem 0 0}.student-route-selectors{display:grid;flex:0 0 24rem;gap:.65rem;grid-template-columns:repeat(2,minmax(0,1fr))}.student-route-selectors label{display:grid;gap:.35rem}.student-route-selectors label span{color:var(--color-muted);font-size:.75rem;font-weight:850}.student-route-selectors select{background:var(--color-white);border:1px solid #bdd9ec;border-radius:8px;color:var(--color-blue-dark);font:inherit;font-weight:800;min-height:2.75rem;padding:.55rem .7rem}.student-route-header{align-items:stretch;display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) minmax(16rem,.32fr);padding:1.25rem}.student-route-header__main{display:grid;gap:.8rem}.student-route-facts{display:grid;gap:.7rem;grid-template-columns:repeat(4,minmax(0,1fr));margin:0}.student-route-facts div,.student-route-progress,.student-route-step-facts div{background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px}.student-route-facts div,.student-route-step-facts div{display:grid;gap:.15rem;padding:.65rem}.student-route-facts dt,.student-route-step-facts dt{color:var(--color-muted);font-size:.72rem;font-weight:850}.student-route-facts dd,.student-route-step-facts dd{color:var(--color-blue-dark);font-size:.92rem;font-weight:900;margin:0}.student-route-progress{align-content:center;display:grid;gap:.55rem;padding:1rem}.student-route-progress span{color:var(--color-muted);font-size:.78rem;font-weight:850}.student-route-progress strong{color:var(--color-blue-dark);font-size:2rem}.student-route-workspace{align-items:start;display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) minmax(18rem,.32fr)}.student-route-panel,.student-route-checklist{display:grid;gap:1rem;padding:1.25rem}.student-route-list{display:grid;gap:1rem;position:relative}.student-route-list:before{background:linear-gradient(180deg,var(--color-blue) 0%,#c8e0f0 55%,var(--color-orange) 100%);bottom:1.5rem;content:"";left:1.23rem;position:absolute;top:1.5rem;width:3px}.student-route-point{background:linear-gradient(90deg,rgb(15 111 182 / .035),transparent 40%),var(--color-white);border:1px solid var(--color-border);border-left:4px solid #bdd9ec;border-radius:8px;box-shadow:0 10px 24px #104c7f12;display:grid;gap:.9rem;grid-template-columns:auto minmax(0,1fr);padding:1.1rem;position:relative}.student-route-point--complete{border-left-color:var(--color-blue)}.student-route-point--busy{border-left-color:#327fa8}.student-route-point--action{border-left-color:var(--color-orange)}.student-route-point__marker{align-items:center;background:var(--color-blue-soft);border:3px solid var(--color-white);border-radius:999px;color:var(--color-blue-dark);display:inline-flex;font-size:.82rem;font-weight:900;box-shadow:0 0 0 4px var(--color-blue-faint);height:2.45rem;justify-content:center;width:2.45rem;z-index:1}.student-route-point--complete .student-route-point__marker{background:var(--color-blue);color:var(--color-white)}.student-route-point--action .student-route-point__marker{background:var(--color-orange);color:var(--color-white)}.student-route-point__content{display:grid;gap:.8rem}.student-route-point__head{align-items:start;display:flex;gap:.8rem;justify-content:space-between}.student-route-point h3{display:grid;font-size:1rem;gap:.25rem;margin-top:.35rem}.student-route-point h3 small{color:var(--color-orange-dark);font-size:.72rem;font-weight:900}.student-route-status{border:1px solid transparent;border-radius:999px;flex:0 0 auto;font-size:.74rem;font-weight:900;line-height:1;padding:.45rem .6rem}.student-route-status--complete{background:var(--color-blue-soft);border-color:#c8e0f0;color:var(--color-blue-dark)}.student-route-status--busy{background:#e5f4fa;color:#1e6687}.student-route-status--action{background:var(--color-orange-soft);border-color:#ffd1a3;color:var(--color-orange-dark)}.student-route-status--idle{background:#f4f7f9;color:var(--color-muted)}.student-route-step-facts{display:grid;gap:.65rem;grid-template-columns:repeat(4,minmax(0,1fr));margin:0}.student-route-step-facts--z{grid-template-columns:repeat(3,minmax(0,1fr))}.student-route-point__footer{align-items:center;display:flex;gap:.75rem;justify-content:space-between}.student-route-point__footer a,.student-route-point__footer span{align-items:center;color:var(--color-muted);display:inline-flex;font-size:.85rem;font-weight:800;gap:.4rem;text-decoration:none}.student-route-point__footer a{color:var(--color-blue-dark)}.student-route-edit{min-height:2.35rem}.student-route-checklist{position:sticky;top:1rem}.student-route-checklist ul{display:grid;gap:.6rem;list-style:none;margin:0;padding:0}.student-route-checklist li{align-items:start;background:var(--color-orange-soft);border:1px solid #ffd1a3;border-radius:8px;color:var(--color-orange-dark);display:flex;font-size:.88rem;font-weight:800;gap:.45rem;line-height:1.35;padding:.7rem}.step-input-page{display:grid;gap:1rem;margin:0 auto;max-width:84rem}.step-input-hero,.step-input-context,.step-input-form,.step-input-side{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:var(--shadow-panel)}.step-input-hero{align-items:center;border-top:4px solid var(--color-blue);display:flex;gap:1rem;justify-content:space-between;padding:1.5rem}.step-input-hero h2,.step-input-form h3,.step-input-side h3{color:var(--color-blue-dark);margin:0}.step-input-hero p{color:var(--color-muted);line-height:1.55;margin:.45rem 0 0}.step-input-context{display:grid;gap:.75rem;grid-template-columns:repeat(3,minmax(0,1fr));padding:1rem}.step-input-context label,.step-input-form label,.step-input-action-row label{display:grid;gap:.35rem}.step-input-context label span,.step-input-form label span,.step-input-action-row label span{color:var(--color-muted);font-size:.75rem;font-weight:850}.step-input-context select,.step-input-form input,.step-input-form select,.step-input-form textarea,.step-input-action-row input{background:var(--color-white);border:1px solid #bdd9ec;border-radius:8px;color:var(--color-blue-dark);font:inherit;min-height:2.75rem;padding:.65rem .75rem}.step-input-form textarea{line-height:1.5;min-height:7rem;resize:vertical}.step-input-form input:focus,.step-input-form select:focus,.step-input-form textarea:focus,.step-input-context select:focus{border-color:var(--color-blue);box-shadow:0 0 0 3px #1e6b971f;outline:none}.step-input-layout{align-items:start;display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) minmax(18rem,.32fr)}.step-input-form,.step-input-side{display:grid;gap:1rem;padding:1.35rem}.step-input-form__header{align-items:start;display:flex;gap:.8rem;justify-content:space-between}.step-input-form__header h3{margin-top:.35rem}.step-input-grid{display:grid;gap:.8rem;grid-template-columns:repeat(2,minmax(0,1fr))}.z-observation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.step-input-field{display:grid}.step-input-counter,.step-input-warning{font-size:.8rem;font-weight:850;justify-self:end}.step-input-counter{color:var(--color-muted)}.step-input-warning{color:var(--color-orange-dark)}.step-input-action-row{align-items:end;display:grid;gap:.8rem;grid-template-columns:minmax(10rem,.25fr) minmax(0,1fr)}.step-input-toggle{align-items:center;background:var(--color-orange-soft);border:1px solid #ffd1a3;border-radius:8px;display:flex!important;gap:.55rem!important;min-height:2.75rem;padding:.65rem .75rem}.step-input-toggle input{min-height:auto;width:1.05rem}.step-input-toggle span{color:var(--color-orange-dark)!important;font-size:.9rem!important}.step-input-alert{align-items:center;background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px;color:var(--color-blue-dark);display:flex;font-weight:850;gap:.55rem;line-height:1.35;padding:.8rem}.step-input-alert--action{background:var(--color-orange-soft);border-color:#ffd1a3;color:var(--color-orange-dark)}.step-input-meta{display:grid;gap:.65rem;margin:0}.step-input-meta div{background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px;display:grid;gap:.15rem;padding:.65rem}.step-input-meta dt{color:var(--color-muted);font-size:.72rem;font-weight:850}.step-input-meta dd{color:var(--color-blue-dark);font-weight:900;margin:0}.extra-step-page{display:grid;gap:1rem;margin:0 auto;max-width:84rem}.extra-step-layout{align-items:start;display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) minmax(18rem,.32fr)}.extra-step-form,.extra-step-side{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:var(--shadow-card);display:grid;gap:1rem;padding:1.25rem}.extra-step-options{display:grid;gap:.65rem;grid-template-columns:repeat(2,minmax(0,1fr))}.extra-step-option{align-items:center;background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px;color:var(--color-blue-dark);cursor:pointer;display:flex;font-weight:850;gap:.55rem;min-height:3rem;padding:.75rem}.extra-step-option--active{background:var(--color-orange-soft);border-color:#ffd1a3;color:var(--color-orange-dark)}.extra-step-option input{margin:0}.extra-step-form label{display:grid;gap:.35rem}.extra-step-form label span{color:var(--color-muted);font-size:.75rem;font-weight:850}.extra-step-form input,.extra-step-form select,.extra-step-form textarea{background:var(--color-white);border:1px solid #bdd9ec;border-radius:8px;color:var(--color-blue-dark);font:inherit;min-height:2.75rem;padding:.65rem .75rem}.extra-step-form textarea{line-height:1.5;resize:vertical}.extra-step-toggles{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}.extra-step-side h3{color:var(--color-blue-dark);margin:0}.extra-step-side p{color:var(--color-muted);line-height:1.55;margin:.45rem 0 0}.extra-step-side ul{display:grid;gap:.6rem;list-style:none;margin:0;padding:0}.extra-step-side li{background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px;color:var(--color-blue-dark);font-weight:850;padding:.7rem}.intranet-management-page{display:grid;gap:1rem;margin:0 auto;max-width:84rem}.intranet-management-layout{align-items:start;display:grid;gap:1rem;grid-template-columns:minmax(18rem,.38fr) minmax(0,1fr)}.intranet-step-list,.intranet-link-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:var(--shadow-card);display:grid;gap:1rem;padding:1.25rem}.intranet-step-list label,.intranet-link-form label{display:grid;gap:.35rem}.intranet-step-list label span,.intranet-link-form label span{color:var(--color-muted);font-size:.75rem;font-weight:850}.intranet-step-list select,.intranet-link-form input,.intranet-link-form select,.intranet-link-form textarea{background:var(--color-white);border:1px solid #bdd9ec;border-radius:8px;color:var(--color-blue-dark);font:inherit;min-height:2.75rem;padding:.65rem .75rem}.intranet-link-form textarea{line-height:1.5;resize:vertical}.intranet-link-form h3{color:var(--color-blue-dark);margin:.35rem 0 0}.intranet-link-form p{color:var(--color-muted);line-height:1.55;margin:.45rem 0 0}.intranet-step-button{align-items:center;background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px;color:var(--color-blue-dark);cursor:pointer;display:flex;font:inherit;gap:.75rem;justify-content:space-between;padding:.75rem;text-align:left}.intranet-step-button--active{background:var(--color-orange-soft);border-color:#ffd1a3;color:var(--color-orange-dark)}.intranet-step-button strong,.intranet-step-button small{display:block}.intranet-step-button small{color:var(--color-muted);font-size:.78rem;margin-top:.2rem}.primary-action:disabled{cursor:not-allowed;opacity:.55}.teacher-management,.report-prep-page{display:grid;gap:1rem;margin:0 auto;max-width:86rem}.report-prep-controls,.report-prep-summary,.report-editor-panel,.report-editor-side,.report-template-panel,.report-prompt-panel,.report-section-card,.report-prep-side{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:var(--shadow-panel)}.report-prep-controls{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr));padding:1rem}.report-prep-controls label,.report-prep-side label{display:grid;gap:.35rem}.report-prep-controls span,.report-prep-side .eyebrow{color:var(--color-muted);font-size:.75rem;font-weight:850}.report-prep-controls select,.report-prep-side textarea{background:var(--color-white);border:1px solid #bdd9ec;border-radius:8px;color:var(--color-blue-dark);font:inherit;min-height:2.75rem;padding:.65rem .75rem}.report-prep-summary{display:grid;gap:.75rem;grid-template-columns:repeat(4,minmax(0,1fr));padding:1rem}.report-prep-summary div{background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px;display:grid;gap:.25rem;padding:.8rem}.report-prep-summary strong{color:var(--color-blue-dark);font-size:1.7rem;line-height:1}.report-prep-summary small{color:var(--color-muted);font-weight:750}.report-editor-layout{align-items:start;display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) minmax(20rem,.34fr)}.report-editor-panel,.report-editor-side{display:grid;gap:1rem;padding:1rem}.report-editor-panel__head{align-items:start;display:flex;gap:1rem;justify-content:space-between}.report-editor-panel__head h2,.report-editor-side h2{color:var(--color-blue-dark);margin:.15rem 0}.report-editor-panel__head p{color:var(--color-muted);margin:0}.report-editor-panel__head .primary-action{align-items:center;display:inline-flex;gap:.45rem;white-space:nowrap}.report-status-control{background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px;display:grid;gap:.35rem;grid-template-columns:repeat(3,minmax(0,1fr));padding:.35rem}.report-status-control button{background:transparent;border:0;border-radius:6px;color:var(--color-blue-dark);cursor:pointer;font:inherit;font-weight:800;min-height:2.4rem;padding:.55rem}.report-status-control button.is-active{background:var(--color-white);box-shadow:0 2px 8px #0b5b8c1f;color:var(--color-orange)}.report-text-editor{background:var(--color-white);border:1px solid #bdd9ec;border-radius:8px;color:var(--color-blue-dark);font:inherit;line-height:1.55;min-height:28rem;padding:.85rem;resize:vertical}.report-text-editor:focus{border-color:var(--color-blue);box-shadow:0 0 0 3px #1e6b971f;outline:none}.report-editor-side{position:sticky;top:1rem}.report-editor-side section{display:grid;gap:.65rem}.report-editor-side ul{display:grid;gap:.55rem;list-style:none;margin:0;padding:0}.report-editor-side li{background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px;color:var(--color-muted);font-size:.84rem;line-height:1.35;padding:.65rem}.report-editor-meta{display:grid;gap:.65rem;grid-template-columns:repeat(2,minmax(0,1fr))}.report-editor-meta div{background:var(--color-orange-soft);border:1px solid #ffd1a3;border-radius:8px;display:grid;gap:.25rem;padding:.7rem}.report-editor-meta span{color:var(--color-muted);font-size:.75rem;font-weight:850}.report-editor-meta strong{color:var(--color-blue-dark);font-size:1rem;line-height:1.25}.report-template-panel{display:grid;gap:1rem;padding:1rem}.report-template-panel__head{align-items:start;display:flex;gap:1rem;justify-content:space-between}.report-template-panel__head h2{color:var(--color-blue-dark);margin:.15rem 0}.report-template-panel__head p{color:var(--color-muted);margin:0}.report-template-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.55rem;justify-content:flex-end}.report-template-actions .primary-action,.report-template-actions .secondary-action{align-items:center;display:inline-flex;gap:.45rem;white-space:nowrap}.drive-upload-banner,.template-registry-banner{align-items:start;border-radius:8px;display:flex;gap:.7rem;padding:.85rem}.drive-upload-banner--ready,.template-registry-banner--ready{background:var(--color-blue-soft);border:1px solid #c8e0f0;color:var(--color-blue-dark)}.drive-upload-banner--warning,.template-registry-banner--missing{background:var(--color-orange-soft);border:1px solid #ffd1a3;color:var(--color-blue-dark)}.drive-upload-banner div,.template-registry-banner div{display:grid;gap:.2rem}.drive-upload-banner strong,.template-registry-banner strong{color:var(--color-blue-dark)}.drive-upload-banner span,.template-registry-banner span{color:var(--color-muted);font-size:.88rem;line-height:1.4}.template-registry-banner ul{display:grid;gap:.4rem;list-style:none;margin:.4rem 0 0;padding:0}.template-registry-banner li{align-items:center;display:flex;flex-wrap:wrap;gap:.35rem .75rem}.template-registry-banner a{color:var(--color-blue-dark);font-weight:850;text-decoration:underline;text-decoration-color:#0f6fb659}.template-registry-banner small{color:var(--color-muted);font-size:.78rem}.template-registry-banner__warning{background:#ffffffad;border-left:4px solid var(--color-orange);border-radius:8px;color:var(--color-orange-dark)!important;font-weight:850;margin-top:.35rem;padding:.55rem .7rem}.rotterdam-field-mapping{display:grid;gap:.85rem}.rotterdam-field-mapping__template{border:1px solid var(--color-border);border-radius:8px;display:grid;gap:.85rem;padding:1rem}.rotterdam-field-mapping__head{align-items:start;display:flex;gap:.75rem;justify-content:space-between}.rotterdam-field-mapping__head h3{color:var(--color-blue-dark);font-size:1rem;margin:0}.rotterdam-field-source-grid{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}.rotterdam-field-source{background:var(--color-blue-faint);border:1px solid var(--color-border);border-radius:8px;padding:.8rem}.rotterdam-field-source h4{color:var(--color-blue-dark);font-size:.9rem;margin:0 0 .6rem}.rotterdam-field-source ul{display:grid;gap:.45rem;list-style:none;margin:0;padding:0}.rotterdam-field-source__field{background:var(--color-white);border:1px solid #dfeaf2;border-radius:8px;display:grid;gap:.2rem;padding:.55rem .65rem}.rotterdam-field-source__field strong{color:var(--color-blue-dark);font-size:.82rem}.rotterdam-field-source__field span{color:var(--color-muted);font-size:.82rem;line-height:1.35;white-space:pre-line}.rotterdam-field-source__field--missing{border-color:#ffd1a3}.rotterdam-field-source__field--missing span{color:var(--color-orange-dark);font-weight:800}.rotterdam-export-actions{align-items:center;border-top:1px solid var(--color-border);display:flex;flex-wrap:wrap;gap:.6rem;padding-top:.85rem}.rotterdam-export-actions small{color:var(--color-muted);font-size:.82rem}.rotterdam-concept-panel{background:var(--color-blue-faint);border:1px solid var(--color-border);border-radius:8px;display:grid;gap:.85rem;padding:1rem}.rotterdam-concept-grid{display:grid;gap:.85rem;grid-template-columns:repeat(2,minmax(0,1fr))}.rotterdam-concept-field{background:var(--color-white);border:1px solid #dfeaf2;border-radius:8px;display:grid;gap:.65rem;padding:.8rem}.rotterdam-concept-field label,.rotterdam-concept-field dl{display:grid;gap:.45rem;margin:0}.rotterdam-concept-field textarea{min-height:7rem;resize:vertical}.rotterdam-concept-field dt{color:var(--color-blue-dark);font-size:.75rem;font-weight:850}.rotterdam-concept-field dd{color:var(--color-muted);font-size:.8rem;line-height:1.35;margin:0}.practical-error{align-items:start;background:var(--color-orange-soft);border:1px solid #ffd1a3;border-left:4px solid var(--color-orange);border-radius:8px;color:var(--color-orange-dark);display:flex;font-weight:850;gap:.6rem;line-height:1.4;padding:.8rem}.report-export-status{align-items:center;background:var(--color-orange-soft);border:1px solid #ffd1a3;border-radius:8px;display:flex;gap:1rem;justify-content:space-between;padding:.85rem}.report-export-status div{display:grid;gap:.2rem}.report-export-status strong{color:var(--color-blue-dark);font-size:1.05rem}.report-export-status small{color:var(--color-muted);font-weight:750}.report-download-link{align-items:center;background:var(--color-white);border:1px solid #f6a14a;border-radius:8px;color:var(--color-blue-dark);display:inline-flex;font-weight:850;min-height:2.5rem;padding:.55rem .8rem;text-decoration:none;white-space:nowrap}.report-download-list{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.report-template-grid{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}.report-template-field{background:var(--color-blue-soft);border:1px solid #c8e0f0;border-left:4px solid var(--color-blue);border-radius:8px;display:grid;gap:.5rem;padding:.8rem}.report-template-field h3{color:var(--color-blue-dark);margin:.1rem 0 0}.report-template-field p{color:var(--color-blue-dark);line-height:1.45;margin:0;white-space:pre-wrap}.report-template-field small{color:var(--color-muted);font-size:.78rem;line-height:1.35}.report-export-log{display:grid;gap:.65rem}.report-export-log h3{color:var(--color-blue-dark);margin:0}.report-export-log ul{display:grid;gap:.55rem;list-style:none;margin:0;padding:0}.report-export-log li{background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px;display:grid;gap:.15rem;padding:.65rem}.report-export-log strong{color:var(--color-blue-dark)}.report-export-log span,.report-export-log small{color:var(--color-muted);font-size:.84rem;line-height:1.35}.report-prompt-panel{display:grid;gap:.85rem;padding:1rem}.report-prompt-panel__head{align-items:start;display:flex;gap:1rem;justify-content:space-between}.report-prompt-panel__head h2{color:var(--color-blue-dark);margin:.15rem 0}.report-prompt-panel__head p{color:var(--color-muted);margin:0}.report-prompt-panel__head .secondary-action{align-items:center;display:inline-flex;gap:.45rem;white-space:nowrap}.report-prompt-preview{background:var(--color-blue-soft);border:1px solid #c8e0f0;border-left:4px solid var(--color-orange);border-radius:8px;color:var(--color-blue-dark);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.84rem;line-height:1.5;margin:0;max-height:28rem;overflow:auto;padding:.9rem;white-space:pre-wrap}.report-prep-layout{align-items:start;display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) minmax(20rem,.34fr)}.report-section-list{display:grid;gap:.85rem}.report-section-card{border-left:4px solid var(--color-blue);box-shadow:0 10px 24px #104c7f0f;display:grid;gap:.8rem;padding:1rem}.report-section-card--ontbreekt,.report-section-card--te-kort{border-left-color:var(--color-orange)}.report-section-card__head{align-items:start;display:flex;gap:.8rem;justify-content:space-between}.report-section-card h3,.report-prep-side h2{color:var(--color-blue-dark);margin:0}.report-section-card ul,.report-prep-side ul{display:grid;gap:.55rem;list-style:none;margin:0;padding:0}.report-section-card li,.report-prep-side li{background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px;display:grid;gap:.15rem;padding:.65rem}.report-section-card--ontbreekt li,.report-section-card--te-kort li{background:var(--color-orange-soft);border-color:#ffd1a3}.report-section-card li span,.report-section-card li small,.report-prep-side li{color:var(--color-muted);font-size:.84rem;line-height:1.35}.report-section-card li strong{color:var(--color-blue-dark)}.report-prep-side{display:grid;gap:1rem;padding:1rem;position:sticky;top:1rem}.report-prep-side section{display:grid;gap:.65rem}.report-prep-side textarea{line-height:1.5;resize:vertical}.teacher-management__layout{align-items:start;display:grid;gap:1rem;grid-template-columns:minmax(16rem,.72fr) minmax(0,1.35fr) minmax(18rem,.85fr)}.teacher-list-panel,.teacher-detail-panel,.teacher-side-panel,.teacher-profile-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:var(--shadow-card)}.teacher-list-panel,.teacher-detail-panel,.teacher-side-panel{display:grid;gap:1rem;padding:1.25rem}.teacher-side-panel{align-self:start;background:transparent;border:0;box-shadow:none;padding:0}.teacher-profile-card{display:grid;gap:1rem;padding:1rem}.teacher-profile-card h2{color:var(--color-blue-dark);font-size:1rem;margin:0}.teacher-list{display:grid;gap:.55rem}.teacher-list-item{align-items:center;background:var(--color-white);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);cursor:pointer;display:grid;font:inherit;gap:.75rem;grid-template-columns:minmax(0,1fr) auto;min-height:4.25rem;padding:.75rem;text-align:left}.teacher-list-item--active,.teacher-list-item:hover{background:var(--color-blue-soft);border-color:#bdd9ec}.teacher-list-item strong,.teacher-list-item small{display:block;line-height:1.35}.teacher-list-item small{color:var(--color-muted);font-size:.78rem;margin-top:.2rem}.mini-status{background:var(--color-blue-soft);border:1px solid #bdd9ec;border-radius:999px;color:var(--color-blue-dark);font-size:.72rem;font-weight:800;padding:.32rem .55rem}.mini-status--muted{background:#f1f4f7;border-color:var(--color-border);color:var(--color-muted)}.teacher-form{display:grid;gap:.9rem;grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-form label{color:var(--color-text);display:grid;font-size:.84rem;font-weight:750;gap:.35rem}.teacher-form input,.teacher-form select,.teacher-form textarea{background:var(--color-white);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);font:inherit;min-height:2.75rem;padding:.65rem .75rem;width:100%}.teacher-form textarea{line-height:1.5;min-height:6rem;resize:vertical}.teacher-form input:focus,.teacher-form select:focus,.teacher-form textarea:focus{border-color:var(--color-blue);box-shadow:0 0 0 3px #0f6fb624;outline:none}.teacher-form__wide,.teacher-form__actions{grid-column:1 / -1}.teacher-form__actions{display:flex;flex-wrap:wrap;gap:.65rem;justify-content:flex-end}.compact-form{gap:.65rem}.compact-form input,.compact-form select,.compact-form textarea{min-height:2.35rem;padding:.5rem .65rem}.compact-form textarea{min-height:4.5rem}.search-field{align-items:center;background:var(--color-white);border:1px solid var(--color-border);border-radius:8px;color:var(--color-muted);display:grid;gap:.5rem;grid-template-columns:auto minmax(0,1fr);min-height:2.75rem;padding:0 .75rem}.search-field input{border:0;color:var(--color-text);font:inherit;min-width:0;outline:none;width:100%}.duplicate-warning{align-items:center;background:var(--color-orange-soft);border:1px solid #ffd1a3;border-radius:8px;color:var(--color-orange-dark);display:flex;font-size:.86rem;font-weight:800;gap:.55rem;padding:.75rem}.inline-panel{border-top:1px solid var(--color-border);display:grid;gap:.9rem;margin-top:.4rem;padding-top:1rem}.secondary-action:disabled{cursor:not-allowed;opacity:.55}.teacher-toggle{align-content:center;align-items:center;background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px;display:flex!important;flex-direction:row;gap:.6rem!important;min-height:2.75rem;padding:.65rem .75rem}.teacher-toggle input{min-height:auto;width:auto}.selection-fieldset{border:1px solid var(--color-border);border-radius:8px;display:grid;gap:.75rem;margin:0;padding:.9rem}.selection-fieldset legend{color:var(--color-blue-dark);font-size:.84rem;font-weight:850;padding:0 .35rem}.selection-grid{display:grid;gap:.55rem;grid-template-columns:repeat(2,minmax(0,1fr))}.selection-option{align-items:center;background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px;display:flex!important;flex-direction:row;gap:.55rem!important;min-height:2.65rem;padding:.6rem .7rem}.selection-option input{min-height:auto;width:auto}.selection-option:has(input:disabled){opacity:.58}.field-error,.field-warning{font-size:.76rem;line-height:1.35}.field-error{color:#b3261e}.field-warning{color:var(--color-orange-dark)}.teacher-profile-card__top{align-items:center;display:flex;gap:.85rem}.teacher-avatar{align-items:center;background:var(--color-blue-dark);border-radius:8px;color:var(--color-white);display:inline-flex;flex:0 0 auto;font-weight:900;height:3rem;justify-content:center;width:3rem}.teacher-meta-list{display:grid;gap:.8rem;margin:0}.teacher-meta-list div{display:grid;gap:.22rem}.teacher-meta-list dt{align-items:center;color:var(--color-muted);display:flex;font-size:.76rem;font-weight:800;gap:.35rem}.teacher-meta-list dd{color:var(--color-text);font-size:.9rem;margin:0;overflow-wrap:anywhere}.drive-check{align-items:center;color:var(--color-blue-dark);display:grid;gap:.75rem;grid-template-columns:auto minmax(0,1fr)}.drive-check strong,.drive-check small{display:block;line-height:1.35}.drive-check small{color:var(--color-muted);font-size:.82rem}.teacher-group-list{display:grid;gap:.6rem;list-style:none;margin:0;padding:0}.teacher-group-list li{background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px;display:grid;gap:.2rem;padding:.75rem}.teacher-group-list span{color:var(--color-muted);font-size:.82rem}.sheet-status-grid{display:grid;gap:.55rem;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.sheet-status-grid div{background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px;display:grid;gap:.2rem;padding:.65rem}.sheet-status-grid dt{color:var(--color-muted);font-size:.72rem;font-weight:850}.sheet-status-grid dd{color:var(--color-blue-dark);font-size:.86rem;font-weight:850;margin:0}.sheet-tab-list{display:flex;flex-wrap:wrap;gap:.45rem}.sheet-tab-list span{background:var(--color-orange-soft);border:1px solid #ffd1a3;border-radius:999px;color:var(--color-orange-dark);font-size:.72rem;font-weight:850;padding:.32rem .55rem}.sheet-sync-button{justify-content:center;margin-top:.75rem;width:100%}.group-sheet-sync-panel{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:var(--shadow-card);display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) auto auto;padding:1rem}.group-sheet-sync-panel h3{color:var(--color-blue-dark);margin:.15rem 0}.group-sheet-sync-panel p{color:var(--color-muted);margin:0}.group-sheet-sync-panel dl{display:grid;gap:.5rem;grid-template-columns:repeat(2,minmax(8rem,1fr));margin:0}.group-sheet-sync-panel dt{color:var(--color-muted);font-size:.72rem;font-weight:850}.group-sheet-sync-panel dd{color:var(--color-blue-dark);font-weight:850;margin:.15rem 0 0}.intro-panel,.module-panel,.route-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:var(--shadow-card)}.intro-panel{align-items:start;display:grid;gap:1rem;grid-template-columns:auto minmax(0,1fr);padding:1.5rem}.intro-panel__icon,.route-card__icon{align-items:center;background:var(--color-orange-soft);border:1px solid #ffd1a3;border-radius:8px;color:var(--color-orange-dark);display:inline-flex;justify-content:center}.intro-panel__icon{height:3.25rem;width:3.25rem}.intro-panel p,.module-panel p{color:var(--color-muted);line-height:1.6;margin:.5rem 0 0}.card-grid{display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr))}.route-card{align-items:center;display:grid;gap:.85rem;grid-template-columns:auto minmax(0,1fr) auto;min-height:6.5rem;padding:1rem}.route-card:hover{border-color:var(--color-orange)}.route-card__icon{height:2.75rem;width:2.75rem}.route-card small{color:var(--color-muted);display:block;font-size:.78rem;margin-bottom:.25rem}.route-card strong{color:var(--color-blue-dark)}.module-panel{display:grid;gap:1rem;padding:1.25rem}.module-panel__header{align-items:start;display:flex;gap:1rem;justify-content:space-between}.placeholder-surface{align-items:center;background:linear-gradient(135deg,rgb(15 111 182 / .08),transparent 45%),linear-gradient(315deg,rgb(245 130 32 / .1),transparent 45%),var(--color-white);border:1px dashed #b8cce0;border-radius:8px;color:var(--color-blue);display:grid;justify-items:center;min-height:16rem;padding:2rem;text-align:center}.scope-list{display:grid;gap:.6rem;list-style:none;margin:0;padding:0}.scope-list li{align-items:center;background:var(--color-blue-soft);border:1px solid #c8e0f0;border-radius:8px;color:var(--color-blue-dark);display:flex;gap:.5rem;min-height:2.75rem;padding:.65rem .8rem}.teacher-dashboard-card,.route-planner-panel,.group-analysis,.student-route-panel,.student-route-checklist,.group-sheet-sync-panel,.teacher-profile-card,.teacher-list-panel,.teacher-detail-panel,.teacher-side-panel,.student-list-panel,.student-detail-panel,.student-history-panel,.intranet-list-panel,.intranet-detail-panel,.extra-step-panel,.z-route-panel{box-shadow:var(--shadow-panel)}.dashboard-panel__header,.report-editor-panel__head,.report-template-panel__head,.report-prompt-panel__head,.step-input-form__header,.group-route-hero,.student-route-hero{border-bottom:1px solid var(--color-border);padding-bottom:.75rem}.route-type-chip,.route-step-type,.route-step-period,.status-pill,.student-route-status,.signal-badge{letter-spacing:0;text-transform:none}.quick-action,.report-download-link,.intranet-actions a,.student-route-edit{transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.quick-action:hover,.report-download-link:hover,.intranet-actions a:hover,.student-route-edit:hover{transform:translateY(-1px)}@media(max-width:78rem){.app-shell{grid-template-columns:15.5rem minmax(0,1fr)}.app-header{grid-template-columns:minmax(15rem,auto) minmax(0,1fr) auto}.app-header__logo{max-width:11.5rem}.sidebar{padding:1rem}.brand{align-items:flex-start}.nav-item{min-height:3.65rem}.admin-dashboard,.teacher-dashboard,.docent-route-dashboard,.group-route-page,.student-route-page,.step-input-page,.report-prep-page,.import-control-page{max-width:100%}.import-control-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.report-prep-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:56rem){.app-shell{grid-template-columns:1fr;grid-template-rows:auto auto minmax(0,1fr)}.app-header{grid-column:1;grid-template-columns:minmax(0,1fr) auto;min-height:4rem}.app-header__brand{gap:.75rem}.app-header__logo{max-height:2rem;max-width:9.75rem}.app-header__module{font-size:.86rem;padding-left:.75rem}.app-header__page{grid-column:1 / -1;order:3}.app-header__page h1{font-size:1.08rem}.app-header__user{gap:.5rem}.app-header__user-name{display:none}.app-header__logout{min-height:2.2rem;padding-inline:.65rem}.sidebar{gap:1rem;grid-column:1;grid-row:2;position:static}.main-area{grid-column:1;grid-row:3}.brand{max-width:100%}.nav-list{grid-template-columns:repeat(2,minmax(0,1fr))}.nav-item{min-height:3.2rem}.nav-item small{display:none}.card-grid,.metric-grid,.import-control-summary,.import-control-workspace,.import-record dl,.notification-settings-grid,.dashboard-columns,.teacher-group-overview,.teacher-dashboard-columns,.docent-dashboard-blocks,.group-route-header,.group-sheet-sync-panel,.group-route-facts,.route-step-stats,.group-analysis-grid,.compact-analysis-cards,.compact-analysis-grid,.student-route-selectors,.student-route-header,.student-route-facts,.student-route-workspace,.student-route-step-facts,.z-route-metrics,.z-observation-grid,.step-input-context,.step-input-layout,.step-input-grid,.step-input-action-row,.extra-step-layout,.extra-step-options,.extra-step-toggles,.intranet-management-layout,.report-prep-controls,.report-prep-summary,.report-editor-layout,.report-status-control,.report-editor-meta,.report-download-list,.report-export-status,.report-template-grid,.rotterdam-field-source-grid,.rotterdam-concept-grid,.report-prep-layout,.teacher-management__layout,.teacher-form,.selection-grid,.docent-route-dashboard__intro{grid-template-columns:1fr}.course-task-route__header{align-items:stretch;flex-direction:column}.course-task-route__map{min-height:24rem;padding:1.25rem 1rem}.course-task-route__line{left:2rem;right:2rem;top:7.65rem}.course-task-route__scroll{grid-auto-columns:minmax(12.5rem,13.5rem)}.app-header,.module-panel__header,.dashboard-hero,.group-route-hero,.student-route-hero,.student-route-point__head,.student-route-point__footer,.step-input-hero,.step-input-form__header,.report-editor-panel__head,.report-template-panel__head,.report-template-actions,.report-export-status,.report-prompt-panel__head,.route-step-card__title{align-items:stretch;flex-direction:column}.app-header{align-items:center;flex-direction:unset}.route-step-card,.student-route-point{grid-template-columns:minmax(0,1fr)}.route-step-list:before,.student-route-list:before{display:none}.group-route-selector,.student-route-selectors{flex-basis:auto}.student-route-checklist,.report-editor-side,.report-prep-side{position:static}.teacher-form__actions{justify-content:stretch}.teacher-form__actions>button,.report-download-link,.primary-action,.secondary-action{width:100%}}@media(max-width:36rem){.app-header{gap:.75rem}.app-header__module{display:none}.app-header__logo{max-width:10.5rem}.app-header__logout span{display:none}}
