*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#f5f7fb;color:#182033}a{color:inherit}.hero{padding:54px 24px 34px;background:linear-gradient(135deg,#10243f,#2563eb 55%,#38bdf8);color:white}.smallHero{padding-top:30px}.wrap{max-width:1180px;margin:0 auto;padding:24px}.hero>*,.hero .inner{max-width:1180px;margin-left:auto;margin-right:auto}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-weight:800;font-size:.78rem;opacity:.78;margin:0 0 10px}.hero h1{font-size:clamp(2.1rem,5vw,4.4rem);line-height:1;margin:0 0 14px}.hero p{font-size:1.08rem;max-width:780px;opacity:.93}.back{display:inline-flex;margin-bottom:22px;text-decoration:none;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:8px 13px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.two{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.card{background:#fff;border:1px solid #e1e7f2;border-radius:24px;padding:22px;box-shadow:0 14px 36px rgba(15,23,42,.07);margin-bottom:16px}.module{position:relative;overflow:hidden}.module h2,.card h2{margin:0 0 8px}.module p,.card p{color:#526071;line-height:1.55}.pill{display:inline-flex;border-radius:999px;background:#eaf2ff;color:#1d4ed8;padding:6px 10px;font-size:.82rem;font-weight:750;margin:4px 6px 0 0}.btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;background:#172033;color:white;border-radius:14px;padding:11px 14px;font-weight:800;margin-top:12px;border:0;cursor:pointer}.btn.secondary{background:#edf2f7;color:#172033}.stats{margin-top:-44px}.stat span{font-weight:850;color:#64748b}.stat strong{display:block;font-size:2rem;margin:5px 0;color:#0f172a}.statusList{display:grid;gap:10px}.statusList>div{padding:12px 14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px}.compactList{padding-left:20px;line-height:1.5}.compactList li{margin:6px 0}.muted{background:#f8fafc}.footer{color:#64748b;font-size:.9rem;margin-top:22px}@media(max-width:720px){.wrap{padding:16px}.hero{padding-left:18px;padding-right:18px}.stats{margin-top:0}.two{grid-template-columns:1fr}}
.timeline{display:grid;gap:12px}.timeline>div{border-left:4px solid #2563eb;background:#f8fafc;border-radius:14px;padding:12px 14px}.timeline p{margin:4px 0 0}.demoForm{display:grid;gap:12px}.demoForm label{display:grid;gap:6px;font-weight:800;color:#334155}.demoForm input,.demoForm textarea,.demoForm select{width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:10px 12px;font:inherit;background:white}.demoForm textarea{min-height:80px}.codeBox{white-space:pre-wrap;background:#0f172a;color:#dbeafe;border-radius:18px;padding:16px;overflow:auto;font-size:.9rem;line-height:1.45}
.hidden{display:none!important}.successCard{border-color:#86efac;background:#f0fdf4}.errorCard{border-color:#fecaca;background:#fef2f2}.connectionAlert{display:flex;justify-content:space-between;gap:16px;align-items:center;border:1px solid #f59e0b;background:#fffbeb;color:#78350f;border-radius:20px;padding:16px 18px;margin-bottom:16px;box-shadow:0 14px 36px rgba(245,158,11,.12)}.connectionAlert p{margin:4px 0 0;color:#92400e;line-height:1.45}.connectionAlertActions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.connectionAlertActions .btn,.connectionAlertActions .miniBtn{margin-top:0;white-space:nowrap}.connectionAlertActions .btn{background:#92400e}@media(max-width:720px){.connectionAlert{display:block}.connectionAlertActions{justify-content:flex-start;margin-top:12px}.connectionAlertActions .btn,.connectionAlertActions .miniBtn{flex:1 1 100%;text-align:center}}.actionRow{display:flex;gap:10px;flex-wrap:wrap}.helper{color:#64748b;font-size:.95rem}.helper a{color:#1d4ed8;font-weight:800}.btn[disabled],button[disabled]{opacity:.55;cursor:not-allowed}
.appToast{position:fixed;right:24px;bottom:24px;z-index:10000;max-width:min(440px,calc(100vw - 32px));padding:13px 16px;border-radius:14px;background:#0f172a;color:#fff;font-weight:800;box-shadow:0 18px 45px rgba(15,23,42,.28);opacity:0;transform:translateY(12px);pointer-events:none;transition:.18s ease}.appToast.visible{opacity:1;transform:translateY(0)}.appToast.isError{background:#991b1b}
.financePortalCard{min-width:0;overflow:hidden}.financePortalCard strong,.financePortalCard span{min-width:0}.financePortalCard strong{overflow-wrap:normal;word-break:normal;hyphens:none}
.errorText{color:#b91c1c;font-weight:800;margin:8px 0 0}
.importPreview{border:1px dashed #bfdbfe;background:#eff6ff;color:#1e3a8a;border-radius:14px;padding:10px 12px;font-size:.88rem;line-height:1.45}.importPreview strong{color:#1d4ed8}.importPreview.errorText{border-color:#fecaca;background:#fef2f2;color:#b91c1c}
.sectionHeader{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.sectionHeader h2{margin:0 0 6px}.adminInviteForm{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:end;background:#f8fafc;border:1px solid #e2e8f0;border-radius:18px;padding:14px;margin:16px 0}.checkboxLine{display:flex!important;align-items:center;gap:8px}.checkboxLine input{width:auto}.tableWrap{overflow:auto;border:1px solid #e2e8f0;border-radius:16px;background:white}.dataTable{width:100%;border-collapse:collapse;font-size:.92rem}.dataTable th,.dataTable td{text-align:left;border-bottom:1px solid #e2e8f0;padding:10px 12px;vertical-align:top}.dataTable th{background:#f8fafc;color:#475569;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.dataTable tr:last-child td{border-bottom:0}.tableSub{color:#64748b;font-size:.82rem}.badge{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:.76rem;font-weight:850;margin:2px;background:#e2e8f0;color:#475569}.badge.ok{background:#dcfce7;color:#166534}.badge.warn{background:#fef3c7;color:#92400e}.badge.info{background:#dbeafe;color:#1d4ed8}.miniBtn{border:0;border-radius:10px;padding:7px 9px;font-weight:850;background:#172033;color:white;cursor:pointer;margin:2px}.miniBtn.secondary{background:#eaf2ff;color:#1d4ed8}.miniBtn[disabled]{opacity:.55;cursor:not-allowed}.rowActions{white-space:nowrap}.adminLists h3{margin:0 0 10px}.tabBar{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.assignmentTabPanel.hidden{display:none!important}.wideField{grid-column:1/-1}.dataTable select,.dataTable input{border:1px solid #cbd5e1;border-radius:10px;padding:7px 8px;max-width:190px;background:white}@media(min-width:780px){#assignmentTemplateForm{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.sectionHeader{display:block}.rowActions{white-space:normal}}
.adminToolBar{max-width:1180px;margin:-12px auto 18px;background:#0f172a;color:white;border-radius:18px;padding:12px 14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;box-shadow:0 14px 36px rgba(15,23,42,.12)}.adminToolBar.hidden{display:none!important}.adminToolBar .miniBtn{background:#38bdf8;color:#082f49}.adminToolBar .miniBtn.secondary{background:#334155;color:#e2e8f0}.adminToolBar .tableSub{color:#cbd5e1}.adminToolContext{display:flex;flex-direction:column;gap:2px;margin-right:auto;min-width:190px}.adminToolContext strong{font-size:.9rem}.adminToolControls{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.adminToolField{display:flex;align-items:center;gap:6px;color:#cbd5e1;font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.adminToolField select{min-width:150px;max-width:250px;border:1px solid #475569;border-radius:10px;background:#1e293b;color:#f8fafc;padding:7px 28px 7px 9px;font:inherit;text-transform:none;letter-spacing:normal}.adminToolBar .adminToolStatus{width:100%;margin:0;color:#fbbf24;font-size:.78rem}.adminToolBar.testPerspective{background:#422006}.adminToolBar.testPerspective .adminToolContext .tableSub{color:#fde68a}@media(max-width:720px){.adminToolContext{width:100%}.adminToolControls{width:100%}.adminToolField{flex:1 1 180px}.adminToolField select{width:100%;max-width:none}}
.notificationBar{max-width:1180px;margin:-8px auto 18px;position:relative;display:flex;justify-content:flex-end;gap:8px}.notificationBar.hidden{display:none!important}.feedbackBannerBtn,.notificationBell{border:0;background:#fff;border-radius:999px;padding:9px 12px;font-weight:900;box-shadow:0 10px 26px rgba(15,23,42,.12);cursor:pointer}.feedbackBannerBtn{color:#6d28d9;background:linear-gradient(135deg,#fff,#f5f3ff);border:1px solid #ddd6fe}.notificationBell span{display:inline-flex;min-width:22px;height:22px;border-radius:999px;background:#ef4444;color:white;align-items:center;justify-content:center;font-size:.78rem;margin-left:4px}.notificationBell span.empty{background:#94a3b8}.notificationPanel{position:absolute;right:0;top:46px;width:min(560px,calc(100vw - 28px));max-height:min(78vh,760px);overflow:auto;background:white;border:1px solid #e2e8f0;border-radius:18px;padding:14px;box-shadow:0 18px 45px rgba(15,23,42,.18);z-index:10}.notificationPanel.hidden{display:none!important}.notificationTabs{display:flex;gap:6px;flex-wrap:wrap;position:sticky;top:-14px;background:#fff;padding:8px 0;z-index:1}.notificationItem{border:1px solid #e2e8f0;border-left:4px solid #93c5fd;border-radius:14px;padding:12px;margin-top:10px;background:#f8fafc}.notificationItem.kind-task{border-left-color:#f59e0b}.notificationItem.kind-system{border-left-color:#ef4444}.notificationItem.state-completed,.notificationItem.state-archived{opacity:.68;background:#fff}.notificationItem p{margin:6px 0 10px;color:#475569}.notificationStateActions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.notificationOccurrence{font-weight:850;color:#64748b}

.feedbackModalCard{max-width:1020px;padding:0;overflow:hidden;background:#f8fafc}.feedbackModalHero{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:start;padding:25px 28px 22px;color:#fff;background:radial-gradient(circle at 85% 15%,rgba(94,234,212,.24),transparent 32%),linear-gradient(130deg,#0f3f46,#126d69 58%,#0f766e)}.feedbackModalHero .eyebrow{color:#99f6e4}.feedbackModalHero h2{margin:2px 0 6px;font-size:1.65rem}.feedbackModalHero p:last-child{margin:0;max-width:720px;color:#d5f5f1;line-height:1.45}.feedbackHeroIcon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);font-size:1.45rem;box-shadow:inset 0 1px rgba(255,255,255,.2)}.feedbackCloseBtn{background:rgba(255,255,255,.14)!important;color:#fff!important;border:1px solid rgba(255,255,255,.22)!important}.feedbackFlow{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 28px;background:#fff;border-bottom:1px solid #e2e8f0;color:#475569;font-size:.8rem;font-weight:800}.feedbackFlow span{display:flex;align-items:center;gap:7px}.feedbackFlow b{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#ccfbf1;color:#0f766e}.feedbackFlow i{width:42px;height:1px;background:#cbd5e1}.feedbackRequestForm{display:grid;grid-template-columns:220px minmax(0,1fr);gap:14px;align-items:end;margin:20px 24px 0;padding:18px;border:1px solid #d9e5e7;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.05)}.feedbackRequestForm>label{gap:7px}.feedbackRequestForm>label>span{font-weight:850;color:#243746}.feedbackRequestForm>label:first-child{grid-column:1;grid-row:1}.feedbackRequestForm select,.feedbackRequestForm textarea{border-color:#cbd5e1;background:#fbfdfd}.feedbackRequestForm select:focus,.feedbackRequestForm textarea:focus{border-color:#14b8a6;box-shadow:0 0 0 3px rgba(20,184,166,.12)}.feedbackContext{grid-column:2;grid-row:1;display:flex;align-items:center;gap:11px;min-height:66px;padding:10px 13px;border-radius:13px;background:#f0fdfa;color:#115e59}.feedbackContext p{margin:3px 0 0}.feedbackContextIcon{display:grid;place-items:center;flex:0 0 auto;width:34px;height:34px;border-radius:10px;background:#ccfbf1;font-size:1.15rem}.feedbackTextField{grid-column:1/-1;grid-row:2}.feedbackTextField textarea{width:100%;min-height:120px;line-height:1.5;resize:vertical}.feedbackRequestForm>.btn{grid-column:1/-1;justify-self:start}.feedbackSubmitBtn{display:flex;align-items:center;gap:18px;padding:11px 17px;background:linear-gradient(135deg,#0f766e,#0d9488);box-shadow:0 8px 18px rgba(13,148,136,.22)}.feedbackListHeader{margin:24px 24px 8px}.feedbackListHeader h3{margin:2px 0}.feedbackListHeader .eyebrow{color:#0f766e}#feedbackRequestList{padding:0 24px 24px}.feedbackRequestCard{position:relative;border:1px solid #dfe7eb;border-radius:18px;padding:17px 18px;margin-top:11px;background:#fff;box-shadow:0 5px 18px rgba(15,23,42,.045);overflow:hidden}.feedbackRequestCard:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:#8b5cf6}.feedbackRequestCard[data-status="implemented"]:before{background:#16a34a}.feedbackRequestCard[data-status="implemented"]{background:linear-gradient(90deg,#f0fdf4,#fff 28%)}.feedbackRequestCard[data-status="declined"]:before{background:#94a3b8}.feedbackRequestMeta,.feedbackRequestStatusRow{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.feedbackTypeIcon{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#f5f3ff}.feedbackStatus{border-radius:999px;padding:4px 9px;font-size:.75rem;font-weight:850;background:#f1f5f9;color:#475569}.feedbackStatus.status-implemented{background:#dcfce7;color:#166534}.feedbackStatus.status-planned{background:#dbeafe;color:#1d4ed8}.feedbackStatus.status-reviewing{background:#fef3c7;color:#92400e}.feedbackAuthor{margin-left:auto}.feedbackRequestCard h3{margin:12px 0 5px;font-size:1.15rem}.feedbackOriginal{margin:12px 0 0;padding:9px 12px;border-radius:12px;background:#f8fafc;color:#475569}.feedbackOriginal summary{cursor:pointer;font-weight:800}.feedbackOriginal p{margin:8px 0 2px}.feedbackLocation{margin:9px 0 0}.feedbackManagerForm{display:grid;grid-template-columns:180px minmax(0,1fr) auto;gap:8px;align-items:end;margin-top:13px;padding-top:13px;border-top:1px solid #e2e8f0}.feedbackLunaPending{display:flex;align-items:center;gap:9px;margin:13px 0;color:#0f766e;font-weight:800}.feedbackLunaPending.isError{color:#b91c1c}.feedbackPendingDot{width:9px;height:9px;border-radius:50%;background:#14b8a6;box-shadow:0 0 0 5px rgba(20,184,166,.12);animation:feedbackPulse 1.5s ease-in-out infinite}@keyframes feedbackPulse{50%{transform:scale(.7);opacity:.55}}
@media(max-width:720px){.feedbackModalHero{grid-template-columns:auto 1fr;padding:20px}.feedbackCloseBtn{grid-column:1/-1;justify-self:end}.feedbackFlow{justify-content:flex-start;overflow:auto;padding:12px 20px}.feedbackFlow i{width:20px;flex:0 0 20px}.feedbackFlow span{white-space:nowrap}.feedbackRequestForm,.feedbackManagerForm{grid-template-columns:1fr}.feedbackRequestForm{margin:14px}.feedbackRequestForm>label:first-child,.feedbackContext,.feedbackTextField{grid-column:auto;grid-row:auto}.feedbackListHeader{margin:20px 16px 8px}#feedbackRequestList{padding:0 16px 18px}.feedbackAuthor{width:100%;margin-left:0}.feedbackBannerBtn{font-size:.82rem;padding:8px 10px}}
.feedbackContextIcon{font-size:1rem;font-weight:950}.feedbackTypeIcon{color:#6d28d9;font-size:.67rem;font-weight:950}
.feedbackListTabs{display:flex;gap:7px;margin:0 24px 12px;padding:4px;border-radius:13px;background:#e8eff2}.feedbackListTab{display:flex;align-items:center;justify-content:center;gap:7px;min-width:120px;border:0;border-radius:10px;padding:8px 13px;background:transparent;color:#64748b;font-weight:900;cursor:pointer}.feedbackListTab.active{background:#fff;color:#0f766e;box-shadow:0 2px 8px rgba(15,23,42,.08)}.feedbackListTab span{display:grid;place-items:center;min-width:21px;height:21px;padding:0 6px;border-radius:999px;background:#cbd5e1;font-size:.7rem}.feedbackListTab.active span{background:#ccfbf1}
.feedbackTabs{display:flex;gap:8px;padding:16px 24px 0;background:#f8fafc}.feedbackTab{display:flex;align-items:center;gap:8px;border:1px solid #dbe4e8;border-radius:12px;padding:10px 15px;background:#fff;color:#475569;font-weight:900;cursor:pointer}.feedbackTab.active{border-color:#0d9488;background:#ecfdf5;color:#0f766e;box-shadow:0 4px 14px rgba(13,148,136,.1)}.feedbackTab span{display:grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#e2e8f0;font-size:.72rem}.feedbackTab.active span{background:#99f6e4}.feedbackTabPanel.hidden{display:none!important}.feedbackFilters{display:flex;gap:10px;flex-wrap:wrap;margin:0 24px 8px}.feedbackFilters label{min-width:180px;font-size:.78rem;font-weight:850;color:#475569}.feedbackFilters select{margin-top:5px;padding:8px 10px;background:#fff}.feedbackSuccess{display:flex;align-items:center;gap:13px;margin:14px 24px 22px;padding:14px 16px;border:1px solid #86efac;border-radius:16px;background:#f0fdf4;color:#166534}.feedbackSuccess.hidden{display:none!important}.feedbackSuccess>span{display:grid;place-items:center;flex:0 0 auto;width:36px;height:36px;border-radius:50%;background:#dcfce7;font-size:1.2rem;font-weight:950}.feedbackSuccess p{margin:3px 0 0;color:#3f6250}.feedbackSuccess .miniBtn{margin-left:auto;background:#166534}.feedbackEmptyState{margin:14px 0;padding:24px;border:1px dashed #cbd5e1;border-radius:16px;text-align:center;color:#64748b;background:#fff}.feedbackRequestCard.isSubmitted{border-color:#2dd4bf;box-shadow:0 0 0 3px rgba(45,212,191,.14),0 8px 24px rgba(15,23,42,.06)}.feedbackTimeline{display:flex;align-items:center;gap:7px;margin:14px 0 11px;overflow:auto;color:#94a3b8;font-size:.72rem;font-weight:850}.feedbackTimeline span{white-space:nowrap;padding:5px 8px;border-radius:999px;background:#f1f5f9}.feedbackTimeline span.done{background:#ccfbf1;color:#0f766e}.feedbackTimeline span.declined{background:#f1f5f9;color:#64748b}.feedbackTimeline i{flex:1 0 16px;height:1px;background:#cbd5e1}.feedbackSocialRow{display:flex;align-items:center;gap:10px;margin:12px 0}.feedbackSocialRow strong{font-size:.8rem;color:#64748b}.feedbackSupportBtn{border:1px solid #d8b4fe;border-radius:999px;padding:7px 11px;background:#faf5ff;color:#7e22ce;font-weight:850;cursor:pointer}.feedbackSupportBtn.active{border-color:#c084fc;background:#f3e8ff}.feedbackSupportBtn:disabled{cursor:default;opacity:.75}.feedbackDiscussion{margin:12px 0 0;border:1px solid #dbe4e8;border-radius:13px;background:#fbfdfd}.feedbackDiscussion>summary{padding:10px 12px;cursor:pointer;font-weight:850;color:#334155}.feedbackDiscussion>summary span{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:5px;border-radius:999px;background:#e2e8f0;font-size:.7rem}.feedbackComments{display:grid;gap:10px;padding:2px 12px 10px}.feedbackComment{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px}.feedbackCommentAvatar{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#ccfbf1;color:#0f766e;font-weight:950}.feedbackComment>div>div{display:flex;gap:7px;align-items:baseline}.feedbackComment p{margin:3px 0;color:#334155}.feedbackCommentForm{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;padding:10px 12px;border-top:1px solid #e2e8f0}.feedbackCommentForm textarea{min-height:54px;resize:vertical;background:#fff}
.feedbackKindPicker{grid-column:1/-1;grid-row:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:0;padding:0;border:0}.feedbackKindPicker legend{grid-column:1/-1;margin-bottom:2px;font-weight:850;color:#243746}.feedbackKindPicker label{position:relative;cursor:pointer}.feedbackKindPicker input{position:absolute;opacity:0;pointer-events:none}.feedbackKindPicker label>span{display:flex;flex-direction:column;gap:3px;height:100%;padding:12px;border:1px solid #dbe4e8;border-radius:13px;background:#f8fafc;color:#334155;transition:.15s ease}.feedbackKindPicker label:hover>span{border-color:#5eead4;background:#f0fdfa}.feedbackKindPicker input:checked+span{border-color:#0d9488;background:#ecfdf5;color:#0f766e;box-shadow:0 0 0 2px rgba(13,148,136,.1)}.feedbackKindPicker b{font-size:.86rem}.feedbackKindPicker small{color:#64748b;line-height:1.3}.feedbackRequestForm .feedbackContext{grid-column:1/-1;grid-row:2}.feedbackRequestForm .feedbackTextField{grid-column:1/-1;grid-row:3}.feedbackRequestForm>.feedbackSubmitBtn{grid-row:4}
.feedbackRequestCard{padding:12px 14px;margin-top:8px;border-radius:15px}.feedbackRequestCard:before{width:4px}.feedbackRequestCard h3{margin:8px 0 3px;font-size:1.05rem}.feedbackRequestCard>p{margin:4px 0;line-height:1.42}.feedbackRequestMeta{gap:5px}.feedbackTypeIcon{width:25px;height:25px;border-radius:8px}.feedbackRequestMeta .badge,.feedbackStatus{padding:3px 7px;font-size:.7rem}.feedbackTimeline{margin:8px 0 7px}.feedbackTimeline span{padding:3px 7px}.feedbackSocialRow{margin:7px 0}.feedbackSupportBtn{padding:5px 9px;font-size:.76rem}.feedbackDiscussion{margin-top:7px}.feedbackDiscussion>summary{padding:7px 10px;font-size:.82rem}.feedbackOriginal{display:inline-block;margin:7px 0 0;padding:6px 9px;font-size:.78rem}.feedbackLocation{display:inline-block;margin:7px 0 0 7px}.feedbackManagerForm{grid-template-columns:150px minmax(0,1fr) auto;margin-top:9px;padding-top:9px}.feedbackManagerActions{display:flex;flex-direction:column;align-items:stretch;gap:4px}.feedbackManagerActions .miniBtn{white-space:nowrap;margin:0}.feedbackLunaPending{margin:8px 0}.feedbackComments{gap:7px;padding-bottom:7px}.feedbackCommentForm{padding:8px 10px}
@media(max-width:720px){.feedbackTabs{padding:12px 14px 0}.feedbackTab{flex:1;justify-content:center;padding:9px;font-size:.8rem}.feedbackFilters{margin:0 16px 8px}.feedbackFilters label{flex:1 1 130px;min-width:0}.feedbackSuccess{align-items:flex-start;flex-wrap:wrap;margin:12px 14px 18px}.feedbackSuccess .miniBtn{margin-left:49px}.feedbackTimeline{padding-bottom:3px}.feedbackCommentForm{grid-template-columns:1fr}.feedbackCommentForm .miniBtn{justify-self:start}}
@media(max-width:720px){.feedbackKindPicker{grid-template-columns:1fr 1fr}.feedbackRequestForm .feedbackContext,.feedbackRequestForm .feedbackTextField{grid-column:auto;grid-row:auto}.feedbackRequestForm>.feedbackSubmitBtn{grid-row:auto}}
@media(max-width:720px){.feedbackRequestCard{padding:11px 12px}.feedbackManagerForm{grid-template-columns:1fr}.feedbackManagerActions{flex-direction:row;flex-wrap:wrap}.feedbackLocation{margin-left:0}.feedbackAuthor{font-size:.72rem}}
.notificationTabBadge{display:inline-flex;min-width:20px;height:20px;padding:0 6px;margin-left:4px;border-radius:999px;align-items:center;justify-content:center;background:#7c3aed;color:#fff;font-size:.72rem;font-weight:900;line-height:1}.notificationTabBadge.is-information{background:#2563eb}.notificationTabBadge[hidden]{display:none}
.appShell{width:100%;max-width:none;margin:0 auto;display:grid;grid-template-columns:230px minmax(0,1fr);gap:18px;padding:0 18px}.appShell:has(>.sidebar.hidden){grid-template-columns:minmax(0,1fr)}.appShell:has(>.sidebar.hidden)>.wrap{max-width:760px;margin:0 auto}.sidebar{position:sticky;top:18px;align-self:start;background:#0f172a;color:white;border-radius:24px;padding:16px;min-height:calc(100vh - 36px);display:flex;flex-direction:column;gap:8px}.sidebar.hidden{display:none!important}.sidebarBrand{font-weight:950;font-size:1.1rem}.sideNav{border:0;border-radius:14px;background:transparent;color:#cbd5e1;padding:11px 12px;text-align:left;font-weight:850;cursor:pointer}.sideNav.active,.sideNav:hover{background:#1d4ed8;color:white}.mutedNav{color:#94a3b8}.sidebarSpacer{flex:1}.versionLabel{font-size:.78rem;color:#94a3b8;margin:8px 6px}.appShell .wrap{width:100%;max-width:none;padding-left:0;padding-right:0}.dashboardIntro{grid-column:1/-1}.miniBtn.danger{background:#fee2e2;color:#991b1b}.modalBackdrop{position:fixed;inset:0;background:rgba(15,23,42,.5);display:grid;place-items:center;z-index:50;padding:18px}.modalBackdrop.hidden{display:none!important}.modalCard{background:white;border-radius:24px;max-width:620px;width:100%;padding:22px;box-shadow:0 24px 70px rgba(15,23,42,.24)}.changeList{line-height:1.7}.changeList li{margin:8px 0}@media(max-width:850px){.appShell{display:block}.sidebar{position:static;min-height:auto;margin:0 18px 18px}.appShell .wrap{padding:0 18px}}
.adminSubnav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}.adminSection.hidden{display:none!important}
.memberPicker{display:grid;gap:8px;max-height:280px;overflow:auto;padding:8px;border:1px solid #e5e7eb;border-radius:16px;background:white}.checkRow{display:flex;gap:10px;align-items:flex-start;padding:8px;border-radius:12px}.checkRow:hover{background:#f8fafc}.checkRow small{color:#64748b}.memberPickerCompact{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:3px;max-height:240px;overflow:auto;padding:4px;border:1px solid #e5e7eb;border-radius:12px;background:white}.groupMemberChip{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:3px 8px;border-radius:8px;cursor:pointer;font-size:.76rem;font-weight:700;color:#334155;text-align:center;line-height:1.15}.groupMemberChip input{margin:0 0 2px;width:13px;height:13px;flex-shrink:0}.groupMemberChip span{overflow:hidden;text-overflow:ellipsis;max-width:100%}.groupMemberChip small{color:#94a3b8;font-size:.66rem;font-weight:600;flex-shrink:0;display:block}.groupMemberChip.selected{background:#dbeafe;color:#1e40af}.groupMemberChip:hover{background:#f1f5f9}.memberPickerHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.memberPickerActions{display:flex;gap:6px}.groupFormRow{display:grid;grid-template-columns:1fr 1fr;gap:10px}.groupLessonSection{margin:6px 0}.groupLessonPicker{overflow:auto;max-height:260px;border:1px solid #e5e7eb;border-radius:12px;background:white;padding:4px}.groupLessonGrid{width:100%;border-collapse:separate;border-spacing:0;min-width:360px;table-layout:fixed;font-size:.74rem}.groupLessonGrid th,.groupLessonGrid td{border-bottom:1px solid #f1f5f9;border-right:1px solid #f1f5f9;padding:2px;text-align:center}.groupLessonGrid th{background:#f8fafc;color:#64748b;font-weight:700;padding:4px 2px}.groupLessonGrid .groupLessonRowLabel{width:42px;min-width:42px;max-width:42px;background:#f8fafc;color:#64748b;font-weight:700;font-size:.68rem}.groupLessonGrid .groupLessonRowLabel small{display:block;font-weight:400;color:#94a3b8}.groupLessonGrid tr.lunch td{background:#f8fafc}.groupLessonCell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:3px 2px;border-radius:6px;cursor:pointer;min-height:28px;font-weight:600}.groupLessonCell input{position:absolute;opacity:0;width:0;height:0}.groupLessonCell:hover{background:#eff6ff}.groupLessonCell.selected{background:#dbeafe;box-shadow:inset 0 0 0 1.5px #3b82f6}.groupLessonCellTitle{font-size:.68rem;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;color:#1e40af}.groupLessonCell.selected .groupLessonCellTitle{color:#1e3a8a}@media(max-width:600px){.groupFormRow{grid-template-columns:1fr}}
.memberTools{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.masterDataGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:14px 0}.masterDataForm{background:white;border:1px solid #e2e8f0;border-radius:18px;padding:14px}.masterDataForm h4{margin:0 0 4px;color:#0f172a}.masterDataForm .demoForm,.masterDataForm{display:grid;gap:10px}.masterDataForm.compactForm,.demoForm.compactForm{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:end}.masterDataForm.compactForm>h4,.masterDataForm.compactForm>.actionRow,.masterDataForm.compactForm>.targetTenantField,.masterDataForm.compactForm>.helper,.demoForm.compactForm>h4,.demoForm.compactForm>.actionRow,.demoForm.compactForm>.targetTenantField,.demoForm.compactForm>.helper,.demoForm.compactForm>fieldset,.demoForm.compactForm>.tableWrap{grid-column:1/-1}.masterDataForm.compactForm label,.demoForm.compactForm label{font-size:.82rem}
.moduleGrid{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.moduleCard{margin-bottom:0}.moduleIcon{font-size:1.8rem;margin-bottom:8px}.moduleCard h3{margin:0 0 8px}.moduleCard p{min-height:48px}
.submissionHint{margin-top:8px}.submissionForm{display:grid;gap:8px;min-width:240px;white-space:normal}.submissionForm label{display:grid;gap:5px;font-weight:800;color:#334155;font-size:.86rem}.submissionForm textarea,.submissionForm input{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:8px 9px;font:inherit;background:white}.submissionForm textarea{min-height:80px}.progressResponse{border-bottom:1px solid #e2e8f0;padding:8px 0}.progressResponse:last-child{border-bottom:0}.responseBox{white-space:pre-wrap;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:8px 10px;margin-top:6px;color:#334155}.miniChecklist{margin:6px 0 0 0;padding-left:0;list-style:none;color:#334155}.miniChecklist li{margin:3px 0}.miniChecklistEditor{display:grid;gap:4px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:6px}.checkRow.compact{padding:5px;margin:0}.dataTable .submissionForm input{max-width:none}
.collapsiblePanel{padding:0}.collapsiblePanel>summary{list-style:none;cursor:pointer;padding:18px 22px;font-weight:950;display:flex;justify-content:space-between;gap:12px;align-items:center}.collapsiblePanel>summary::-webkit-details-marker{display:none}.collapsiblePanel>summary:before{content:'▾';color:#2563eb;margin-right:4px}.collapsiblePanel:not([open])>summary:before{content:'▸'}.collapsiblePanel>summary small{font-weight:750;color:#64748b}.collapsiblePanel>form,.collapsiblePanel>.sectionHeader,.collapsiblePanel>.actionRow,.collapsiblePanel>.personPanel{margin:0 22px 18px}.competencyControl{display:grid;gap:10px;align-content:start}.selectedCompetencies{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.competencyChip{display:inline-flex;gap:6px;align-items:center;border:1px solid #bfdbfe;background:#eff6ff;color:#1e40af;border-radius:999px;padding:5px 9px;font-size:.78rem;font-weight:850}.competencyChip button{border:0;background:transparent;color:#1e40af;font-weight:950;cursor:pointer;padding:0}.wideModal{max-width:min(1100px,calc(100vw - 28px));max-height:90vh;overflow:auto}.competencyToolbar{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:10px;align-items:end;margin:12px 0}.competencyToolbar label{display:grid;gap:6px;font-weight:850;color:#334155}.competencyToolbar input{border:1px solid #cbd5e1;border-radius:12px;padding:10px 12px;font:inherit;background:white}.modalSelection{padding:8px 0 12px;border-bottom:1px solid #e2e8f0;margin-bottom:10px}.curriculumTree{display:grid;gap:8px}.curriculumTree details{border:1px solid #e2e8f0;border-radius:14px;background:#fff}.curriculumTree summary{cursor:pointer;padding:10px 12px;font-weight:900}.curriculumTree .treeBody{padding:0 12px 10px}.competencyStage{display:flex;gap:8px;align-items:flex-start;padding:6px;border-radius:10px}.competencyStage:hover{background:#f8fafc}.competencyStage input{margin-top:3px}.competencyText{color:#334155;font-size:.9rem;line-height:1.45}.competencyText strong{color:#0f172a}.curriculumPdf{font-size:.82rem;color:#1d4ed8;font-weight:800}.assignmentCompetencies{margin-top:8px;display:flex;flex-wrap:wrap;gap:5px}@media(max-width:720px){.competencyToolbar{grid-template-columns:1fr}.collapsiblePanel>summary{display:block}.wideModal{max-height:92vh}}
/* v0.14.1 Polish */
body{background:radial-gradient(circle at top left,#eef6ff 0,#f5f7fb 34%,#f8fafc 100%)}
.card{border-color:#dbe4f0;box-shadow:0 14px 34px rgba(15,23,42,.06)}
.card>h3,.adminSection>h3{margin-top:0;color:#0f172a}.muted{background:linear-gradient(180deg,#fbfdff,#f8fafc)}
.dashboardIntro{border:1px solid #bfdbfe;background:linear-gradient(135deg,#eff6ff,#fff);box-shadow:0 18px 42px rgba(37,99,235,.09)}
.stat{position:relative;overflow:hidden}.stat:before{content:'';position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,#2563eb,#38bdf8)}.stat:nth-of-type(3):before{background:linear-gradient(90deg,#7c3aed,#a78bfa)}.stat:nth-of-type(4):before{background:linear-gradient(90deg,#f59e0b,#fbbf24)}
.moduleCard{position:relative;overflow:hidden;border-color:#dbeafe;background:linear-gradient(135deg,#ffffff,#f8fbff);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.moduleCard:hover{transform:translateY(-2px);border-color:#93c5fd;box-shadow:0 20px 48px rgba(37,99,235,.12)}.moduleCard:before{content:'';position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(180deg,#2563eb,#38bdf8)}.moduleCard.module-groups:before{background:linear-gradient(180deg,#059669,#34d399)}.moduleCard.module-assignments:before{background:linear-gradient(180deg,#7c3aed,#60a5fa)}.moduleTop{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}.moduleIcon{width:44px;height:44px;border-radius:16px;display:grid;place-items:center;background:#eff6ff;color:#1d4ed8;font-size:1.45rem;margin:0}.module-groups .moduleIcon{background:#ecfdf5;color:#047857}.module-assignments .moduleIcon{background:#f5f3ff;color:#6d28d9}.moduleCard p{min-height:auto;color:#526071}.moduleCard .miniBtn{margin-top:12px}
.sectionHeader{padding-bottom:4px}.sectionHeader h2,.sectionHeader h3{letter-spacing:-.02em}.tabBar,.adminSubnav{background:#f8fafc;border:1px solid #e2e8f0;border-radius:18px;padding:8px}.tabBar .miniBtn,.adminSubnav .miniBtn{margin:0}.tableWrap{box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}.dataTable th{background:#f1f5f9}.dataTable tr:hover td{background:#fbfdff}
.collapsiblePanel{padding:0;overflow:hidden;border-color:#dbe4f0}.collapsiblePanel>summary{position:relative;list-style:none;cursor:pointer;padding:18px 20px 18px 68px;font-weight:950;display:flex;justify-content:space-between;gap:14px;align-items:center;min-height:70px;transition:background .18s ease}.collapsiblePanel>summary::-webkit-details-marker{display:none}.collapsiblePanel>summary:hover{background:#f1f5f9}.collapsiblePanel>summary:before{content:'›';position:absolute;left:20px;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:999px;display:grid;place-items:center;background:#eaf2ff;color:#1d4ed8;border:1px solid #bfdbfe;font-size:1.55rem;line-height:1;font-weight:950;transition:transform .18s ease,background .18s ease,color .18s ease}.collapsiblePanel[open]>summary:before{transform:translateY(-50%) rotate(90deg);background:#1d4ed8;color:white;border-color:#1d4ed8}.collapsiblePanel>summary:after{content:'Öffnen';border:1px solid #cbd5e1;background:white;color:#334155;border-radius:999px;padding:6px 10px;font-size:.78rem;font-weight:900;white-space:nowrap}.collapsiblePanel[open]>summary:after{content:'Schliessen';background:#172033;color:white;border-color:#172033}.collapsiblePanel>summary span{display:grid;gap:3px}.collapsiblePanel>summary strong{font-size:1rem;color:#0f172a}.collapsiblePanel>summary em{font-style:normal;font-weight:650;color:#64748b;font-size:.88rem;line-height:1.35}.collapsiblePanel>summary small{font-weight:850;color:#64748b;background:#eef2f7;border-radius:999px;padding:5px 9px;white-space:nowrap}.collapsiblePanel[open]>summary{border-bottom:1px solid #e2e8f0;background:#fbfdff}.collapsiblePanel>form,.collapsiblePanel>.sectionHeader,.collapsiblePanel>.actionRow,.collapsiblePanel>.personPanel,.directoryPanel>.tableWrap{margin:18px 22px 20px}.directoryFilters{margin:18px 22px 0;display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(150px,.75fr)) auto;gap:10px;align-items:end;background:linear-gradient(135deg,#f8fafc,#eef6ff);border:1px solid #dbe4f0;border-radius:18px;padding:12px}.directoryFilters label{display:grid;gap:5px;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;font-weight:950;color:#64748b}.directoryFilters input,.directoryFilters select{width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:9px 10px;background:white;color:#172033;font:inherit;font-size:.92rem;text-transform:none;letter-spacing:0;font-weight:800}.directoryFilters .miniBtn{align-self:end;margin:0}.collapsiblePanel.accent-blue{border-top:4px solid #3b82f6}.collapsiblePanel.accent-amber{border-top:4px solid #f59e0b}.collapsiblePanel.accent-green{border-top:4px solid #10b981}.collapsiblePanel.accent-purple{border-top:4px solid #8b5cf6}.collapsiblePanel.accent-slate{border-top:4px solid #64748b}.directoryPanel>summary{background:linear-gradient(135deg,#fff,#f8fafc)}
.competencyChip{max-width:100%;gap:5px;border-color:#c7d2fe;background:#eef2ff;color:#3730a3;padding:4px 8px;font-size:.76rem}.competencyChip strong{font-size:.75rem;color:#1e3a8a}.competencyChip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.assignmentCompetencies .competencyChip span{max-width:170px}.selectedCompetencies{gap:5px}.competencyControl{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:14px;padding:10px}.curriculumTree details{border-color:#dbe4f0}.curriculumTree summary{display:flex;align-items:center;gap:8px;border-radius:14px}.curriculumTree summary:hover{background:#f8fafc}.competencyStage{border:1px solid transparent}.competencyStage:hover{border-color:#dbeafe;background:#eff6ff}.competencyText{font-size:.88rem}.badge{letter-spacing:.01em}
@media(max-width:980px){.directoryFilters{grid-template-columns:repeat(2,minmax(0,1fr))}.directoryFilters .miniBtn{grid-column:1/-1;justify-content:center}}@media(max-width:720px){.collapsiblePanel>summary{padding:16px 16px 16px 58px;display:flex}.collapsiblePanel>summary:before{left:16px;width:30px;height:30px}.collapsiblePanel>summary:after{padding:5px 8px}.collapsiblePanel>summary small{display:none}.collapsiblePanel>form,.collapsiblePanel>.sectionHeader,.collapsiblePanel>.actionRow,.collapsiblePanel>.personPanel,.directoryPanel>.tableWrap{margin:14px}.directoryFilters{margin:14px;grid-template-columns:1fr}.moduleTop{align-items:flex-start}.competencyChip span{max-width:150px}}

/* v0.15.0 Personenprofile */
.settingsGrid{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(320px,1.15fr);gap:18px;align-items:start;margin-top:12px}.profileCard{border:1px solid #e2e8f0;border-radius:22px;background:linear-gradient(135deg,#f8fafc,#eef6ff);padding:18px}.settingsProfileTop{display:flex;gap:14px;align-items:center}.settingsProfileTop h3{margin:0 0 4px}.profileMeta{display:grid;gap:10px;margin:16px 0 0}.profileMeta div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #dbe4f0;padding-top:9px}.profileMeta dt{font-weight:900;color:#475569}.profileMeta dd{margin:0;text-align:right;color:#0f172a}.settingsProfileForm{margin-top:0}.settingsPhotoEditor{margin-top:18px}.personCell{display:flex;gap:10px;align-items:center;min-width:220px}.avatar{flex:0 0 auto;display:inline-grid;place-items:center;border-radius:999px;overflow:hidden;background:#dbeafe;color:#1d4ed8;font-weight:950;border:2px solid #fff;box-shadow:0 4px 12px rgba(15,23,42,.12)}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.avatar-sm{width:30px;height:30px;font-size:.72rem}.avatar-md{width:42px;height:42px;font-size:.86rem}.avatar-xl{width:96px;height:96px;font-size:1.5rem}.avatarPlaceholder{background:linear-gradient(135deg,#dbeafe,#f5f3ff)}.memberLine{display:flex;align-items:center;gap:8px;margin:4px 0}.photoEditor{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center;border:1px dashed #cbd5e1;border-radius:18px;background:#f8fafc;padding:14px}.personPhotoPreview{display:grid;justify-items:center;gap:6px}.visuallyHidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.photoActions .miniBtn{position:relative;overflow:hidden}.personModalCard .demoForm{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}@media(max-width:720px){.settingsGrid{grid-template-columns:1fr}.profileMeta div{display:block}.profileMeta dd{text-align:left;margin-top:2px}.photoEditor{grid-template-columns:1fr;justify-items:start}.personCell{min-width:180px}.avatar-xl{width:78px;height:78px}.personModalCard .demoForm{grid-template-columns:1fr}}

/* v0.16.0 Kalender */
.moduleCard.module-calendar:before{background:linear-gradient(180deg,#db2777,#f97316)}.module-calendar .moduleIcon{background:#fdf2f8;color:#be185d}
.calendarControls{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:14px 0}.calendarViewTabs{display:flex;gap:8px;flex-wrap:wrap}.calendarDisplayControls{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.calendarDisplayControls label{display:flex;align-items:center;gap:6px;margin:0;font-size:.86rem;font-weight:900;color:#475569}.calendarDisplayControls select{min-width:130px;padding:8px 10px;border:1px solid #dbe4f0;border-radius:12px;background:white;font-weight:850;color:#172033}.calendarWeekdayPicker{display:flex;align-items:center;gap:5px;flex-wrap:wrap;border:0;margin:0;padding:0}.calendarWeekdayPicker legend{font-size:.86rem;font-weight:900;color:#475569;margin-right:2px}.weekdayChip{display:inline-flex!important;align-items:center;justify-content:center;min-width:36px;padding:7px 9px;border:1px solid #dbe4f0;border-radius:999px;background:white;color:#64748b;cursor:pointer;transition:.15s ease}.weekdayChip input{position:absolute;opacity:0;pointer-events:none}.weekdayChip.selected{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8;box-shadow:0 0 0 1px #bfdbfe}.weekdayChip:hover{transform:translateY(-1px);border-color:#93c5fd}.tabBtn{border:0;border-radius:999px;background:#1d4ed8;color:white;padding:9px 14px;font-weight:900;cursor:pointer}.tabBtn.secondary{background:#e2e8f0;color:#334155}.calendarToolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin:14px 0}.calendarToolbar h3{margin:0}.calendarLegend{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.calendarLayout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.calendarLayout.calendarLayoutFull,.calendarLayout.calendarAgendaBelow,.calendarLayout.calendarAgendaHidden{grid-template-columns:minmax(0,1fr)}.calendarLayout.calendarAgendaBelow .calendarAgenda{grid-column:1/-1}.calendarLayout.calendarAgendaHidden .calendarAgenda{display:none}.calendarMainSurface{background:linear-gradient(180deg,#f8fafc,#fff);border:1px solid #e2e8f0;border-radius:22px;padding:12px}.calendarMonth{display:grid;grid-template-columns:repeat(var(--calendar-visible-days,7),minmax(0,1fr));gap:8px}.calendarWeekday{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-weight:900;text-align:center;padding:4px}.calendarDay{min-height:124px;background:white;border:1px solid #e2e8f0;border-radius:16px;padding:8px;display:grid;align-content:start;gap:5px;transition:.15s ease}.calendarDay.empty{background:transparent;border-style:dashed}.calendarDay.today,.calendarWeekColumn.today,.dayAgendaHeader.today{border-color:#2563eb;box-shadow:0 0 0 2px #dbeafe;background:#eff6ff}.calendarDate{border:0;background:transparent;padding:0;width:100%;display:flex;justify-content:space-between;align-items:center;font-weight:950;color:#0f172a;cursor:pointer}.calendarDate span{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:999px;background:#dbeafe;color:#1d4ed8}.calendarEventPill{border:0;text-align:left;border-radius:10px;padding:5px 7px;font-size:.78rem;font-weight:850;color:#172033;background:#f1f5f9;cursor:pointer;display:flex;gap:4px;align-items:center;min-width:0}.calendarEventPill small{color:#64748b;font-weight:900}.calendarEventPill:hover,.calendarEventCard:hover{filter:brightness(.97);transform:translateY(-1px)}.eventBadge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:4px 8px;font-size:.75rem;font-weight:900;margin:2px;background:#e2e8f0;color:#334155}.event-lesson{background:#dbeafe!important;color:#1d4ed8!important}.event-assignment{background:#ede9fe!important;color:#6d28d9!important}.event-test{background:#fee2e2!important;color:#991b1b!important}.event-appointment{background:#dcfce7!important;color:#166534!important}.event-reminder{background:#fef3c7!important;color:#92400e!important}.calendarWeek{display:grid;grid-template-columns:repeat(var(--calendar-visible-days,7),minmax(120px,1fr));gap:10px}.calendarWeekColumn{background:white;border:1px solid #e2e8f0;border-radius:18px;padding:10px;min-height:360px}.calendarWeekColumn header{display:grid;grid-template-columns:1fr auto auto;gap:7px;align-items:center;margin-bottom:8px}.calendarWeekColumn header span{color:#64748b;font-weight:800}.calendarEventCard{width:100%;border:1px solid #e2e8f0;border-left-width:5px;border-radius:14px;background:white;text-align:left;padding:10px;margin:0 0 8px;display:grid;gap:5px;cursor:pointer;color:#172033}.calendarEventCard small{color:#64748b;font-weight:800}.calendarEventCard em{font-style:normal;color:#475569;font-size:.9rem}.calendarEventCard.compact{padding:8px}.calendarEventCard.compact .eventBadge{font-size:.68rem;padding:3px 6px}.calendarDayAgenda{display:grid;gap:14px}.dayAgendaHeader{border:1px solid #e2e8f0;border-radius:18px;background:white;padding:14px;display:flex;justify-content:space-between;align-items:center;gap:12px}.dayAgendaHeader h3{margin:0}.calendarAgenda{border:1px solid #e2e8f0;border-radius:18px;background:#f8fafc;padding:14px}.calendarAgenda h3{margin:0 0 10px}.calendarAgendaItem{background:white;border:1px solid #e2e8f0;border-left-width:5px;border-radius:16px;padding:12px;margin-bottom:10px;display:grid;gap:8px}.calendarAgendaItem p{margin:5px 0 0}.eventBorder-lesson{border-left-color:#3b82f6}.eventBorder-assignment{border-left-color:#8b5cf6}.eventBorder-test{border-left-color:#ef4444}.eventBorder-appointment{border-left-color:#22c55e}.eventBorder-reminder{border-left-color:#f59e0b}
#calendarForm{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}#calendarGroupSelect{min-height:110px}.calendarModalCard{max-width:min(760px,calc(100vw - 28px))}.btn.danger{background:#dc2626;color:white}
@media(max-width:980px){.calendarControls{align-items:flex-start}.calendarDisplayControls{width:100%}.calendarDisplayControls label{flex:1 1 180px}.calendarDisplayControls select{width:100%}.calendarWeekdayPicker{flex:1 1 100%;width:100%}.weekdayChip{flex:1 1 38px}.calendarLayout{grid-template-columns:1fr}.calendarLegend{justify-content:flex-start}.calendarMonth,.calendarWeek{grid-template-columns:1fr}.calendarWeekday{display:none}.calendarDay.empty{display:none}.calendarDay,.calendarWeekColumn{min-height:auto}.calendarAgenda{order:2}.calendarMainSurface{padding:8px}.calendarDate:before{content:'Tag ';font-weight:700;color:#64748b}.calendarWeekColumn header{grid-template-columns:1fr auto auto}}.assignmentListItem{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.assignmentListItem p{margin:.45rem 0 0;color:#334155;line-height:1.45}.assignmentDuePill{flex:0 0 auto;border:1px solid #fed7aa;background:#fff7ed;color:#9a3412;border-radius:999px;padding:5px 10px;font-size:.78rem;font-weight:900}.emptyState{border:1px dashed #cbd5e1;background:#f8fafc;border-radius:18px;padding:20px;text-align:center}.emptyState h3{margin:0 0 6px}.emptyState p{margin:0 auto 12px;max-width:520px;color:#64748b}@media(max-width:720px){.assignmentListItem{display:block}.assignmentDuePill{display:inline-flex;margin-top:8px}}
.templateAssignBox{display:grid;gap:8px;min-width:180px}.templateAssignBox label{font-size:.78rem;font-weight:900;color:#64748b}.templateAssignBox select,.templateAssignBox input{width:100%;margin-top:4px}
.calendarGroupPicker{max-height:220px;overflow:auto}.calendarEventCard .tableSub{display:block;margin-top:4px}.calendarMiniEmpty{border:1px dashed #dbe4f0;border-radius:12px;background:#f8fafc;color:#64748b;font-size:.86rem;padding:10px;text-align:center}.calendarEmpty{text-align:left;margin:8px 0}.calendarEmpty .btn{margin-top:8px}.calendarAgenda .emptyState{text-align:left}

/* v0.17.x Gruppen-Kompaktheit */
.groupActions.adminIconActions{width:210px;display:flex;flex-wrap:wrap;gap:6px;white-space:normal}.groupActions.adminIconActions .miniBtn{margin:0}
.groupRow td{padding-top:12px;padding-bottom:12px}.groupInfoCell{width:34%;min-width:240px}.groupInfoCell strong{display:block;font-size:.98rem;margin-bottom:4px}.groupInfoCell p{margin:6px 0 0;color:#475569;font-size:.86rem;line-height:1.35}.groupMetaLine{display:flex;flex-wrap:wrap;gap:5px;margin-top:3px}.groupMetaLine span{display:inline-flex;border-radius:999px;background:#f1f5f9;color:#64748b;padding:3px 7px;font-size:.74rem;font-weight:850}.groupMembersCell{min-width:420px}.groupMemberChips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.groupMemberChip,.groupMemberMore{display:inline-flex;align-items:center;gap:6px;border:1px solid #e2e8f0;background:#fff;border-radius:999px;box-shadow:0 2px 8px rgba(15,23,42,.04)}.groupMemberChip{max-width:210px;padding:3px 8px 3px 3px}.groupMemberChip .avatar-sm{width:22px;height:22px;font-size:.58rem;border-width:1px;box-shadow:none}.groupMemberChip>span{display:grid;min-width:0;line-height:1.05;font-weight:850;color:#172033;font-size:.8rem}.groupMemberChip small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#64748b;font-weight:750;font-size:.66rem;margin-top:1px}.groupMemberChip .miniBtn{padding:4px 7px;font-size:.72rem;margin-left:3px}.groupMemberMore{background:#f1f5f9;color:#475569;padding:7px 10px;font-size:.78rem;font-weight:900}.groupActions{width:200px;white-space:normal}.groupActions .miniBtn{display:inline-flex;margin:2px 4px 2px 0}@media(max-width:980px){.groupInfoCell,.groupMembersCell{min-width:0;width:auto}.groupMemberChip{max-width:100%}.groupActions{width:auto}#groupsTable .rowActions{white-space:normal}}
.groupMemberChip.genderFemale{border-color:#fbcfe8;background:#fdf2f8}.groupMemberChip.genderFemale .avatar{background:#fce7f3;color:#be185d}.groupMemberChip.genderMale{border-color:#bfdbfe;background:#eff6ff}.groupMemberChip.genderMale .avatar{background:#dbeafe;color:#1d4ed8}
.groupMemberMore{cursor:pointer;font:inherit}.groupMemberMore:hover{background:#e2e8f0;color:#172033}
.notificationMeta{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.notificationMeta span{border-radius:999px;background:#e0f2fe;color:#0369a1;padding:3px 7px;font-size:.72rem;font-weight:900}.notificationItem.read{opacity:.72;background:#fff}.notificationItem.read .notificationMeta span{background:#f1f5f9;color:#64748b}
.notificationResponseForm{display:grid;gap:8px;margin-top:8px}.notificationResponseForm textarea{width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:8px;font:inherit}.notificationChoices{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.groupNotificationSummary{border:1px solid #e2e8f0;border-radius:16px;padding:13px;margin:10px 0;background:#f8fafc}.groupNotificationSummary p{margin:6px 0}.groupNotificationSummary ul{margin:8px 0 0;padding-left:18px;color:#334155}.notificationChoiceSummary{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.notificationChoiceSummary span{border-radius:999px;background:#eef2ff;color:#3730a3;padding:4px 8px;font-size:.78rem;font-weight:900}
.roadmapPanel{grid-column:1/-1;border-color:#fed7aa;background:linear-gradient(135deg,#fff7ed,#ffffff)}.roadmapPanel .sectionHeader{align-items:flex-start}.roadmapList{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:12px}.roadmapList li{border:1px solid #fed7aa;border-left:5px solid #f97316;border-radius:16px;background:#fff;padding:12px 14px}.roadmapList strong{display:block;color:#9a3412;margin-bottom:4px}.roadmapList p{margin:0;color:#475569;line-height:1.45}.roadmapCategory{background:#fff7ed!important;border-left-color:#ea580c!important}.roadmapCategory>strong{font-size:1rem;color:#7c2d12}.roadmapCategory ul{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:8px}.roadmapCategory li{background:white}.roadmapCategoryHeader{cursor:pointer;display:flex;align-items:center;justify-content:space-between;user-select:none}.roadmapToggleIcon{font-size:.8rem;color:#9a3412;flex-shrink:0}.roadmapCategory.collapsed ul{display:none}.roadmapCategory.collapsed .roadmapToggleIcon::before{content:''}
.compactHeader{align-items:flex-start;gap:10px;margin:4px 0 2px}.compactHeader p{margin:4px 0 0}.compactHeader .miniBtn{flex:0 0 auto}
.assignmentPageModalCard{max-width:min(1040px,calc(100vw - 28px))}.assignmentPageSurface{background:#f1f5f9;border-radius:22px;padding:14px}.assignmentPage{background:#fff;border:1px solid #dbe4f0;border-radius:24px;overflow:hidden;box-shadow:0 18px 54px rgba(15,23,42,.09)}.assignmentPageHeader{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center;padding:28px;background:linear-gradient(135deg,#172033,#2563eb);color:white}.assignmentPageHeader h1{margin:0 0 6px;font-size:clamp(1.7rem,4vw,3rem);line-height:1.05}.assignmentPageHeader p{margin:0;color:rgba(255,255,255,.85)}.assignmentSchoolLogo{width:72px;height:72px;border-radius:22px;display:grid;place-items:center;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.32);font-weight:950;font-size:1.35rem;letter-spacing:.04em;overflow:hidden}.assignmentSchoolLogo.hasImage{background:#fff;padding:7px}.assignmentSchoolLogo img{display:block;width:100%;height:100%;object-fit:contain}.assignmentMetaCards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;padding:16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.assignmentMetaCards>div{background:white;border:1px solid #e2e8f0;border-radius:16px;padding:12px}.assignmentMetaCards span{display:block;color:#64748b;font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900;margin-bottom:5px}.assignmentMetaCards strong{color:#0f172a}.assignmentCompetencyPanel{padding:18px 22px;border-bottom:1px solid #e2e8f0}.assignmentCompetencyPanel h3,.assignmentContentBlock h3{margin:0 0 10px}.assignmentPageBlocks{display:grid;gap:14px;padding:20px}.assignmentContentBlock{border:1px solid #e2e8f0;border-radius:20px;background:white;padding:18px}.assignmentIntroBlock{background:linear-gradient(135deg,#ffffff,#f8fbff)}.assignmentContentBlock p{color:#334155;line-height:1.55}.assignmentPageTextarea{width:100%;border:1px solid #cbd5e1;border-radius:16px;padding:12px;font:inherit;background:#f8fafc;color:#172033}.assignmentPageChecklist{display:grid;gap:9px}.assignmentPageCheck{display:flex;align-items:flex-start;gap:10px;padding:10px;border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc}.assignmentAnswerPreview{border:1px dashed #cbd5e1;background:#f8fafc;border-radius:16px;padding:12px;margin-top:10px}@media(max-width:720px){.assignmentPageHeader{grid-template-columns:1fr}.assignmentSchoolLogo{width:58px;height:58px;border-radius:18px}.assignmentPageSurface{padding:6px}}
.assignmentBlockHeader{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.assignmentBlockHeader h3{margin:0 0 8px}.assignmentBlockHeader p{margin:.2rem 0 0}.assignmentBlockPoints{display:inline-flex;border-radius:999px;background:#fef3c7;color:#92400e;padding:4px 8px;font-size:.76rem;font-weight:950;margin:2px}.assignmentInfoBlock{background:linear-gradient(135deg,#ffffff,#f8fbff)}.assignmentResourceCard{display:grid;gap:4px;text-decoration:none;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;border-radius:16px;padding:13px 14px;font-weight:900}.assignmentResourceCard span{font-size:.82rem;color:#475569;font-weight:700;word-break:break-all}.assignmentPageInput{width:100%;border:1px solid #cbd5e1;border-radius:14px;padding:11px 12px;font:inherit;background:#f8fafc;color:#172033}.assignmentChoices{display:grid;gap:9px}.assignmentChoice{display:flex;align-items:flex-start;gap:10px;border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc;padding:11px}.assignmentChoice.correct{border-color:#bbf7d0;background:#f0fdf4}.assignmentChoice em{margin-left:auto;color:#166534;font-size:.75rem;font-style:normal;font-weight:900}.assignmentImageBlock{margin:10px 0 0}.assignmentImageBlock img{max-width:100%;border-radius:16px;border:1px solid #e2e8f0}.assignmentImageBlock figcaption{color:#64748b;font-size:.82rem;margin-top:6px}@media(max-width:720px){.assignmentBlockHeader{display:block}.assignmentChoice em{display:block;margin-left:0}}
.assignmentPageForm{display:grid;gap:12px}.assignmentPageSubmitBar{position:sticky;bottom:0;display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:12px;background:rgba(248,250,252,.94);backdrop-filter:blur(8px);border:1px solid #e2e8f0;border-radius:18px}.assignmentAutoSaveStatus{margin-right:auto;color:#475569;font-size:.88rem}.assignmentAutoSaveStatus[data-state="saving"]{color:#9a6700}.assignmentAutoSaveStatus[data-state="saved"]{color:#166534}.assignmentAutoSaveStatus[data-state="error"]{color:#b91c1c}.assignmentScorePanel{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 22px;border-bottom:1px solid #e2e8f0;background:#f0fdf4;color:#166534}.assignmentScorePanel span{font-size:.9rem;color:#475569}@media(max-width:720px){.assignmentPageSubmitBar,.assignmentScorePanel{display:block}.assignmentAutoSaveStatus{display:block;margin:0 0 8px}.assignmentPageSubmitBar .btn{width:100%;justify-content:center;margin-top:6px}}
.assignmentBlockBuilder{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:18px;padding:12px}.assignmentBlockBuilderList{display:grid;gap:10px}.blockBuilderCard{background:white;border:1px solid #dbe4f0;border-radius:16px;padding:12px}.blockBuilderTop{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}.blockBuilderGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.blockBuilderGrid label{display:grid;gap:5px;font-weight:850;color:#334155}.blockBuilderGrid input,.blockBuilderGrid select,.blockBuilderGrid textarea{border:1px solid #cbd5e1;border-radius:12px;padding:9px 10px;font:inherit;background:white}.blockBuilderGrid .wideField{grid-column:1/-1}@media(max-width:720px){.blockBuilderTop{display:block}.blockBuilderTop .miniBtn{margin-top:8px}}
.blockTypePicker{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;padding:12px;margin:0 0 12px;background:#eef6ff;border:1px solid #bfdbfe;border-radius:16px}.blockTypePicker button{display:grid;grid-template-columns:34px 1fr;gap:1px 8px;text-align:left;align-items:center;padding:10px;border:1px solid #dbe4f0;border-radius:13px;background:#fff;color:#17324d;cursor:pointer}.blockTypePicker button:hover{border-color:#0f766e;box-shadow:0 4px 14px #0f766e18}.blockTypePicker button>span{grid-row:1/3;font-size:22px}.blockTypePicker button strong{font-size:13px}.blockTypePicker button small{font-size:11px;color:#64748b}.blockBuilderTitle{display:flex;align-items:center;gap:9px;min-width:180px}.blockBuilderTitle>div{display:grid}.blockBuilderTitle small{font-weight:500;color:#64748b}.blockTypeIcon{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#e6fffb;font-size:19px}.blockBuilderActions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}.blockEditorIconBtn{border:1px solid #cbd5e1;border-radius:9px;background:#fff;padding:6px 9px;color:#334155;font:inherit;font-size:12px;font-weight:750;cursor:pointer}.blockEditorIconBtn:hover:not(:disabled){border-color:#0f766e;color:#0f766e}.blockEditorIconBtn:disabled{opacity:.35;cursor:not-allowed}.blockEditorQuestion{grid-column:span 2}.blockEditorAssessment{grid-column:1/-1;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}.blockEditorAssessment summary{padding:9px 11px;cursor:pointer;font-weight:800;color:#475569}.blockEditorAssessment>div{display:flex;gap:16px;align-items:end;padding:0 11px 11px}.blockEditorAssessment label{min-width:145px}.blockEditorSection{display:grid;gap:10px;padding:12px;border:1px solid #dbe4f0;border-radius:14px;background:#fbfdff}.blockEditorSection>strong,.blockEditorSection legend{font-weight:900;color:#17324d}.blockEditorSectionHead{display:flex;align-items:center;justify-content:space-between;gap:12px}.blockEditorSectionHead>div:first-child{display:grid}.blockEditorSectionHead span{font-size:12px;color:#64748b;font-weight:500}.blockEditorRows,.blockEditorGapParts{display:grid;gap:7px}.blockEditorRow,.blockEditorGapRow{display:flex;align-items:center;gap:7px}.blockEditorGrow{flex:1;min-width:120px}.blockEditorSolutionToggle{display:flex!important;grid-auto-flow:column;align-items:center;gap:5px!important;min-width:80px;font-size:12px!important}.blockEditorSolutionToggle input{width:18px;height:18px}.blockEditorPair>input{flex:1}.blockEditorPair>span{font-size:12px;color:#64748b}.blockEditorOrderNumber,.blockEditorGapBadge{display:grid;place-items:center;min-width:30px;height:30px;border-radius:9px;background:#e6fffb;color:#0f766e;font-size:12px;font-weight:900}.blockEditorGapBadge{min-width:64px}.blockEditorTextPart{width:100%;resize:vertical}.blockEditorChoiceCards{display:grid;grid-template-columns:repeat(3,minmax(130px,1fr));gap:8px}.blockEditorChoiceCards label{cursor:pointer}.blockEditorChoiceCards input{position:absolute;opacity:0;pointer-events:none}.blockEditorChoiceCards span{display:grid;place-items:center;gap:4px;padding:14px;border:1px solid #cbd5e1;border-radius:12px;background:#fff;text-align:center}.blockEditorChoiceCards input:checked+span{border-color:#0f766e;background:#e6fffb;color:#0f766e;box-shadow:0 0 0 2px #0f766e22}.blockEditorMatrixWrap{max-width:100%;overflow:auto}.blockEditorMatrix{border-collapse:separate;border-spacing:5px;width:100%;min-width:520px}.blockEditorMatrix th,.blockEditorMatrix td{padding:0;background:transparent}.blockEditorMatrix input{width:100%;min-width:110px}.blockEditorMatrixHeading{display:flex;align-items:center;gap:4px}.blockEditorMatrixHeading input{font-weight:850;background:#eef6ff}.blockEditorMatrix td input{background:#fffef7}.assignmentBuilderImage{max-height:220px;max-width:100%;border-radius:12px;border:1px solid #dbe4f0}@media(max-width:720px){.blockTypePicker{grid-template-columns:1fr}.blockBuilderActions{justify-content:flex-start;margin-top:8px}.blockEditorQuestion{grid-column:1/-1}.blockEditorRow,.blockEditorGapRow,.blockEditorSectionHead{align-items:stretch;flex-wrap:wrap}.blockEditorPair>input{flex-basis:100%}.blockEditorChoiceCards{grid-template-columns:1fr}.blockEditorAssessment>div{display:grid}.blockEditorSolutionToggle{min-width:100%}}
.assignmentReviewPanel{margin:18px auto 0;max-width:980px;background:#fff;border:1px solid #dbe4f0;border-radius:22px;padding:16px;box-shadow:0 18px 45px rgba(15,23,42,.08)}.reviewBlock{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:14px;border-top:1px solid #e2e8f0;padding:14px 0}.reviewBlock h4{margin:0 0 6px}.reviewAnswer{margin-top:8px;background:#f8fafc;border-radius:12px;padding:10px}.reviewAnswer p{margin:4px 0 0;white-space:pre-wrap}.reviewInputs{display:grid;gap:8px}.reviewInputs input,.reviewInputs textarea,.assignmentReviewPanel textarea{border:1px solid #cbd5e1;border-radius:12px;padding:9px 10px;font:inherit;background:white}.reviewInputs label,.assignmentReviewPanel label{display:grid;gap:5px;font-weight:850;color:#334155}@media(max-width:760px){.reviewBlock{grid-template-columns:1fr}.reviewInputs{grid-template-columns:1fr}}
body.modalOpen{overflow:hidden}.modalBackdrop{background:rgba(15,23,42,.62);align-items:center;justify-items:center}.modalCard{max-height:calc(100vh - 36px);overflow:auto}.assignmentPageModalCard{max-height:calc(100vh - 32px);overflow:auto;padding-bottom:26px}.assignmentReviewForm{display:block}.assignmentReviewPanel .actionRow{position:sticky;bottom:0;background:linear-gradient(180deg,rgba(255,255,255,.82),#fff);padding-top:10px;margin-bottom:0}.reviewInputs textarea{min-height:72px;resize:vertical}.assignmentPageSurface{min-height:0}
.assignmentReviewPanel{padding-bottom:34px}.assignmentReviewPanel .actionRow{padding-bottom:18px;margin-bottom:8px}
.calendarGroupPicker{background:linear-gradient(180deg,#f8fafc,#fff);border-radius:18px;padding:10px}.calendarGroupChipGrid{display:flex;flex-wrap:wrap;gap:10px}.calendarGroupChip{position:relative;display:grid;gap:2px;min-width:150px;max-width:100%;border:1px solid #dbe4f0;background:white;border-radius:999px;padding:10px 14px 10px 38px;cursor:pointer;box-shadow:0 8px 20px rgba(15,23,42,.05);transition:.15s ease}.calendarGroupChip:hover{border-color:#93c5fd;transform:translateY(-1px);box-shadow:0 12px 24px rgba(37,99,235,.09)}.calendarGroupChip input{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:16px;height:16px;accent-color:#2563eb}.calendarGroupChip .chipTitle{font-weight:950;color:#172033;line-height:1.1}.calendarGroupChip .chipMeta{font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.calendarGroupChip.selected{border-color:#2563eb;background:linear-gradient(135deg,#eff6ff,#dbeafe);box-shadow:0 12px 28px rgba(37,99,235,.16)}.calendarGroupChip.selected .chipTitle{color:#1d4ed8}.calendarGroupPicker.readonly .calendarGroupChip{cursor:default;background:#f8fafc;box-shadow:none}.calendarGroupPicker.readonly .calendarGroupChip:not(.selected){display:none}@media(max-width:620px){.calendarGroupChip{width:100%;border-radius:16px}}
.levelSortList{display:grid;gap:10px;margin-top:14px}.levelSortItem{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #e2e8f0;border-radius:14px;padding:10px 12px;background:#f8fafc}.levelSortItem small{color:#64748b;font-weight:700}
.subjectColorDot{display:inline-block;width:14px;height:14px;border-radius:999px;margin-right:8px;vertical-align:-2px;border:1px solid rgba(15,23,42,.18)}.inlineCheck{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:#475569}.weekdayPicker{border:1px solid #e2e8f0;border-radius:16px;padding:12px;margin:8px 0}.weekdayPicker legend{font-weight:900;color:#0f172a;padding:0 6px}

.planbarHostView {
  padding: 1rem;
}
.groupLessonCell.disabled{cursor:not-allowed;opacity:.4;filter:saturate(.35)}
.groupLessonCell.disabled:hover{background:transparent}
.planbarPublishedViewer{display:grid;gap:14px;margin:12px 0 18px;padding:16px;border:1px solid #dbeafe;border-radius:18px;background:linear-gradient(145deg,#fff,#f8fbff)}
.planbarPublishedFilters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.planbarPublishedFilters label{display:grid;gap:6px;font-weight:700;font-size:.84rem}.planbarPublishedFilters select,.planbarPublishedFilters input{width:100%}
.planbarPublishedList{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:9px}.planbarPublishedChoice{display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid #dbe3ee;border-radius:12px;background:#fff;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.planbarPublishedChoice:hover{border-color:#60a5fa;background:#eff6ff}.planbarPublishedChoice:has(input:checked){border-color:#0f766e;background:#ccfbf1;box-shadow:0 0 0 2px rgba(15,118,110,.14)}.planbarPublishedChoice input{width:18px;height:18px;margin:0;accent-color:#0f766e;flex:0 0 auto}.planbarPublishedChoice:has(input:checked) span{color:#115e59;font-weight:750}
.planbarPrintSeries{display:flex;gap:8px;flex-wrap:wrap;padding:10px;border-radius:13px;background:#eef2ff}.planbarPrintSeriesItem{display:inline-flex;align-items:stretch}.planbarPrintSeriesItem>.miniBtn{border-radius:9px 0 0 9px}.planbarPrintSeriesItem>.miniBtn:only-child{border-radius:9px}.planbarPrintSeriesDelete{width:32px;border:1px solid #cbd5e1;border-left:0;border-radius:0 9px 9px 0;background:#fff;color:#991b1b;font-size:18px;font-weight:800;cursor:pointer}.planbarPrintSeriesDelete:hover{background:#fee2e2}.planbarPrintSeriesDelete:focus-visible{outline:3px solid rgba(153,27,27,.22);outline-offset:2px}.planbarPublishedPreview{overflow:auto;max-height:72vh;border-radius:14px;background:#e2e8f0;padding:12px}.planbarPublishedPreview:empty{display:none}.planbarPublishedPreview .kp{transform-origin:top left}
.planbarPrintSeriesEdit{width:34px;border:1px solid #cbd5e1;border-left:0;background:#fff;color:#334155;font-size:15px;font-weight:800;cursor:pointer}.planbarPrintSeriesEdit:hover{background:#f8fafc}.planbarPrintSeriesItem>.planbarPrintSeriesEdit+.planbarPrintSeriesDelete{border-radius:0 9px 9px 0}.planbarPrintSeriesItem>.miniBtn+.planbarPrintSeriesDelete{border-radius:0 9px 9px 0}.planbarPackageModalCard{width:min(900px,calc(100vw - 28px));max-height:min(88vh,920px);overflow:auto}.planbarPackageForm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.planbarPackageForm label{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0}.planbarPackageForm input,.planbarPackageForm select{width:100%;min-width:0}.planbarPackageForm .wideField{grid-column:1/-1}.planbarPackageChoices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:340px;overflow:auto;padding:10px;border:1px solid #dbe4ee;border-radius:12px;background:#f8fafc}.planbarPackageChoice{display:flex!important;flex-direction:row!important;gap:8px!important;align-items:center!important;padding:9px;border:1px solid #dbe4ee;border-radius:10px;background:#fff}.planbarPackageChoice input{width:auto;margin:0}.planbarPackageSummary{padding:10px 12px;border-radius:11px;background:#eef2ff;color:#334155}.planbarPublishedViewer.viewerOnly #planbarPublishedFilters{display:none}.planbarPrintSeriesItem.active>.miniBtn{background:#0f766e;color:#fff;border-color:#0f766e}@media(max-width:760px){.planbarPackageForm{grid-template-columns:1fr}.planbarPackageChoices{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.planbarPublishedFilters{grid-template-columns:1fr}.planbarPublishedList{grid-template-columns:1fr}}

/* Schulverlegungen */
.financeSchoolTripEditor { margin: 18px 0 28px; }
.financeSchoolTripForm { display: grid; gap: 16px; }
.schoolTripSection { border: 1px solid var(--border, #dce3ec); border-radius: 18px; padding: 20px; background: #fff; box-shadow: 0 10px 28px rgba(24,39,75,.055); }
.schoolTripSection,.schoolTripClassCard,.schoolTripReceiptCard{transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.schoolTripStateAttention{border-color:#8b5cf6!important;box-shadow:0 0 0 3px rgba(139,92,246,.18),0 10px 28px rgba(24,39,75,.055)!important}.schoolTripStateComplete{border-color:#22c55e!important;box-shadow:0 0 0 3px rgba(34,197,94,.14),0 10px 28px rgba(24,39,75,.055)!important}.schoolTripFieldMissing{border-color:#8b5cf6!important;outline:2px solid rgba(139,92,246,.22);outline-offset:1px;box-shadow:0 0 0 3px rgba(139,92,246,.12)!important}.schoolTripReceiptUpload.schoolTripFieldMissing{border-radius:10px}.schoolTripSummary.schoolTripStateComplete{background:linear-gradient(135deg,#ecfdf5,#eff6ff)}
.schoolTripSection h4 { margin: 0 0 14px; font-size: 1.05rem; }
.schoolTripSectionHead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.schoolTripSectionHead h4 { margin-bottom:4px; }.schoolTripSectionHead p { margin:0 0 16px;color:#64748b;font-size:.86rem; }
.schoolTripGrid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.schoolTripJourneyGrid{display:grid;grid-template-columns:150px minmax(230px,1.25fr) minmax(190px,.9fr) 105px;gap:10px;align-items:end}.schoolTripJourneyGrid label{display:grid;gap:6px;color:#42516a;font-size:.82rem;font-weight:750}.schoolTripJourneyGrid input,.schoolTripJourneyGrid select{width:100%;min-width:0;box-sizing:border-box}
.schoolTripGrid label,.schoolTripExpenseRow label,.schoolTripClassRow label,.schoolTripSection>label { display: grid; gap: 6px; color: #42516a; font-size: .86rem; font-weight: 650; }
.schoolTripGrid input,.schoolTripGrid select,.schoolTripExpenseRow input,.schoolTripClassRow input,.schoolTripClassRow select,.schoolTripSection>label input { width: 100%; box-sizing: border-box; }
.schoolTripClassRow { display: grid; grid-template-columns: minmax(170px,.8fr) minmax(210px,1fr) 125px 130px 40px; gap: 10px; align-items: end; margin-bottom: 10px; }
.schoolTripClassRow>[data-class-share] { padding: 11px 8px; color: #526079; font-weight: 700; }
.schoolTripCategory { border:1px solid #e5eaf2; border-radius:14px; padding:12px; margin-top:10px; background:linear-gradient(145deg,#fff,#fbfcff); }
.schoolTripCategory:first-of-type { border-top: 0; }
.schoolTripCategory>div:first-child { display: flex; align-items: center; justify-content: space-between; margin-bottom: 9px; }
.schoolTripExpenseRow { display: grid; grid-template-columns: minmax(220px,2fr) minmax(180px,1.4fr) 130px 40px; gap: 10px; align-items: end; padding: 10px; background: #f7f9fc; border-radius: 12px; margin-bottom: 8px; }
.schoolTripReceiptCard{display:grid;gap:12px;padding:16px;margin-top:14px;border:1px solid #dbe4f0;border-radius:18px;background:#f8fafc;box-shadow:0 8px 22px rgba(15,23,42,.045)}.schoolTripReceiptCard.hasFile{border-color:#86efac;background:linear-gradient(145deg,#f0fdf4,#f8fafc 38%)}.schoolTripReceiptHead{display:grid;grid-template-columns:minmax(230px,1.2fr) auto minmax(170px,.65fr) auto 40px;gap:14px;align-items:center}.schoolTripReceiptIdentity{display:flex!important;align-items:center;gap:11px;min-width:0}.schoolTripReceiptIdentity>div{display:grid;gap:3px;min-width:0}.schoolTripReceiptIcon{display:grid;place-items:center;width:36px;height:36px;flex:0 0 auto;border-radius:12px;background:#e2e8f0;color:#475569;font-size:1rem;font-weight:950}.hasFile .schoolTripReceiptIcon{background:#dcfce7;color:#15803d}.schoolTripReceiptHead small{color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schoolTripReceiptActions{display:flex!important;gap:8px;align-items:center}.schoolTripReceiptUpload{position:relative;display:inline-flex}.schoolTripReceiptUpload input{position:absolute;opacity:0;inset:0;cursor:pointer}.schoolTripReceiptUpload span{padding:8px 12px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;font-size:.8rem;font-weight:800;color:#334155;white-space:nowrap}.schoolTripReceiptTotal{display:grid!important;gap:2px;text-align:right}.schoolTripReceiptTotal small{font-size:.72rem}.schoolTripReceiptTotal strong{font-size:1rem;color:#0f172a}.schoolTripEarlyPayment span{display:grid;gap:1px}.schoolTripEarlyPayment small{font-size:.68rem;font-weight:650;color:#a16207}.schoolTripAllocationGuide{display:flex;justify-content:space-between;gap:14px;padding-top:10px;border-top:1px solid #dbe4f0}.schoolTripAllocationGuide span{font-size:.82rem;font-weight:850;color:#334155}.schoolTripAllocationGuide small{color:#64748b;font-size:.76rem}.schoolTripAllocations{display:grid;gap:8px}.schoolTripAllocationRow{display:grid;grid-template-columns:180px minmax(220px,1fr) 130px 40px;gap:10px;align-items:end;padding:11px;border:1px solid #e2e8f0;border-radius:12px;background:#fff}.schoolTripAllocationRow label{display:grid;gap:5px;font-size:.8rem;font-weight:800;color:#475569}.schoolTripAllocationRow input,.schoolTripAllocationRow select{width:100%;min-width:0;box-sizing:border-box}
.schoolTripIncomeRow { display:grid; grid-template-columns:minmax(220px,2fr) 150px 40px; gap:10px; align-items:end; padding:10px; background:#fff; border:1px solid #e2e8f0; border-radius:12px; margin-bottom:8px; }
.schoolTripIncomeRow label,.schoolTripFundRow label { display:grid; gap:6px; color:#42516a; font-size:.86rem; font-weight:650; }
.schoolTripFundRow { display:grid; grid-template-columns:180px 150px 90px; gap:10px; width:max-content; max-width:100%; padding:9px; border:1px solid #e2e8f0; border-radius:11px; background:#fff; }
.schoolTripFundRow input { width:100%; min-width:0; box-sizing:border-box; }
.schoolTripParentQuestion { display:inline-flex!important; width:auto!important; align-items:center; justify-content:flex-start; gap:8px; }
.schoolTripParentQuestion input { width:18px!important; height:18px; margin:0; flex:0 0 auto; }
.schoolTripIbanHint { display:block; margin-top:6px; color:#64748b; font-size:.78rem; }
.schoolTripIbanInvalid { border-color:#dc2626!important; box-shadow:0 0 0 2px rgba(220,38,38,.1); }
.schoolTripAccountChoice { display:flex; gap:12px; flex-wrap:wrap; margin:0 0 12px; }
.schoolTripAccountChoice label { display:flex; align-items:center; gap:7px; padding:10px 14px; border:1px solid #dce3ec; border-radius:12px; font-weight:700; }
.schoolTripExpenseRow small { display: block; color: #64748b; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 230px; }
.schoolTripEarlyPayment { display:inline-flex!important; align-items:center; gap:7px; margin-top:6px; color:#92400e; font-size:.78rem; font-weight:850; }
.schoolTripEarlyPayment input { width:16px!important; height:16px; margin:0; }
.financeSchoolTripForm>.schoolTripSection:has([name="parentContributionsEnabled"]),.financeSchoolTripForm>.schoolTripSection:has(#schoolTripOtherIncomes),.financeSchoolTripForm>.schoolTripSection:has([name="firstName"]),.financeSchoolTripForm>.schoolTripSection:has(#schoolTripSignature){display:none}
.schoolTripClassCard{border:1px solid #dbe4f0;border-radius:18px;background:#f8fafc;margin:16px 0;overflow:hidden}.schoolTripClassHeader{display:flex;justify-content:space-between;gap:14px;padding:16px 18px;background:linear-gradient(135deg,#eef2ff,#fff);border-bottom:1px solid #dbe4f0}.schoolTripClassHeader h4{margin:3px 0!important}.schoolTripClassHeader p{margin:0;color:#64748b;font-size:.8rem}.schoolTripClassSelection{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 16px;background:#fff}.schoolTripSelectionStep{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px;border:1px solid #e2e8f0;border-radius:13px}.schoolTripSelectionStep>span{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:#4f46e5;color:#fff;font-size:.78rem;font-weight:900}.schoolTripSelectionStep>div{display:grid;gap:2px;min-width:0}.schoolTripSelectionStep small{color:#64748b}.schoolTripSelectionStep strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#1e293b}.schoolTripClassDetails{display:grid;gap:14px;padding:16px;border-top:1px solid #e2e8f0}.schoolTripClassFacts{display:grid;grid-template-columns:150px 150px minmax(220px,320px);gap:12px}.schoolTripClassFacts label{display:grid;gap:5px;font-size:.8rem;font-weight:800;color:#475569}.schoolTripClassFacts input,.schoolTripClassFacts select{width:100%;box-sizing:border-box}.schoolTripClassFinance{display:flex;justify-content:flex-start;gap:12px;align-items:end}.schoolTripClassFinance .schoolTripParentQuestion{padding:9px 11px;border:1px solid #dbe4f0;border-radius:12px;background:#fff}.schoolTripClassFinance .schoolTripParentQuestion span{display:grid}.schoolTripClassFinance .schoolTripParentQuestion small{font-size:.7rem;color:#64748b}.schoolTripClassFinance label:not(.schoolTripParentQuestion){width:175px}.schoolTripClassFinance input:disabled{background:#eef2f7;color:#94a3b8;cursor:not-allowed}.schoolTripClassIncomeSection{padding:13px;border:1px solid #dbe4f0;border-radius:14px;background:#f1f5f9}.schoolTripSubhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.schoolTripSubhead div{display:grid;gap:2px}.schoolTripSubhead small{color:#64748b;font-size:.76rem}.schoolTripClassFinance label,.schoolTripClassIncomeSection label{display:grid;gap:5px;font-size:.8rem;font-weight:800;color:#475569}.schoolTripClassTotals{display:flex;gap:10px;justify-content:flex-end}.schoolTripClassTotals span{display:grid;gap:2px;min-width:155px;padding:10px 12px;border-radius:12px;background:#fff;border:1px solid #dbe4f0}.schoolTripClassTotals small{color:#64748b}.schoolTripClassTotals strong{color:#172033;font-size:1rem}.schoolTripPickerModal{max-width:760px}.schoolTripPickerModal h4{margin:16px 0 8px}.schoolTripChipList{display:flex;flex-wrap:wrap;gap:8px}.schoolTripChoiceChip{position:relative;display:flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid #dbe4f0;border-radius:999px;background:#fff;cursor:pointer}.schoolTripChoiceChip input{position:absolute;opacity:0;pointer-events:none}.schoolTripChoiceChip b{color:#334155}.schoolTripChoiceChip span{font-size:.78rem;color:#64748b}.schoolTripChoiceChip:has(input:checked),.schoolTripChoiceChip.selected{border-color:#6366f1;background:#eef2ff;box-shadow:0 0 0 2px rgba(99,102,241,.12)}.schoolTripChoiceChip:has(input:checked) b{color:#4338ca}.schoolTripSignatureCard{max-width:760px}.schoolTripSignatureCard canvas{display:block;width:100%;height:160px;border:1px dashed #94a3b8;border-radius:12px;background:#fff;margin:12px 0;touch-action:none}@media(max-width:900px){.schoolTripJourneyGrid{grid-template-columns:150px 1fr}.schoolTripClassSelection{grid-template-columns:1fr}.schoolTripClassFacts{grid-template-columns:1fr 1fr}}@media(max-width:760px){.schoolTripJourneyGrid,.schoolTripClassFinance,.schoolTripClassFacts{display:grid;grid-template-columns:1fr}.schoolTripClassHeader{flex-direction:column}.schoolTripClassFinance label:not(.schoolTripParentQuestion){width:auto}.schoolTripClassTotals{justify-content:flex-start;flex-wrap:wrap}.schoolTripSubhead{align-items:flex-start;flex-direction:column}}
.schoolTripNonParticipants{display:grid;grid-template-columns:minmax(230px,1fr) auto;align-items:center;gap:10px;padding:12px;border:1px solid #cbd5e1;border-radius:13px;background:#fff}.schoolTripNonParticipants>div:first-child{display:grid;gap:3px}.schoolTripNonParticipants small{color:#64748b}.schoolTripNonParticipants>.helper{grid-column:1/-1}.schoolTripNonParticipantList{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:7px}.schoolTripNonParticipantChip{display:flex;align-items:center;gap:7px;padding:6px 8px 6px 10px;border-radius:999px;background:#fff1f2;border:1px solid #fecdd3;color:#9f1239;font-size:.78rem}.schoolTripNonParticipantChip button{border:0;background:transparent;color:inherit;font:inherit;font-weight:900;cursor:pointer}.schoolTripParticipantMismatch{border-color:#ef4444;box-shadow:0 0 0 2px rgba(239,68,68,.12)}@media(max-width:760px){.schoolTripNonParticipants{grid-template-columns:1fr}.schoolTripNonParticipants>.helper,.schoolTripNonParticipantList{grid-column:1}}
.schoolTripClassCard .schoolTripClassRow { grid-template-columns:minmax(155px,1fr) minmax(155px,1fr) 120px 110px 110px 40px; }
.schoolTripJourneyGrid { grid-template-columns:150px minmax(230px,520px); }
.schoolTripClassLocation { display:grid; grid-template-columns:120px minmax(180px,300px); align-items:center; gap:10px; font-size:.8rem; font-weight:800; color:#475569; }
.schoolTripClassLocation select { width:100%; min-width:0; }
.schoolTripClassIncomeGrid { grid-template-columns:repeat(2,minmax(220px,330px)); justify-content:start; }
.schoolTripIncomePair { grid-template-columns:minmax(0,1fr) 64px; min-width:0; }
.schoolTripIncomePair label,.schoolTripIncomePair input { min-width:0; }
.schoolTripChipList { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.schoolTripChoiceChip { display:grid; grid-template-columns:48px minmax(0,1fr); border-radius:10px; min-width:0; }
.schoolTripChoiceChip span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.schoolTripParticipantPicker .schoolTripChoiceChip { grid-template-columns:minmax(0,1fr); align-items:start; }
.schoolTripParticipantPicker .schoolTripChoiceChip span { white-space:normal; overflow:visible; text-overflow:clip; overflow-wrap:anywhere; line-height:1.35; }
@media(max-width:900px) { .schoolTripClassCard .schoolTripClassRow { grid-template-columns:1fr 1fr 120px 110px; } .schoolTripChipList { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) { .schoolTripChipList { grid-template-columns:1fr; } }
.schoolTripEmptyHint{display:grid;place-items:center;gap:4px;padding:28px;border:1px dashed #cbd5e1;border-radius:15px;background:#f8fafc;color:#64748b;text-align:center}.schoolTripEmptyHint strong{color:#334155}.schoolTripSummary { background: linear-gradient(135deg,#eff8ff,#f7f4ff); border-color:#c7d2fe; }.schoolTripSummaryStatus{align-self:flex-start;padding:7px 11px;border-radius:999px;background:#dcfce7;color:#15803d;font-size:.76rem;font-weight:900}.schoolTripSummaryStatus.warning{background:#fef3c7;color:#a16207}.schoolTripSummaryCards{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important;max-width:none!important}.schoolTripSummaryCards article{display:grid;gap:5px;padding:16px;border:1px solid rgba(148,163,184,.28);border-radius:15px;background:rgba(255,255,255,.82)}.schoolTripSummaryCards article.primary{background:#312e81;color:#fff;border-color:#312e81}.schoolTripSummaryCards small{color:#64748b;font-weight:800}.schoolTripSummaryCards .primary small,.schoolTripSummaryCards .primary span{color:#c7d2fe}.schoolTripSummaryCards strong{font-size:1.35rem;text-align:left!important}.schoolTripSummaryCards span{color:#64748b;font-size:.76rem}.schoolTripSummaryCards i{font-style:normal;font-weight:800}.schoolTripSummaryFooter{display:flex!important;grid-template-columns:none!important;justify-content:space-between;gap:15px!important;max-width:none!important;padding-top:13px;border-top:1px solid rgba(99,102,241,.2);color:#475569}.schoolTripSummaryFooter strong{font-size:1rem}
.schoolTripOverviewGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.schoolTripOverviewCard{display:flex;justify-content:space-between;gap:16px;min-width:0;padding:16px;border:1px solid #dbe4f0;border-radius:16px;background:#fff;box-shadow:0 8px 22px rgba(24,39,75,.05)}.schoolTripOverviewMain{min-width:0}.schoolTripOverviewMain h4{margin:8px 0 4px}.schoolTripOverviewMain p{margin:0;color:#64748b}.schoolTripCardDocuments{margin-top:14px;padding-top:12px;border-top:1px solid #e2e8f0}.schoolTripCardDocuments>strong{display:block;margin-bottom:8px;font-size:.82rem;color:#475569}.schoolTripOverviewAside{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:12px;white-space:nowrap}.schoolTripSignaturePanel{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:14px;padding:16px;border:1px solid #c7d2fe;border-radius:16px;background:linear-gradient(135deg,#eef2ff,#f8fafc)}.schoolTripSignaturePanel h4{margin:3px 0}.schoolTripSignaturePanel p{margin:0;color:#64748b}@media(max-width:760px){.schoolTripOverviewCard,.schoolTripSignaturePanel{align-items:flex-start;flex-direction:column}.schoolTripOverviewAside{align-items:flex-start}}
.schoolTripSummary>div { display: grid; grid-template-columns: 1fr auto; gap: 9px 20px; max-width: 560px; }
.schoolTripMunicipalHint{margin:0;padding:10px 12px;border-left:3px solid #6366f1;border-radius:8px;background:#eef2ff;color:#475569;font-size:.78rem}
.schoolTripSummary strong { text-align: right; }
#schoolTripSignature { display: block; width: 100%; max-width: 720px; height: 180px; margin: 12px 0; border: 1px dashed #8b98ab; border-radius: 12px; background: #fff; touch-action: none; }
.schoolTripReturnBanner { padding: 16px; border-radius: 14px; border: 1px solid #f5a623; background: #fff8e8; }
.schoolTripReturnBanner p { margin: 5px 0; }
.financeSchoolTripReturn { display: block; color: #9a5b00; margin-top: 6px; }
@media (max-width:760px) { .schoolTripGrid { grid-template-columns:1fr; } .schoolTripClassRow,.schoolTripExpenseRow,.schoolTripIncomeRow,.schoolTripFundRow,.schoolTripAllocationRow,.schoolTripReceiptHead { grid-template-columns:1fr; } .schoolTripSectionHead{flex-direction:column}.schoolTripFundRow { width:auto; } .schoolTripClassRow>[data-class-share] { padding: 2px 0; } }
@media(max-width:980px){.schoolTripReceiptHead{grid-template-columns:1fr auto}.schoolTripReceiptActions{justify-content:flex-end}.schoolTripSummaryCards{grid-template-columns:1fr 1fr!important}}@media(max-width:760px){.schoolTripReceiptActions{justify-content:flex-start;flex-wrap:wrap}.schoolTripAllocationGuide{flex-direction:column}.schoolTripSummaryCards{grid-template-columns:1fr!important}.schoolTripSummaryFooter{align-items:flex-start;flex-direction:column}.schoolTripSelectionStep{grid-template-columns:30px 1fr}.schoolTripSelectionStep button{grid-column:2}}

.moduleIframe {
  width: 100%;
  min-height: 78vh;
  border: 0;
  border-radius: 18px;
  background: #0f172a;
  box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.18);
}
.moduleIframe:fullscreen {
  width: 100vw;
  height: 100vh;
  min-height: 100vh;
  border-radius: 0;
}
.compactActions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.financeHelpBtn{border-color:#c4b5fd!important;background:#f5f3ff!important;color:#6d28d9!important}.financeHelpBtn:hover{background:#ede9fe!important;border-color:#8b5cf6!important}
.financeWorkflowHelpCard{max-width:min(1240px,calc(100vw - 28px));padding:24px}.financeWorkflowHelpHeader{align-items:flex-start}.financeWorkflowHelpHeader h2{margin-bottom:5px}.financeWorkflowChoice{display:grid;gap:10px;margin:6px 0 18px;padding:15px 17px;border:1px solid #c4b5fd;border-radius:18px;background:linear-gradient(135deg,#f5f3ff,#fff)}.financeWorkflowChoice>strong{color:#5b21b6}.financeWorkflowChoice>div{display:flex;gap:8px;flex-wrap:wrap}.financeWorkflowChoice span{padding:7px 10px;border:1px solid #ddd6fe;border-radius:999px;background:#fff;color:#475569;font-size:.86rem}.financeWorkflowHelpGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.financeWorkflowHelpSection{--workflow-accent:#2563eb;--workflow-soft:#eff6ff;min-width:0;border:1px solid #dbe4f0;border-top:4px solid var(--workflow-accent);border-radius:20px;background:#fff;overflow:hidden}.financeWorkflowHelpSection.reimbursement{--workflow-accent:#ea580c;--workflow-soft:#fff7ed}.financeWorkflowHelpSection.schoolTrip{--workflow-accent:#0f8a6a;--workflow-soft:#ecfdf5}.financeWorkflowHelpSectionHead{display:flex;gap:11px;align-items:center;padding:15px 16px;background:var(--workflow-soft)}.financeWorkflowHelpSectionHead>span{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;border-radius:12px;background:var(--workflow-accent);color:#fff;font-size:1.15rem;font-weight:950}.financeWorkflowHelpSectionHead p,.financeWorkflowHelpSectionHead h3{margin:0}.financeWorkflowHelpSectionHead p{color:#64748b;font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.financeWorkflowHelpSectionHead h3{color:#172033;font-size:1.05rem}.financeWorkflowSteps{list-style:none;margin:0;padding:15px;display:grid;gap:0}.financeWorkflowSteps li{position:relative;display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;padding:0 0 15px}.financeWorkflowSteps li:last-child{padding-bottom:0}.financeWorkflowSteps li:not(:last-child):before{content:'';position:absolute;left:14px;top:29px;bottom:0;width:2px;background:#e2e8f0}.financeWorkflowSteps li>span{position:relative;z-index:1;width:30px;height:30px;display:grid;place-items:center;border-radius:999px;background:var(--workflow-soft);border:1px solid color-mix(in srgb,var(--workflow-accent) 35%,#dbe4f0);color:var(--workflow-accent);font-size:.78rem;font-weight:950}.financeWorkflowSteps strong{display:block;color:#172033;font-size:.9rem;line-height:1.3}.financeWorkflowSteps p{margin:4px 0 0;color:#64748b;font-size:.82rem;line-height:1.45}.financeWorkflowGuideLink{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 15px 15px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--workflow-accent) 35%,#dbe4f0);border-radius:12px;background:var(--workflow-soft);color:var(--workflow-accent);font-size:.86rem;font-weight:900;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}.financeWorkflowGuideLink:hover{transform:translateY(-1px);box-shadow:0 7px 16px color-mix(in srgb,var(--workflow-accent) 14%,transparent)}.financeWorkflowGuideLink:focus-visible{outline:3px solid color-mix(in srgb,var(--workflow-accent) 30%,transparent);outline-offset:2px}.financeWorkflowHelpFooter{margin-top:16px;padding:13px 15px;border-radius:16px;background:#f8fafc;border:1px solid #e2e8f0;color:#475569;line-height:1.45}.financeWorkflowHelpFooter strong{color:#172033}@media(max-width:980px){.financeWorkflowHelpGrid{grid-template-columns:1fr}.financeWorkflowHelpSection{overflow:visible}}@media(max-width:620px){.financeWorkflowHelpCard{padding:17px}.financeWorkflowChoice>div{display:grid}.financeWorkflowChoice span{border-radius:12px}.financeWorkflowHelpHeader{display:grid}.financeWorkflowHelpHeader .miniBtn{grid-row:1;justify-self:end}.financeWorkflowSteps{padding:13px}}

.planbarSubnav .miniBtn:not(.secondary){background:#1d4ed8;color:white}
.sideNav[data-nav-target="planbarView"]{font-size:.9rem;color:#94a3b8}
.moduleCard.module-planbar:before{background:linear-gradient(180deg,#2563eb,#06b6d4)}
.module-planbar .moduleIcon{background:#e0f2fe;color:#0369a1}

.planbarNativeNotice{border:1px solid #bfdbfe;background:linear-gradient(135deg,#eff6ff,#ffffff);border-radius:16px;padding:14px;color:#475569;line-height:1.55;box-shadow:0 10px 24px rgba(37,99,235,.06)}
.planbarNativeNotice strong{color:#0f172a}
.miniInput{max-width:86px;border:1px solid #cbd5e1;background:#fff;color:#172033;border-radius:10px;padding:8px}
.planbarLessonLayout{display:grid;grid-template-columns:minmax(240px,320px) 1fr;gap:14px;align-items:start}
.planbarLessonClassList{display:grid;gap:8px;max-height:620px;overflow:auto;margin-top:10px;padding-right:2px}
.planbarLessonClassBtn{width:100%;text-align:left;border:1px solid #e2e8f0;background:#f8fafc;color:#172033;border-radius:14px;padding:10px;display:grid;gap:3px;cursor:pointer;transition:.15s ease}
.planbarLessonClassBtn:hover{border-color:#93c5fd;background:#eff6ff;transform:translateY(-1px)}
.planbarLessonClassBtn.active{border-color:#2563eb;background:linear-gradient(135deg,#dbeafe,#eff6ff);box-shadow:0 0 0 2px rgba(37,99,235,.12)}
.planbarLessonClassBtn span,.planbarLessonClassBtn small{color:#64748b}
.planbarLessonFilterRow{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:12px 0}
@media (max-width:840px){.planbarLessonLayout{grid-template-columns:1fr}.planbarLessonClassList{max-height:280px}}
@media (max-width:720px){.planbarNativeFrame{min-height:860px}}

/* PLANBAR Unterrichtsplanung · Manuelle Planung (native migration slice) */
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: stretch;
}
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 1rem;
  background: #ffffff;
  padding: .75rem;
  box-shadow: 0 10px 28px rgba(15, 23, 42, .06);
}
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  max-height: 280px;
  overflow: auto;
}
  flex: 0 0 auto;
  min-width: 180px;
  max-width: 280px;
}
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 1rem;
  background: #ffffff;
  padding: .75rem;
  box-shadow: 0 10px 28px rgba(15, 23, 42, .06);
}
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  margin: .75rem 0 1rem;
}
  width: 100%; border: 1px solid rgba(37, 99, 235, .18); border-radius: .75rem;
  padding: .55rem .65rem; background: #fff; color: var(--ink); font: inherit;
}
  appearance: none; width: 100%; min-height: 3.1rem; border: 1px solid rgba(148, 163, 184, .28);
  border-radius: .65rem; background: #f8fafc; color: var(--ink); cursor: pointer; display: flex;
  flex-direction: column; gap: .25rem; justify-content: center; align-items: stretch; padding: .25rem;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
  position: relative; display: grid; gap: .12rem; text-align: left; border: 1px solid rgba(37, 99, 235, .18);
  border-radius: .35rem; background: #fff; padding: .12rem .28rem; box-shadow: 0 4px 12px rgba(15, 23, 42, .05);
}
  position: absolute; top: .18rem; right: .25rem; width: 1rem; height: 1rem; border-radius: 999px;
  display: inline-flex; align-items: center; justify-content: center; color: #991b1b; background: #fee2e2;
  font-weight: 900; font-size: .8rem;
}
@media (max-width: 980px) {
}

/* PLANBAR Unterrichtsplanung · Snapshot section */
  position: absolute; top: .18rem; right: 1.35rem; width: 1rem; height: 1rem; border-radius: 999px;
  display: inline-flex; align-items: center; justify-content: center; color: #1d4ed8; background: #dbeafe;
  font-weight: 900; font-size: .72rem; cursor: pointer;
}

/* PLANBAR Unterrichtsplanung · Automatische Planung (native migration slice) */
  border: 1px solid rgba(37, 99, 235, .18); border-radius: .75rem; background: #fff; color: var(--ink);
  padding: .55rem .65rem; font: inherit;
}
.miniBtn.danger { background: #fee2e2; color: #991b1b; border-color: rgba(220,38,38,.2); }

/* PLANBAR Unterrichtsplanung · Stellvertretungsplanung (native migration slice) */
.planbarSubLayout { display: grid; grid-template-columns: 1fr; gap: 1rem; align-items: start; }
.planbarSubPhaseGrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; margin-top: .85rem; }
.planbarSubDetails { margin-top: .85rem; }
.planbarSubDetails summary { cursor: pointer; font-weight: 800; color: var(--accent); }
.planbarSubCoverList { display: grid; gap: .35rem; margin-top: .65rem; max-height: 360px; overflow: auto; }
.planbarSubCoverList > div { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: .6rem; padding: .5rem .6rem; border: 1px solid rgba(148, 163, 184, .18); border-radius: .75rem; background: #f8fafc; font-size: .82rem; }
.planbarSubCoverList span { color: var(--ink); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.planbarSubCoverList b { color: var(--muted); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: right; }
.planbarSubFrameCard { min-height: 760px; }
.planbarSubFrame { min-height: 720px; }
@media (max-width: 1180px) { .planbarSubFrameCard { min-height: 680px; } .planbarSubFrame { min-height: 640px; } }
@media (max-width: 900px) { .planbarSubPhaseGrid { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .planbarSubCoverList > div { grid-template-columns: 1fr; } .planbarSubCoverList b { text-align: left; } }

/* Dashboard Roadmap Admin */
.roadmapAdminTools{display:grid;grid-template-columns:minmax(160px,1fr) minmax(180px,1fr);gap:10px;margin:12px 0 8px;padding:12px;border:1px dashed #fdba74;border-radius:16px;background:#fff7ed}.roadmapAdminTools label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:#9a3412}.roadmapAdminTools input,.roadmapAdminTools textarea{border:1px solid #fed7aa;border-radius:12px;padding:9px 10px;background:#fff}.roadmapAdminTools .wideField{grid-column:1/-1}.roadmapAdminTools button{justify-self:start}.roadmapCategory li{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.roadmapCategory li>div{min-width:0}.roadmapItemActions{display:flex;gap:6px;flex-shrink:0;flex-wrap:wrap}.roadmapDone{opacity:.72;border-left-color:#16a34a!important;background:#f0fdf4!important}.roadmapDone strong{text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:#86efac}.adminSubnav{display:flex;flex-wrap:wrap;gap:8px}.adminSubnav .miniBtn{flex:0 1 calc(20% - 8px);min-width:110px}@media (max-width:900px){.roadmapAdminTools{grid-template-columns:1fr}.adminSubnav .miniBtn{flex:1 1 calc(33.33% - 8px)}}

/* v0.24.0 Test / Prüfung Mode */
.badge.test{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}
.testConfigRow{background:#fffbeb;border:1px dashed #fcd34d;border-radius:14px;padding:10px;margin:4px 0}
.testConfigRow .checkboxLine{font-size:.9rem;color:#78350f}
.testHeader{background:linear-gradient(135deg,#7c2d12,#dc2626 55%,#f59e0b)!important}
.assignmentPageTest{border-color:#fed7aa}
.testModeBanner{background:linear-gradient(135deg,#fff7ed,#fef3c7);border:1px solid #fcd34d;border-radius:18px;padding:14px 18px;margin:0}
.testModeHeader{display:flex;gap:14px;align-items:center}
.testModeIcon{font-size:1.8rem}
.testModeHeader strong{color:#7c2d12;font-size:1.05rem}
.testModeHeader p{margin:4px 0 0;color:#92400e;font-size:.88rem;line-height:1.4}

/* Sidebar header + collapse mode */
.sidebarHeader{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 6px 12px}
.sidebarBrand{font-weight:950;font-size:1.1rem}
.sidebarToggle{background:transparent;border:0;color:#94a3b8;cursor:pointer;font-size:1.1rem;padding:4px 6px;border-radius:10px;line-height:1}
.sidebarToggle:hover{background:#1e293b;color:#e2e8f0}
.sideNav{display:flex;align-items:center;gap:10px}
.navIcon{flex-shrink:0;width:1.4em;height:1.4em;display:inline-flex;align-items:center;justify-content:center;color:currentColor}
.navIcon svg{width:1.2em;height:1.2em;display:block;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.navLabel{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar{max-height:calc(100vh - 36px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#334155 transparent}
.navGroup{display:grid;gap:4px}
.navGroup:not(:has(.sideNav:not(.hidden))){display:none}
.navGroupToggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border:0;background:transparent;color:#94a3b8;padding:7px 10px 5px;text-align:left;font-size:.68rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.navGroupToggle:hover{color:#e2e8f0}
.navGroupChevron{font-size:.9rem;transition:transform .18s ease}
.navGroup.expanded .navGroupChevron{transform:rotate(180deg)}
.navGroupItems{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
.navGroupItems .sideNav{min-width:0;justify-content:center;padding:8px 5px}
.navGroupItems .sideNav .navLabel{display:none}
.navGroup.expanded .navGroupItems{display:grid;grid-template-columns:1fr;gap:2px}
.navGroup.expanded .navGroupItems .sideNav{justify-content:flex-start;padding:9px 12px}
.navGroup.expanded .navGroupItems .sideNav .navLabel{display:block}
.sidebarTools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding-top:8px;border-top:1px solid #243044}
.sidebarTools .sideNav{justify-content:center;padding:9px 5px}
.sidebarTools .navLabel{display:none}

/* Collapsed sidebar — icons only */
.sidebar.collapsed{padding:16px 10px}
.sidebar.collapsed .sidebarBrand,
.sidebar.collapsed .navLabel,
.sidebar.collapsed .versionLabel{display:none}
.sidebar.collapsed .navGroupToggle{display:none}
.sidebar.collapsed .navGroupItems,.sidebar.collapsed .navGroup.expanded .navGroupItems{grid-template-columns:1fr}
.sidebar.collapsed .navGroupItems .sideNav,.sidebar.collapsed .navGroup.expanded .navGroupItems .sideNav{justify-content:center;padding:11px 6px}
.sidebar.collapsed .navGroupItems .sideNav .navLabel,.sidebar.collapsed .navGroup.expanded .navGroupItems .sideNav .navLabel{display:none}
.sidebar.collapsed .sidebarTools{grid-template-columns:1fr}
.sidebar.collapsed .sidebarHeader{justify-content:center;margin:4px auto 12px}
.sidebar.collapsed .sideNav{justify-content:center;padding:11px 6px}
.sidebar.collapsed .sideNav .navIcon{width:1.55em;height:1.55em}
.sidebar.collapsed .sideNav[data-nav-target="planbarView"]::after{display:none}
.appShell:has(.sidebar.collapsed){grid-template-columns:64px minmax(0,1fr)}

@media(max-width:850px){
  .sidebar.collapsed{padding:16px}
  .sidebar.collapsed .sidebarBrand,
  .sidebar.collapsed .navLabel,
  .sidebar.collapsed .versionLabel{display:revert}
  .sidebar.collapsed .navGroupToggle{display:flex}
  .sidebar.collapsed .navGroupItems{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sidebar.collapsed .navGroup.expanded .navGroupItems{grid-template-columns:1fr}
  .sidebar.collapsed .navGroup.expanded .navGroupItems .sideNav{justify-content:flex-start;padding:9px 12px}
  .sidebar.collapsed .navGroup.expanded .navGroupItems .sideNav .navLabel{display:block}
  .sidebar.collapsed .sidebarTools{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sidebar.collapsed .sideNav{justify-content:flex-start;padding:11px 12px}
  .sidebar.collapsed .sideNav .navIcon{width:1.4em;height:1.4em}
  .sidebar.collapsed .sideNav[data-nav-target="planbarView"]::after{display:inline}
  .appShell:has(.sidebar.collapsed){grid-template-columns:1fr}
  .sidebarToggle{display:none}
}
.studentGuardianFields{border:1px dashed #cbd5e1;border-radius:18px;background:#f8fafc;padding:14px}.studentGuardianFields legend{font-weight:900;color:#334155;padding:0 6px}.guardianGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}

.planbarCoreShell{border:1px solid rgba(37,99,235,.14);border-radius:18px;background:#f8fafc;padding:12px 14px}.planbarCoreShell .moduleIframe{margin-top:0}.planbarReferenceShell{border:1px solid rgba(37,99,235,.14);border-radius:18px;background:#f8fafc;padding:12px 14px}.planbarReferenceShell>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-weight:900;color:#1e3a8a}.planbarReferenceShell>summary span{display:grid;gap:2px}.planbarReferenceShell>summary em{font-style:normal;font-weight:600;color:#64748b;font-size:.84rem}.planbarReferenceShell>summary small{background:#dbeafe;color:#1d4ed8;border-radius:999px;padding:4px 9px}.planbarReferenceShell[open] .moduleIframe{margin-top:12px}

/* Stundenplan-Freigabe + Kalender-Import */
.stundenplanFreigabeBar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;border-radius:14px;background:linear-gradient(135deg,#f0fdf4,#ecfdf5);border:1px solid #bbf7d0;margin:10px 0 14px}
.stundenplanFreigabeBar.freigegeben{background:linear-gradient(135deg,#dcfce7,#d1fae5);border-color:#86efac}
.stundenplanFreigabeBar.nicht_freigegeben{background:linear-gradient(135deg,#fef3c7,#fef9c3);border-color:#fde68a}
.freigabeToggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-weight:900;color:#1e293b}
.freigabeToggle input{width:20px;height:20px;accent-color:#16a34a;cursor:pointer}
.freigabeBadge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 10px;font-size:.78rem;font-weight:900}
.freigabeBadge.gruen{background:#dcfce7;color:#166534}
.freigabeBadge.gelb{background:#fef3c7;color:#92400e}
.calImportBar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px}
.timetableImportSummary{display:grid;gap:8px;max-width:760px;margin-top:8px;padding:12px 14px;border:1px solid #bfdbfe;border-radius:14px;background:#eff6ff;color:#1e3a8a}.timetableImportSummary>strong{color:#1e3a8a}.timetableImportCounts{display:flex;gap:6px;flex-wrap:wrap}.timetableImportCounts span{border-radius:999px;padding:4px 9px;background:#fff;border:1px solid #bfdbfe;font-size:.78rem;font-weight:850}.timetableImportCounts .changed{border-color:#fcd34d;background:#fffbeb;color:#92400e}.timetableImportCounts .removed{border-color:#fecaca;background:#fef2f2;color:#991b1b}.timetableImportDetails{display:grid;gap:4px;margin:0;padding-left:18px;color:#334155;font-size:.82rem}.timetableImportWarning{margin:0;padding:8px 10px;border-radius:10px;background:#fff7ed;color:#9a3412;font-weight:800}
.calendarEventPill.lessonImport{background:linear-gradient(90deg,#eef2ff,#e0e7ff);border:1px solid #c7d2fe;color:#3730a3;font-weight:850}
.calendarEventPill.lessonImport span{font-size:.82rem}
.calendarEventCard.lessonImport{background:linear-gradient(135deg,#eef2ff,#f5f3ff);border-left-width:4px}
.calendarEventCard.lessonImport .eventBadge{background:#e0e7ff;color:#4338ca}
.lessonImportInfo{display:grid;gap:4px;font-size:.86rem;color:#475569}
.lessonImportInfo strong{color:#1e293b}
.lessonModal{display:grid;gap:8px}
.lessonModal dl{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:8px 0}
.lessonModal dt{font-weight:900;color:#64748b;font-size:.8rem}
.lessonModal dd{margin:0;font-weight:700;color:#1e293b}

/* Toolbox Notepad */
.notepadTextarea{width:100%;min-height:240px;border:1px solid #cbd5e1;border-radius:16px;padding:12px;font:inherit;background:#f8fafc;color:#172033;resize:vertical;line-height:1.5}.notepadTextarea:focus{outline:0;border-color:#2563eb;background:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.12)}

/* School Tiles */
.schoolTilesGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:14px}.schoolTile{display:grid;gap:4px;text-align:left;border:2px solid #e2e8f0;background:#fff;border-radius:18px;padding:16px;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.schoolTile:hover{border-color:#bfdbfe;background:#f8fbff;box-shadow:0 4px 14px rgba(15,23,42,.06)}.schoolTile.active{border-color:#2563eb;background:linear-gradient(135deg,#eff6ff,#dbeafe);box-shadow:0 4px 14px rgba(37,99,235,.15)}.schoolTile strong{font-size:1rem;color:#0f172a}.schoolTile .tableSub{font-size:.82rem;color:#64748b}

/* Guardian Cards in Profile */
.gvSection{margin-top:14px;border-top:1px solid #e2e8f0;padding-top:12px}.gvSectionTitle{font-weight:900;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin:0 0 8px}.gvCard{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:10px 12px;margin-bottom:8px}.gvHeader{display:flex;gap:8px;align-items:center;margin-bottom:4px}.gvLabel{background:#eef2f7;color:#475569;border-radius:6px;padding:2px 7px;font-size:.75rem;font-weight:900;letter-spacing:.03em}.gvDetails{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.84rem;color:#64748b}

/* ===== MOBILE APP SHELL ===== */
/* Visibility toggles */
body:not(.mobileMode) .mobileOnly{display:none!important}
body.mobileMode .desktopOnly{display:none!important}

/* Bottom Navigation Bar */
.mobileBottomNav{position:fixed;bottom:0;left:0;right:0;display:flex;background:#0f172a;z-index:40;padding-bottom:env(safe-area-inset-bottom,0px);box-shadow:0 -4px 24px rgba(15,23,42,.18)}
.mobileBottomNav.hidden{display:none!important}
body.mobileMode .mobileBottomNav{display:flex!important}
.mobileTab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:56px;border:0;background:transparent;color:#94a3b8;cursor:pointer;font-weight:800;font-size:.68rem;padding:6px 2px;transition:color .15s ease;-webkit-tap-highlight-color:transparent}
.mobileTab.active{color:#3b82f6}
.mobileTabIcon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mobileTabLabel{font-size:.62rem;letter-spacing:.01em}

/* App shell overrides for mobile */
body.mobileMode .hero{padding:18px 16px 14px}
body.mobileMode .hero h1{font-size:1.5rem;margin-bottom:4px}
body.mobileMode .hero p{font-size:.9rem}
body.mobileMode .hero .eyebrow{font-size:.68rem;margin-bottom:4px}
body.mobileMode .appShell{display:block;padding:0;max-width:100%}
body.mobileMode .sidebar{display:none!important}
body.mobileMode .wrap{padding:12px 12px 80px;max-width:100%}
body.mobileMode .card{border-radius:16px;padding:14px;margin-bottom:12px}
body.mobileMode .connectionAlert{border-radius:14px;padding:12px;margin-bottom:12px}
body.mobileMode .stats{margin-top:0}
body.mobileMode .sectionHeader{display:block}
body.mobileMode .sectionHeader .actionRow{margin-top:8px}
body.mobileMode .btn{min-height:44px}
body.mobileMode .miniBtn{min-height:44px;padding:9px 12px}
body.mobileMode .actionRow{gap:8px}

/* Mobile Dashboard */
.mobileQuickActions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}
.mobileQuickBtn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px solid #dbe4f0;background:linear-gradient(135deg,#fff,#f8fbff);border-radius:16px;padding:14px 8px;cursor:pointer;font-weight:850;color:#0f172a;transition:transform .15s ease,box-shadow .15s ease;-webkit-tap-highlight-color:transparent}
.mobileQuickBtn:active{transform:scale(.96)}
.mobileQuickIcon{font-size:1.8rem}
.mobileQuickLabel{font-size:.82rem}
.mobileFinanceCapture{display:grid;gap:12px;margin:16px 0;padding:14px;border:1px solid #c4b5fd;border-radius:18px;background:linear-gradient(145deg,#faf5ff,#f5f3ff)}
.mobileFinanceCaptureHead{display:flex;align-items:center;gap:10px}.mobileFinanceCaptureHead h3,.mobileFinanceCaptureHead p{margin:0}.mobileFinanceCaptureHead h3{font-size:1rem}.mobileFinanceCaptureHead p{margin-top:2px;color:#64748b;font-size:.78rem;font-weight:700}.mobileFinanceCaptureIcon{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;border-radius:12px;background:#7c3aed;color:#fff;font-size:1.15rem;font-weight:950}
.mobileFinanceCaptureActions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.mobileFinanceCaptureBtn{min-width:0;min-height:112px;display:grid;grid-template-columns:32px minmax(0,1fr);align-content:center;align-items:center;gap:2px 8px;padding:12px;border:1px solid #ddd6fe;border-radius:14px;background:#fff;color:#172033;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.mobileFinanceCaptureBtn>span{grid-row:1/3;width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:#ede9fe;color:#6d28d9;font-weight:950}.mobileFinanceCaptureBtn strong{font-size:.84rem;line-height:1.18}.mobileFinanceCaptureBtn small{color:#64748b;font-size:.68rem;font-weight:700;line-height:1.2}.mobileFinanceCaptureBtn:active{transform:scale(.98)}
body.mobileMode.mobileFinanceSubmissionMode #financeView .financePortalGrid{display:none}
body.mobileMode.mobileFinanceSubmissionMode #financeView .planbarHostHeader .actionRow{display:none}
body.mobileMode.mobileFinanceSubmissionMode #financeView #financeInvoicePackageNew,body.mobileMode.mobileFinanceSubmissionMode #financeView .financeInvoicePackages,body.mobileMode.mobileFinanceSubmissionMode #financeView .financeInvoiceList,body.mobileMode.mobileFinanceSubmissionMode #financeView .financeReimbursementPool{display:none!important}
body.mobileMode.mobileFinanceSubmissionMode #financeView .financePersonalExpenses{padding:10px;border:0}
body.mobileMode.mobileFinanceSubmissionMode #financeView .financeInvoiceForm{padding:12px}
body.mobileMode.mobileFinanceSubmissionMode #financeView .financeInvoiceScan{max-width:none}
@media(max-width:430px){.mobileFinanceCaptureActions{grid-template-columns:1fr}.mobileFinanceCaptureBtn{min-height:82px}}
.mobileStatsStrip{display:flex;gap:8px;margin-top:10px}
.mobileStatItem{flex:1;text-align:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:10px 6px}
.mobileStatItem span{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;font-weight:900;color:#64748b;margin-bottom:4px}
.mobileStatItem strong{font-size:1.2rem;color:#0f172a}
.mobileTodayLesson{display:flex;gap:10px;align-items:center;border:1px solid #e2e8f0;border-left-width:4px;border-radius:12px;padding:10px;margin-bottom:8px;background:#fff}
.mobileTodayLesson .lessonTime{font-weight:900;color:#1d4ed8;font-size:.82rem;min-width:70px}
.mobileTodayLesson .lessonInfo{flex:1;min-width:0}
.mobileTodayLesson .lessonInfo strong{display:block;font-size:.9rem;color:#0f172a}
.mobileTodayLesson .lessonInfo small{color:#64748b;font-size:.76rem}

/* Mobile Groups: table → card list */
body.mobileMode #groupsTable thead{display:none}
body.mobileMode #groupsTable tbody tr{display:grid;gap:8px;border:1px solid #e2e8f0;border-radius:16px;padding:14px;margin-bottom:10px;background:#fff}
body.mobileMode #groupsTable tbody td{border-bottom:0;padding:0}
body.mobileMode .groupInfoCell{width:auto!important;min-width:0!important}
body.mobileMode .groupMembersCell{min-width:0!important}
body.mobileMode .groupActions{width:auto!important}
body.mobileMode .groupActions .miniBtn{display:flex;width:100%;justify-content:center;margin:2px 0}
.groupRowExternal td{background:#fff8ed;border-top-color:#fed7aa;border-bottom-color:#fed7aa}.groupRowExternal td:first-child{box-shadow:inset 4px 0 0 #f59e0b}.groupMetaLine .groupExternalBadge{background:#ffedd5;color:#9a3412}
body.mobileMode .groupMemberChips{gap:4px}

/* Mobile Calendar: agenda default */
body.mobileMode .calendarControls{flex-direction:column;align-items:stretch}
body.mobileMode .calendarDisplayControls{flex-direction:column;gap:6px}
body.mobileMode .calendarLayout{grid-template-columns:1fr}
body.mobileMode .calendarAgenda{order:-1;margin-bottom:12px}
body.mobileMode .calendarMainSurface{padding:6px}
body.mobileMode .calendarMonth{grid-template-columns:1fr}
body.mobileMode .calendarDay{min-height:auto}
body.mobileMode .calendarWeekday{display:none}
body.mobileMode .calendarDay.empty{display:none}
body.mobileMode .calendarDay:before{content:attr(data-day-label) " ";font-weight:700;color:#64748b;font-size:.78rem}

/* Mobile Settings */
body.mobileMode .settingsGrid{grid-template-columns:1fr}
body.mobileMode .settingsPhotoEditor{grid-template-columns:1fr;justify-items:start}
body.mobileMode .photoEditor{grid-template-columns:1fr;justify-items:start}
body.mobileMode .settingsProfileForm{grid-template-columns:1fr}

/* Mobile Profile: compact role/tenant */
body.mobileMode .profileMeta div{display:block}
body.mobileMode .profileMeta dd{text-align:left;margin-top:2px}

/* v0.33.0 Lektionsraster */
.calendarRaster{padding:8px}
.calendarRasterScroll{overflow:auto;border:1px solid #e2e8f0;border-radius:16px;background:linear-gradient(180deg,#f8fafc,#fff)}
.calendarRasterTable{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;min-width:560px;font-size:.84rem}
.calendarRasterTable th,.calendarRasterTable td{border-bottom:1px solid #f1f5f9;border-right:1px solid #f1f5f9;padding:0;text-align:center;vertical-align:top}
.calendarRasterTable th{background:#f8fafc;color:#64748b;font-weight:900;padding:8px 4px;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;position:sticky;top:0;z-index:1}
.calendarRasterTable th small{display:block;font-weight:700;color:#94a3b8;font-size:.68rem;text-transform:none;letter-spacing:0}
.calendarRasterTable th.today{color:#2563eb;background:#eff6ff}
.calendarRasterTimeCol{width:46px;min-width:46px;max-width:46px;background:#f8fafc;color:#64748b;font-weight:900;padding:4px 2px}
.calendarRasterTimeCol .calendarRasterLessonNum{display:block;font-size:.82rem;color:#0f172a}
.calendarRasterTimeCol small{display:block;font-weight:400;color:#94a3b8;font-size:.66rem;margin-top:1px}
.calendarRasterTable tr.lunch td{background:#fafbfd}
.calendarRasterCell{padding:3px;min-height:36px;height:36px}
.calendarRasterCell.lessonImport{border-radius:0}
.calendarRasterLessonBtn{width:100%;border:0;background:transparent;text-align:left;padding:4px 6px;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;gap:1px;height:100%;min-height:32px}
.calendarRasterLessonBtn:hover{background:rgba(37,99,235,.06)}
.calendarRasterLessonTitle{font-weight:850;font-size:.76rem;line-height:1.1;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendarRasterLessonBtn small{color:#64748b;font-size:.66rem;font-weight:700}
.calendarRasterCellEvent{display:flex;align-items:center;gap:3px;padding:3px 5px;border-radius:8px;font-size:.72rem;font-weight:800;line-height:1.2;min-height:30px;height:100%}
.calendarRasterCellEvent button{border:0;background:transparent;color:inherit;font:inherit;font-weight:850;cursor:pointer;text-align:left;padding:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.calendarRasterCellEvent.event-assignment{background:#ede9fe;color:#6d28d9}
.calendarRasterCellEvent.event-test{background:#fee2e2;color:#991b1b}
.calendarRasterCellEvent.event-appointment{background:#dcfce7;color:#166534}
.calendarRasterCellEvent.event-reminder{background:#fef3c7;color:#92400e}
.calendarRasterMore{color:#64748b;font-size:.66rem;font-weight:700;display:block}
.calendarRasterEmpty{padding:0}
.calendarRasterAddBtn{width:100%;height:100%;min-height:34px;border:0;background:transparent;color:#cbd5e1;font-size:1.1rem;font-weight:900;cursor:pointer;border-radius:8px;display:flex;align-items:center;justify-content:center}
.calendarRasterAddBtn:hover{background:#eff6ff;color:#2563eb}
.calendarRasterOtherRow td{background:#f8fafc;border-top:2px solid #e2e8f0}
.calendarRasterOtherCell{padding:4px;vertical-align:top}
.calendarRasterOtherCell .calendarRasterCellEvent{min-height:auto;height:auto;margin:2px 0}
@media(max-width:980px){.calendarRasterTable{min-width:420px}.calendarRasterTable th{font-size:.7rem}.calendarRasterLessonTitle{font-size:.7rem}}

/* Icon buttons & large icon button */
.iconBtn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;border:0;background:#edf2f7;color:#172033;font-size:1.15rem;cursor:pointer;margin-top:12px;transition:background .15s}
.iconBtn:hover{background:#e2e8f0}
.iconBtnLarge{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:14px;border:0;background:#172033;color:white;font-size:1.6rem;font-weight:900;cursor:pointer;margin-top:12px;transition:transform .1s,background .15s;line-height:1}
.iconBtnLarge:hover{background:#2563eb;transform:scale(1.05)}
.btn.primary{background:#2563eb;color:white}
.calendarToolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:8px 0}

/* Lesson Planning Modal */
.teachingWorkspace{display:flex;flex-direction:column;gap:18px}
.teachingWorkspace.hidden{display:none}
.teachingHeader{align-items:flex-start}
.teachingSummary{display:flex;gap:10px;flex-wrap:wrap}
.teachingSummary span{display:flex;align-items:baseline;gap:5px;padding:9px 13px;border:1px solid #dbeafe;border-radius:12px;background:#eff6ff;color:#475569;font-size:.82rem}
.teachingSummary strong{font-size:1.15rem;color:#1d4ed8}
.teachingToolbar{display:grid;grid-template-columns:minmax(240px,1fr) 180px;gap:10px}
.teachingSearch{display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid #cbd5e1;border-radius:12px;background:#fff}
.teachingSearch input,.teachingToolbar select{width:100%;border:0;padding:10px 2px;font:inherit;background:transparent;outline:0}
.teachingToolbar select{border:1px solid #cbd5e1;border-radius:12px;padding:10px;background:#fff}
.teachingLibrary{display:grid;gap:24px}
.teachingLibrary>.emptyState{grid-column:1/-1}
.teachingLibrarySection{display:grid;gap:12px}.teachingLibraryGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}
.teachingCard{display:flex;flex-direction:column;gap:8px;min-height:250px;padding:16px;border:1px solid #dbe3ef;border-radius:16px;background:linear-gradient(160deg,#fff 60%,#f8fafc);box-shadow:0 8px 22px rgba(15,23,42,.05)}
.teachingCard h3{margin:0;color:#172554;font-size:1.08rem}
.teachingCard>p{margin:0;color:#475569;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.teachingCardTop{display:flex;align-items:center;justify-content:space-between;gap:8px}
.teachingStatus{font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;padding:4px 8px;border-radius:999px;background:#f1f5f9;color:#475569}
.teachingStatus.status-ready{background:#dcfce7;color:#166534}.teachingStatus.status-archived{background:#e2e8f0;color:#64748b}
.teachingSeries{font-size:.78rem!important;font-weight:800;color:#7c3aed!important}
.teachingVariantBadges,.teachingCardProgress{display:flex;gap:5px;flex-wrap:wrap}
.teachingVariantBadges span{padding:3px 7px;border-radius:7px;background:#f3e8ff;color:#6b21a8;font-size:.72rem;font-weight:800}
.teachingCardProgress{margin-top:auto;padding-top:8px;border-top:1px solid #e2e8f0}
.teachingProgressChip{padding:4px 7px;border-radius:999px;background:#dbeafe;color:#1e40af;font-size:.7rem;font-weight:800}
.teachingProgressChip.state-in_progress{background:#fef3c7;color:#92400e}.teachingProgressChip.state-completed{background:#dcfce7;color:#166534}.teachingProgressChip.state-moved{background:#f1f5f9;color:#64748b}
.groupTeachingList{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.groupTeachingChip{display:inline-flex;align-items:center;gap:7px;padding:6px 8px 6px 10px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff;color:#1e3a8a}.groupTeachingChip>span{font-size:.72rem;color:#475569}.groupTeachingChip .adminIconBtn{min-width:30px;padding:5px}
.teachingEditorCard{max-height:90vh;overflow:auto}
.teachingEditorForm{display:flex;flex-direction:column;gap:14px}
.teachingEditorForm>label,.teachingEditorBasics label{display:flex;flex-direction:column;gap:5px;font-weight:800;color:#334155;font-size:.82rem}
.teachingEditorForm input,.teachingEditorForm select,.teachingEditorForm textarea{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:9px 10px;font:inherit;background:#fff}
.teachingEditorForm textarea{resize:vertical;line-height:1.45}
.teachingEditorForm input:focus,.teachingEditorForm select:focus,.teachingEditorForm textarea:focus{outline:0;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}
.teachingEditorBasics{display:grid;grid-template-columns:2fr 1fr 1.5fr 130px;gap:10px}
.teachingVariantsSection{padding:13px;border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc}
#teachingVariantList{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.teachingVariantRow{display:grid;grid-template-columns:180px 1fr auto;gap:8px;align-items:start}
.teachingEditorActions{justify-content:flex-end}
@media(max-width:800px){.teachingEditorBasics{grid-template-columns:1fr 1fr}.teachingToolbar{grid-template-columns:1fr}.teachingVariantRow{grid-template-columns:1fr auto}.teachingVariantRow textarea{grid-column:1/-1}}
@media(max-width:520px){.teachingEditorBasics{grid-template-columns:1fr}.teachingLibrary{grid-template-columns:1fr}.teachingHeader{display:block}.teachingHeader .actionRow{margin-top:12px}}

.lessonPlanModalCard{width:min(1360px,calc(100vw - 48px));max-width:1360px;height:calc(100vh - 48px);max-height:calc(100vh - 48px);margin:0;border-radius:22px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}
#lessonPlanModal{padding:24px;align-items:start}
.lessonPlanModalCard>.sectionHeader{min-height:86px;flex:0 0 auto;overflow:visible;padding-bottom:12px}
@media(max-width:900px), (max-height:720px){.lessonPlanModalCard{width:calc(100vw - 24px);max-width:none;height:calc(100vh - 24px);max-height:calc(100vh - 24px);border-radius:16px}#lessonPlanModal{padding:12px;align-items:center}}
.lessonPlanColorBar{height:4px;border-radius:4px;background:#3b82f6}
.lessonPlanTabs{display:flex;gap:8px;border-bottom:2px solid #e2e8f0;padding-bottom:8px}
.lessonTabBtn{border:0;background:transparent;font-weight:850;color:#64748b;padding:8px 16px;border-radius:8px;cursor:pointer;font-size:.95rem;transition:background .15s,color .15s}
.lessonTabBtn:hover{background:#f1f5f9;color:#334155}
.lessonTabBtn.active{background:#2563eb;color:white}
.lessonTabContent{display:flex;flex-direction:column;gap:14px}
.lessonTabContent.hidden{display:none}
.lessonModeSelector{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.lessonModeCard{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:14px 10px;border:2px solid #e2e8f0;border-radius:14px;background:#f8fafc;cursor:pointer;transition:border-color .15s,background .15s}
.lessonModeCard:hover{border-color:#93c5fd;background:#eff6ff}
.lessonModeCard.selected{border-color:#2563eb;background:#eff6ff;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.lessonModeIcon{font-size:1.8rem}
.lessonModeCard strong{font-size:.95rem;color:#1e293b}
.lessonModeCard small{font-size:.76rem;color:#64748b;line-height:1.3}
.lessonModePanel.hidden{display:none}
.lessonSchrittList{display:flex;flex-direction:column;gap:8px}
.lessonPlanningViewTabs{display:flex;gap:7px;flex-wrap:wrap}.lessonPlanTableHead{display:grid;grid-template-columns:28px minmax(150px,.8fr) minmax(160px,.8fr) 65px 105px minmax(240px,1.4fr) minmax(130px,.7fr) minmax(170px,.8fr) auto;gap:6px;padding:0 8px 4px;color:#64748b;font-size:.64rem;font-weight:900;text-transform:uppercase}.lessonUnifiedPlan.view-flow .lessonPlanTableHead{display:none}.lessonSchrittItem{display:grid;grid-template-columns:28px minmax(150px,.8fr) minmax(160px,.8fr) 65px 105px minmax(240px,1.4fr) minmax(130px,.7fr) minmax(170px,.8fr) auto;gap:6px;align-items:start;padding:8px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}
.lessonFlowPlan textarea{width:100%;min-height:46vh;border:1px solid #cbd5e1;border-radius:12px;padding:16px;font:inherit;font-size:1rem;line-height:1.6;background:#fff;resize:vertical}.lessonFlowPlan textarea:focus{outline:0;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.lessonStepSource{display:grid;gap:2px}.lessonStepSource>span{font-size:.62rem;font-weight:900;text-transform:uppercase;color:#64748b}.lessonStepSource select,.lessonSchrittItem select{width:100%;border:1px solid #cbd5e1;border-radius:6px;padding:4px 6px;font:inherit;background:white;font-size:.8rem}.lessonUnifiedPlan.view-flow .lessonSchrittItem{grid-template-columns:28px minmax(170px,.8fr) minmax(180px,.8fr) 65px minmax(260px,1.4fr) auto}.lessonUnifiedPlan.view-flow [data-step-field="sozialform"],.lessonUnifiedPlan.view-flow [data-step-field="material"],.lessonUnifiedPlan.view-flow [data-step-field="hinweise"]{display:none}.lessonSourceDetail{grid-column:2/-2;border:1px solid #bfdbfe;border-radius:9px;background:#eff6ff;padding:7px 9px}.lessonSourceDetail summary{cursor:pointer;color:#1d4ed8;font-weight:850;font-size:.78rem}.lessonSourceDetail dl{display:grid;gap:6px;margin:8px 0 0}.lessonSourceDetail dl>div{display:grid;grid-template-columns:110px 1fr;gap:8px}.lessonSourceDetail dt{font-size:.72rem;font-weight:900;color:#64748b}.lessonSourceDetail dd{margin:0;font-size:.82rem;color:#334155}
.lessonSchrittItem input[type="text"][data-step-field="titel"]{width:200px;flex-shrink:0}
.lessonSchrittItem input[type="text"][data-step-field="zeit"]{width:70px;flex-shrink:0}
.lessonSchrittItem textarea[data-step-field="beschreibung"]{flex:1;min-width:0}
.lessonSchrittItem input,.lessonSchrittItem textarea{width:100%;border:1px solid #cbd5e1;border-radius:6px;padding:4px 6px;font:inherit;background:white;font-size:.84rem}
.lessonSchrittItem input:focus,.lessonSchrittItem textarea:focus{outline:0;border-color:#2563eb}
.lessonSchrittStep{font-weight:900;color:#2563eb;font-size:.86rem;padding-top:5px;width:28px;text-align:center}
.lessonSolForm{display:grid;gap:8px}
.lessonTeacherNotes textarea{width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:10px;font:inherit;background:#f8fafc;resize:vertical;line-height:1.5}
.lessonTeacherNotes textarea:focus{outline:0;border-color:#2563eb;background:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.lessonFixedGroup{margin-top:7px;border:1px solid #dbe4f0;border-radius:10px;padding:10px 12px;background:#f8fafc;font-weight:850;color:#334155}
.lessonViewerFreePlan{white-space:normal;line-height:1.65;padding:10px 2px;color:#1e293b}
.lessonStudentInfo textarea{width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:10px;font:inherit;background:#f8fafc;resize:vertical;line-height:1.5}
.lessonStudentInfo textarea:focus{outline:0;border-color:#2563eb;background:#fff}
.lessonMaterialSection{display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}
.lessonMaterialList{display:flex;flex-direction:column;gap:4px}
.lessonMaterialItem{display:grid;grid-template-columns:1fr auto auto auto;gap:6px;align-items:center;padding:4px 6px;border-radius:8px;background:white;border:1px solid #e2e8f0}
.lessonMaterialItem input[type="text"]{border:1px solid #cbd5e1;border-radius:6px;padding:4px 8px;font:inherit;font-size:.84rem}
.lessonMaterialItem input[type="text"]:focus{outline:0;border-color:#2563eb}
.lessonMaterialItem select{border:1px solid #cbd5e1;border-radius:6px;padding:4px 6px;font:inherit;font-size:.8rem;background:white}
.lessonMaterialTypeBadge{font-size:.72rem;font-weight:850;padding:2px 8px;border-radius:999px}
.lessonMaterialTypeBadge.material{background:#dbeafe;color:#1e40af}
.lessonMaterialTypeBadge.hausaufgabe{background:#fef3c7;color:#92400e}
.lessonMaterialTypeBadge.info{background:#d1fae5;color:#065f46}
.lessonMaterialImportant{display:inline-flex;align-items:center;gap:3px;font-size:.72rem;font-weight:850;color:#b45309;cursor:pointer}
.lessonMaterialImportant.active{color:#dc2626}
.lessonMaterialRemove{border:0;background:transparent;color:#ef4444;font-weight:900;cursor:pointer;font-size:1rem;padding:2px 6px;border-radius:6px}
.lessonMaterialRemove:hover{background:#fee2e2}
@media(max-width:1050px){.lessonPlanTableHead{display:none}.lessonSchrittItem,.lessonUnifiedPlan.view-flow .lessonSchrittItem{grid-template-columns:28px 1fr 1fr}.lessonSchrittItem textarea[data-step-field="beschreibung"],.lessonSchrittItem [data-step-field="material"],.lessonSchrittItem [data-step-field="hinweise"],.lessonSourceDetail{grid-column:2/-1}.lessonSchrittItem [data-step-remove]{grid-column:3;justify-self:end}}@media(max-width:720px){.lessonSchrittItem,.lessonUnifiedPlan.view-flow .lessonSchrittItem{grid-template-columns:28px 1fr}.lessonSchrittItem>*{grid-column:2}.lessonSchrittStep{grid-column:1!important;grid-row:1}.lessonSchrittItem [data-step-remove]{grid-column:2;justify-self:end}.lessonSourceDetail dl>div{grid-template-columns:1fr}}

/* Lesson Competency Section */
.lessonCompetencySection{display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}
.compactHeader{display:flex;align-items:center;justify-content:space-between;gap:8px}
.selectedCompetencies{display:flex;flex-wrap:wrap;gap:4px;min-height:24px}

/* Lesson Finalize Section */
.lessonFinalizeSection{display:flex;justify-content:flex-end;padding-top:4px}
.lessonModalHeaderActions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.lessonPlanContext{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}.lessonPlanContext>div{display:grid;gap:3px;border:1px solid #dbe4f0;background:#f8fafc;border-radius:13px;padding:10px 12px}.lessonContextLabel{font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.lessonPlanSources{border:1px solid #bfdbfe;background:#eff6ff;border-radius:15px;padding:12px;margin-bottom:12px}.lessonPlanSourceSteps{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}.lessonPlanSourceStep{display:flex;gap:8px;align-items:flex-start;border:1px solid #bfdbfe;background:#fff;border-radius:12px;padding:8px 10px;cursor:pointer;max-width:360px}.lessonPlanSourceStep input{margin-top:3px}.lessonPlanSourceStep span{display:grid;gap:2px}.lessonPlanSourceStep small{color:#64748b}.lessonStateIcons{display:inline-flex;gap:3px;align-items:center;flex-wrap:wrap}.lessonStateIcon{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border-radius:999px;font-size:.6rem;font-weight:950;line-height:1}.lessonStateIcon.missing{background:#fff7ed;color:#c2410c;border:1px solid #fdba74}.lessonStateIcon.unplanned{background:#f8fafc;color:#64748b;border:1px solid #cbd5e1}.lessonStateIcon.planned{background:#dcfce7;color:#15803d;border:1px solid #86efac}.calendarRasterLessonBtn>.lessonStateIcons{position:absolute;top:2px;right:2px}.calendarRasterLessonBtn>.lessonStateIcons .lessonStateIcon{min-width:15px;height:15px;font-size:.52rem;padding:0 3px}@media(max-width:720px){.lessonPlanContext{grid-template-columns:1fr}}

/* Lesson Viewer */
.lessonViewerContent{display:flex;flex-direction:column;gap:14px}
.lessonViewerContent.hidden{display:none}
.lessonViewerBack{margin-bottom:4px}
.lessonViewerSection{border:1px solid #e2e8f0;border-radius:12px;padding:14px;background:#f8fafc}
.lessonViewerSection h4{margin:0 0 8px;font-size:.9rem;color:#1e293b}
.lessonViewerPhase{display:grid;grid-template-columns:auto 60px 100px 1fr;gap:8px;padding:6px 0;border-bottom:1px solid #e2e8f0;font-size:.86rem;align-items:start}
.lessonViewerPhase:last-child{border-bottom:0}
.lessonViewerPhase .phaseLabel{font-weight:850;color:#334155}
.lessonViewerStep{padding:10px;border:1px solid #e2e8f0;border-radius:10px;background:white;margin-bottom:8px;font-size:.86rem}
.lessonViewerStep strong{color:#2563eb}
.lessonViewerStep.done{background:#f0fdf4;border-color:#86efac;opacity:.8}.lessonRunCheck{display:flex;gap:10px;align-items:flex-start}.lessonRunCheck>input{width:20px;height:20px;margin-top:1px;accent-color:#16a34a}.lessonRunCheck>span{display:grid;gap:4px;flex:1}.lessonRunCheck small{display:block;color:#475569}.lessonCarryChoice{display:flex;align-items:center;gap:6px;margin:8px 0 0 30px;color:#64748b;font-size:.76rem;font-weight:800}.lessonCarryChoice input{accent-color:#2563eb}.lessonRunSheet .sectionHeader h4,.lessonRunSheet .sectionHeader p{margin:0}.lessonRunSheet details{margin-top:5px}.lessonRunSheet details summary{cursor:pointer;color:#1d4ed8;font-weight:800}
.lessonViewerSolField{margin-bottom:6px}
.lessonViewerSolField strong{color:#64748b;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}

/* Competency Assessment Table */
.lessonAssessmentTable{width:100%;border-collapse:collapse;font-size:.82rem}
.lessonAssessmentTable th{text-align:center;padding:6px 4px;font-size:.72rem;color:#64748b;border-bottom:2px solid #e2e8f0;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lessonAssessmentTable th:first-child{text-align:left}
.lessonAssessmentTable td{padding:4px;border-bottom:1px solid #f1f5f9;text-align:center}
.lessonAssessmentTable td:first-child{text-align:left;font-weight:600;color:#334155}
.assessmentBtn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:2px solid #e2e8f0;background:white;cursor:pointer;font-size:.9rem;transition:all .15s}
.assessmentBtn:hover{border-color:#94a3b8}
.assessmentBtn.not_met{border-color:#fca5a5;background:#fef2f2;color:#dc2626}
.assessmentBtn.partial{border-color:#fcd34d;background:#fffbeb;color:#d97706}
.assessmentBtn.met{border-color:#86efac;background:#f0fdf4;color:#16a34a}
.assessmentBtn.empty{color:#cbd5e1}

/* Lesson Planned Indicator */
.lessonPlannedIndicator{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#16a34a;color:#fff;font-size:10px;font-weight:700;line-height:1;vertical-align:middle;margin:0 2px;flex-shrink:0}
.calendarRasterLessonBtn .lessonPlannedIndicator{position:absolute;top:2px;right:2px;width:14px;height:14px;font-size:9px}
.calendarRasterLessonBtn{position:relative}

/* Student content indicator */
.lessonStudentContentIndicator{display:inline-block;background:#dbeafe;color:#2563eb;border-radius:50%;width:16px;height:16px;font-size:.6rem;line-height:16px;text-align:center;margin-left:2px;vertical-align:middle}

/* ===== Personenverzeichnis Heatmap ===== */
.directoryToolbar{display:flex;justify-content:center;align-items:center;gap:8px;margin:12px 22px;flex-wrap:wrap}.directorySelectionSummary{font-size:.82rem;font-weight:900;color:#334155;background:#f1f5f9;border-radius:999px;padding:7px 10px}.peopleSelectCell{width:38px;text-align:center!important;vertical-align:middle!important}.peopleSelectCell input{width:18px;height:18px;accent-color:#1d4ed8;cursor:pointer}
.bulkInvitePreviewRow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 4px;border-bottom:1px solid #f1f5f9}.bulkInvitePreviewRow:last-child{border-bottom:0}.bulkInvitePreviewRow>span:first-child{display:grid;gap:2px}.bulkInvitePreviewRow small{color:#64748b;font-size:.76rem}
.peopleHeatmapWrap{display:flex;flex-direction:column;gap:8px}
.peopleHeatmapWrap.hidden{display:none}
#peopleHeatmapContainer{height:450px;border-radius:8px;overflow:hidden;border:1px solid #cbd5e1;z-index:0}
.heatmapMetaBar{display:flex;flex-direction:column;gap:2px;padding:4px 0}
.heatmapMetaBar .helper{font-size:.75rem;color:#64748b}

/* Shared student records: native lesson execution + SchulMap analytics */
.lessonRecordActions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.studentRecordModal{max-width:min(1180px,96vw)}
.attendanceToolbar,.absenceFilters{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin:10px 0 16px}
.absenceFilters label{min-width:170px}
.studentRosterGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;max-height:62vh;overflow:auto;padding:2px}
.studentRosterCard,.studentBehaviorCard{border:1px solid #d6e2df;border-radius:12px;background:#fffdfa;padding:10px}
.studentRosterCard.isAbsent{border-color:#ef8d7c;background:#fff4f1}
.studentRosterToggle{width:100%;display:flex;justify-content:space-between;gap:12px;align-items:center;border:0;background:transparent;text-align:left;cursor:pointer;padding:4px}
.studentRosterToggle span{font-size:.82rem;color:#64748b}
.attendanceDetails{display:grid;grid-template-columns:1fr 1fr 90px;gap:6px;margin-top:8px}
.attendanceDetails [data-attendance-note]{grid-column:1/-1}
.behaviorStats{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 14px}
.behaviorStats span{border:1px solid #c9dcda;border-radius:999px;padding:6px 10px;background:#eef8f6;font-size:.82rem}
.studentBehaviorList{display:flex;flex-direction:column;gap:10px;max-height:62vh;overflow:auto}
.studentBehaviorCard>div:first-child{display:flex;justify-content:space-between;gap:10px}
.studentBehaviorCard small{color:#64748b}
.behaviorQuickSelects{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}
.behaviorDraftItems>div{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:6px}
.absenceAnalyticsRow{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;border-bottom:1px solid #dce7e5;background:#fff;padding:11px;text-align:left;cursor:pointer}
.absenceAnalyticsRow span{display:flex;flex-direction:column}.absenceAnalyticsRow small{color:#64748b}.absenceAnalyticsRow b{color:#0f766e}
.absenceFlagged{border:1px solid #efb096;border-left:5px solid #e9684a;border-radius:12px;padding:12px;background:#fff8f4;margin-bottom:16px}
.absencePeriodPanel{margin-top:14px;border:1px solid #c9dcda;border-radius:12px;padding:10px;background:#f5fbfa}.absencePeriodPanel summary{cursor:pointer;font-weight:700}
.studentRecordSummary{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.studentRecordSummary span{min-width:150px;border:1px solid #c9dcda;border-radius:12px;padding:10px;background:#eef8f6}.studentRecordSummary strong{display:block;font-size:1.3rem;color:#0f766e}
.studentRecordColumns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.studentRecordEntry{border:1px solid #dce7e5;border-left:4px solid #7aaea7;border-radius:10px;padding:10px;margin-bottom:8px;background:#fff}.studentRecordEntry>small{display:block;color:#64748b;margin-top:3px}.studentRecordEntry.severity-4,.studentRecordEntry.severity-5{border-left-color:#e9684a;background:#fff8f4}.studentRecordEntry details{margin-top:7px;font-size:.84rem}
.studentRecordEntryHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.recordStatus{flex:0 0 auto;border:1px solid #c9dcda;border-radius:999px;background:#eef8f6;color:#0f766e;padding:3px 7px;font-size:.7rem;font-weight:800}.recordStatus.status-failed{border-color:#efb096;background:#fff1ed;color:#a43c25}.recordStatus.status-queued,.recordStatus.status-processing{border-color:#efd58b;background:#fff9e8;color:#805d00}.recordStatus.status-corrected{border-color:#a9d5c6;background:#eaf8f2;color:#11614e}.recordError{margin:8px 0;color:#a43c25;font-size:.82rem}.classificationEditor{border-top:1px solid #dce7e5;padding-top:7px}.classificationEditor>summary{cursor:pointer;font-weight:750;color:#0f766e}.classificationEditorGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.classificationEditorGrid label{display:grid;gap:4px;font-size:.76rem;font-weight:750}.classificationEditorGrid label:first-child{grid-column:1/-1}.classificationReview{display:flex!important;grid-column:1/-1;align-items:center;grid-template-columns:auto 1fr!important}.classificationReview input{width:auto}.classificationEditorGrid button{justify-self:start}
@media(max-width:700px){.attendanceDetails{grid-template-columns:1fr}.attendanceDetails [data-attendance-note]{grid-column:auto}.absenceFilters>*{width:100%}.studentRecordColumns,.classificationEditorGrid{grid-template-columns:1fr}.studentRecordEntryHead{flex-direction:column}.classificationEditorGrid label:first-child{grid-column:auto}}
.leaflet-container{font:inherit}

/* ===== Personenverwaltung UI ===== */
.unavailableFields{border:1px solid #dbe4f0;border-radius:16px;background:#f8fafc;padding:12px 14px}.unavailableFields legend{font-weight:900;color:#334155;padding:0 5px}.unavailableFields>div{display:flex;flex-wrap:wrap;gap:8px 18px}.unavailableFields label{display:flex;align-items:center;gap:6px;font-size:.82rem;font-weight:750}.unavailableFields input{width:auto}
.membershipFunctionsEditor{border:1px solid #c4b5fd;border-radius:16px;background:#f5f3ff;padding:14px}.membershipFunctionsEditor legend{font-weight:900;color:#5b21b6;padding:0 6px}.membershipFunctionChoices{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:10px 0}.membershipFunctionChoices label{display:flex;align-items:flex-start;gap:10px;border:1px solid #ddd6fe;border-radius:12px;background:#fff;padding:12px}.membershipFunctionChoices input{width:auto;margin-top:3px}.membershipFunctionChoices span{display:grid;gap:3px}.membershipFunctionChoices small{color:#64748b;font-weight:600;line-height:1.35}
.importRolePicker{border:0;padding:0;margin:0}.importRolePicker legend{font-weight:900;color:#334155;margin-bottom:8px}.importRoleChips{display:flex;gap:8px;flex-wrap:wrap}.importRoleChips button{border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:999px;padding:9px 14px;font:inherit;font-size:.84rem;font-weight:850;cursor:pointer;transition:.15s ease}.importRoleChips button:hover{border-color:#93c5fd;background:#eff6ff}.importRoleChips button.selected{border-color:#2563eb;background:#2563eb;color:#fff;box-shadow:0 6px 16px rgba(37,99,235,.2)}#personImportSchemaText{display:grid;gap:9px;border:1px solid #dbe4f0;background:#f8fafc;border-radius:16px;padding:14px}.importSchemaTitle{font-weight:950;color:#0f172a}.importSchemaGroup{display:grid;grid-template-columns:70px 1fr;gap:8px;align-items:start}.importSchemaGroup>b{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:#64748b;padding-top:4px}.importSchemaChips{display:flex;flex-wrap:wrap;gap:5px}.importSchemaChips span{display:inline-flex;border:1px solid #cbd5e1;background:#fff;color:#475569;border-radius:999px;padding:3px 8px;font-size:.75rem;font-weight:750}.importSchemaChips.required span{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8}.importSchemaEmpty{color:#64748b}.personCell{align-items:flex-start;min-width:280px}.personCellDetails{display:grid;gap:2px;min-width:0}.personNameLine{display:flex;align-items:center;gap:7px}.genderDot{width:9px;height:9px;border-radius:999px;flex:0 0 auto;background:#94a3b8;box-shadow:0 0 0 3px #f1f5f9}.genderDot.female{background:#ec4899;box-shadow:0 0 0 3px #fce7f3}.genderDot.male{background:#3b82f6;box-shadow:0 0 0 3px #dbeafe}.personContactMeta{display:flex;flex-wrap:wrap;gap:3px 10px;margin-top:4px;color:#475569;font-size:.74rem;line-height:1.35}.personContactMeta span{overflow-wrap:anywhere}.incompleteProfileList{display:grid;gap:8px}.incompleteProfileRow{width:100%;display:grid;grid-template-columns:minmax(230px,.8fr) minmax(260px,1.2fr) auto;gap:14px;align-items:center;border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:12px;text-align:left;cursor:pointer;transition:.15s ease}.incompleteProfileRow:hover{border-color:#93c5fd;background:#f8fbff;transform:translateY(-1px);box-shadow:0 10px 24px rgba(37,99,235,.08)}.incompletePerson{display:flex;align-items:center;gap:10px}.incompletePerson>span{display:grid;gap:2px}.incompletePerson small{color:#64748b}.missingFieldChips{display:flex;gap:5px;flex-wrap:wrap}.missingFieldChips span{border-radius:999px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;padding:4px 8px;font-size:.72rem;font-weight:800}.editArrow{color:#2563eb;font-weight:900;white-space:nowrap}#userProfileModal .profileCard{padding:24px;border-radius:26px;box-shadow:0 20px 55px rgba(15,23,42,.11)}#userProfileModal .settingsProfileTop{padding-bottom:18px;border-bottom:1px solid #dbe4f0}#userProfileModal .profileMeta{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#userProfileModal .profileMeta div{display:grid;gap:3px;border:1px solid #e2e8f0;background:rgba(255,255,255,.8);border-radius:14px;padding:11px 13px}#userProfileModal .profileMeta dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}#userProfileModal .profileMeta dd{text-align:left;font-weight:750;overflow-wrap:anywhere}@media(max-width:760px){.incompleteProfileRow{grid-template-columns:1fr}.editArrow{justify-self:end}.importSchemaGroup{grid-template-columns:1fr}#userProfileModal .profileMeta{grid-template-columns:1fr}.personCell{min-width:220px}}

.accountStatusIcons,.adminStatusIcons{display:flex;align-items:center;gap:7px}.adminStatusIcon{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:10px;border:1px solid;font-size:.9rem;font-weight:950}.adminStatusIcon.ok{color:#15803d;background:#f0fdf4;border-color:#bbf7d0}.adminStatusIcon.info{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.adminStatusIcon.warn{color:#b45309;background:#fffbeb;border-color:#fde68a}.adminStatusIcon.muted{color:#64748b;background:#f8fafc;border-color:#e2e8f0}.adminIconBtn{display:inline-grid!important;place-items:center;width:34px;height:34px;padding:0!important;border-radius:10px!important;font-size:.95rem!important;line-height:1}.rowActions.adminIconActions{gap:7px;align-items:center}
#userProfileModal .profileCard{background:linear-gradient(145deg,#f8fbff 0%,#fff 48%,#f8fafc 100%)}#userProfileModal .settingsProfileTop{align-items:center;background:linear-gradient(135deg,#e0f2fe,#eef2ff);margin:-24px -24px 20px;padding:24px;border-radius:26px 26px 0 0;border-bottom:1px solid #c7d2fe}#userProfileModal .settingsProfileTop .avatar{box-shadow:0 12px 28px rgba(37,99,235,.2)}.profileHeroText{display:grid;gap:5px}.profileHeroText .eyebrow{margin:0;color:#6366f1}.profileHeroText h3{font-size:1.35rem}.profileHeroChips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.profileChip{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:.75rem;font-weight:850;border:1px solid}.profileChip.role{background:#fff;color:#4338ca;border-color:#c7d2fe}.profileChip.class{background:#f0f9ff;color:#0369a1;border-color:#bae6fd}.profileChip.active{background:#f0fdf4;color:#15803d;border-color:#bbf7d0}.profileChip.pending{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.profileSections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.profileSection{border:1px solid #e2e8f0;border-radius:18px;padding:15px;background:#fff}.profileSection.identity{border-top:4px solid #818cf8}.profileSection.contact{border-top:4px solid #38bdf8}.profileSectionHeading{display:flex;gap:9px;align-items:flex-start;margin-bottom:12px}.profileSectionHeading>span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#eef2ff;color:#4f46e5;font-weight:950}.profileSection.contact .profileSectionHeading>span{background:#e0f2fe;color:#0284c7}.profileSectionHeading h4{margin:0;color:#0f172a}.profileSectionHeading p{margin:2px 0 0;color:#64748b;font-size:.75rem}.profileSection .profileMeta{grid-template-columns:1fr!important;margin:0!important}.profileSection .profileMeta div{border:0!important;border-top:1px solid #eef2f7!important;border-radius:0!important;padding:8px 0!important;background:transparent!important;grid-template-columns:minmax(90px,.7fr) 1.3fr!important;align-items:start}.profileSection .profileMeta div:first-child{border-top:0!important}.profileSection .profileMeta dd{text-align:right!important}.profileCard>.gvSection{margin-top:14px;border:1px solid #fbcfe8;border-top:4px solid #f472b6;border-radius:18px;background:#fff;padding:15px}.profileCard>.gvSection .gvSectionTitle{color:#9d174d}@media(max-width:760px){.profileSections{grid-template-columns:1fr}.profileSection .profileMeta div{grid-template-columns:1fr!important}.profileSection .profileMeta dd{text-align:left!important}}

/* ===== Compact Group Member Chips (groups table only) ===== */
.groupMemberChips.compactChips{gap:3px}
.groupMemberChipCompact{display:inline-flex;align-items:center;gap:2px;padding:2px 6px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;font-size:.7rem;font-weight:700;color:#334155;line-height:1.2;white-space:nowrap}
.groupMemberChipCompact.genderFemale{border-color:#fbcfe8;background:#fdf2f8;color:#9d174d}
.groupMemberChipCompact.genderMale{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}
.groupMemberChipCompact .tinyInvite{padding:0 3px;font-size:.62rem;line-height:1.4;border-radius:999px;margin-left:1px}
@media(max-width:980px){.groupMemberChipCompact{max-width:100%}}
body.mobileMode .groupMemberChips.compactChips{gap:2px}

/* ===== Collapsible sections in template form ===== */
#assignmentTemplateForm details { display: block; width: 100%; margin: 0.5rem 0; border: 1px solid #e2e8f0; border-radius: 8px; padding: 0; box-sizing: border-box; }
#assignmentTemplateForm details > summary { cursor: pointer; padding: 0.6rem 1rem; font-weight: 600; font-size: 0.9rem; background: #f8fafc; border-radius: 8px; list-style: none; display: flex; align-items: center; gap: 0.4rem; }
#assignmentTemplateForm details > summary::before { content: '▸'; transition: transform 0.15s; font-size: 0.8rem; }
#assignmentTemplateForm details[open] > summary::before { transform: rotate(90deg); }
#assignmentTemplateForm details[open] > summary { border-radius: 8px 8px 0 0; }
#assignmentTemplateForm details > div { padding: 0.8rem 1rem; }
.compact { font-size: 0.85rem; margin: 0.2rem 0; }
/* Two-column row: Grunddaten + Beschreibung/Sichtbarkeit side by side */
#assignmentTemplateForm .templateFormRow { display: flex; grid-column: 1 / -1; width: 100%; gap: 0.75rem; align-items: flex-start; }
#assignmentTemplateForm .templateFormRow > details { min-width: 0; }
#assignmentTemplateForm .templateFormRow > details:first-child { flex: 1 1 0; }
#assignmentTemplateForm .templateFormRow > details:last-child { flex: 2 1 0; }
#assignmentTemplateForm .templateAbgabeRow { display: flex; gap: 0.75rem; align-items: flex-start; }
#assignmentTemplateForm .templateAbgabeRow > label { flex: 1 1 0; min-width: 0; }
@media (max-width: 700px) {
  #assignmentTemplateForm .templateFormRow { flex-direction: column; }
  #assignmentTemplateForm .templateAbgabeRow { flex-direction: column; }
}
/* Required field: red border, green when filled */
#assignmentTemplateForm .reqField { border: 2px solid #dc2626 !important; }
#assignmentTemplateForm .reqField:valid { border-color: #16a34a !important; }
/* Optional field: gray border */
#assignmentTemplateForm .optField { border: 1px solid #cbd5e1 !important; }
#assignmentTemplateForm .optField:focus { border-color: #2563eb !important; }
.vocabularyBuilder{display:grid;gap:16px;padding:18px;border:1px solid #bfdbfe;border-radius:20px;background:linear-gradient(145deg,#eff6ff,#fff)}.vocabularyHero,.vocabularyHero>div,.vocabularyWordListHead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.vocabularyHero>div>span{font-size:2rem}.vocabularyHero h3,.vocabularyHero p,.vocabularyWordListHead p{margin:0}.vocabularySettings{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.vocabularyTaskTypes,.vocabularyOptions{display:flex;flex-wrap:wrap;gap:12px;border:0;padding:0}.vocabularyTaskTypes legend{font-weight:850;margin-bottom:7px}.vocabularyTaskTypes label,.vocabularyOptions label{display:flex!important;align-items:center;gap:7px;padding:9px 11px;border:1px solid #dbeafe;border-radius:12px;background:#fff}.vocabularyTaskTypes input,.vocabularyOptions input{width:auto}.vocabularyPaste{border:1px solid #dbeafe;border-radius:14px;background:#fff}.vocabularyPaste summary{cursor:pointer;font-weight:850;padding:12px}.vocabularyPaste>div{padding:0 12px 12px}.vocabularyPaste textarea{width:100%;box-sizing:border-box}.vocabularyWordList{display:grid;gap:8px}.vocabularyWordRow{display:grid;grid-template-columns:minmax(130px,1.1fr) minmax(150px,1.3fr) 110px minmax(180px,1.5fr) 40px;gap:8px;align-items:end;padding:10px;border:1px solid #dbeafe;border-radius:14px;background:#fff}.vocabularyWordRow label{font-size:.75rem}.vocabularyWordRow input{width:100%;box-sizing:border-box}.vocabularyWordRemove{height:38px}@media(max-width:760px){.vocabularyHero,.vocabularyWordListHead{display:grid}.vocabularyWordRow{grid-template-columns:1fr 1fr}.vocabularyWordRow label:nth-child(4){grid-column:1/-1}}
#assignmentTemplateForm .selectedCompetencies .competencyChip span,.assignmentCompetencies .competencyChip span{max-width:none;overflow:visible;text-overflow:clip;white-space:normal}

/* ===== Live-Quiz ===== */
.quizSessionSetup{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin:14px 0}
.quizSelect{border:1px solid #cbd5e1;border-radius:14px;padding:11px 14px;font:inherit;background:white;font-weight:700;color:#172033;min-width:200px}
.quizSelect:focus{border-color:#2563eb;outline:none}
.quizQuestionEditor{display:grid;gap:16px;margin:14px 0}
.quizQuestionCard{border:1px solid #dbe4f0;border-radius:18px;background:linear-gradient(135deg,#fff,#f8fbff);padding:16px;box-shadow:0 10px 28px rgba(15,23,42,.05)}
.quizQuestionCard h4{margin:0 0 10px;color:#0f172a}
.quizQuestionCard .demoForm{display:grid;gap:8px}
.quizQuestionCard input[type=text],.quizQuestionCard input[type=number],.quizQuestionCard select{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:9px 10px;font:inherit;background:white}
.quizQuestionCard input[type=text]:focus,.quizQuestionCard input[type=number]:focus,.quizQuestionCard select:focus{border-color:#2563eb;outline:none}
.quizOptionRow{display:flex;gap:8px;align-items:center;margin:4px 0}
.quizOptionRow input[type=text]{flex:1}
.quizOptionRow input[type=checkbox]{width:auto}
.quizOptionRow .quizCorrectLabel{font-size:.78rem;font-weight:850;color:#166534;white-space:nowrap}
.quizOptionRow .miniBtn{margin:0;flex-shrink:0}
.quizAddOptionBtn{margin-top:4px}
.quizLivePhase{display:grid;gap:18px;padding:8px 0}
.quizLivePhase .quizPhaseHeader{display:flex;justify-content:space-between;align-items:center;gap:12px}
.quizLivePhase .quizPhaseHeader h3{margin:0}
.quizTimerBar{height:8px;border-radius:999px;background:#e2e8f0;overflow:hidden;margin:10px 0}
.quizTimerBarFill{height:100%;border-radius:999px;background:linear-gradient(90deg,#2563eb,#38bdf8);transition:width 1s linear}
.quizTimerBarFill.urgent{background:linear-gradient(90deg,#ef4444,#f59e0b)}
.quizResultBar{display:flex;align-items:center;gap:10px;margin:6px 0;font-size:.92rem}
.quizResultBar .quizResultLabel{min-width:120px;font-weight:700;color:#334155}
.quizResultBar .quizResultTrack{flex:1;height:28px;border-radius:10px;background:#f1f5f9;overflow:hidden;position:relative}
.quizResultBar .quizResultFill{height:100%;border-radius:10px;background:linear-gradient(90deg,#93c5fd,#3b82f6);display:flex;align-items:center;padding:0 8px;color:white;font-weight:850;font-size:.82rem;transition:width .4s ease}
.quizResultBar.correct .quizResultFill{background:linear-gradient(90deg,#86efac,#22c55e)}
.quizResultBar .quizResultCount{min-width:40px;text-align:right;font-weight:850;color:#64748b}
.quizParticipantCount{display:inline-flex;align-items:center;gap:6px;background:#eaf2ff;color:#1d4ed8;border-radius:999px;padding:6px 12px;font-weight:900;font-size:.88rem}
.quizLeaderboard{display:grid;gap:6px;margin:12px 0}
.quizLeaderboardRow{display:flex;align-items:center;gap:12px;border:1px solid #e2e8f0;border-radius:14px;padding:10px 14px;background:#f8fafc}
.quizLeaderboardRow.rank-1{background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#f59e0b}
.quizLeaderboardRow.rank-2{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border-color:#94a3b8}
.quizLeaderboardRow.rank-3{background:linear-gradient(135deg,#fef3c7,#fbbf24);border-color:#d97706}
.quizLeaderboardRank{font-size:1.3rem;font-weight:950;color:#0f172a;min-width:32px}
.quizLeaderboardName{flex:1;font-weight:850;color:#0f172a}
.quizLeaderboardScore{font-weight:900;color:#1d4ed8}
.quizLiveQuestion{font-size:1.3rem;font-weight:900;color:#0f172a;line-height:1.35;margin:8px 0}
.quizLiveOptions{display:grid;gap:8px;margin:10px 0}
.quizLiveOption{display:flex;align-items:center;gap:10px;border:1px solid #e2e8f0;border-radius:14px;padding:12px 14px;background:white;font-weight:700;color:#334155}
.quizLiveOption.correct{border-color:#22c55e;background:#f0fdf4;color:#166534}
.quizLiveOption .quizOptionLetter{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#eaf2ff;color:#1d4ed8;font-weight:950;flex-shrink:0}
.quizLiveOption.correct .quizOptionLetter{background:#22c55e;color:white}
.quizDisplayModeBadge{display:inline-flex;align-items:center;gap:4px;background:#fef3c7;color:#92400e;border-radius:999px;padding:4px 10px;font-size:.76rem;font-weight:850}
.quizSessionInfo{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:8px 0}
.quizSessionInfo .badge{font-size:.82rem}
.quizMediaWrap{border:1px solid #e2e8f0;border-radius:14px;padding:12px;margin:8px 0;background:#f8fafc}
.quizMediaWrap audio,.quizMediaWrap video{width:100%;max-width:480px}
@media(max-width:720px){.quizSessionSetup{flex-direction:column;align-items:stretch}.quizSelect{width:100%}.quizLiveQuestion{font-size:1.1rem}.quizLeaderboardRank{font-size:1.1rem}}

/* ===== Student Quiz Styles ===== */
.quizStudentJoin{max-width:420px;margin:40px auto;text-align:center;padding:30px 20px}
.quizStudentJoin h3{margin:0 0 8px;font-size:1.4rem;color:#0f172a}
.quizStudentJoin p{color:#64748b;margin:0 0 20px}
.quizStudentSessionInput{width:100%;border:2px solid #cbd5e1;border-radius:14px;padding:14px 16px;font:inherit;font-weight:700;font-size:1.1rem;text-align:center;background:white;color:#0f172a;box-sizing:border-box}
.quizStudentSessionInput:focus{border-color:#2563eb;outline:none}
.quizStudentWaiting{display:grid;place-items:center;gap:16px;padding:40px 20px;text-align:center}
.quizStudentWaiting .quizWaitingTitle{font-size:1.5rem;font-weight:900;color:#0f172a}
.quizStudentWaiting .quizWaitingSub{color:#64748b;font-size:1rem}
.quizWaitingDots{display:flex;gap:8px;justify-content:center}
.quizWaitingDots span{width:14px;height:14px;border-radius:50%;background:#2563eb;animation:quizPulse 1.4s ease-in-out infinite}
.quizWaitingDots span:nth-child(2){animation-delay:.2s}
.quizWaitingDots span:nth-child(3){animation-delay:.4s}
@keyframes quizPulse{0%,80%,100%{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1.2)}}
.quizStudentLive{max-width:600px;margin:0 auto;padding:8px 0}
.quizStudentLive .quizStudentPhase{font-size:.78rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em;color:#64748b;margin-bottom:6px}
.quizStudentLive .quizStudentQuestionText{font-size:1.4rem;font-weight:900;color:#0f172a;line-height:1.35;margin:6px 0 16px}
.quizStudentAnswerGrid{display:grid;gap:12px;margin:16px 0}
.quizStudentAnswerBtn{border:none;border-radius:16px;padding:18px 20px;font:inherit;font-size:1.05rem;font-weight:850;color:white;text-align:left;display:flex;align-items:center;gap:14px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease;min-height:60px}
.quizStudentAnswerBtn:hover:not(.answered):not(.disabled){transform:translateY(-2px);box-shadow:0 8px 24px rgba(15,23,42,.18)}
.quizStudentAnswerBtn:active:not(.answered):not(.disabled){transform:translateY(0)}
.quizStudentAnswerBtn .quizAnswerLetter{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:rgba(255,255,255,.25);font-weight:950;font-size:1.1rem;flex-shrink:0}
.quizStudentAnswerBtn:nth-child(1){background:linear-gradient(135deg,#ef4444,#dc2626)}
.quizStudentAnswerBtn:nth-child(2){background:linear-gradient(135deg,#3b82f6,#2563eb)}
.quizStudentAnswerBtn:nth-child(3){background:linear-gradient(135deg,#f59e0b,#d97706)}
.quizStudentAnswerBtn:nth-child(4){background:linear-gradient(135deg,#22c55e,#16a34a)}
.quizStudentAnswerBtn:nth-child(5){background:linear-gradient(135deg,#8b5cf6,#7c3aed)}
.quizStudentAnswerBtn:nth-child(6){background:linear-gradient(135deg,#ec4899,#db2777)}
.quizStudentAnswerBtn.answered{opacity:.6;cursor:default}
.quizStudentAnswerBtn.answered .quizAnswerCheck{margin-left:auto;font-size:1.2rem}
.quizStudentAnswerBtn.disabled{opacity:.5;cursor:default}
.quizStudentAnswerBtn.revealCorrect{box-shadow:0 0 0 4px #22c55e,0 0 20px rgba(34,197,94,.4);opacity:1}
.quizStudentAnswerBtn.revealIncorrect{box-shadow:0 0 0 4px #ef4444;opacity:.7}
.quizStudentFeedback{border-radius:16px;padding:16px 20px;margin:14px 0;font-weight:850;text-align:center;font-size:1.05rem}
.quizStudentFeedback.correct{background:#f0fdf4;color:#166534;border:2px solid #22c55e}
.quizStudentFeedback.incorrect{background:#fef2f2;color:#991b1b;border:2px solid #ef4444}
.quizStudentScore{display:inline-flex;align-items:center;gap:8px;background:#eaf2ff;color:#1d4ed8;border-radius:999px;padding:8px 16px;font-weight:900;font-size:1rem}
.quizStudentScoreRow{display:flex;justify-content:center;gap:12px;margin:12px 0;flex-wrap:wrap}
.quizStudentFinalRank{max-width:500px;margin:20px auto;text-align:center}
.quizStudentFinalRank h3{font-size:1.6rem;margin:0 0 6px}
.quizStudentFinalRank .quizFinalScore{font-size:2.2rem;font-weight:950;color:#1d4ed8;margin:10px 0}
.quizStudentFinalRank .quizFinalRank{font-size:1.2rem;font-weight:850;color:#64748b;margin-bottom:16px}
.quizStudentFinalRank .quizMiniLeaderboard{display:grid;gap:6px;margin:14px 0}
.quizStudentFinalRank .quizMiniRow{display:flex;align-items:center;gap:10px;border:1px solid #e2e8f0;border-radius:12px;padding:8px 12px;background:#f8fafc;font-weight:700}
.quizStudentFinalRank .quizMiniRow.rank-1{background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#f59e0b}
.quizStudentFinalRank .quizMiniRow.rank-2{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border-color:#94a3b8}
.quizStudentFinalRank .quizMiniRow.rank-3{background:linear-gradient(135deg,#fef3c7,#fbbf24);border-color:#d97706}
.quizStudentFinalRank .quizMiniRow.self{border-width:2px;border-color:#2563eb}
.quizTeacherOnlyNotice{background:linear-gradient(135deg,#fffbeb,#fef3c7);border:2px solid #f59e0b;border-radius:18px;padding:30px 20px;text-align:center;margin:16px 0}
.quizTeacherOnlyNotice .quizTeacherOnlyIcon{font-size:2.5rem;margin-bottom:8px}
.quizTeacherOnlyNotice h3{font-size:1.3rem;font-weight:900;color:#92400e;margin:0 0 6px}
.quizTeacherOnlyNotice p{color:#92400e;font-weight:700;margin:0}
.quizStudentHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:8px}
.quizStudentHeader h3{margin:0;font-size:1.2rem}
.quizStudentLeaveBtn{background:none;border:1px solid #e2e8f0;border-radius:10px;padding:6px 14px;font:inherit;font-size:.82rem;font-weight:700;color:#64748b;cursor:pointer}
.quizStudentLeaveBtn:hover{background:#f1f5f9}
@media(max-width:720px){.quizStudentLive{padding:8px 4px}.quizStudentLive .quizStudentQuestionText{font-size:1.15rem}.quizStudentAnswerBtn{padding:14px 16px;font-size:.98rem;min-height:54px}.quizStudentJoin{padding:20px 12px;margin:20px auto}}
.quizActiveSessionList{display:grid;gap:12px;margin:16px 0;text-align:left}
.quizActiveSessionCard{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid #e2e8f0;border-radius:16px;padding:16px;background:white;box-shadow:0 4px 12px rgba(15,23,42,.04)}
.quizActiveSessionCard:hover{border-color:#2563eb;box-shadow:0 6px 18px rgba(37,99,235,.08)}
.quizActiveSessionInfo{flex:1;min-width:0}
.quizActiveSessionInfo strong{font-size:1.05rem;color:#0f172a}
.quizActiveSessionInfo .tableSub{font-size:.82rem;color:#64748b}

.startupLoadingBackdrop{z-index:90;background:rgba(15,23,42,.58);backdrop-filter:blur(7px);padding:24px}.startupLoadingCard{position:relative;overflow:hidden;width:min(500px,100%);max-width:500px;padding:0;border:1px solid rgba(255,255,255,.72);border-radius:28px;background:rgba(255,255,255,.97);box-shadow:0 32px 90px rgba(15,23,42,.28)}.startupLoadingCard::before{content:'';position:absolute;inset:0 0 auto;height:6px;background:linear-gradient(90deg,#1d4ed8,#2563eb 50%,#38bdf8)}.startupLoadingHead{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center;padding:28px 28px 20px}.startupLoadingHead .eyebrow{margin:0 0 5px;color:#2563eb;opacity:1}.startupLoadingHead h2{margin:0;color:#0f172a;font-size:1.45rem;letter-spacing:-.025em}.startupLoadingHead .helper{margin:7px 0 0;color:#64748b}.startupLoadingMark{width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(145deg,#1d4ed8,#38bdf8);color:#fff;box-shadow:0 12px 28px rgba(37,99,235,.26)}.startupLoadingMark svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.startupProgressTrack{height:6px;border-radius:999px;background:#e2e8f0;overflow:hidden;margin:0 28px}.startupProgressBar{height:100%;border-radius:999px;background:linear-gradient(90deg,#2563eb,#38bdf8);box-shadow:0 0 12px rgba(56,189,248,.55);transition:width .22s ease}.startupLoadList{list-style:none;margin:20px 0 0;padding:20px 28px 24px;border-top:1px solid #edf2f7;background:linear-gradient(180deg,#f8fafc,#fff);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}.startupLoadList li{position:relative;min-width:0;display:flex;align-items:center;gap:9px;color:#64748b;font-weight:800;font-size:.86rem}.startupLoadList li::before{content:'';width:18px;height:18px;flex:0 0 auto;border:2px solid #cbd5e1;border-radius:50%;background:#fff;transition:.2s ease}.startupLoadList li.loading{color:#1d4ed8}.startupLoadList li.loading::before{border-color:#93c5fd;border-top-color:#2563eb;animation:startupSpin .8s linear infinite}.startupLoadList li.done{color:#166534}.startupLoadList li.done::before{content:'✓';display:grid;place-items:center;border-color:#22c55e;background:#22c55e;color:#fff;font-size:.72rem;line-height:1}.startupLoadList li.error{color:#991b1b}.startupLoadList li.error::before{content:'!';display:grid;place-items:center;border-color:#ef4444;background:#fee2e2;color:#b91c1c;font-size:.72rem;line-height:1}@keyframes startupSpin{to{transform:rotate(360deg)}}@media(max-width:520px){.startupLoadingBackdrop{padding:14px}.startupLoadingHead{padding:24px 20px 18px}.startupLoadingMark{width:50px;height:50px;border-radius:15px}.startupProgressTrack{margin:0 20px}.startupLoadList{padding:18px 20px 22px;grid-template-columns:1fr}}
.financeTeacherPortal{display:grid;gap:18px}.financePortalGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.financePortalGroup{min-width:0;padding:13px;border:1px solid #dbe4f0;border-radius:20px;background:#f8fafc}.financePortalGroup.overview{--finance-accent:#2563eb;--finance-soft:#eff6ff}.financePortalGroup.submit{--finance-accent:#7c3aed;--finance-soft:#f5f3ff}.financePortalGroup.manage{--finance-accent:#0f8a6a;--finance-soft:#ecfdf5}.financePortalGroupHead{display:flex;align-items:center;gap:9px;margin:0 2px 11px;color:#334155}.financePortalGroupHead>div{min-width:0;display:grid}.financePortalGroupHead strong{font-size:.85rem}.financePortalGroupHead small{color:#64748b;font-size:.72rem;font-weight:750}.financePortalGroupIcon{width:29px;height:29px;display:grid;place-items:center;flex:0 0 auto;border-radius:9px;background:var(--finance-soft);color:var(--finance-accent);font-weight:950}.financePortalGroupCards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.financePortalCard{position:relative;min-width:0;min-height:82px;border:1px solid #dbe4f0;border-radius:14px;background:#fff;padding:11px;text-align:left;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;color:#172033;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}.financePortalCard:hover:not(:disabled){transform:translateY(-1px);border-color:color-mix(in srgb,var(--finance-accent) 45%,#dbe4f0);box-shadow:0 8px 18px rgba(15,23,42,.07)}.financePortalCardIcon{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:var(--finance-soft);color:var(--finance-accent)!important;font-size:1.05rem;font-weight:950!important}.financePortalCardCopy{min-width:0;display:grid;gap:3px}.financePortalCardCopy strong{font-size:.88rem;line-height:1.15;overflow-wrap:normal;word-break:normal;hyphens:none}.financePortalCardCopy small{color:#64748b;font-size:.7rem;font-weight:750;line-height:1.2}.financePortalCard.active{border-color:var(--finance-accent);background:var(--finance-soft);box-shadow:0 0 0 2px color-mix(in srgb,var(--finance-accent) 13%,transparent),0 8px 18px rgba(15,23,42,.06)}.financePortalCard.active .financePortalCardIcon{background:var(--finance-accent);color:#fff!important}.financePortalCard:disabled{cursor:not-allowed;opacity:.58;background:repeating-linear-gradient(135deg,#fff,#fff 8px,#f8fafc 8px,#f8fafc 16px)}.financePortalSoon{position:absolute;right:7px;top:7px;padding:2px 6px;border-radius:999px;background:#e2e8f0;color:#64748b!important;font-size:.59rem;font-weight:900!important;text-transform:uppercase;letter-spacing:.04em}.financePersonalExpenses{border:1px solid #dbe4f0;border-radius:18px;padding:18px;background:#fff}.financeYearLabel{display:grid;gap:5px;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;font-weight:900;color:#64748b}.financeYearLabel select{border:1px solid #cbd5e1;border-radius:10px;padding:8px 10px;background:#fff;font:inherit;font-weight:850}.financeExpenseKpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.financeExpenseKpi{border:1px solid #dbe4f0;border-radius:14px;padding:14px;background:#f8fafc}.financeExpenseKpi span{display:block;color:#64748b;font-size:.78rem;font-weight:850}.financeExpenseKpi strong{display:block;margin-top:5px;font-size:1.22rem}.financeExpenseGroups{border:1px solid #dbe4f0;border-radius:16px;padding:12px;background:#fff}.financeExcerptAccordion{margin-bottom:10px}.financeExcerptHead{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:1px solid #dbe4f0;border-radius:14px}.financeExcerptAccordion.category>.financeExcerptHead{background:rgba(168,85,247,.10)}.financeExcerptAccordion.account>.financeExcerptHead{background:rgba(234,179,8,.14)}.financeExcerptAccordion.item>.financeExcerptHead{background:rgba(15,23,42,.03)}.financeExcerptBody{padding:10px 12px 2px}.financeExcerptPill,.financeRestBadge,.financePaymentBadge{display:inline-flex;align-items:center;padding:3px 10px;border:1px solid #dbe4f0;border-radius:999px;font-weight:900;font-size:.85rem;white-space:nowrap}.financeExcerptPill{background:rgba(15,23,42,.04)}.financeExcerptPill.meta{font-weight:850}.financeExcerptRight{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.financeRestBadge{font-weight:950}.financeRestBadge.good{background:rgba(34,197,94,.14)}.financeRestBadge.warn{background:rgba(234,179,8,.16)}.financeRestBadge.bad{background:rgba(239,68,68,.14)}.financeRestBadge.na{background:rgba(15,23,42,.04);color:#64748b}.financeExcerptTableWrap{border:1px solid #dbe4f0;border-radius:14px;overflow:auto;background:#fff}.financeExcerptTable{width:100%;border-collapse:collapse;min-width:720px}.financeExcerptTable th,.financeExcerptTable td{border-bottom:1px solid #dbe4f0;padding:10px;text-align:left;vertical-align:top;font-size:.88rem}.financeExcerptTable th{background:rgba(15,23,42,.02);font-weight:900}.financeExcerptTable .num{text-align:right;white-space:nowrap}.financePaymentBadge.invoice{background:rgba(37,99,235,.14)}.financePaymentBadge.payout{background:rgba(249,115,22,.16)}.financeBusinessRow td{background:rgba(15,23,42,.06);padding:8px 10px}.financeBusinessRow div{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.financeBusinessRow span{color:#64748b;font-weight:850;font-size:.9rem}@media(max-width:1500px) and (min-width:1101px){.financePortalGroupCards{grid-template-columns:1fr}.financePortalCard{min-height:62px}}@media(max-width:1100px){.financePortalGrid{grid-template-columns:1fr}.financePortalGroupCards{grid-template-columns:repeat(2,minmax(0,1fr))}.financeExpenseKpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.financePortalGroupCards,.financeExpenseKpis{grid-template-columns:1fr}.financeExcerptHead{align-items:flex-start;flex-direction:column}.financeExcerptRight{justify-content:flex-start}}
.campBudgetEditor{margin:16px 0}.campBudgetForm{display:grid;gap:14px}.campBudgetSection{padding:18px;border:1px solid #dbe4f0;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.045)}.campBudgetSectionHead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.campBudgetSectionHead>div{display:flex;align-items:center;gap:9px}.campBudgetSectionHead>div>span{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#0f8a6a;color:#fff;font-size:.78rem;font-weight:950}.campBudgetSectionHead h4,.campBudgetSectionHead p{margin:0}.campBudgetSectionHead p{color:#64748b;font-size:.8rem}.campBudgetBasics,.campBudgetCashierGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.campBudgetForm label{display:grid;gap:5px;color:#475569;font-size:.8rem;font-weight:800}.campBudgetForm input,.campBudgetForm select{width:100%;min-width:0;box-sizing:border-box}.campBudgetPositionRow{display:grid;grid-template-columns:minmax(185px,1.3fr) 105px 135px 125px minmax(175px,1fr) 38px;gap:9px;align-items:end;padding:11px;margin-bottom:8px;border:1px solid #e2e8f0;border-radius:13px;background:#f8fafc}.campBudgetPositionRow>span{display:grid;gap:3px;padding:8px 4px}.campBudgetPositionRow small{color:#64748b}.campBudgetCategory{margin:10px 0;padding:12px;border:1px solid #dbe4f0;border-radius:15px;background:#f8fafc}.campBudgetCategory>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.campBudgetLeaderRow{display:grid;grid-template-columns:minmax(180px,1.2fr) 145px 75px minmax(160px,1fr) 145px 38px;gap:9px;align-items:end;padding:11px;margin-bottom:8px;border:1px solid #e2e8f0;border-radius:13px;background:#f8fafc}.campBudgetLeaderRow label small{font-size:.68rem;color:#64748b;font-weight:650}.campBudgetJs{display:flex!important;align-items:center!important;gap:7px!important;min-height:42px}.campBudgetJs input{width:18px!important}.campBudgetSocialInfo{display:flex;justify-content:space-between;gap:15px;padding:12px 14px;border-radius:13px;background:#eff6ff;color:#1e3a8a;font-size:.8rem}.campBudgetSummarySection{background:linear-gradient(135deg,#ecfdf5,#eff6ff)}.campBudgetSummary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.campBudgetSummary article{padding:14px;border:1px solid rgba(148,163,184,.35);border-radius:14px;background:rgba(255,255,255,.85)}.campBudgetSummary small,.campBudgetSummary strong{display:block}.campBudgetSummary small{color:#64748b;font-weight:800}.campBudgetSummary strong{margin-top:5px;font-size:1.16rem}.campBudgetSummary article.primary{background:#064e3b;color:#fff}.campBudgetSummary article.primary small{color:#a7f3d0}.campBudgetSummary article.danger{border-color:#fca5a5;background:#fef2f2;color:#991b1b}.campBudgetSignature,.campBudgetLeadApproval{margin-top:14px}.campBudgetSignature canvas,.campBudgetLeadApproval canvas{display:block;width:100%;height:150px;margin:10px 0;border:1px dashed #94a3b8;border-radius:13px;background:#fff;touch-action:none}.campBudgetOverviewGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:11px}.campBudgetOverviewCard{display:flex;justify-content:space-between;gap:15px;padding:16px;border:1px solid #dbe4f0;border-left:5px solid #94a3b8;border-radius:16px;background:#fff}.campBudgetOverviewCard.submitted{border-left-color:#7c3aed}.campBudgetOverviewCard.approved{border-left-color:#16a34a}.campBudgetOverviewCard.returned{border-left-color:#f59e0b}.campBudgetOverviewCard h4{margin:8px 0 4px}.campBudgetOverviewCard p{margin:0 0 5px;color:#64748b}.campBudgetOverviewCard aside{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:12px;white-space:nowrap}.campBudgetApprovedBanner,.campBudgetAuditNotice{display:flex;align-items:center;gap:12px;margin-bottom:13px;padding:13px 15px;border-radius:14px}.campBudgetApprovedBanner{background:#ecfdf5;border:1px solid #86efac;color:#166534}.campBudgetApprovedBanner code{margin-left:auto;font-size:.62rem;color:#64748b}.campBudgetAuditNotice{background:#f5f3ff;border:1px solid #c4b5fd;color:#5b21b6}.campBudgetForm.readOnly{opacity:.96}.campBudgetActions{position:sticky;bottom:8px;z-index:3;padding:12px;border:1px solid #dbe4f0;border-radius:15px;background:rgba(255,255,255,.95);box-shadow:0 10px 30px rgba(15,23,42,.13);backdrop-filter:blur(8px)}@media(max-width:1050px){.campBudgetPositionRow{grid-template-columns:1.4fr 100px 130px 120px}.campBudgetPositionRow label:nth-of-type(4){grid-column:1/4}.campBudgetLeaderRow{grid-template-columns:1fr 140px 75px}.campBudgetLeaderRow label:nth-of-type(4),.campBudgetLeaderRow label:nth-of-type(5){grid-column:span 1}.campBudgetBasics,.campBudgetCashierGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.campBudgetBasics,.campBudgetCashierGrid,.campBudgetSummary,.campBudgetPositionRow,.campBudgetLeaderRow{grid-template-columns:1fr}.campBudgetPositionRow label:nth-of-type(4){grid-column:auto}.campBudgetSectionHead,.campBudgetSocialInfo,.campBudgetOverviewCard,.campBudgetApprovedBanner{align-items:flex-start;flex-direction:column}.campBudgetOverviewCard aside{align-items:flex-start}.campBudgetApprovedBanner code{margin-left:0;word-break:break-all}}
.financeBudgetSections{display:grid;gap:18px;margin-top:16px}.financeBudgetSection{border:1px solid #dbe4f0;border-radius:18px;padding:12px;background:#f8fafc}.financeBudgetSection.responsible{border-color:#c4b5fd;background:linear-gradient(145deg,#faf5ff,#f5f3ff);box-shadow:0 12px 28px rgba(124,58,237,.09)}.financeBudgetSection.used{border-color:#93c5fd;background:linear-gradient(145deg,#eff6ff,#f8fafc)}.financeBudgetSectionHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.financeBudgetSectionHead h4{margin:0;font-size:1.08rem}.financeBudgetSectionHead p{margin:3px 0 0;color:#64748b;font-weight:700}.financeBudgetSectionHead>span{display:grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border-radius:999px;background:#fff;border:1px solid #dbe4f0;font-weight:950}.financeBudgetList{display:grid;gap:8px}.financeBudgetCard{--budget-accent:#64748b;--budget-strong:#334155;--budget-soft:rgba(100,116,139,.08);--budget-soft-strong:rgba(100,116,139,.14);border:1px solid color-mix(in srgb,var(--budget-accent) 34%,#dbe4f0);border-left:5px solid var(--budget-accent);border-radius:15px;padding:10px 11px;background:linear-gradient(110deg,var(--budget-soft),rgba(255,255,255,.96) 42%,#fff)}.financeBudgetCard.good{--budget-accent:#22c55e;--budget-strong:#15803d;--budget-soft:rgba(34,197,94,.08);--budget-soft-strong:rgba(34,197,94,.14)}.financeBudgetCard.warn{--budget-accent:#eab308;--budget-strong:#a16207;--budget-soft:rgba(234,179,8,.10);--budget-soft-strong:rgba(234,179,8,.17)}.financeBudgetCard.bad{--budget-accent:#ef4444;--budget-strong:#b91c1c;--budget-soft:rgba(239,68,68,.08);--budget-soft-strong:rgba(239,68,68,.14)}.financeBudgetCard.responsible{box-shadow:inset 0 0 0 1px rgba(139,92,246,.34),0 5px 14px rgba(124,58,237,.07)}.financeBudgetCard.responsible::before{content:''}.financeBudgetCardTop{display:flex;justify-content:space-between;gap:16px;align-items:center}.financeBudgetCard h5{font-size:1.02rem;margin:5px 0 2px}.financeBudgetCardTop p{margin:0;color:#64748b;font-weight:750;font-size:.84rem}.financeBudgetTags{display:flex;gap:5px;flex-wrap:wrap}.financeBudgetTags span,.financeBudgetTags strong{display:inline-flex;padding:2px 8px;border-radius:999px;background:rgba(255,255,255,.72);border:1px solid #dbe4f0;font-size:.73rem;font-weight:900}.financeBudgetTags strong{background:#ede9fe;border-color:#c4b5fd;color:#5b21b6}.financeBudgetRest{min-width:142px;padding:7px 10px;border:1px solid color-mix(in srgb,var(--budget-accent) 30%,transparent);border-radius:11px;background:var(--budget-soft-strong);text-align:right;display:grid;gap:0;flex:0 0 auto}.financeBudgetRest span,.financeBudgetRest small{color:#64748b;font-weight:800;font-size:.75rem}.financeBudgetRest strong{color:var(--budget-strong);font-size:1.12rem}.financeBudgetProgress{height:7px;border-radius:999px;background:#dbe4f0;overflow:hidden;margin:8px 0 7px}.financeBudgetProgress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2563eb,var(--budget-accent))}.financeBudgetFigures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.financeBudgetFigures>span{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0;padding:6px 8px;border-radius:9px;background:rgba(255,255,255,.72);border:1px solid color-mix(in srgb,var(--budget-accent) 14%,#e2e8f0)}.financeBudgetFigures small{color:#64748b;font-size:.74rem;font-weight:800}.financeBudgetFigures strong{font-size:.86rem;white-space:nowrap}.financeBudgetNotes{margin:8px 0 0;padding-top:8px;border-top:1px dashed #cbd5e1;color:#475569;font-weight:700;font-size:.84rem}@media(max-width:720px){.financeBudgetCardTop{display:grid;gap:8px}.financeBudgetRest{width:100%;min-width:0;box-sizing:border-box;text-align:left;display:grid;grid-template-columns:auto auto;align-items:center;gap:1px 8px}.financeBudgetRest strong{justify-self:end}.financeBudgetRest small{grid-column:1/-1;text-align:right}.financeBudgetFigures{display:flex;flex-wrap:wrap;gap:4px 12px;padding:1px 2px}.financeBudgetFigures>span{display:inline-flex;align-items:baseline;justify-content:flex-start;gap:5px;padding:0;border:0;background:transparent}.financeBudgetFigures small{font-size:.68rem}.financeBudgetFigures strong{font-size:.76rem}.financeBudgetSection{padding:9px}}
.heroSessionLine{display:flex;align-items:center;justify-content:space-between;gap:18px}.heroSessionLine>p{margin:0}.heroRoleBadge{display:inline-flex;margin-left:10px;padding:4px 9px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(255,255,255,.14);font-size:.8rem;font-weight:850;vertical-align:middle}.heroLogout{width:42px;height:42px;flex:0 0 auto;display:grid;place-items:center;border:1px solid rgba(255,255,255,.3);border-radius:13px;background:rgba(255,255,255,.14);color:#fff;cursor:pointer}.heroLogout:hover{background:rgba(255,255,255,.24)}.heroLogout svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.financeInvoiceChoice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px;padding:6px;border:1px solid #dbe4f0;border-radius:20px;background:#eef2f7}.financeTypeCard{position:relative;min-height:86px;padding:14px 58px 14px 14px;border:2px solid transparent;border-radius:15px;background:transparent;text-align:left;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:11px;color:#475569;cursor:pointer;transition:.16s ease}.financeTypeCard:hover{background:rgba(255,255,255,.72);color:#172033}.financeTypeCard.active{border-color:#2563eb;background:#fff;color:#172033;box-shadow:0 8px 22px rgba(37,99,235,.14)}.financeTypeCardIcon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#dbe4f0;color:#475569!important;font-size:1.12rem;font-weight:950}.financeTypeCard.active .financeTypeCardIcon{background:#2563eb;color:#fff!important}.financeTypeCardCopy{display:grid;gap:3px;min-width:0}.financeTypeCardCopy strong{font-size:1rem}.financeTypeCardCopy small{color:#64748b;font-size:.76rem;font-weight:750;line-height:1.25}.financeTypeActiveLabel{position:absolute;right:12px;top:12px;display:none;padding:3px 7px;border-radius:999px;background:#dbeafe;color:#1d4ed8!important;font-size:.64rem;font-weight:950;text-transform:uppercase;letter-spacing:.04em}.financeTypeCard.active .financeTypeActiveLabel{display:inline-flex}.financeInvoiceForm{display:grid;gap:14px;padding:18px;border:1px solid #dbe4f0;border-radius:16px;background:#f8fafc}.financeInvoiceForm label{display:grid;gap:6px;font-weight:850}.financeInvoiceForm input,.financeInvoiceForm select,.financeInvoiceForm textarea{width:100%;padding:9px 10px;border:2px solid #cbd5e1;border-radius:10px;background:#fff;font:inherit}.financeInvoiceForm small{color:#64748b}.financeInvoiceScan{max-width:680px}.financeInvoiceDetails{display:grid;gap:12px}.financeInvoiceFieldGroup{display:grid;gap:9px;padding:13px;border:1px solid #dbe4f0;border-radius:13px;background:#fff}.financeInvoiceFieldGroup h4{margin:0;font-size:.93rem}.financeInvoiceFieldGroup h4 span{color:#64748b;font-size:.76rem;font-weight:800}.financeInvoiceCompactGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.financeInvoiceForm .invoiceFieldRecognized input,.financeInvoiceForm .invoiceFieldRecognized select{border-color:#22c55e;background:#f0fdf4;box-shadow:0 0 0 2px rgba(34,197,94,.08)}.financeInvoiceForm .invoiceFieldUnrecognized input,.financeInvoiceForm .invoiceFieldUnrecognized select{border-color:#eab308;background:#fefce8;box-shadow:0 0 0 2px rgba(234,179,8,.08)}.financeInvoiceForm .invoiceFieldRequired textarea{border-color:#ef4444;background:#fff7f7;box-shadow:0 0 0 2px rgba(239,68,68,.08)}.financeInvoiceForm .invoiceFieldRequired:has(textarea:valid) textarea{background:#fff}.financeInvoiceSubjectGroup{padding-bottom:11px}.financeInvoiceFeedback{min-height:1.2em;font-weight:850}.financeInvoiceList{display:grid;gap:9px;margin-top:18px}.financeInvoiceList>h4{margin:0 0 2px}.financeInvoiceRow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border:1px solid #dbe4f0;border-radius:14px;background:#fff}.financeInvoiceRow div{display:grid;gap:3px}.financeInvoiceRow span{color:#64748b;font-size:.88rem}.financeInvoiceEmpty{padding:14px;border:1px dashed #cbd5e1;border-radius:14px;color:#64748b;background:#fff}@media(max-width:720px){.financeInvoiceChoice,.financeInvoiceCompactGrid{grid-template-columns:1fr}.financeTypeCard{min-height:76px}}
.financeExtractionHint{color:#2563eb;font-size:.84rem;font-weight:850;min-height:1.2em}
.financeReceiptParts{display:grid;gap:7px}.financeReceiptPart{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px 10px;border:1px solid #dbe4f0;border-radius:11px;background:#fff}.financeReceiptPartIndex{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-weight:900}.financeReceiptPartMeta{min-width:0}.financeReceiptPartMeta strong,.financeReceiptPartMeta small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.financeReceiptPartActions{display:flex;gap:5px}.financeReceiptPartActions button{width:34px;height:34px;padding:0;border:1px solid #cbd5e1;border-radius:9px;background:#f8fafc;font-weight:900}.financeReceiptPartActions button:disabled{opacity:.35}.financeReceiptPartActions .danger{color:#b91c1c}.financeReceiptAnalyze{justify-self:start}.financeReceiptParts:empty{display:none}@media(max-width:520px){.financeReceiptPart{grid-template-columns:auto minmax(0,1fr)}.financeReceiptPartActions{grid-column:1/-1;justify-content:flex-end}}
.financeInvoiceRow.booked{border-color:#93c5fd;background:#f8fbff}.financeInvoiceReviewOverlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:18px;background:rgba(15,23,42,.68);backdrop-filter:blur(3px)}.financeInvoiceReviewCard{position:relative;width:min(680px,96vw);max-height:92vh;overflow:auto;padding:22px;border-radius:20px;background:#fff;box-shadow:0 26px 90px rgba(15,23,42,.35);display:grid;gap:16px}.financeInvoiceReviewClose{position:absolute;right:14px;top:14px;width:36px;height:36px;border:1px solid #dbe4f0;border-radius:50%;background:#fff;font-size:1.35rem;cursor:pointer}.financeInvoiceReviewHead{display:grid;gap:5px;padding-right:40px}.financeInvoiceReviewHead h3,.financeInvoiceReviewHead p{margin:0}.financeInvoiceReviewHead p{color:#64748b;font-weight:750}.financeInvoiceReviewStatus{width:max-content;padding:4px 10px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:.76rem;font-weight:900}.financeInvoiceReviewStatus.objected{background:#fee2e2;color:#b91c1c}.financeInvoiceReviewStatus.accepted,.financeInvoiceReviewStatus.accepted_auto{background:#dcfce7;color:#166534}.financeInvoicePdfPreview{display:grid;gap:3px;padding:15px;border:1px solid #93c5fd;border-radius:14px;background:#eff6ff;text-align:left;cursor:pointer}.financeInvoicePdfPreview strong{color:#1d4ed8}.financeInvoicePdfPreview span{color:#475569}.financeInvoiceReviewSplits{display:grid;gap:8px}.financeInvoiceReviewSplits h4{margin:0}.financeInvoiceReviewSplits>div{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:9px;padding:9px 10px;border:1px solid #e2e8f0;border-radius:11px}.financeInvoiceReviewSplits i{width:12px;height:12px;border-radius:3px}.financeInvoiceReviewActions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.financeInvoiceReviewActions button{display:flex;align-items:center;justify-content:center;gap:8px;padding:13px;border-radius:13px;font-weight:900;cursor:pointer}.financeInvoiceReviewActions button span{font-size:1.2rem}.financeInvoiceReviewAccept{border:1px solid #86efac;background:#f0fdf4;color:#166534}.financeInvoiceReviewObject{border:1px solid #fca5a5;background:#fff7f7;color:#b91c1c}.financeInvoiceReviewActions>.note{grid-column:1/-1}@media(max-width:560px){.financeInvoiceReviewActions{grid-template-columns:1fr}}
.financeInvoicePackages{margin:0 0 18px}.financeInvoicePackageCard{width:min(820px,96vw)}.financeInvoicePackageCard>label.wideField{display:grid;gap:7px}.financeInvoicePackageCard>label.wideField>input{width:100%;min-width:0}.financeInvoicePackageParts{display:grid;gap:8px}.financeInvoicePackageParts .financeReceiptPart{grid-template-columns:auto minmax(0,1fr) auto auto}.financePackageStatement{display:flex;align-items:center;gap:5px;font-size:.8rem;font-weight:850;color:#475569}.financeReceiptPart--package{border-color:#86efac;background:#f0fdf4}@media(max-width:620px){.financeInvoicePackageParts .financeReceiptPart{grid-template-columns:auto minmax(0,1fr)}.financePackageStatement,.financeInvoicePackageParts .financeReceiptPartActions{grid-column:1/-1;justify-self:end}}
.financeInvoiceCompactGrid>label{align-content:start}.financeInvoiceAssignmentGrid{display:grid;grid-template-columns:minmax(0,1fr)}.financeBudgetPicker{display:grid;gap:6px;font-weight:850}.financeBudgetPickerLabel{display:grid;gap:6px;width:max-content;max-width:100%}.financeBudgetPicker input[type="search"]{border-width:1px;background:#fff}.financeBudgetPicker select{min-height:42px}.financeInvoiceBudgetQuick{display:grid;gap:8px;padding:11px;border:1px solid #f4cf5d;border-radius:13px;background:linear-gradient(145deg,#fffbeb,#fffdf5);box-shadow:inset 0 1px 0 #fff}.financeInvoiceBudgetQuick>strong{font-size:.76rem;color:#92400e;letter-spacing:.02em}.financeInvoiceBudgetQuick>span{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px}.financeInvoiceBudgetChip{position:relative;min-width:0;overflow:hidden;display:grid;gap:3px;padding:11px 12px 10px 15px;border:1px solid #f4cf5d;border-radius:13px;background:#fff;color:#78350f;text-align:left;cursor:pointer;box-shadow:0 3px 10px rgba(146,64,14,.06);transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}.financeInvoiceBudgetChip::before{content:'';position:absolute;inset:0 auto 0 0;width:4px;background:#f59e0b}.financeInvoiceBudgetChip span{font-weight:950;font-size:.84rem}.financeInvoiceBudgetChip small{font-size:.67rem!important;color:#a16207!important;overflow-wrap:anywhere}.financeInvoiceBudgetChip .financeInvoiceBudgetAccount{font-size:.73rem!important;font-weight:850;color:#78350f!important}.financeInvoiceBudgetChip .financeInvoiceBudgetNumber{width:max-content;padding:2px 7px;border-radius:999px;background:#fef3c7;color:#92400e!important;font-weight:900}.financeInvoiceBudgetChip .financeInvoiceBudgetMeta{margin-top:2px;padding-top:4px;border-top:1px solid #fef3c7}.financeInvoiceBudgetChip:hover:not(.selected){transform:translateY(-1px);border-color:#d97706;background:#fffbeb;box-shadow:0 5px 13px rgba(146,64,14,.11)}.financeInvoiceBudgetChip:focus-visible{outline:3px solid rgba(37,99,235,.24);outline-offset:2px}.financeInvoiceBudgetChip.selected{transform:translateY(-1px);border-color:#2563eb;background:#eff6ff;color:#1d4ed8;box-shadow:0 6px 16px rgba(37,99,235,.13)}.financeInvoiceBudgetChip.selected::before{background:#2563eb}.financeInvoiceBudgetChip.selected small,.financeInvoiceBudgetChip.selected .financeInvoiceBudgetAccount,.financeInvoiceBudgetChip.selected .financeInvoiceBudgetNumber{color:#1d4ed8!important}.financeInvoiceBudgetChip.selected .financeInvoiceBudgetNumber{background:#dbeafe}.financeInvoiceBudgetChip.selected .financeInvoiceBudgetMeta{border-top-color:#bfdbfe}@media(max-width:620px){.financeInvoiceBudgetQuick>span{grid-template-columns:1fr}.financeInvoiceBudgetChip{width:100%}}
/* Rückerstattungen */
.financeReimbursementPool{display:grid;gap:14px;margin-top:14px}.financeProcessStage{--process-accent:#2563eb;--process-soft:#eff6ff;overflow:hidden;border:1px solid #dbe4f0;border-radius:18px;background:#fff;box-shadow:0 7px 20px rgba(15,23,42,.045)}.financeProcessStage.expenses{--process-accent:#d97706;--process-soft:#fffbeb}.financeProcessStage.pool{--process-accent:#0f8a6a;--process-soft:#ecfdf5;border-color:#a7f3d0}.financeProcessStage.history{--process-accent:#7c3aed;--process-soft:#f5f3ff}.financeProcessStage.invoice{--process-accent:#2563eb;--process-soft:#eff6ff}.financeProcessHead{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 16px;border-bottom:1px solid color-mix(in srgb,var(--process-accent) 15%,#e2e8f0);background:linear-gradient(110deg,var(--process-soft),#fff 72%)}.financeProcessHead h4,.financeProcessHead p{margin:0}.financeProcessHead h4{font-size:1rem}.financeProcessHead p{margin-top:2px;color:#64748b;font-size:.78rem;font-weight:700}.financeProcessIcon{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:var(--process-accent);color:#fff!important;font-size:.88rem!important;font-weight:950}.financeProcessCount{min-width:29px;height:29px;display:grid;place-items:center;padding:0 7px;border:1px solid color-mix(in srgb,var(--process-accent) 25%,#dbe4f0);border-radius:999px;background:#fff;color:var(--process-accent)}.financeProcessTotal{padding:8px 12px;border-radius:12px;background:var(--process-accent);color:#fff;font-size:1rem;white-space:nowrap}.financeProcessItems{display:grid;gap:0}.financeProcessItem{display:grid;grid-template-columns:8px minmax(0,1fr) auto auto;border:0;border-bottom:1px solid #e8edf3;border-radius:0;padding:12px 16px}.financeProcessItem:last-child{border-bottom:0}.financeProcessItem:hover{background:#fbfdff}.financeProcessDot{width:8px;height:8px;border-radius:50%;background:var(--process-accent)}.financeProcessCopy{min-width:0}.financeProcessCopy>strong,.financeProcessCopy>span,.financeProcessCopy>small{display:block}.financeProcessCopy>span,.financeProcessCopy>small{color:#64748b;font-size:.78rem}.financeProcessStatus{max-width:260px;padding:5px 9px;border-radius:999px;background:var(--process-soft);color:var(--process-accent)!important;font-size:.72rem!important;font-weight:900;text-align:center}.financeProcessAmount{font-size:.92rem;white-space:nowrap}.financeInvoiceList:has(.financeProcessStage){margin-top:14px}.financeReimbursementGroups{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:9px;padding:12px 14px}.financeReimbursementGroup{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;padding:12px;border:1px solid #cfe9df;border-radius:13px;background:#fff;cursor:pointer}.financeReimbursementGroup:has(input:checked){border-color:#0f8a6a;background:#f0fdf8;box-shadow:0 0 0 2px rgba(15,138,106,.1)}.financeReimbursementGroup input{width:20px;height:20px;accent-color:#0f8a6a}.financeReimbursementGroup span{display:grid;gap:3px}.financeReimbursementGroup small{color:#64748b}.financeReimbursementGroup>strong{color:#065f46;white-space:nowrap}.financePoolFooter{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px 14px}.financePoolFooter small{color:#64748b;font-weight:750}.reimbursementSignatureCard label{display:grid;gap:6px;font-weight:850;margin-top:12px}.reimbursementSignatureCard textarea,.reimbursementSignatureCard input{padding:10px;border:1px solid #cbd5e1;border-radius:10px;font:inherit}.reimbursementSignatureCard canvas{width:100%;height:180px;border:2px dashed #94a3b8;border-radius:12px;background:#fff;touch-action:none}@media(max-width:760px){.financeProcessItem{grid-template-columns:8px minmax(0,1fr) auto}.financeProcessItem>.actionRow{grid-column:2/-1;justify-content:flex-start}.financeProcessStatus{grid-column:2/-1;justify-self:start;max-width:100%}.financeReimbursementGroups{grid-template-columns:1fr}.financePoolFooter{align-items:stretch;flex-direction:column}.financePoolFooter .btn{width:100%}}@media(max-width:520px){.financeProcessHead{grid-template-columns:auto minmax(0,1fr)}.financeProcessHead>.financeProcessCount,.financeProcessHead>.financeProcessTotal{grid-column:2;justify-self:start}.financeProcessItem{grid-template-columns:8px minmax(0,1fr)}.financeProcessAmount{grid-column:2}.financeReimbursementGroup{grid-template-columns:auto minmax(0,1fr)}.financeReimbursementGroup>strong{grid-column:2}}
.financeInvoiceForm .financeProofToggle span,.financeInvoiceForm .financeConfirmation span{display:flex;align-items:flex-start;gap:9px}.financeInvoiceForm .financeProofToggle input,.financeInvoiceForm .financeConfirmation input{width:18px;height:18px;flex:0 0 auto;margin-top:2px}.financeInvoiceForm .financeConfirmation{padding:10px 12px;border:1px solid #dbe4f0;border-radius:11px;background:#fff}
.financeInvoiceForm .financeProofChoice{margin:0;padding:10px 12px;border:1px solid #dbe4f0;border-radius:11px;background:#fff}.financeInvoiceForm .financeProofChoice legend{padding:0 5px;font-weight:700}.financeInvoiceForm .financeProofChoice label{display:flex;align-items:flex-start;gap:9px;margin:5px 0;font-weight:600}.financeInvoiceForm .financeProofChoice input{width:18px;height:18px;flex:0 0 auto;margin-top:1px}
.cockpitTimetable{min-width:0}.cockpitTimetableScroll{overflow:auto;border:1px solid #dbe4f0;border-radius:15px;background:#f8fafc}.cockpitTimetableTable{width:100%;min-width:760px;border-collapse:separate;border-spacing:0;table-layout:fixed}.cockpitTimetableTable th,.cockpitTimetableTable td{border-right:1px solid #dbe4f0;border-bottom:1px solid #dbe4f0;padding:6px;vertical-align:top}.cockpitTimetableTable thead th{position:sticky;top:0;z-index:1;background:#eef2ff;color:#334155;font-size:.78rem}.cockpitTimetableTable tbody th{width:64px;background:#fff;color:#64748b}.cockpitTimetableTable tbody th strong,.cockpitTimetableTable tbody th small{display:block}.cockpitTimetableTable tbody th small{font-size:.65rem}.cockpitTimetableLessonTrack{display:grid;grid-template-rows:repeat(var(--lesson-span),minmax(40px,1fr));gap:5px;height:100%}.cockpitTimetableLessonGroup{display:flex;flex-direction:column;min-height:0}.cockpitTimetableLesson{flex:1;min-height:40px;padding:7px 8px;border-left:4px solid var(--lesson-color);border-radius:9px;background:#fff;box-shadow:0 2px 7px rgba(15,23,42,.05)}.cockpitTimetableLesson+ .cockpitTimetableLesson{margin-top:5px}.cockpitTimetableLesson strong,.cockpitTimetableLesson small{display:block}.cockpitTimetableLesson strong{font-size:.78rem}.cockpitTimetableLesson small{margin-top:2px;color:#64748b;font-size:.65rem}.timetableStatus.current{background:#dcfce7;color:#166534}.timetableStatus.outdated{background:#ffedd5;color:#9a3412}.timetableStatus.not_imported{background:#e2e8f0;color:#475569}.timetableStatus.readonly{background:#dbeafe;color:#1d4ed8}@media(max-width:620px){.cockpitTimetable{padding:14px}.cockpitTimetableTable{min-width:650px}}
.cockpit{display:grid;gap:16px}.cockpitHero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px;background:linear-gradient(135deg,#0f172a,#1e3a5f);color:#fff}.cockpitHero h2{margin:3px 0;font-size:clamp(1.55rem,3vw,2.25rem)}.cockpitHero p{margin:0;color:#cbd5e1;font-weight:700}.cockpitHero .eyebrow{color:#93c5fd}.cockpitSummary{min-width:150px;display:grid;justify-items:end}.cockpitSummary strong{font-size:2.25rem;line-height:1}.cockpitSummary span{font-weight:850}.cockpitSummary em{margin-top:7px;padding:4px 9px;border-radius:999px;background:rgba(255,255,255,.13);color:#fecaca;font-size:.76rem;font-style:normal;font-weight:900}.cockpitMain{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,.75fr);gap:16px}.cockpitActions,.cockpitToday,.cockpitModules,.cockpitMessages{min-width:0}.cockpitActionList{display:grid;gap:9px}.cockpitAction{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid #dbe4f0;border-left:4px solid #60a5fa;border-radius:14px;background:#fff}.cockpitAction.high{border-left-color:#f59e0b;background:#fffbeb}.cockpitAction.urgent{border-left-color:#ef4444;background:#fff7f7}.cockpitActionIcon{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:#eff6ff;color:#1d4ed8;font-weight:950}.cockpitAction strong{display:block}.cockpitAction p{margin:3px 0 0;color:#64748b;font-size:.85rem}.cockpitMeta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:3px}.cockpitMeta span{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-weight:900}.cockpitEmpty{padding:28px;border:1px dashed #cbd5e1;border-radius:15px;text-align:center;background:#f8fafc}.cockpitEmpty p{margin:5px 0 0;color:#64748b}.cockpitTodayItem,.cockpitMessage{width:100%;display:grid;grid-template-columns:62px minmax(0,1fr);gap:10px;padding:10px 0;border:0;border-bottom:1px solid #e2e8f0;background:transparent;text-align:left;cursor:pointer}.cockpitTodayItem time{color:#2563eb;font-weight:950}.cockpitTodayItem span,.cockpitMessage span{display:grid;gap:2px}.cockpitTodayItem small,.cockpitMessage small,.cockpitLesson small{color:#64748b}.cockpitLessonTitle{margin:14px 0 5px;color:#64748b;font-size:.72rem;font-weight:950;text-transform:uppercase}.cockpitLesson{display:grid;grid-template-columns:5px 48px minmax(0,1fr);gap:9px;align-items:center;padding:8px 0}.cockpitLesson i{height:34px;border-radius:99px}.cockpitLesson span{display:grid}.cockpitModules .moduleGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.cockpitModule{min-width:0;display:grid;grid-template-columns:38px minmax(0,1fr);gap:2px 10px;align-items:center;padding:13px;border:1px solid #dbe4f0;border-radius:14px;background:#f8fafc;text-align:left;cursor:pointer}.cockpitModule:hover{border-color:#60a5fa;background:#eff6ff}.cockpitModule>span{grid-row:1/3;font-size:1.35rem}.cockpitModule strong{font-size:.9rem}.cockpitModule small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#64748b}.cockpitMessages #cockpitNotificationList{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.cockpitMessage{grid-template-columns:9px minmax(0,1fr);padding:11px;border:1px solid #dbe4f0;border-radius:13px;background:#fff}.cockpitMessageDot{width:8px;height:8px!important;margin-top:5px;border-radius:50%;background:#2563eb}.roadmapPanel{grid-column:1/-1}@media(max-width:900px){.cockpitMain{grid-template-columns:1fr}.cockpitHero{align-items:flex-start}.cockpitSummary{justify-items:start}}@media(max-width:620px){.cockpit{gap:10px}.cockpitHero{padding:18px;display:grid}.cockpitSummary{grid-template-columns:auto 1fr;column-gap:8px;align-items:end}.cockpitSummary em{grid-column:1/-1}.cockpitAction{grid-template-columns:34px minmax(0,1fr)}.cockpitAction>.miniBtn{grid-column:2;width:max-content}.cockpitModules .moduleGrid,.cockpitMessages #cockpitNotificationList{grid-template-columns:1fr}}
.financeContributionSettings{display:grid;grid-template-columns:minmax(160px,220px) minmax(0,1fr);gap:14px;padding:14px;border:1px solid #dbe4f0;border-radius:16px;background:#f8fafc;overflow:hidden}.financeContributionSettings label,.financeContributionEntryForm label{display:grid;gap:5px;min-width:0;font-size:.78rem;font-weight:900;color:#64748b}.financeContributionSettings input,.financeContributionSettings select,.financeContributionEntryForm input,.financeContributionEntryForm select,.financeContributionCard input,.financeContributionCard select{width:100%;min-width:0;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:9px;padding:8px;background:#fff;font:inherit}.financeContributionRules{display:grid;gap:8px;min-width:0}.financeContributionRule{display:grid;grid-template-columns:minmax(120px,1fr) minmax(80px,.55fr) minmax(100px,.65fr) minmax(100px,.65fr) auto;gap:8px;align-items:end;min-width:0}.financeContributionExports{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.financeContributionEntryForm{display:grid;grid-template-columns:repeat(6,minmax(105px,1fr)) auto;gap:10px;align-items:end;padding:14px;margin:14px 0;border:1px solid #bfdbfe;border-radius:16px;background:#eff6ff;overflow:hidden}.financeContributionEntryForm>strong{grid-column:1/-1}.financeContributionGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:14px;margin-top:14px;min-width:0}.financeContributionCard{min-width:0;overflow:hidden;border:1px solid #dbe4f0;border-radius:18px;padding:15px;background:#fff;display:grid;gap:12px}.financeContributionCardHead{display:flex;justify-content:space-between;align-items:center;gap:10px;min-width:0}.financeContributionCardHead>div{min-width:0;overflow-wrap:anywhere}.financeContributionCardHead span{color:#64748b;font-weight:800}.financeContributionStudentCount{max-width:95px}.financeContributionRows{display:grid;gap:8px;min-width:0}.financeContributionRow{min-width:0;overflow:hidden;border:1px solid #dbe4f0;border-radius:12px;padding:10px;display:grid;gap:7px}.financeContributionRow.available{background:#f0fdf4;border-color:#86efac}.financeContributionRow.used,.financeContributionRow.unavailable{background:#f1f5f9;border-color:#94a3b8}.financeContributionRowTop{display:flex;justify-content:space-between;gap:10px;min-width:0}.financeContributionRowTop>*{min-width:0;overflow-wrap:anywhere}.financeContributionRowTop span{font-weight:950;text-align:right}.financeContributionClaimEdit{display:grid;grid-template-columns:minmax(110px,.75fr) minmax(0,1fr);gap:8px}.financeContributionEntries{display:grid;gap:5px;min-width:0}.financeContributionEntry{display:flex;justify-content:space-between;gap:8px;min-width:0;font-size:.82rem;padding-top:5px;border-top:1px dashed #cbd5e1}.financeContributionEntry span{min-width:0;overflow-wrap:anywhere}.financeContributionEntry button{border:0;background:none;color:#b91c1c;cursor:pointer}.financeContributionEmpty{padding:22px;text-align:center;color:#64748b}@media(max-width:1100px){.financeContributionRule{grid-template-columns:1fr 1fr}.financeContributionRule .miniBtn{align-self:end}.financeContributionEntryForm{grid-template-columns:repeat(3,minmax(0,1fr))}.financeContributionEntryForm>button{grid-column:1/-1}}@media(max-width:700px){.financeContributionSettings{grid-template-columns:1fr}.financeContributionRule,.financeContributionEntryForm{grid-template-columns:1fr 1fr}.financeContributionEntryForm>strong,.financeContributionEntryForm>button{grid-column:1/-1}.financeContributionClaimEdit{grid-template-columns:1fr}}@media(max-width:520px){.financeContributionGrid,.financeContributionRule,.financeContributionEntryForm{grid-template-columns:1fr}}
.financeBudgetSearch{display:grid;gap:6px;max-width:620px;margin-top:14px;color:#475569;font-size:.82rem;font-weight:900}.financeBudgetSearch input{width:100%;min-height:44px;border:1px solid #cbd5e1;border-radius:12px;padding:10px 13px;background:#fff;color:#0f172a;font:inherit;font-weight:700}.financeBudgetSearch input:focus{outline:3px solid rgba(37,99,235,.14);border-color:#2563eb}
.assignmentImportCard{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 14px;align-items:end;padding:15px;border:1px solid #bfdbfe;border-radius:16px;background:#eff6ff}.assignmentImportCard p{margin:4px 0 0}.assignmentImportIntro,.assignmentImportIdea,.assignmentImportFiles{grid-column:1/-1}.assignmentImportIdea,.assignmentImportFiles{display:grid;gap:6px;font-weight:800}.assignmentImportIdea textarea{width:100%;resize:vertical;background:#fff}.assignmentImportFiles input[type=file]{width:100%;min-width:0;background:#fff}.assignmentImportCard #runAssignmentImportBtn{grid-column:2;justify-self:end}.assignmentImportCard #assignmentImportFeedback,.assignmentImportProgress{grid-column:1/-1}.assignmentImportCard #assignmentImportFeedback.warning{padding:12px;border:1px solid #fdba74;border-radius:12px;background:#fff7ed;color:#9a3412}.assignmentImportCard #assignmentImportFeedback.warning p{font-weight:750}.assignmentImportProgress{display:flex;align-items:center;gap:12px;padding:12px;border-radius:12px;background:#dbeafe;color:#1e3a8a}.assignmentImportProgress.hidden{display:none}.assignmentImportProgress>div{display:grid;gap:2px}.assignmentImportProgress span{font-size:.82rem}.assignmentImportSpinner{width:24px;height:24px;flex:0 0 auto;border:3px solid #93c5fd;border-top-color:#1d4ed8;border-radius:50%;animation:assignmentSpin .8s linear infinite}@keyframes assignmentSpin{to{transform:rotate(360deg)}}.assignmentImportReviewBlock{border-color:#fbbf24;background:linear-gradient(135deg,#fffbeb,#fff)}.assignmentImportOrigin{display:inline-flex;align-items:center;margin-left:8px;padding:3px 7px;border-radius:999px;font-size:.72rem;font-weight:850;white-space:nowrap}.assignmentImportOrigin.generated{background:#fef3c7;color:#92400e}.assignmentImportOrigin.adapted{background:#e0f2fe;color:#075985}.assignmentImportReviewNote{margin:0 0 12px;padding:9px 11px;border-radius:10px;background:#fffbeb;color:#78350f;font-size:.88rem;line-height:1.4}.assignmentGapText{font-size:1rem;line-height:2.25;color:#1e293b}.assignmentGapInput{display:inline-block;min-width:7em;margin:0 .2em;border:0;border-bottom:2px solid #475569;border-radius:0;padding:2px 5px;background:#f8fafc;text-align:center;font:inherit}.assignmentGapInput:focus{outline:2px solid #93c5fd;border-radius:6px}.assignmentGapInput[readonly]{background:transparent}.assignmentDescriptionPanel p{margin:0;color:#334155;line-height:1.55}@media(max-width:650px){.assignmentImportCard{grid-template-columns:1fr}.assignmentImportCard #runAssignmentImportBtn{grid-column:1;justify-self:stretch}}
.assignmentImportMode{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border:0;padding:0;margin:0}.assignmentImportMode legend{grid-column:1/-1;padding:0 0 3px;font-weight:850;color:#334155}.assignmentImportMode label{display:flex;align-items:flex-start;gap:9px;border:1px solid #bfdbfe;border-radius:13px;background:#fff;padding:11px;cursor:pointer}.assignmentImportMode label:has(input:checked){border-color:#2563eb;background:#eff6ff;box-shadow:0 0 0 2px rgba(37,99,235,.08)}.assignmentImportMode input{width:auto;margin-top:3px}.assignmentImportMode span{display:grid;gap:2px}.assignmentImportMode small{color:#64748b;font-weight:650;line-height:1.35}.assignmentMaterialLinks{display:grid;gap:9px}#assignmentMaterialLinksList{display:grid;gap:8px}.assignmentMaterialLinkRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.assignmentMaterialLinkRow input{min-width:0}.assignmentMaterialEmpty{padding:10px;border:1px dashed #cbd5e1;border-radius:12px;color:#64748b;background:#f8fafc}.assignmentMaterialList{display:flex;flex-wrap:wrap;gap:7px;margin-top:7px}.assignmentMaterialList a{display:inline-flex;border:1px solid #bfdbfe;border-radius:999px;background:#eff6ff;padding:5px 9px;color:#1d4ed8;font-size:.8rem;font-weight:800;text-decoration:none}@media(max-width:700px){.assignmentImportMode{grid-template-columns:1fr}}
@media print{body>*{visibility:hidden!important}#assignmentPageModal,#assignmentPageModal *{visibility:visible!important}#assignmentPageModal{position:absolute!important;inset:0!important;display:block!important;background:#fff!important}#assignmentPageModal>.modalCard{width:100%!important;max-width:none!important;max-height:none!important;overflow:visible!important;box-shadow:none!important;padding:0!important}#assignmentPageModal>.modalCard>.sectionHeader{display:none!important}.assignmentPageSurface{padding:0!important;background:#fff!important}.assignmentPage{border:0!important;box-shadow:none!important}.assignmentPageHeader{print-color-adjust:exact;-webkit-print-color-adjust:exact}.assignmentGapInput{border-bottom:1.5px solid #000!important}.assignmentContentBlock{break-inside:avoid}}
@media print{@page{size:A4 portrait;margin:10mm}body:has(.campBudgetApprovalView) *{visibility:hidden!important}body:has(.campBudgetApprovalView) .campBudgetApprovalView,body:has(.campBudgetApprovalView) .campBudgetApprovalView *{visibility:visible!important}.campBudgetApprovalBackdrop{position:absolute!important;inset:0!important;overflow:visible!important;padding:0!important;background:#fff!important;backdrop-filter:none!important}.campBudgetApprovalView{width:100%!important;margin:0!important;padding:0!important;border-radius:0!important;background:#fff!important;box-shadow:none!important;font-size:9pt!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}.campBudgetApprovalHero{padding:15px!important;border-radius:13px!important}.campBudgetApprovalHeroActions{display:none!important}.campBudgetApprovalHero h2{font-size:20pt!important}.campBudgetApprovalMeta,.campBudgetApprovalStats{gap:5px!important;margin:6px 0!important}.campBudgetApprovalMeta>span,.campBudgetApprovalFacts>span,.campBudgetApprovalCashier>span,.campBudgetApprovalStats article{padding:7px 8px!important}.campBudgetApprovalFacts small{font-size:5.5pt!important;white-space:nowrap!important}.campBudgetApprovalStats strong{font-size:9.5pt!important}.campBudgetApprovalSection{margin-top:6px!important;padding:10px!important;border-radius:10px!important}.campBudgetApprovalSectionHead{margin-bottom:7px!important}.campBudgetApprovalSectionHead p{display:none!important}.campBudgetApprovalPosition{padding:6px 8px!important}.campBudgetApprovalSignatures img{height:58px!important}.campBudgetApprovalColumns{gap:6px!important}.campBudgetApprovalFooter{padding-top:7px!important}.campBudgetApprovalSection,.campBudgetApprovalPosition,.campBudgetApprovalLeaderList>article,.campBudgetApprovalSignatures figure{break-inside:avoid!important}.campBudgetApprovalSection[data-camp-pdf-page-start]{break-before:page!important;page-break-before:always!important}}
.tenantLogoGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.tenantLogoCard{padding:16px;border:1px solid #e2e8f0;border-radius:16px;background:#fff}.tenantLogoCard h4{margin:0 0 10px}.tenantLogoDropzone{display:flex;flex-direction:column;align-items:center;gap:5px;padding:12px;border:2px dashed #cbd5e1;border-radius:14px;background:#f8fafc;color:#64748b;text-align:center;cursor:pointer;transition:.18s ease}.tenantLogoDropzone:hover,.tenantLogoDropzone:focus-visible,.tenantLogoDropzone.isDragging{border-color:#3b82f6;background:#eff6ff;color:#1d4ed8;outline:none}.tenantLogoDropzone>span{font-size:.78rem}.schoolLogoPreview{width:100%;height:110px;background:#fff;display:flex;align-items:center;justify-content:center;padding:10px;color:#94a3b8;font-size:.85rem;border-radius:10px}.schoolLogoPreview img{display:block;max-width:100%;max-height:100%;object-fit:contain}.tenantLogoCard>.miniBtn{margin-top:10px}@media(max-width:700px){.tenantLogoGrid{grid-template-columns:1fr}}
.teachingTabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.teachingPlanLayout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:18px}.teachingSubjectRail{display:grid;gap:8px;align-content:start;padding:14px;border-radius:18px;background:#f8fafc;border:1px solid #e2e8f0}.teachingSubjectButton{display:grid;gap:2px;padding:11px;border:1px solid #dbe4f0;border-radius:13px;background:#fff;text-align:left;cursor:pointer}.teachingSubjectButton span{color:#2563eb;font-size:.72rem;font-weight:950;text-transform:uppercase}.teachingSubjectButton small{color:#64748b}.teachingSubjectButton.active{border-color:#2563eb;background:#eff6ff}.teachingPlanCanvas{min-width:0}.teachingPlanCanvas h3{margin:0}.teachingPeriods{display:grid;gap:16px;margin-top:16px}.teachingPeriod{border:1px solid #dbe4f0;border-radius:18px;background:#f8fafc;padding:14px}.teachingPeriodHead{display:flex;justify-content:space-between;gap:12px;align-items:start}.teachingPeriodHead h4,.teachingPeriodHead p{margin:0 0 4px}.teachingPeriodStats{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px;color:#64748b;font-size:.78rem}.teachingBlockList{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:12px}.teachingBlockCard{display:grid;gap:8px;padding:13px;border:1px solid #dbe4f0;border-radius:15px;background:#fff;cursor:grab}.teachingBlockCard.dragging{opacity:.45}.teachingBlockCard h5,.teachingBlockCard p{margin:0}.teachingBlockCard p{color:#64748b;font-size:.85rem}.teachingBlockEmpty{padding:18px;border:1px dashed #cbd5e1;border-radius:13px;color:#64748b}.teachingCoverage{margin-top:16px;padding:14px;border:1px solid #bfdbfe;border-radius:18px;background:linear-gradient(135deg,#eff6ff,#fff)}.teachingCoverage h4{margin:2px 0}.teachingCoverageTable{overflow:auto;border:1px solid #dbeafe;border-radius:13px;background:#fff}.teachingCoverageRow{display:grid;grid-template-columns:minmax(210px,1.6fr) repeat(var(--coverage-columns,4),minmax(90px,.65fr));align-items:stretch;border-top:1px solid #e5e7eb}.teachingCoverageRow:first-child{border-top:0}.teachingCoverageRow>*{padding:9px 10px;border-left:1px solid #e5e7eb}.teachingCoverageRow>*:first-child{border-left:0}.teachingCoverageHead{background:#f8fafc;color:#475569;font-size:.76rem}.coverageCell{text-align:center;font-weight:850}.coverageCell.covered{background:#ecfdf5;color:#047857}.coverageCell.gap{background:#fff7ed;color:#c2410c}.subjectPeriodList,.topicItemList{display:grid;gap:8px;margin-top:10px}.subjectPeriodRow{display:grid;grid-template-columns:minmax(150px,.65fr) minmax(200px,1.1fr) minmax(130px,.45fr) auto;gap:8px;align-items:end}.subjectPeriodCapacity{font-size:.72rem;color:#64748b}.subjectPeriodCapacity input{display:block;margin-top:4px}.subjectPeriodRow input,.topicItemRow input,.topicItemRow select,.topicItemRow textarea{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:9px;font:inherit}#topicBlockModal .modalCard{width:min(1500px,96vw);max-width:none;height:94vh;max-height:94vh}#topicBlockModal .teachingEditorForm{display:grid;gap:18px}.teachingBlockCompetencies,.topicBulkEntry{padding:14px;border:1px solid #dbe4f0;border-radius:16px;background:#f8fafc}.topicBulkEntry textarea{width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:12px;font:inherit;resize:vertical}.topicItemRow{display:grid;grid-template-columns:28px minmax(180px,.75fr) minmax(180px,.7fr) minmax(260px,1.2fr) auto;gap:8px;align-items:start;padding:9px;border:1px solid #e2e8f0;border-radius:13px;background:#fff}.topicItemHandle{padding-top:9px;color:#94a3b8;text-align:center}.topicItemActions{display:grid;grid-template-columns:repeat(2,34px);gap:5px}.topicItemActions .miniBtn{padding:6px}.teachingProgressBoard{display:grid;gap:10px}.teachingGroupProgress{display:flex;justify-content:space-between;gap:16px;padding:16px;border:1px solid #dbe4f0;border-radius:16px;background:#fff}.teachingGroupProgress h3,.teachingGroupProgress p{margin:6px 0 0}.teachingGroupProgress p{color:#64748b}@media(max-width:800px){.teachingPlanLayout{grid-template-columns:1fr}.teachingSubjectRail{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.topicItemRow,.subjectPeriodRow{grid-template-columns:1fr}.topicItemHandle{display:none}.topicItemActions{display:flex}.teachingGroupProgress{display:grid}.teachingCoverageRow{grid-template-columns:minmax(170px,1.3fr) repeat(var(--coverage-columns,4),minmax(78px,.6fr))}}
.campBudgetClassField{display:flex;flex-direction:column;gap:.45rem}.campBudgetClassField>div{display:flex;gap:.35rem;flex-wrap:wrap;min-height:2.5rem;align-items:center}.campBudgetDerivedField{display:grid;gap:.42rem;align-content:start}.campBudgetDerivedField>span{font-size:.86rem;font-weight:700;color:#334155}.campBudgetDerivedField>strong{min-height:2.75rem;padding:.72rem .8rem;border-radius:10px;background:#edf4f2;color:#31544f}.campBudgetClassModal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;max-width:none;padding:20px;background:rgba(15,23,42,.55)}.campBudgetClassModal.hidden{display:none!important}.campBudgetClassModal .schoolTripPickerCard{width:min(720px,100%);max-height:80vh;overflow:auto;padding:20px;border-radius:20px;background:#fff;box-shadow:0 24px 70px rgba(15,23,42,.28)}.campBudgetClassModal .schoolTripPickerHead{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.campBudgetClassModal .schoolTripChoiceGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin:16px 0}.campBudgetClassModal .schoolTripChoiceChip.selected{border-color:#1d766b;background:#e7f4f1}.campBudgetParticipants{margin-top:1rem;padding:1rem;border:1px solid #dbe5e4;border-radius:14px;background:#f7faf9}.campBudgetParticipants>div:first-child{display:grid;gap:.35rem}.campBudgetParticipants p{margin:0;color:#64748b}.campBudgetException{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(300px,2fr) auto;gap:.75rem;align-items:center;margin-top:.75rem;padding:.8rem;border:1px solid #dbe5e4;border-radius:12px;background:#fff}.campBudgetException>div{display:grid;gap:.35rem}.campBudgetExceptionDates{display:flex!important;flex-wrap:wrap;gap:.4rem}.campBudgetExceptionDates label{display:flex;gap:.25rem;align-items:center;padding:.3rem .45rem;border-radius:8px;background:#f1f5f4}.campBudgetHint{display:flex;gap:.8rem;align-items:flex-start;margin-bottom:.8rem;padding:.75rem 1rem;border-radius:12px;background:#edf7f5;color:#164e45}.campBudgetHint span{color:#3f655f}.campBudgetPositionRow.income.custom{grid-template-columns:minmax(220px,2fr) minmax(150px,1fr) minmax(210px,1.2fr) auto}.campBudgetPositionRow.income.smart{grid-template-columns:minmax(180px,1.4fr) minmax(120px,.8fr) minmax(140px,.9fr) minmax(140px,.9fr)}.campBudgetPositionRow.income.municipalBase{grid-template-columns:minmax(180px,1.2fr) minmax(260px,2fr) 150px}[data-camp-class-contributions]{display:flex;gap:8px;flex-wrap:wrap}[data-camp-class-contributions] label{min-width:120px}.campBudgetPositionRow.expense{grid-template-columns:minmax(190px,1.5fr) 105px 135px 130px 130px 120px minmax(180px,1.2fr) auto}@media(max-width:900px){.campBudgetException,.campBudgetPositionRow.income.custom,.campBudgetPositionRow.income.smart,.campBudgetPositionRow.income.municipalBase,.campBudgetPositionRow.expense{grid-template-columns:1fr}}
.campBudgetForm input[readonly]{border-color:transparent;background:#edf4f2;color:#31544f;cursor:default;font-weight:800;box-shadow:none}.campBudgetClassModal .schoolTripChoiceChip{grid-template-columns:minmax(0,1fr);min-width:0;align-items:start}.campBudgetClassModal .schoolTripChoiceChip span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.35}.campBudgetClassModal .schoolTripChoiceChip strong,.campBudgetClassModal .schoolTripChoiceChip small{display:block;white-space:normal;overflow:visible;text-overflow:clip}.campBudgetClassModal .schoolTripChoiceChip small{margin-top:3px}.campBudgetParticipants #campBudgetOpenParticipantPicker:disabled{border-color:#d7dfdd;background:#eef2f1;color:#8a9a97;cursor:not-allowed;box-shadow:none}
.campBudgetApprovalBackdrop{position:fixed;inset:0;z-index:120;overflow:auto;padding:24px;background:rgba(15,23,42,.68);backdrop-filter:blur(6px)}.campBudgetApprovalView{width:min(1180px,100%);margin:auto;padding:28px;border-radius:24px;background:#f5f8f7;color:#172033;box-shadow:0 30px 90px rgba(15,23,42,.35)}.campBudgetApprovalHero{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:24px;border-radius:20px;background:linear-gradient(135deg,#064e3b,#0f766e);color:#fff}.campBudgetApprovalHero h2{margin:8px 0 5px;font-size:clamp(1.65rem,3vw,2.4rem)}.campBudgetApprovalHero p{margin:0;color:#ccfbf1}.campBudgetApprovalState{display:inline-flex;padding:6px 10px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:rgba(255,255,255,.14);font-size:.72rem;font-weight:950;text-transform:uppercase;letter-spacing:.04em}.campBudgetApprovalHeroActions{display:flex;gap:8px;flex-wrap:wrap}.campBudgetApprovalHeroActions .btn{border-color:rgba(255,255,255,.45);background:#fff;color:#065f46}.campBudgetApprovalMeta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}.campBudgetApprovalMeta>span,.campBudgetApprovalFacts>span,.campBudgetApprovalCashier>span{display:grid;gap:3px;padding:12px 14px;border:1px solid #dbe5e4;border-radius:13px;background:#fff}.campBudgetApprovalMeta small,.campBudgetApprovalFacts small,.campBudgetApprovalCashier small{color:#64748b;font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.035em}.campBudgetApprovalFacts small{min-width:0;font-size:.52rem;line-height:1.1;letter-spacing:0;white-space:nowrap}.campBudgetApprovalStats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:12px}.campBudgetApprovalStats article{padding:14px;border:1px solid #dbe5e4;border-top:4px solid #64748b;border-radius:14px;background:#fff}.campBudgetApprovalStats article.income{border-top-color:#16a34a}.campBudgetApprovalStats article.expense{border-top-color:#dc2626}.campBudgetApprovalStats article.balance{border-top-color:#2563eb}.campBudgetApprovalStats article.negative{border-top-color:#f59e0b;background:#fffbeb}.campBudgetApprovalStats small,.campBudgetApprovalStats strong{display:block}.campBudgetApprovalStats small{min-height:2.2em;color:#64748b;font-size:.7rem;font-weight:900;text-transform:uppercase}.campBudgetApprovalStats strong{margin-top:5px;font-size:.92rem}.campBudgetApprovalColumns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.campBudgetApprovalSection{margin-top:12px;padding:18px;border:1px solid #dbe5e4;border-radius:18px;background:#fff;break-inside:avoid}.campBudgetApprovalSectionHead{display:flex;gap:10px;align-items:flex-start;margin-bottom:13px}.campBudgetApprovalSectionHead>span{display:grid;place-items:center;width:32px;height:32px;flex:0 0 auto;border-radius:10px;background:#dff4ef;color:#087364;font-size:.72rem;font-weight:950}.campBudgetApprovalSectionHead h3,.campBudgetApprovalSectionHead p{margin:0}.campBudgetApprovalSectionHead p{margin-top:2px;color:#64748b;font-size:.78rem}.campBudgetApprovalChips{display:flex;gap:6px;flex-wrap:wrap}.campBudgetApprovalChips>span,.campBudgetApprovalChip{display:inline-flex;padding:5px 9px;border-radius:999px;background:#e0f2fe;color:#075985;font-size:.7rem;font-weight:900}.campBudgetApprovalChips>span.positive{background:#dcfce7;color:#166534}.campBudgetApprovalChips>span.muted{background:#f1f5f9;color:#64748b}.campBudgetApprovalChip.income{background:#dcfce7;color:#166534}.campBudgetApprovalChip.expense{background:#fee2e2;color:#991b1b}.campBudgetApprovalFacts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.campBudgetApprovalContributionList{display:grid;gap:5px;margin-top:10px}.campBudgetApprovalContributionList>span{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:10px;background:#f0fdf4}.campBudgetApprovalContributionList em,.campBudgetApprovalException em,.campBudgetApprovalCashier em{color:#64748b;font-size:.78rem;font-style:normal}.campBudgetApprovalSubsection{margin-top:13px;padding-top:12px;border-top:1px dashed #cbd5e1}.campBudgetApprovalException{display:flex;justify-content:space-between;gap:12px;margin-top:7px;padding:8px 10px;border-radius:10px;background:#fffbeb}.campBudgetApprovalException small{color:#92400e}.campBudgetApprovalLeaderList{display:grid;gap:7px}.campBudgetApprovalLeaderList>article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px;border-radius:12px;background:#f8fafc}.campBudgetApprovalLeaderList>article>div:first-child{display:grid}.campBudgetApprovalLeaderList small{color:#64748b}.campBudgetApprovalPositionList{display:grid;gap:7px}.campBudgetApprovalPosition{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:10px 12px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;break-inside:avoid}.campBudgetApprovalPosition>div:first-child{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 8px;align-items:center}.campBudgetApprovalPosition>div:first-child small{grid-column:2;color:#64748b}.campBudgetApprovalCalculation{display:grid;justify-items:end;white-space:nowrap}.campBudgetApprovalCalculation span{color:#64748b;font-size:.76rem}.campBudgetApprovalEmpty{padding:16px;border:1px dashed #cbd5e1;border-radius:12px;color:#64748b;text-align:center}.campBudgetApprovalCashier{display:grid;grid-template-columns:1fr 1fr;gap:9px}.campBudgetApprovalSignatures{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.campBudgetApprovalSignatures figure{margin:0;padding:12px;border:1px solid #dbe5e4;border-radius:13px}.campBudgetApprovalSignatures figcaption{margin-bottom:8px;color:#64748b;font-size:.75rem;font-weight:850}.campBudgetApprovalSignatures img{display:block;width:100%;height:90px;object-fit:contain}.campBudgetApprovalHash{display:grid;gap:4px;margin-top:12px;padding:10px 12px;border-radius:11px;background:#f1f5f9}.campBudgetApprovalHash span{color:#64748b;font-size:.7rem;font-weight:900;text-transform:uppercase}.campBudgetApprovalHash code{overflow-wrap:anywhere;font-size:.68rem}.campBudgetApprovalFooter{display:flex;justify-content:space-between;gap:15px;padding:15px 3px 0;color:#64748b;font-size:.72rem}@media(max-width:900px){.campBudgetApprovalMeta,.campBudgetApprovalStats{grid-template-columns:repeat(2,minmax(0,1fr))}.campBudgetApprovalColumns{grid-template-columns:1fr}}@media(max-width:620px){.campBudgetApprovalBackdrop{padding:0}.campBudgetApprovalView{padding:12px;border-radius:0}.campBudgetApprovalHero,.campBudgetApprovalPosition,.campBudgetApprovalException{align-items:flex-start;flex-direction:column}.campBudgetApprovalMeta,.campBudgetApprovalStats,.campBudgetApprovalFacts,.campBudgetApprovalCashier,.campBudgetApprovalSignatures{grid-template-columns:1fr}.campBudgetApprovalLeaderList>article{grid-template-columns:1fr}.campBudgetApprovalCalculation{justify-items:start}.campBudgetApprovalFooter{display:grid}}
.campBudgetPositionRow.income.municipalBase{grid-template-columns:minmax(180px,1.2fr) 130px minmax(360px,2.5fr) 150px}.campBudgetPositionRow.income.municipalBase>[data-camp-base-status]{grid-column:1/-1}.campBudgetPositionRow.income.municipalBase [data-camp-class-contributions]{display:grid;gap:8px}.campBudgetClassContribution{display:grid;grid-template-columns:minmax(115px,1fr) minmax(135px,1fr) minmax(135px,1fr);gap:8px;align-items:end;padding:9px;border:1px solid #dbe5e4;border-radius:10px;background:#fff}.campBudgetClassContribution>strong,.campBudgetClassContribution>small{grid-column:1}.campBudgetClassContribution>small{color:#64748b}.campBudgetClassContribution label{grid-row:1/3;align-self:end}.campBudgetClassContribution label:first-of-type{grid-column:2}.campBudgetClassContribution label:last-of-type{grid-column:3}@media(max-width:900px){.campBudgetClassContribution{grid-template-columns:1fr}.campBudgetClassContribution>strong,.campBudgetClassContribution>small,.campBudgetClassContribution label,.campBudgetClassContribution label:first-of-type,.campBudgetClassContribution label:last-of-type{grid-column:1;grid-row:auto}}

/* Lagerbudget: verständliche Feldherkunft und Validierungszustände */
.campBudgetForm label::after,
.campBudgetForm .campBudgetClassField::after,
.campBudgetForm .campBudgetDerivedField::after{content:"";display:block;width:max-content;max-width:100%;min-height:.825rem;font-size:.66rem;font-weight:850;line-height:1.25}
.campBudgetForm [data-camp-field-kind="automatic"]::after{content:"Automatisch";color:#854d0e}
.campBudgetForm [data-camp-field-kind="prefilled"]::after{content:"Vorausgefüllt · anpassbar";color:#9a3412}
.campBudgetForm [data-camp-field-kind="optional"]::after{content:"Optional";color:#1d4ed8}
.campBudgetForm [data-camp-field-kind="placeholder"]::after{content:"Platzhalter · später ergänzen";color:#9a3412}
.assignmentTestSubmitCard{width:min(520px,calc(100vw - 28px));padding:30px;text-align:center;border-top:6px solid #dc2626}.assignmentTestSubmitCard h2{margin:8px 0 10px;color:#7f1d1d}.assignmentTestSubmitCard>p:not(.eyebrow){color:#475569;line-height:1.55}.assignmentTestSubmitCard .actionRow{justify-content:center;margin-top:22px}.assignmentTestSubmitIcon{width:58px;height:58px;display:grid;place-items:center;margin:0 auto 14px;border-radius:50%;background:#fee2e2;color:#b91c1c;font-size:2rem;font-weight:950;box-shadow:0 0 0 9px #fef2f2}.assignmentTestSubmitCard .btn.danger{background:#b91c1c;color:#fff;border-color:#b91c1c}.assignmentTestSubmitCard .btn.danger:hover{background:#991b1b}@media(max-width:560px){.assignmentTestSubmitCard{padding:24px 18px}.assignmentTestSubmitCard .actionRow{display:grid}.assignmentTestSubmitCard .btn{width:100%;justify-content:center}}
.campBudgetForm [data-camp-field-kind="automatic"] input,
.campBudgetForm [data-camp-field-kind="automatic"] select,
.campBudgetForm [data-camp-field-kind="automatic"]>strong,
.campBudgetForm input[readonly]{border:2px solid #eab308;background:#fefce8;color:#713f12;box-shadow:0 0 0 2px rgba(234,179,8,.08)}
.campBudgetForm [data-camp-field-kind="prefilled"] input,
.campBudgetForm [data-camp-field-kind="prefilled"] select{border:2px solid #f97316;background:#fff7ed;box-shadow:0 0 0 2px rgba(249,115,22,.07)}
.campBudgetForm [data-camp-field-kind="optional"] input,
.campBudgetForm [data-camp-field-kind="optional"] select{border:2px solid #60a5fa;background:#eff6ff;box-shadow:0 0 0 2px rgba(96,165,250,.07)}
.campBudgetForm [data-camp-field-kind="placeholder"] select{border:2px dashed #f59e0b;background:#fffbeb;box-shadow:none}
.campBudgetForm .campFieldEmpty input,
.campBudgetForm .campFieldEmpty select,
.campBudgetForm .campFieldEmpty>div{border:2px solid #a855f7!important;background:#faf5ff!important;box-shadow:0 0 0 2px rgba(168,85,247,.08)!important}
.campBudgetForm .campFieldEmpty::after{content:"Noch ausfüllen";color:#7e22ce}
.campBudgetForm .campFieldComplete input,
.campBudgetForm .campFieldComplete select,
.campBudgetForm .campFieldComplete>div{border:1px solid #cbd5e1!important;background:#fff!important;box-shadow:none!important}
.campBudgetForm .campFieldComplete::after{content:"";color:transparent}
.campBudgetForm .campFieldInvalid input,
.campBudgetForm .campFieldInvalid select,
.campBudgetForm .campFieldInvalid>div{border:2px solid #ef4444!important;background:#fef2f2!important;box-shadow:0 0 0 3px rgba(239,68,68,.1)!important}
.campBudgetForm .campFieldInvalid::after{content:"Bitte ausfüllen";color:#b91c1c}
.campBudgetProgressionHint{display:none;margin:-5px 0 14px;padding:10px 12px;border:1px solid #c4b5fd;border-radius:11px;background:#faf5ff;color:#6b21a8;font-size:.8rem;font-weight:850}
.campBudgetSectionLocked{border-color:#d8b4fe;background:#fcfaff}
.campBudgetSectionLocked .campBudgetProgressionHint{display:block}
.campBudgetSectionLocked>:not(.campBudgetSectionHead):not(.campBudgetProgressionHint){opacity:.48}
.campBudgetPositionRow.subsidy.unavailable{border-color:#cbd5e1;background:#f1f5f9;color:#64748b;filter:saturate(.35)}
.campBudgetPositionRow.subsidy.unavailable label,.campBudgetPositionRow.subsidy.unavailable input{color:#64748b}
.campBudgetUnavailableReason{grid-column:1/-1;display:flex!important;align-items:center;gap:9px!important;padding:8px 10px!important;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#475569;cursor:help}
.campBudgetUnavailableReason b{white-space:nowrap;color:#475569}.campBudgetUnavailableReason small{overflow-wrap:anywhere}
.campBudgetUnavailableReason:focus-visible{outline:3px solid rgba(37,99,235,.2);border-color:#2563eb}

/* Lagerbudget: Begleitpersonenplanung und gut sichtbare J+S-Auswahl */
.campBudgetLeaderRow{grid-template-columns:minmax(190px,1.2fr) 135px minmax(155px,.8fr) minmax(160px,1fr) 145px 38px}
.campBudgetLeaderRow.placeholder{border-style:dashed;background:#fffdf5}
.campBudgetJs{display:grid!important;gap:5px!important;min-height:0}
.campBudgetJs .checkboxLine{display:flex;align-items:center;gap:8px;min-height:42px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#334155}
.campBudgetJs input{display:block!important;appearance:auto!important;width:20px!important;height:20px!important;min-width:20px!important;margin:0!important;accent-color:#0f8a6a}
.campBudgetMileageCard{padding:12px;margin-bottom:10px;border:1px solid #dbe4f0;border-radius:14px;background:#f8fafc}.campBudgetMileageHead{display:grid;grid-template-columns:minmax(180px,1.3fr) 110px 120px 130px 120px auto;gap:9px;align-items:end}.campBudgetMileageHead>span{display:grid;gap:4px;padding:8px 4px}.campBudgetMileageRoute{display:grid;grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) 130px 105px auto 80px 38px;gap:8px;align-items:end;margin-top:10px;padding:10px;border-radius:11px;background:#fff;border:1px solid #e2e8f0}.campBudgetMileageRoute>[data-mileage-distance]{padding:10px 2px;text-align:right}@media(max-width:900px){.campBudgetMileageHead,.campBudgetMileageRoute{grid-template-columns:1fr 1fr}.campBudgetMileageHead>button,.campBudgetMileageRoute>button{width:100%}}
.campBudgetLeaderActions{display:flex!important;gap:7px!important;flex-wrap:wrap;justify-content:flex-end}
.campBudgetLeaderStatus{margin:-4px 0 12px;padding:9px 11px;border-radius:10px;background:#eff6ff;color:#1e40af;font-size:.8rem;font-weight:800}
.campBudgetLeaderStatus.errorText{background:#fef2f2;color:#b91c1c}
@media(max-width:1050px){.campBudgetLeaderRow{grid-template-columns:1fr 140px minmax(155px,.8fr)}}
@media(max-width:680px){.campBudgetLeaderRow{grid-template-columns:1fr}.campBudgetLeaderActions{justify-content:flex-start}}
/* Explicit dimensions make Chromium identify the approval print as A4 portrait. */
@media print{@page{size:210mm 297mm}}

/* Lagerbudget: ausgerichtete Grunddaten, Chips und Anwesenheitstage */
.campBudgetBasics{align-items:start}
.campBudgetClassField.campFieldEmpty>div{border:0!important;background:transparent!important;box-shadow:none!important}
.campBudgetClassField.campFieldComplete>div{border:0!important;background:transparent!important;box-shadow:none!important}
.campBudgetClassField.campFieldEmpty>#campBudgetOpenClassPicker{border:2px solid #a855f7;background:#faf5ff;color:#7e22ce;box-shadow:0 0 0 2px rgba(168,85,247,.08)}
.campBudgetValueChips{align-content:flex-start}
.campBudgetValueChips .badge,.campBudgetValueChip{display:inline-flex;width:max-content;align-items:center;min-height:2.35rem;padding:.55rem .8rem;border:1px solid #c4b5fd;border-radius:999px;background:#f5f3ff;color:#5b21b6;font-weight:900}
.campBudgetMunicipalMaximum{align-content:start}
.campBudgetMunicipalMaximum::after{display:none!important}
.campBudgetLeaderRow{grid-template-columns:minmax(180px,1.2fr) 125px 105px minmax(145px,.8fr) minmax(150px,1fr) 145px 38px}
.campBudgetLeaderRow>label{grid-template-rows:minmax(2.3em,auto) auto minmax(.825rem,auto);align-self:stretch}
.campBudgetLeaderLabel{display:flex;align-items:flex-end;gap:5px;min-height:2.3em}
.campBudgetLeaderLabel small{line-height:1.15}
.campBudgetInlineReset{display:inline;padding:0;border:0;background:none;color:#0f766e;font:inherit;font-weight:800;text-decoration:underline;cursor:pointer}
.campBudgetLeaderRow>label>input:not([type="hidden"]),.campBudgetLeaderRow>label>select,.campBudgetJs .checkboxLine{min-height:42px}
.campBudgetPositionRow.expense.reconnaissance{grid-template-columns:minmax(240px,1.5fr) minmax(150px,.7fr) minmax(210px,1fr) 38px}
@media(max-width:900px){.campBudgetPositionRow.expense.reconnaissance{grid-template-columns:1fr}}
.campBudgetPositionRow.expense{grid-template-columns:minmax(180px,1.4fr) 95px 125px 120px 120px 110px minmax(155px,1fr) minmax(140px,.9fr) auto}
.campBudgetPositionRow.expense.reconnaissance{grid-template-columns:minmax(220px,1.5fr) minmax(140px,.7fr) minmax(190px,1fr) minmax(150px,.8fr) 38px}
.campBudgetKlpConfirmation{margin-top:14px;padding:14px;border:1px solid #99d8ca;border-radius:12px;background:#ecfdf5;color:#14532d}
.companionContribution{border-color:#7dd3fc;background:#f0f9ff}.companionContribution .helper{grid-column:1/-1;color:#075985}
@media(max-width:900px){.campBudgetPositionRow.expense,.campBudgetPositionRow.expense.reconnaissance{grid-template-columns:1fr}}
@media(max-width:1050px){.campBudgetLeaderRow{grid-template-columns:1fr 125px 105px}}
@media(max-width:680px){.campBudgetLeaderRow{grid-template-columns:1fr}}

/* Camp budget: compact incomes and persistent expense ordering */
.campBudgetIncomeSection{padding:15px}.campBudgetIncomeSection .campBudgetSectionHead{margin-bottom:10px}.campBudgetIncomeSection #campBudgetIncomes{display:grid;gap:7px}.campBudgetIncomeSection .campBudgetPositionRow{margin:0;padding:9px 10px;border-color:#dbe7e4;background:#f8fbfa;box-shadow:none}.campBudgetIncomeSection .campBudgetPositionRow:nth-child(even){background:#f3f8f7}.campBudgetIncomeSection .campBudgetPositionRow label{gap:3px}.campBudgetIncomeSection .campBudgetPositionRow input,.campBudgetIncomeSection .campBudgetPositionRow select{min-height:38px}.campBudgetPositionRow.income.jsContribution{grid-template-columns:minmax(180px,1.3fr) minmax(130px,.8fr) minmax(115px,.7fr) minmax(140px,.8fr) minmax(140px,.8fr)}
.campBudgetOrderControls{display:flex;gap:4px;align-items:center;justify-content:flex-end}.campBudgetOrderControls .miniBtn{min-width:30px;padding:7px 8px}.campBudgetPositionRow.expense{grid-template-columns:minmax(180px,1.4fr) 95px 125px 120px 120px 110px minmax(155px,1fr) minmax(140px,.9fr) minmax(104px,auto)}.campBudgetPositionRow.expense.reconnaissance{grid-template-columns:minmax(220px,1.5fr) minmax(140px,.7fr) minmax(190px,1fr) minmax(150px,.8fr) minmax(104px,auto)}.campBudgetMileageHead{grid-template-columns:minmax(180px,1.2fr) 110px repeat(4,minmax(105px,.7fr)) minmax(104px,auto)}
.campBudgetLeaderRow{grid-template-columns:minmax(180px,1.2fr) 130px 75px minmax(145px,.8fr) 145px minmax(180px,1fr) minmax(104px,auto)}
@media(max-width:900px){.campBudgetPositionRow.income.jsContribution,.campBudgetPositionRow.expense,.campBudgetPositionRow.expense.reconnaissance,.campBudgetMileageHead{grid-template-columns:1fr}.campBudgetOrderControls{justify-content:flex-start}}

/* Camp budget: visual wayfinding for the long form */
.campBudgetBasicsSection{border-color:#bfdbfe;background:#f5f9ff}.campBudgetIncomeSection{border-color:#bbf7d0;background:#f3fcf6}.campBudgetExpensesSection{border-color:#fde68a;background:#fffdf5}.campBudgetLeadersSection{border-color:#ddd6fe;background:#faf8ff}.campBudgetBasicsSection .campBudgetSectionHead>div>span{background:#2563eb}.campBudgetIncomeSection .campBudgetSectionHead>div>span{background:#15803d}.campBudgetExpensesSection .campBudgetSectionHead>div>span{background:#b45309}.campBudgetLeadersSection .campBudgetSectionHead>div>span{background:#7c3aed}
.campBudgetCategory{border-left-width:5px}.campBudgetCategory>div:first-child>strong{font-size:.92rem}.campBudgetCategory .campBudgetPositionRow,.campBudgetCategory .campBudgetMileageCard{background:rgba(255,255,255,.82)}.campBudgetCategory[data-camp-category="transport"]{border-color:#93c5fd;background:#eff6ff}.campBudgetCategory[data-camp-category="accommodation"]{border-color:#a5b4fc;background:#f1f3ff}.campBudgetCategory[data-camp-category="food"]{border-color:#86efac;background:#f0fdf4}.campBudgetCategory[data-camp-category="materials"]{border-color:#fcd34d;background:#fffbeb}.campBudgetCategory[data-camp-category="admissions"]{border-color:#d8b4fe;background:#faf5ff}.campBudgetCategory[data-camp-category="misc"]{border-color:#fda4af;background:#fff1f2}.campBudgetCategory[data-camp-category="expenses"]{border-color:#67e8f9;background:#ecfeff}.campBudgetCategory[data-camp-category="reconnaissance"]{border-color:#cbd5e1;background:#f8fafc}

/* Camp budget: collapsible workflow sections with live summaries */
details.campBudgetSection{padding:0;overflow:hidden}
details.campBudgetSection>.campBudgetSectionHead{display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:center;column-gap:14px;row-gap:9px;margin:0;padding:15px 18px;cursor:pointer;list-style:none;user-select:none}
details.campBudgetSection>.campBudgetSectionHead::-webkit-details-marker{display:none}
details.campBudgetSection>.campBudgetSectionHead::marker{content:""}
details.campBudgetSection>.campBudgetSectionHead:hover{background:rgba(255,255,255,.38)}
details.campBudgetSection>.campBudgetSectionHead:focus-visible{outline:3px solid rgba(37,99,235,.24);outline-offset:-3px}
details.campBudgetSection>.campBudgetSectionHead>i{display:block;grid-column:2;grid-row:1;width:10px;height:10px;justify-self:center;border-right:2px solid #475569;border-bottom:2px solid #475569;transform:rotate(45deg);transition:transform .18s ease}
details.campBudgetSection[open]>.campBudgetSectionHead>i{transform:rotate(225deg)}
.campBudgetSectionBody{padding:0 18px 18px;border-top:1px solid rgba(148,163,184,.24)}
.campBudgetSectionBody>.campBudgetBasics,.campBudgetSectionBody>.campBudgetProgressionHint,.campBudgetSectionBody>.campBudgetHint,.campBudgetSectionBody>.campBudgetSectionToolbar{margin-top:14px}
.campBudgetCollapsedSummary{display:flex;grid-column:1/-1;grid-row:2;align-items:center;justify-content:flex-start;gap:7px;min-width:0;overflow:visible;flex-wrap:wrap;color:#64748b;font-size:.75rem;font-weight:800;white-space:normal}
.campBudgetCollapsedSummary span,.campBudgetCollapsedSummary strong{flex:0 0 auto}
.campBudgetSectionHead>.campBudgetCollapsedSummary>span{display:inline-flex;width:auto;height:auto;place-items:initial;background:#475569;color:#fff;font-size:.75rem;font-weight:800}
.campBudgetBasicsSection .campBudgetCollapsedSummary>span{border-color:#2563eb;background:#2563eb}.campBudgetIncomeSection .campBudgetCollapsedSummary>span{border-color:#15803d;background:#15803d}.campBudgetExpensesSection .campBudgetCollapsedSummary>span{border-color:#b45309;background:#b45309}.campBudgetLeadersSection .campBudgetCollapsedSummary>span{border-color:#7c3aed;background:#7c3aed}
.campBudgetSectionHead>.campBudgetCollapsedSummary>.complete{border-color:#15803d;background:#15803d;color:#fff}
.campBudgetSectionHead>.campBudgetCollapsedSummary>.pending{border-color:#b45309;background:#b45309;color:#fff}
.campBudgetCollapsedSummary span{padding:5px 8px;border:1px solid rgba(148,163,184,.3);border-radius:999px;background:rgba(255,255,255,.72)}
.campBudgetCollapsedSummary strong{color:#0f172a}
.campBudgetCollapsedSummary .complete{border-color:#15803d;background:#15803d;color:#fff}
.campBudgetCollapsedSummary .pending,.campBudgetCollapsedSummary .negative{border-color:#b45309;background:#b45309;color:#fff}
details.campBudgetSection[open]>.campBudgetSectionHead .campBudgetCollapsedSummary{opacity:.7}
.campBudgetSectionToolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.campBudgetSectionToolbar>p{margin:0;color:#64748b;font-size:.8rem}
.campBudgetSectionToolbar .campBudgetLeaderStatus{flex:1;margin:0}
.campBudgetKlpConfirmation{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:9px;margin:14px 0 10px!important;padding:9px 11px!important}
.campBudgetKlpConfirmation input{width:18px!important;min-width:18px;margin-top:2px}
.campBudgetKlpConfirmation span{display:grid;gap:1px}
.campBudgetKlpConfirmation small{color:#47705f;font-size:.7rem;font-weight:650;line-height:1.3}
@media(max-width:760px){details.campBudgetSection>.campBudgetSectionHead{grid-template-columns:1fr 24px;padding:13px 12px}.campBudgetSectionToolbar{align-items:flex-start;flex-direction:column}.campBudgetSectionBody{padding:0 12px 14px}}
.blockEditorTextSegment{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px}
.blockEditorGapParts{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px}.blockEditorTextSegment{flex:1 1 180px}.blockEditorTextPart{min-height:42px;height:42px}.blockEditorGapRow{flex:0 1 auto;min-width:205px;padding:4px 5px;border:1px solid #99f6e4;border-radius:12px;background:#f0fdfa}.blockEditorGapSolution{width:125px;min-width:95px}@media(max-width:720px){.blockEditorTextSegment{flex-basis:100%}.blockEditorGapRow{flex:1 1 100%}.blockEditorGapSolution{flex:1;width:auto}}

/* SchulTool brand mark: live on romano.studio, test on preview/tunnel hosts. */
.heroBrand{display:flex;align-items:center;gap:18px}
.heroMark{display:block;width:76px;height:76px;flex:0 0 auto;border-radius:18px;overflow:hidden;box-shadow:0 12px 28px rgba(3,15,38,.24)}
.heroMark img{display:block;width:100%;height:100%}
.heroMarkTest{display:none!important}
html[data-schultool-environment="test"] .heroMarkLive{display:none!important}
html[data-schultool-environment="test"] .heroMarkTest{display:block!important}
@media(max-width:720px){.heroBrand{gap:12px}.heroMark{width:54px;height:54px;border-radius:13px}}
.schoolTripActions{position:sticky;bottom:8px;z-index:3;padding:12px;border:1px solid #dbe4f0;border-radius:15px;background:rgba(255,255,255,.95);box-shadow:0 10px 30px rgba(15,23,42,.13);backdrop-filter:blur(8px)}
.financeReceiptAction{text-align:right!important;white-space:nowrap}.financeBookingReceiptCard{width:min(820px,96vw)}.financeBookingReceiptChips{display:flex;gap:8px;flex-wrap:wrap}.financeBookingReceiptChips span{padding:5px 10px;border:1px solid #dbe4f0;border-radius:999px;background:#f8fafc;font-size:.82rem;font-weight:900}.financeBookingReceiptGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.financeBookingReceiptGrid>div{display:grid;gap:4px;padding:12px;border:1px solid #dbe4f0;border-radius:13px;background:#f8fafc}.financeBookingReceiptGrid small{color:#64748b;font-weight:850}.financeBookingReceiptTable{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #dbe4f0;border-radius:14px;overflow:hidden}.financeBookingReceiptTable>div{display:grid;gap:4px;padding:12px;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0}.financeBookingReceiptTable>div:nth-child(3n){border-right:0}.financeBookingReceiptTable>div:nth-last-child(-n+3){border-bottom:0}.financeBookingReceiptTable span{color:#64748b;font-size:.78rem;font-weight:850}.financeBookingBudgetCard{display:grid;gap:10px;padding:14px;border:1px solid #bbf7d0;border-radius:14px;background:#f0fdf4}.financeBookingBudgetCard>div{display:flex;gap:8px;flex-wrap:wrap}.financeBookingBudgetCard span{padding:5px 9px;border-radius:999px;background:#fff;border:1px solid #bbf7d0;font-size:.82rem;font-weight:850}.financeBookingReceiptActions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}@media(max-width:680px){.financeBookingReceiptGrid,.financeBookingReceiptTable{grid-template-columns:1fr}.financeBookingReceiptTable>div,.financeBookingReceiptTable>div:nth-child(3n),.financeBookingReceiptTable>div:nth-last-child(-n+3){border-right:0;border-bottom:1px solid #e2e8f0}.financeBookingReceiptTable>div:last-child{border-bottom:0}}
.appShell>.sidebar.hidden+.wrap{grid-column:1/-1;max-width:760px;margin:0 auto}
.assignmentProgressCompact{display:grid;gap:8px;min-width:260px}.assignmentProgressCounts{display:flex;flex-wrap:wrap;gap:5px}.assignmentProgressCounts span{padding:4px 7px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:.68rem;font-weight:900;white-space:nowrap}.assignmentProgressCounts .viewed{background:#e0f2fe;color:#075985}.assignmentProgressCounts .working{background:#fef3c7;color:#92400e}.assignmentProgressCounts .finished{background:#dcfce7;color:#166534}.assignmentProgressBar{display:flex;height:7px;overflow:hidden;border-radius:999px;background:#e2e8f0}.assignmentProgressBar i{display:block;height:100%}.assignmentProgressBar .viewed{background:#38bdf8}.assignmentProgressBar .working{background:#f59e0b}.assignmentProgressBar .finished{background:#22c55e}.assignmentProgressCompact>.miniBtn{justify-self:start}.assignmentProgressDetails{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:7px;margin-top:10px;padding-top:10px;border-top:1px solid #e2e8f0}.assignmentProgressDetails .progressResponse{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 8px;margin:0;padding:9px;border:1px solid #e2e8f0;border-radius:11px;background:#f8fafc}.assignmentProgressDetails .progressResponse>span{grid-column:1/-1;color:#64748b;font-size:.7rem}.assignmentProgressDetails .progressResponse>button{grid-column:1/-1;justify-self:start}@media(max-width:720px){.assignmentProgressCompact{min-width:0}.assignmentProgressDetails{grid-template-columns:1fr}}
.assignmentProgressModalCard{width:min(1480px,calc(100vw - 28px));max-width:none;max-height:calc(100vh - 28px);padding:22px;background:#f8fafc}.assignmentProgressModalHeader{position:sticky;top:-22px;z-index:3;margin:-22px -22px 16px;padding:22px;background:rgba(248,250,252,.96);border-bottom:1px solid #e2e8f0;backdrop-filter:blur(10px)}.assignmentProgressLiveSummary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:11px 14px;border:1px solid #dbe4f0;border-radius:15px;background:#fff}.assignmentProgressLiveState{display:flex;align-items:center;gap:7px;color:#166534;font-size:.78rem;font-weight:900;white-space:nowrap}.assignmentProgressLiveState i{width:9px;height:9px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 5px rgba(34,197,94,.13);animation:assignmentLivePulse 1.8s ease-in-out infinite}@keyframes assignmentLivePulse{50%{box-shadow:0 0 0 9px rgba(34,197,94,0)}}.assignmentProgressCardGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:12px}.assignmentProgressCard{min-width:0;min-height:180px;display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid #dbe4f0;border-top:5px solid #94a3b8;border-radius:18px;background:#fff;color:#172033;text-align:left;font:inherit;cursor:pointer;box-shadow:0 6px 18px rgba(15,23,42,.045);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.assignmentProgressCard.status-viewed{border-top-color:#38bdf8}.assignmentProgressCard.status-in_progress{border-top-color:#f59e0b}.assignmentProgressCard.status-done{border-top-color:#22c55e}.assignmentProgressCard:hover:not(:disabled){transform:translateY(-2px);border-color:#93c5fd;box-shadow:0 12px 28px rgba(37,99,235,.12)}.assignmentProgressCard:disabled{cursor:default;background:#f8fafc;opacity:.76}.assignmentProgressCardHead{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.assignmentProgressCardHead strong{font-size:1rem;line-height:1.25}.assignmentProgressCardMeta{color:#64748b;font-size:.75rem}.assignmentProgressCardResponse{flex:1;overflow:hidden;color:#334155;font-size:.82rem;line-height:1.4}.assignmentProgressCardFoot{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#64748b;font-size:.7rem}.assignmentProgressOpenHint{margin-left:auto;color:#2563eb;font-weight:900}.assignmentProgressCardFoot .badge{font-size:.62rem}@media(max-width:720px){.assignmentProgressModalCard{width:100vw;max-height:100vh;height:100vh;border-radius:0;padding:14px}.assignmentProgressModalHeader{top:-14px;margin:-14px -14px 12px;padding:16px}.assignmentProgressLiveSummary{align-items:flex-start;flex-direction:column}.assignmentProgressCardGrid{grid-template-columns:1fr}.assignmentProgressCard{min-height:150px}}
.financePortalCard.eventApprovals{--finance-card-accent:#0f766e;--finance-card-soft:#ccfbf1}.eventApprovalClasses{display:grid;gap:14px;margin:18px 0}.eventApprovalClassCard{padding:16px;border:1px solid #99d8cf;border-left:5px solid #0f766e;border-radius:16px;background:linear-gradient(145deg,#f0fdfa,#fff)}.eventApprovalClassCard .financeInvoiceCompactGrid{margin-top:12px}.eventApprovalClassCard select[multiple]{min-height:112px}@media(max-width:720px){.eventApprovalClassCard{padding:12px}.eventApprovalClassCard .sectionHeader{align-items:flex-start}}
.eventApprovalGuidanceSection{padding:18px;border:1px solid #dbe4f0;border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(24,39,75,.055);transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.eventApprovalGuidanceSection.schoolTripStateComplete,.eventApprovalClassCard.schoolTripStateComplete{background:linear-gradient(145deg,#f0fdf4,#fff)}.eventApprovalGuidanceSection.schoolTripStateAttention,.eventApprovalClassCard.schoolTripStateAttention{background:linear-gradient(145deg,#faf5ff,#fff)}
.eventApprovalWorkshopGuide{margin:0 0 16px;padding:18px;border:1px solid #c4b5fd;border-radius:16px;background:linear-gradient(135deg,#f5f3ff,#eef2ff);color:#312e81}.eventApprovalWorkshopGuide h4{margin:4px 0 8px}.eventApprovalWorkshopGuide ol{margin:0;padding-left:22px;display:grid;gap:6px}.eventApprovalWorkshopGuide p{margin:10px 0 0;color:#475569;font-size:.84rem}
#financeEventApprovalEditor .financeInvoiceCompactGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}#financeEventApprovalEditor .financeInvoiceCompactGrid>label{display:grid;align-content:start;gap:6px;font-weight:800;color:#334155}#financeEventApprovalEditor .financeInvoiceCompactGrid>label.wideField{grid-column:1/-1}#financeEventApprovalEditor input,#financeEventApprovalEditor select,#financeEventApprovalEditor textarea{width:100%;min-width:0}#financeEventApprovalEditor .eventApprovalClassCard .sectionHeader>div{display:grid;gap:3px}#financeEventApprovalEditor .eventApprovalClassCard small{display:block;color:#64748b;font-weight:600;line-height:1.35}#financeEventApprovalEditor [data-event-total]{background:#ecfdf5;color:#065f46;font-weight:900}@media(max-width:720px){#financeEventApprovalEditor .financeInvoiceCompactGrid{grid-template-columns:1fr}#financeEventApprovalEditor .financeInvoiceCompactGrid>label.wideField{grid-column:auto}}
.eventApprovalNonParticipants{display:grid;align-content:start;gap:7px}.eventApprovalNonParticipants>.miniBtn{justify-self:start}.eventApprovalFileLabels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:6px}.eventApprovalFileLabels label{display:grid;gap:4px;padding:8px;border:1px solid #cbd5e1;border-radius:10px;background:#f8fafc;font-size:.78rem}@media(max-width:720px){.eventApprovalFileLabels{grid-template-columns:1fr}}
.eventApprovalLessonSelection{padding:8px 10px;border-radius:10px;background:#f0fdfa;color:#115e59;font-size:.8rem}.eventLessonPickerModal{width:min(1080px,calc(100vw - 32px));max-height:92vh;overflow:auto}.eventLessonWeek{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px;margin:16px 0}.eventLessonWeek article{display:grid;align-content:start;gap:6px;padding:10px;border:1px solid #cbd5e1;border-radius:12px;background:#f8fafc}.eventLessonWeek article>strong{color:#0f766e}.eventLessonWeek article>span{display:grid;gap:2px;padding:6px;border-radius:8px;background:#fff;font-size:.78rem}.eventLessonWeek article small{color:#64748b}@media(max-width:900px){.eventLessonWeek{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.eventLessonWeek{grid-template-columns:1fr}}
.eventNonParticipantPicker .schoolTripChoiceChip{max-width:none}.eventNonParticipantPicker .schoolTripChoiceChip span{white-space:normal;overflow:visible;text-overflow:clip}.eventLessonTeacherLinks{display:flex!important;flex-wrap:wrap;gap:4px!important;padding:3px 0 0!important}.eventLessonTeacherChip{display:inline-grid;grid-template-columns:auto auto;align-items:center;gap:4px;border:1px solid #99d8cf;border-radius:999px;padding:3px 7px;background:#f0fdfa;color:#115e59;cursor:pointer}.eventLessonTeacherChip small{font-size:.65rem}.eventLessonTeacherChip.selected{border-color:#0f766e;background:#ccfbf1;box-shadow:0 0 0 2px rgba(15,118,110,.14)}
.eventCompanionPicker{display:grid;gap:8px}.eventCompanionPicker>[data-event-open-companion-picker]{justify-self:start}.eventCompanionPlaceholder{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.eventCompanionPicker [data-event-companion]>small{color:#92400e;font-size:.65rem}@media(max-width:560px){.eventCompanionPlaceholder{grid-template-columns:1fr}}
.financePortalCard{grid-template-columns:auto minmax(0,1fr) auto}.financePortalCount{min-width:24px;height:24px;padding:0 7px;border:1px solid #cbd5e1;border-radius:999px;background:#e2e8f0;color:#475569;display:inline-grid;place-items:center;font-size:.72rem;font-weight:950;font-variant-numeric:tabular-nums}
.financeDocumentsModeChoice{display:flex;gap:8px;padding:5px;border:1px solid #dbe4f0;border-radius:14px;background:#f1f5f9;width:max-content;max-width:100%}.financeDocumentsModeChoice button{display:grid;gap:2px;border:0;border-radius:10px;padding:9px 14px;background:transparent;color:#64748b;text-align:left;cursor:pointer}.financeDocumentsModeChoice button strong{font-size:.84rem}.financeDocumentsModeChoice button small{font-size:.68rem;font-weight:750}.financeDocumentsModeChoice button.active{background:#fff;color:#172033;box-shadow:0 2px 8px rgba(15,23,42,.1)}.financeSchoolwideDocuments{display:grid;gap:14px}.financeSchoolwideKpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.financeSchoolwideKpi{padding:12px 14px;border:1px solid #dbe4f0;border-radius:13px;background:#f8fafc}.financeSchoolwideKpi span{display:block;color:#64748b;font-size:.74rem;font-weight:800}.financeSchoolwideKpi strong{display:block;margin-top:3px;font-size:1.12rem}.financeSchoolwideFilters{display:grid;grid-template-columns:190px 230px minmax(220px,1fr);gap:10px}.financeSchoolwideFilters label{display:grid;gap:5px;color:#64748b;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.financeSchoolwideFilters select,.financeSchoolwideFilters input{min-width:0;border:1px solid #cbd5e1;border-radius:10px;padding:9px 10px;background:#fff;color:#172033;font:inherit;font-weight:750;text-transform:none;letter-spacing:0}.financeSchoolwideList{display:grid;gap:8px}.financeSchoolwideRow{display:grid;grid-template-columns:125px minmax(150px,.8fr) minmax(220px,1.5fr) 120px 145px;align-items:center;gap:12px;padding:12px 14px;border:1px solid #dbe4f0;border-radius:13px;background:#fff}.financeSchoolwideKind{display:inline-flex;align-items:center;width:max-content;padding:4px 9px;border-radius:999px;background:#ede9fe;color:#6d28d9;font-size:.7rem;font-weight:900}.financeSchoolwideKind.reimbursement{background:#ffedd5;color:#c2410c}.financeSchoolwidePerson{display:grid;gap:2px}.financeSchoolwidePerson strong,.financeSchoolwideCopy strong{font-size:.84rem}.financeSchoolwidePerson small,.financeSchoolwideCopy small{color:#64748b;font-size:.72rem}.financeSchoolwideCopy{min-width:0;display:grid;gap:2px}.financeSchoolwideAmount{text-align:right;font-weight:900;white-space:nowrap}.financeSchoolwideState{justify-self:end;padding:4px 9px;border-radius:999px;background:#e2e8f0;color:#475569;font-size:.68rem;font-weight:900;text-align:center}.financeSchoolwideState.completed{background:#dcfce7;color:#166534}.financeSchoolwideEmpty{padding:26px;border:1px dashed #cbd5e1;border-radius:14px;color:#64748b;text-align:center;font-weight:800}@media(max-width:900px){.financeSchoolwideFilters{grid-template-columns:1fr 1fr}.financeSchoolwideSearch{grid-column:1/-1}.financeSchoolwideRow{grid-template-columns:auto 1fr auto}.financeSchoolwideCopy{grid-column:2/-1}.financeSchoolwideState{grid-column:2;justify-self:start}.financeSchoolwideAmount{grid-column:3;grid-row:1}}@media(max-width:620px){.financeDocumentsModeChoice{width:100%}.financeDocumentsModeChoice button{flex:1}.financeSchoolwideKpis,.financeSchoolwideFilters{grid-template-columns:1fr}.financeSchoolwideSearch{grid-column:auto}.financeSchoolwideRow{grid-template-columns:1fr auto}.financeSchoolwidePerson,.financeSchoolwideCopy,.financeSchoolwideState{grid-column:1/-1}.financeSchoolwideAmount{grid-column:2;grid-row:1}}
.financeInvoiceAssignmentGrid{gap:10px}.financeInvoiceForm .invoiceFieldRecognized input,.financeInvoiceForm .invoiceFieldRecognized select{border-color:#eab308;background:#fefce8;box-shadow:0 0 0 2px rgba(234,179,8,.08)}.financeInvoiceForm .invoiceFieldConfirmed input,.financeInvoiceForm .invoiceFieldConfirmed select{border-color:#22c55e;background:#f0fdf4;box-shadow:0 0 0 2px rgba(34,197,94,.08)}.financeInvoiceForm .invoiceFieldCorrected input,.financeInvoiceForm .invoiceFieldCorrected select{border-color:#8b5cf6;background:#f5f3ff;box-shadow:0 0 0 2px rgba(139,92,246,.09)}.financeInvoiceForm .invoiceFieldUnrecognized input,.financeInvoiceForm .invoiceFieldUnrecognized select{border-color:#ef4444;background:#fff7f7;box-shadow:0 0 0 2px rgba(239,68,68,.08)}
.financeInvoiceAssignmentDetails{overflow:hidden;border:1px solid #dbe4f0;border-radius:13px;background:#fff}.financeInvoiceAssignmentDetails>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px;cursor:pointer;list-style:none}.financeInvoiceAssignmentDetails>summary::-webkit-details-marker{display:none}.financeInvoiceAssignmentDetails>summary span{display:grid;gap:2px}.financeInvoiceAssignmentDetails>summary small{color:#64748b;font-weight:750}.financeInvoiceAssignmentDetails>summary i::before{content:'›';display:block;color:#64748b;font-size:1.25rem;font-style:normal;font-weight:900;transform:rotate(90deg);transition:transform .16s ease}.financeInvoiceAssignmentDetails[open]>summary i::before{transform:rotate(-90deg)}.financeInvoiceAssignmentDetails>.financeInvoiceFieldGroup{border:0;border-top:1px solid #e2e8f0;border-radius:0;background:#f8fafc}
.financeOcrKeepOriginal{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px;padding:12px 14px;border:1px solid #fdba74;border-radius:12px;background:#fff7ed;color:#9a3412}.financeOcrKeepOriginal::before{content:'!';grid-row:1/3;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#f97316;color:#fff;font-weight:950}.financeOcrKeepOriginal strong,.financeOcrKeepOriginal span{grid-column:2}.financeOcrKeepOriginal span{font-size:.82rem;font-weight:700;line-height:1.4}
.financeInvoiceForm [data-finance-field-status]::after{content:attr(data-finance-field-status);width:max-content;max-width:100%;font-size:.68rem;font-weight:850}.financeInvoiceForm .invoiceFieldRecognized::after{color:#a16207}.financeInvoiceForm .invoiceFieldUnrecognized::after{color:#b91c1c}.financeInvoiceForm .invoiceFieldConfirmed::after{color:#15803d}.financeInvoiceForm .invoiceFieldCorrected::after{color:#7c3aed}
.financeInvoiceForm .invoiceFieldRecognized input,.financeInvoiceForm .invoiceFieldRecognized select{border-color:#d69e00;box-shadow:0 0 0 3px rgba(234,179,8,.2)}.financeInvoiceForm .invoiceFieldUnrecognized input,.financeInvoiceForm .invoiceFieldUnrecognized select{border-color:#dc2626;box-shadow:0 0 0 3px rgba(239,68,68,.18)}.financeInvoiceForm .invoiceFieldConfirmed input,.financeInvoiceForm .invoiceFieldConfirmed select{border-color:#16a34a;box-shadow:0 0 0 3px rgba(34,197,94,.18)}.financeInvoiceForm .invoiceFieldCorrected input,.financeInvoiceForm .invoiceFieldCorrected select{border-color:#7c3aed;box-shadow:0 0 0 3px rgba(139,92,246,.2)}
.financeInvoiceAssignmentDetails{border-color:#eab308;background:#fffbeb;box-shadow:0 0 0 3px rgba(234,179,8,.14)}.financeInvoiceAssignmentDetails>summary{background:linear-gradient(110deg,#fef3c7,#fffbeb 72%)}.financeInvoiceAssignmentDetails>summary strong{color:#92400e}.financeInvoiceAssignmentDetails>summary i::before{color:#a16207}.financeInvoiceAssignmentDetails[open]{background:#fff;box-shadow:0 0 0 2px rgba(234,179,8,.12)}
.planbarPdfExportHost{position:fixed;left:-100000px;top:0;background:#fff;z-index:-1}
.planbarPdfProgressOverlay{z-index:10050}.planbarPdfProgressCard{width:min(520px,calc(100vw - 28px));text-align:center}.planbarPdfProgressCard h3{margin:4px 0 8px}.planbarPdfProgressCard p{line-height:1.55}.planbarPdfProgressSpinner{width:42px;height:42px;margin:0 auto 12px;border:4px solid #ccfbf1;border-top-color:#0f766e;border-radius:50%;animation:planbarPdfSpin .8s linear infinite}.planbarPdfProgressTrack{height:12px;margin:20px 0 10px;overflow:hidden;border-radius:999px;background:#e2e8f0}.planbarPdfProgressTrack span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0f766e,#14b8a6);transition:width .2s ease}.planbarPdfProgressStatus{display:block;min-height:24px;color:#115e59}.planbarPdfProgressCard .helper{margin-top:18px;padding:12px;border-radius:12px;background:#f1f5f9;text-align:left}@keyframes planbarPdfSpin{to{transform:rotate(360deg)}}
.financeWorkshopPanel{margin:16px 0;padding:18px;border:1px solid #bfdbfe;border-radius:18px;background:linear-gradient(135deg,#eff6ff,#f8fafc);box-shadow:0 12px 30px rgba(30,64,175,.08)}.financeWorkshopHead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.financeWorkshopHead h4{margin:3px 0 4px;font-size:1.08rem}.financeWorkshopHead p{margin:0;color:#475569}.financeWorkshopSafety{padding:7px 10px;border-radius:999px;background:#dcfce7;color:#166534;font-size:.78rem;font-weight:800;white-space:nowrap}.financeWorkshopControls{display:flex;align-items:flex-end;gap:10px;margin-top:16px}.financeWorkshopControls label{display:grid;gap:5px;font-size:.78rem;font-weight:800;color:#334155}.financeWorkshopControls input{min-width:230px;text-transform:uppercase}.financeWorkshopSummary{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.financeWorkshopSummary span{padding:8px 11px;border-radius:10px;background:#fff;border:1px solid #dbeafe;color:#334155;font-size:.86rem}.financeWorkshopSummary strong{color:#1d4ed8}.financeWorkshopPanel .financeInvoiceFeedback{margin:10px 0 0}@media(max-width:720px){.financeWorkshopHead,.financeWorkshopControls{align-items:stretch;flex-direction:column}.financeWorkshopSafety{align-self:flex-start}.financeWorkshopControls input{min-width:0;width:100%}.financeWorkshopPanel .actionRow .btn{width:100%}}
.financeWorkshopCleanupDialog{width:min(620px,96vw);border:1px solid #fecaca;background:linear-gradient(180deg,#fff 0,#fff7f7 100%)}.financeWorkshopCleanupDialog>h3{margin:0;padding-right:44px;color:#991b1b}.financeWorkshopCleanupDialog>p{margin:0;color:#475569;line-height:1.55}.financeDialogCopy{display:grid;gap:8px;padding:14px;border:1px solid #fecaca;border-radius:15px;background:#fff}.financeDialogCopy>span{font-size:.75rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#991b1b}.financeDialogCopy>div{display:flex;align-items:center;gap:10px}.financeDialogCopy code{flex:1;min-width:0;padding:11px 12px;border-radius:10px;background:#fff1f2;color:#881337;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88rem;font-weight:800;overflow-wrap:anywhere}.financeDialogCopy small{color:#64748b}.financeWorkshopCleanupDialog label.wideField{display:grid;gap:7px;font-weight:850;color:#334155}.financeWorkshopCleanupDialog textarea{width:100%;min-height:78px;resize:vertical;border:1px solid #fda4af;border-radius:12px;padding:11px 12px;font:inherit;background:#fff}.financeWorkshopCleanupDialog textarea:focus{outline:3px solid rgba(244,63,94,.16);border-color:#e11d48}@media(max-width:560px){.financeDialogCopy>div{align-items:stretch;flex-direction:column}.financeDialogCopy button{width:100%}}
.financeWorkshopStarter{display:grid;grid-template-columns:1fr;align-items:center;gap:16px;margin:0 0 20px;padding:20px;border:1px solid #c4b5fd;border-radius:20px;background:linear-gradient(135deg,#f5f3ff,#eef2ff);box-shadow:0 14px 32px rgba(79,70,229,.1)}.financeWorkshopStarterCopy h3{margin:4px 0 5px}.financeWorkshopStarterCopy p{margin:0;color:#475569}.financeWorkshopStarterActions{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:10px}.financeWorkshopStarterActions .btn{flex:1 1 240px}.financeWorkshopStarterFeedback{margin:0;color:#4338ca;font-weight:700;min-height:1.2em}@media(max-width:820px){.financeWorkshopStarterActions{justify-content:stretch}.financeWorkshopStarterActions .btn{flex:1 1 100%}}
.appView{position:relative}.viewLoadingState{position:absolute;inset:0;z-index:15;min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:28px;border-radius:inherit;background:rgba(248,250,252,.94);backdrop-filter:blur(3px);color:#334155;text-align:center}.viewLoadingState.isError{color:#991b1b;background:rgba(254,242,242,.96)}.viewLoadingState span{max-width:560px}.viewLoadingSpinner{width:30px;height:30px;border:3px solid #bfdbfe;border-top-color:#2563eb;border-radius:50%;animation:startupSpin .8s linear infinite}
/* Compact assignment result KPIs */
.assignmentResultSummary{display:flex;flex-wrap:wrap;gap:6px}.assignmentResultSummary span{display:grid;gap:1px;min-width:82px;padding:7px 9px;border:1px solid #dbe4f0;border-radius:10px;background:#f8fafc;color:#64748b;font-size:.63rem;font-weight:850;line-height:1.15}.assignmentResultSummary strong{color:#172033;font-size:.82rem;font-variant-numeric:tabular-nums}.assignmentResultSummary .pending{border-color:#fed7aa;background:#fff7ed;color:#9a3412}.assignmentResultSummary .pending strong{color:#9a3412}.assignmentResultSummary .complete{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.assignmentResultSummary .complete strong{color:#166534}
/* Assignment review: task, answer and correction stay together */
.assignmentReviewStatus{display:grid;justify-items:end;gap:5px}.assignmentReviewTask{display:grid;gap:11px;margin:12px 0;padding:16px;border:1px solid #dbe4f0;border-radius:16px;background:#fff}.assignmentReviewTask>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.assignmentReviewTask>header>div{display:grid;gap:4px}.assignmentReviewTask>header span:first-child{color:#64748b;font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.assignmentReviewTask h3,.assignmentReviewTask p{margin:0}.assignmentReviewTask>header p{color:#475569;font-size:.84rem}.assignmentReviewTask>.reviewAnswer{margin:0;padding:11px 12px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff}.assignmentReviewTask>.reviewAnswer p{margin:4px 0 0;font-size:.9rem}.assignmentReviewTask>small{color:#166534;font-weight:800}.assignmentReviewTask .reviewInputs{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px}.assignmentReviewTask .reviewInputs label{display:grid;gap:5px;font-weight:800}.assignmentReviewTask .reviewInputs input,.assignmentReviewTask .reviewInputs textarea{width:100%;box-sizing:border-box}.assignmentReviewFinish{display:grid;gap:12px;margin-top:16px;padding:16px;border:1px solid #99d8ca;border-radius:16px;background:#f0fdfa}.assignmentReviewFinish>label{display:grid;gap:6px;font-weight:850}.assignmentReviewFinish textarea{width:100%;box-sizing:border-box}.assignmentReviewFinish>div{display:flex;align-items:center;justify-content:space-between;gap:14px}.assignmentReviewFinish p{margin:0;color:#475569}.assignmentReviewFinish .btn{white-space:nowrap}@media(max-width:680px){.assignmentReviewStatus{justify-items:start}.assignmentReviewTask>header,.assignmentReviewFinish>div{display:grid}.assignmentReviewTask .reviewInputs{grid-template-columns:1fr}.assignmentReviewFinish .btn{width:100%}}
.assignmentReviewTask .reviewInputs textarea{min-height:118px}
.assignmentResultsCard{width:min(1080px,calc(100vw - 32px));max-width:1080px}.assignmentResultsCard .sectionHeader label{display:grid;gap:5px;font-weight:800}.assignmentResultsCard select{border:1px solid #cbd5e1;border-radius:10px;padding:8px;background:#fff}.assignmentResultsTable{width:100%;border-collapse:collapse}.assignmentResultsTable th,.assignmentResultsTable td{padding:10px;border-bottom:1px solid #e2e8f0;text-align:left}.assignmentResultsTable th{font-size:.78rem;text-transform:uppercase;color:#64748b}@media print{body:has(.assignmentResultsOverlay) *{visibility:hidden}.assignmentResultsOverlay,.assignmentResultsOverlay *{visibility:visible}.assignmentResultsOverlay{position:absolute;inset:0;background:#fff;padding:0}.assignmentResultsCard{box-shadow:none;border:0;width:100%;max-width:none}.assignmentResultsCard .financeInvoiceReviewClose,.assignmentResultsCard .actionRow,.assignmentResultsCard select{display:none}}
/* Logged-out access mode switch */
.authModeSwitch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:20px 0 16px;padding:5px;border:1px solid #dbe4f0;border-radius:16px;background:#f1f5f9}.authModeButton{min-height:48px;border:1px solid transparent;border-radius:12px;padding:10px 14px;background:transparent;color:#475569;font:inherit;font-weight:900;cursor:pointer;transition:.15s ease}.authModeButton:hover{background:#fff;color:#1d4ed8}.authModeButton.active,.authModeButton[aria-selected="true"]{border-color:#bfdbfe;background:#fff;color:#1d4ed8;box-shadow:0 3px 10px rgba(15,23,42,.08)}.authModePanel{display:grid;gap:10px}.authModePanel .demoForm{margin:0;gap:12px}.authModePanel .demoForm h3,.authModePanel .demoForm .helper{margin:0}.authModeLink{justify-self:start;border:0;background:transparent;padding:4px 0;color:#1d4ed8;font:inherit;font-weight:850;text-align:left;text-decoration:underline;cursor:pointer}.authModeLink:hover{color:#1e3a8a}@media(max-width:520px){.authModeSwitch{grid-template-columns:1fr}.authModeButton{min-height:44px}.authModePanel .btn{width:100%}}
.campBudgetApprovalPdfExport{background:#fff!important;color:#172033!important}.campBudgetApprovalPdfExport .campBudgetApprovalSection,.campBudgetApprovalPdfExport .campBudgetApprovalPosition,.campBudgetApprovalPdfExport .campBudgetApprovalLeaderList>article,.campBudgetApprovalPdfExport .campBudgetApprovalSignatures figure{break-inside:avoid}
.campBudgetApprovalPdfDocument{width:1120px;background:#cbd5e1}.campBudgetPdfPage{box-sizing:border-box;display:grid;grid-template-rows:auto 1fr auto;width:1120px;height:792px;padding:34px 42px 25px;overflow:hidden;background:#fff;color:#172033;font-family:Inter,Arial,sans-serif}.campBudgetPdfPage>header{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;padding-bottom:15px;border-bottom:3px solid #0f766e}.campBudgetPdfPage>header>div:first-child{display:flex;gap:14px;align-items:center}.campBudgetPdfPage>header>div:first-child>span{padding:7px 10px;border-radius:8px;background:#dff4ef;color:#087364;font-size:12px;font-weight:950;text-transform:uppercase}.campBudgetPdfPage h1{margin:0;font-size:27px;line-height:1}.campBudgetPdfPage>header>div:last-child{display:grid;justify-items:end;max-width:52%;text-align:right}.campBudgetPdfPage>header>div:last-child strong{font-size:16px}.campBudgetPdfPage>header small{margin-top:4px;color:#64748b;font-size:11px}.campBudgetPdfPage>main{min-height:0;padding-top:17px}.campBudgetPdfPage>footer{display:flex;justify-content:space-between;gap:20px;padding-top:10px;border-top:1px solid #cbd5e1;color:#64748b;font-size:10px}.campBudgetPdfStats{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:10px}.campBudgetPdfStats>span,.campBudgetPdfFacts>span{display:grid;gap:3px;padding:9px 11px;border:1px solid #dbe5e4;border-radius:9px;background:#f8fafc}.campBudgetPdfStats small,.campBudgetPdfFacts small,.campBudgetPdfApprovalGrid small,.campBudgetPdfSignature small,.campBudgetPdfHash small{color:#64748b;font-size:9px;font-weight:900;text-transform:uppercase}.campBudgetPdfStats strong{font-size:13px}.campBudgetPdfFacts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.campBudgetPdfFacts>span{display:flex;justify-content:space-between;align-items:center}.campBudgetPdfTable{width:100%;table-layout:fixed;border-collapse:collapse;font-size:11px}.campBudgetPdfTable col{width:auto}.campBudgetPdfTable th{padding:8px 9px;background:#0f766e;color:#fff;text-align:left;font-size:9px;text-transform:uppercase;letter-spacing:.025em}.campBudgetPdfTable th:first-child{border-radius:7px 0 0}.campBudgetPdfTable th:last-child{border-radius:0 7px 0 0}.campBudgetPdfTable td{padding:7px 9px;border-bottom:1px solid #e2e8f0;vertical-align:top;line-height:1.22;overflow-wrap:anywhere}.campBudgetPdfTable tbody tr:nth-child(even){background:#f8fafc}.campBudgetPdfTable td.money,.campBudgetPdfTable th:last-child{text-align:right;white-space:nowrap}.campBudgetPdfTable td small{display:block;margin-top:3px;color:#64748b;font-size:9px}.campBudgetPdfTable[style] th:nth-child(1),.campBudgetPdfTable[style] td:nth-child(1){width:var(--pdf-col-1,auto)}.campBudgetPdfTotals{display:flex;justify-content:flex-end;gap:20px;margin-top:13px;font-size:11px}.campBudgetPdfTotals span{padding:8px 10px;border-radius:7px;background:#f1f5f9}.campBudgetPdfTotals strong{margin-left:5px}.campBudgetPdfGrandTotal{display:flex;justify-content:flex-end;gap:14px;margin-top:13px;padding:10px 12px;border-radius:8px;background:#ecfdf5;font-size:13px;font-weight:800}.campBudgetPdfTag{display:inline-flex;padding:4px 7px;border-radius:999px;background:#dcfce7;color:#166534;font-size:9px;font-weight:900}.campBudgetPdfTag.expense{background:#fee2e2;color:#991b1b}.campBudgetPdfApprovalGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.campBudgetPdfApprovalGrid section{display:grid;gap:5px;padding:18px;border:1px solid #dbe5e4;border-radius:12px;background:#f8fafc}.campBudgetPdfApprovalGrid strong{font-size:22px}.campBudgetPdfApprovalGrid p{margin:0;color:#64748b;font-size:11px}.campBudgetPdfSignature{display:grid;gap:10px;margin-top:18px;padding:16px;border:1px solid #dbe5e4;border-radius:12px}.campBudgetPdfSignature img{width:100%;height:205px;object-fit:contain}.campBudgetPdfHash{display:grid;gap:5px;margin-top:14px;padding:12px;border-radius:9px;background:#f1f5f9}.campBudgetPdfHash code{overflow-wrap:anywhere;font-size:10px}
.campBudgetPdfCompactApproval{margin-top:12px;padding-top:9px;border-top:2px solid #0f766e}.campBudgetPdfCompactApprovalTitle{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.campBudgetPdfCompactApprovalTitle>strong{font-size:13px}.campBudgetPdfCompactApprovalTitle>span{padding:4px 7px;border-radius:999px;background:#dcfce7;color:#166534;font-size:8px;font-weight:900;text-transform:uppercase}.campBudgetPdfCompactApproval>div:last-child{display:grid;grid-template-columns:16% 16% 25% 43%;min-height:60px;border:1px solid #dbe5e4;border-radius:9px;overflow:hidden}.campBudgetPdfCompactApproval>div:last-child>span{display:grid;align-content:center;gap:3px;padding:7px 9px;border-right:1px solid #dbe5e4;background:#f8fafc}.campBudgetPdfCompactApproval>div:last-child>span:last-child{border-right:0}.campBudgetPdfCompactApproval small{color:#64748b;font-size:7px;font-weight:900;text-transform:uppercase}.campBudgetPdfCompactApproval strong{font-size:11px}.campBudgetPdfCompactApproval .signature{grid-template-columns:auto 1fr;align-items:center}.campBudgetPdfCompactApproval .signature small{grid-column:1}.campBudgetPdfCompactApproval .signature img{grid-column:2;width:100%;height:44px;object-fit:contain}.campBudgetPdfCompactApproval .hash code{overflow-wrap:anywhere;font-size:8px;line-height:1.2}
.campBudgetApprovalPrintDocument{display:none}@media print{body.campBudgetPrintMode{margin:0!important;background:#fff!important}body.campBudgetPrintMode *{visibility:hidden!important}body.campBudgetPrintMode .campBudgetApprovalPrintDocument,body.campBudgetPrintMode .campBudgetApprovalPrintDocument *{visibility:visible!important}.campBudgetPrintMode .campBudgetApprovalPrintDocument{display:block!important;position:absolute!important;inset:0!important;width:297mm!important;background:#fff!important}.campBudgetPrintMode .campBudgetPdfPage{display:grid!important;width:297mm!important;height:210mm!important;padding:9mm 11mm 6.5mm!important;overflow:hidden!important;break-after:page!important;page-break-after:always!important}.campBudgetPrintMode .campBudgetPdfPage:last-child{break-after:auto!important;page-break-after:auto!important}}
