@import url("/fleet-workspace.css");
.appointment-history-toggle{display:flex;align-items:center;gap:8px;min-height:38px;padding:7px 11px;border:1px solid #c3d0df;border-radius:9px;background:#f7f9fc;color:#24364e;font-weight:700;white-space:nowrap;cursor:pointer}
.appointment-history-toggle input{width:17px;height:17px;accent-color:#2f459f;margin:0}
.scheduler-event.scheduler-deleted-event{background:#e1e5eb!important;color:#445268!important;border:2px dashed #8190a4!important;box-shadow:none;cursor:pointer;opacity:.88}
.scheduler-deleted-event>span{text-decoration:line-through}.scheduler-deleted-event>small{font-weight:800}.scheduler-deleted-event:focus-visible{outline:3px solid #2f459f;outline-offset:2px;opacity:1}
:root {
  --brand-blue: #2f459f;
  --brand-blue-dark: #24377e;
  --brand-cyan: #08a4df;
  --brand-cyan-soft: #e8f7fd;
  --ink: #182033;
  --muted: #6b7280;
  --line: #dfe4ec;
  --canvas: #f4f6f9;
  --white: #fff;
  --danger: #d94b5b;
  --warning: #e2a52b;
  --success: #188b67;
  --sidebar: 236px;
  font-family: "Segoe UI", Arial, sans-serif;
  color: var(--ink);
  background: var(--canvas);
}

/* 2.51.36: Terminplaner controls use one deterministic, non-jumping composition. */
.appointment-page .appointment-toolbar {
  grid-template-columns: minmax(330px, 390px) minmax(0, 1fr);
  grid-template-areas: "week main";
  gap: 10px;
  align-items: center;
}
.appointment-page .appointment-week-context { grid-area: week; min-width: 0; display: grid; gap: 4px; align-content: center; }
.appointment-page .appointment-week-overview,
.appointment-page .appointment-week-main { min-width: 0; display: flex; align-items: center; gap: 6px; }
.appointment-page .appointment-week-overview strong { margin-right: auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.appointment-page .appointment-week-overview span { padding: 3px 6px; border-radius: 999px; color: #52617a; background: #eef4fa; font-size: 9px; white-space: nowrap; }
.appointment-page .appointment-week-overview span b { color: #173b76; }
.appointment-page .appointment-week-main .appointment-today-button { min-width: 68px; min-height: 36px; }
.appointment-page .appointment-week-main .appointment-history-toggle { width: auto; min-height: 36px; }
.appointment-page .appointment-calendar-zoom { width: auto; display: inline-grid; grid-template-columns: 36px 52px 36px; align-items: center; overflow: hidden; border: 1px solid #bdcbd9; border-radius: 8px; background: #fff; }
.appointment-page .appointment-calendar-zoom button { min-height: 34px; border: 0; border-radius: 0; color: #173b76; background: #edf5fc; font-size: 20px; font-weight: 900; cursor: pointer; }
.appointment-page .appointment-calendar-zoom span { text-align: center; color: #52617a; font-size: 10px; font-weight: 850; }
.appointment-page .appointment-date-field { width: min(190px, 100%); }
.appointment-page .appointment-date-field input { width: 100%; }
.appointment-page .appointment-toolbar-main { grid-area: main; min-width: 0; display: grid; grid-template-columns: minmax(120px, 145px) minmax(190px, 240px) minmax(0, 1fr); gap: 8px; align-items: center; }
.appointment-page .appointment-toolbar-main > #appointment-instructor-picker { width: 100%; min-width: 0; align-self: center; }
.appointment-page .appointment-toolbar-main > .appointment-view-toggle { align-self: center; }
.appointment-page .appointment-toolbar-actions { min-width: 0; justify-content: flex-end; }
@media (max-width: 1500px) {
  .appointment-page .appointment-toolbar { grid-template-columns: minmax(320px, 370px) minmax(0, 1fr); grid-template-areas: "week main"; }
  .appointment-page .appointment-toolbar-main { grid-template-columns: minmax(112px, 132px) minmax(175px, 215px) minmax(0, 1fr); }
  .appointment-page .appointment-toolbar-actions { display: grid; grid-template-columns: repeat(2, max-content); justify-content: end; gap: 5px; }
}
@media (max-width: 1050px) {
  .appointment-page .appointment-toolbar { grid-template-columns: 1fr; grid-template-areas: "week" "main"; }
}
@media (max-width: 760px) {
  .appointment-page .appointment-toolbar-main { grid-template-columns: 1fr; }
  .appointment-page .appointment-toolbar-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); justify-content: stretch; }
  .appointment-page .appointment-toolbar-actions .button { width: 100%; }
  .appointment-page .appointment-week-overview { flex-wrap: wrap; }
  .appointment-page .appointment-week-overview strong { flex-basis: 100%; }
}

/* Zentrale Konflikt- und Hinweisauslöser */
.conflict-trigger-settings { display: grid; gap: 16px; }
.conflict-trigger-metrics { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); gap: 10px; }
.conflict-trigger-metrics > span { display: flex; align-items: baseline; gap: 8px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft, #f6f8fc); color: var(--muted); }
.conflict-trigger-metrics strong { font-size: 1.25rem; color: var(--ink); }
.conflict-trigger-metrics .conflict { border-color: #f0b8c0; background: #fff5f6; }
.conflict-trigger-metrics .hint { border-color: #f2d58d; background: #fff9eb; }
.conflict-trigger-legend { display: flex; flex-wrap: wrap; gap: 10px 18px; padding: 10px 14px; border-radius: 10px; background: #f3f7fc; color: var(--muted); font-size: .82rem; }
.conflict-trigger-legend span { display: inline-flex; align-items: center; gap: 6px; }
.conflict-trigger-legend b { display: grid; place-items: center; min-width: 21px; height: 21px; border-radius: 50%; background: #fff; color: var(--brand-blue); }
.conflict-trigger-categories { display: grid; gap: 10px; }
.conflict-trigger-category { overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: var(--surface, #fff); }
.conflict-trigger-category > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; cursor: pointer; background: #f5f8fc; list-style: none; }
.conflict-trigger-category > summary::-webkit-details-marker { display: none; }
.conflict-trigger-category > summary::before { content: "›"; font-size: 1.4rem; color: var(--brand-blue); transition: transform .18s ease; }
.conflict-trigger-category[open] > summary::before { transform: rotate(90deg); }
.conflict-trigger-category > summary > span { flex: 1; display: grid; gap: 2px; }
.conflict-trigger-category > summary small { color: var(--muted); font-weight: 400; }
.conflict-trigger-category > summary > b { white-space: nowrap; font-size: .78rem; color: var(--muted); }
.conflict-trigger-category > div { display: grid; gap: 8px; padding: 10px; }
.conflict-trigger-card { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px; border: 1px solid #dde4ee; border-radius: 11px; background: #fff; }
.conflict-trigger-card.inactive { opacity: .68; background: #f6f7f9; }
.conflict-trigger-severity { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; font-weight: 800; }
.conflict-trigger-severity.conflict { color: #a91f32; background: #ffe9ec; }
.conflict-trigger-severity.hint { color: #805900; background: #fff0bf; }
.conflict-trigger-copy { min-width: 0; display: grid; gap: 4px; }
.conflict-trigger-copy > div { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.conflict-trigger-copy p { margin: 0; color: var(--muted); }
.conflict-trigger-copy small { color: var(--brand-blue); font-weight: 700; }
.conflict-trigger-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 6px; }
.conflict-trigger-actions > span { color: var(--muted); font-size: .78rem; white-space: nowrap; }
.conflict-trigger-record-builder { margin: 0; padding: 14px; border: 1px solid #b9d7ec; border-radius: 12px; background: #f2f9fd; }
.conflict-trigger-record-builder legend { padding: 0 7px; color: var(--brand-blue); font-weight: 800; }
.conflict-trigger-form { width: min(820px, calc(100vw - 40px)); }
.conflict-trigger-results { margin-top: 2px; border-color: #b9d7ec; }
.conflict-trigger-issue-list { max-height: 420px; overflow: auto; }
.conflict-trigger-issue { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; align-items: start; padding: 11px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.conflict-trigger-issue > span { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; font-weight: 900; }
.conflict-trigger-issue.conflict > span { color: #a91f32; background: #ffe9ec; }
.conflict-trigger-issue.hint > span { color: #805900; background: #fff0bf; }
.conflict-trigger-issue > div { display: grid; gap: 3px; min-width: 0; }
.conflict-trigger-issue small { color: var(--muted); line-height: 1.35; }
.conflict-trigger-issue em { color: var(--brand-blue); font-size: .76rem; font-style: normal; font-weight: 700; }
.status-pill.protected { background: #edf1f7; color: #5d6878; }
.appointment-hint-summary { margin-top: 10px; border: 1px solid #efd487; border-radius: 12px; background: #fffaf0; }
.appointment-hint-summary > summary { display: flex; align-items: center; gap: 10px; padding: 12px 14px; cursor: pointer; }
.appointment-hint-summary > summary > span:last-child { margin-left: auto; color: var(--muted); font-size: .8rem; }
.appointment-hint-summary > div { display: grid; gap: 8px; padding: 0 10px 10px; }
.appointment-hint-icon { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #f6c957; color: #5d4300; font-weight: 800; }
.appointment-conflict-row.is-hint { border-color: #efd487; background: #fffdf7; }
.appointment-conflict-row.is-hint .appointment-conflict-icon { background: #f6c957; color: #5d4300; }

@media (max-width: 900px) {
  .conflict-trigger-metrics { grid-template-columns: repeat(2, minmax(120px, 1fr)); }
  .conflict-trigger-card { grid-template-columns: 32px minmax(0, 1fr); }
  .conflict-trigger-actions { grid-column: 2; justify-content: flex-start; }
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 0; background: var(--canvas); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

.auth-gate { position: fixed; inset: 0; padding: 24px; display: grid; place-items: center; z-index: 1000; background: radial-gradient(circle at 18% 12%, rgba(8,164,223,.2), transparent 32%), linear-gradient(145deg, #172451, #2f459f 58%, #087da8); }
.auth-card { width: min(520px, 100%); overflow: hidden; border-radius: 18px; background: #fff; box-shadow: 0 28px 80px rgba(8,16,46,.38); }
.auth-card > header { padding: 25px 28px 20px; display: grid; grid-template-columns: 140px minmax(0,1fr); gap: 22px; align-items: center; border-bottom: 1px solid var(--line); }
.auth-card > header img { width: 140px; height: 85px; object-fit: contain; }
.auth-card > header span { color: var(--brand-cyan); font-size: 9px; font-weight: 900; letter-spacing: .12em; }
.auth-card > header h1 { margin: 5px 0 4px; color: var(--brand-blue-dark); font-size: 24px; }
.auth-card > header p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.auth-form { padding: 24px 28px 28px; display: grid; gap: 15px; }
.auth-form label { display: grid; gap: 6px; color: var(--ink); font-size: 11px; font-weight: 850; }
.auth-form input { min-height: 44px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 9px; outline: none; font-size: 14px; font-weight: 600; }
.auth-form input:focus { border-color: var(--brand-cyan); box-shadow: 0 0 0 4px rgba(8,164,223,.13); }
.auth-form label small { color: var(--muted); font-size: 9px; font-weight: 600; }
.auth-form .auth-remember-row { min-height: 54px; padding: 10px 12px; grid-template-columns: 20px minmax(0,1fr); gap: 10px; align-items: start; border: 1px solid #d8e1f2; border-radius: 10px; background: #f8faff; cursor: pointer; }
.auth-form .auth-remember-row input { width: 18px; min-height: 18px; margin: 2px 0 0; padding: 0; accent-color: var(--brand-blue); }
.auth-form .auth-remember-row span { display: grid; gap: 3px; }
.auth-form .auth-remember-row strong { color: var(--brand-blue-dark); font-size: 11px; }
.auth-form .auth-remember-row small { color: var(--muted); font-size: 9px; line-height: 1.45; }
.auth-form .button { min-height: 44px; margin-top: 3px; }
.auth-message { min-height: 38px; padding: 9px 11px; border-radius: 8px; color: #31556a; background: var(--brand-cyan-soft); font-size: 10px; line-height: 1.45; }
.auth-message.error { color: #9f2d36; background: #fff0f2; }
.auth-card > footer { padding: 12px 28px; display: flex; justify-content: space-between; gap: 20px; color: #cbd5f8; background: var(--brand-blue-dark); font-size: 9px; }
.auth-card > footer span:first-child { color: #fff; font-weight: 850; }
.account-dialog { min-width: min(540px, 90vw); }
.account-user { margin: 15px 0; padding: 14px; display: flex; gap: 12px; align-items: center; border: 1px solid var(--line); border-radius: 10px; background: #f8f9fc; }
.account-user > span { width: 48px; height: 48px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; color: #fff; background: var(--brand-blue); font-weight: 850; }
.account-user strong, .account-user small, .account-user b { display: block; }
.account-user small { margin: 3px 0; color: var(--muted); }
.account-user b { color: var(--brand-cyan); font-size: 9px; text-transform: uppercase; letter-spacing: .06em; }
.account-user em { display: inline-block; margin-top: 6px; padding: 4px 7px; border-radius: 6px; color: #7a5600; background: #fff2c7; font-size: 10px; font-style: normal; font-weight: 800; }
.superadmin-view-switch { margin: 14px 0; padding: 14px; display: grid; grid-template-columns: minmax(0,1fr) minmax(190px, .75fr); gap: 10px 14px; align-items: end; border: 1px solid #dfc270; border-radius: 10px; background: #fffaf0; }
.superadmin-view-switch > div { grid-column: 1 / -1; display: grid; gap: 4px; }
.superadmin-view-switch > div span { color: var(--muted); font-size: 11px; line-height: 1.45; }
.superadmin-view-switch label { display: grid; gap: 5px; color: #172451; font-weight: 800; }
.superadmin-view-switch select { width: 100%; }
.user-button.view-as-active { padding: 5px 8px; border: 1px solid #dfc270; border-radius: 9px; background: #fffaf0; }
@media (max-width: 640px) {
  .superadmin-view-switch { grid-template-columns: 1fr; }
  .superadmin-view-switch > div { grid-column: auto; }
}
.account-security-note { padding: 12px; display: grid; gap: 3px; border-left: 4px solid var(--success); color: #31556a; background: #edf8f4; font-size: 10px; }
.auth-admin-card { padding: 14px; display: flex; align-items: center; gap: 15px; border-color: #c7d5ef; background: linear-gradient(100deg, #f6f8ff, #fff); }
.auth-admin-card > div:first-child { min-width: 260px; display: flex; align-items: center; gap: 12px; }
.auth-admin-card h2 { margin: 0; font-size: 15px; }
.auth-admin-card p { margin: 3px 0 0; color: var(--muted); font-size: 10px; }
.auth-admin-icon { width: 36px; height: 36px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; color: var(--success); background: #e7f6ef; box-shadow: inset 0 0 0 1px #bee8d6; }
.auth-admin-metrics { margin-left: auto; display: flex; flex-wrap: wrap; gap: 7px; }
.auth-admin-metrics span { min-height: 30px; padding: 6px 9px; display: inline-flex; align-items: center; gap: 4px; border: 1px solid var(--line); border-radius: 7px; color: var(--muted); background: #fff; font-size: 9px; font-weight: 750; }
.auth-admin-metrics span.secure { color: #0f6c4a; border-color: #bde6d6; background: #edfaf5; }
.auth-admin-metrics span.warning { color: #9a6410; border-color: #f0d7a9; background: #fff8e9; }
.modal.modal-user-access { width: min(760px, calc(100vw - 32px)); min-width: min(500px, calc(100vw - 16px)); max-width: calc(100vw - 16px); height: auto; min-height: 0; }
.modal.modal-user-access .user-access-dialog { min-width: 0; }
.user-access-once { min-width: min(650px, 90vw); }
.user-access-status { margin: 14px 0; display: grid; grid-template-columns: auto repeat(3, minmax(140px,1fr)); gap: 8px; align-items: stretch; }
.user-access-status > div { padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: #f8f9fb; }
.user-access-status small, .user-access-status strong { display: block; }
.user-access-status small { color: var(--muted); font-size: 8px; text-transform: uppercase; letter-spacing: .04em; }
.user-access-status strong { margin-top: 2px; font-size: 10px; }
.security-callout { padding: 12px; display: grid; gap: 4px; border-left: 4px solid var(--brand-cyan); color: #31556a; background: var(--brand-cyan-soft); font-size: 10px; line-height: 1.45; }
.security-callout.warning { border-left-color: var(--warning); color: #755315; background: #fff8e9; }
.user-access-once > label { margin-top: 14px; display: grid; gap: 5px; font-size: 10px; font-weight: 850; }
.user-access-once > label > input, .one-time-password input { min-height: 42px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 8px; background: #f8f9fb; font-weight: 750; }
.one-time-password { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; }
.one-time-password input { color: var(--brand-blue-dark); background: #edf0ff; font-family: Consolas, monospace; font-size: 18px; letter-spacing: .08em; text-align: center; }
.password-field { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; align-items: center; }
.one-time-password.password-field { grid-template-columns: minmax(0, 1fr) auto auto; }
.password-eye { min-width: 38px; min-height: 38px; padding: 6px 9px; color: var(--brand-blue-dark); font-size: 18px; line-height: 1; }
.bulk-password-field input { min-width: 210px; font-family: Consolas, monospace; font-weight: 800; letter-spacing: .04em; }
.bulk-access-options, .user-access-options { margin-top: 12px; display: grid; gap: 8px; }
.bulk-access-result-toolbar { margin: 11px 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.user-record-link { padding: 0; display: grid; gap: 2px; border: 0; color: inherit; background: transparent; text-align: left; cursor: pointer; }
.user-record-link:hover strong { color: var(--brand-blue); text-decoration: underline; }
.user-access-once ol { padding-left: 20px; color: var(--muted); font-size: 10px; line-height: 1.6; }
.bulk-access-users { max-height: min(52vh, 520px); margin-top: 12px; padding: 4px; display: grid; gap: 6px; overflow: auto; border: 1px solid var(--line); border-radius: 10px; background: #f7f9fc; }
.bulk-access-toolbar { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 7px; }
.bulk-access-user { padding: 9px 10px; display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 9px; align-items: center; border: 1px solid #e0e5ee; border-radius: 8px; background: #fff; cursor: pointer; }
.bulk-access-user:hover { border-color: #aebbe0; background: #f8f9ff; }
.bulk-access-user span { min-width: 0; display: grid; gap: 2px; }
.bulk-access-user strong, .bulk-access-user small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bulk-access-user small { color: var(--muted); }
.bulk-access-user em { font-style: normal; }
.bulk-access-result { width: min(980px, 90vw); }
.bulk-access-result code { font-size: 11px; font-weight: 800; color: var(--brand-blue-dark); }
.auth-admin-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.password-reset-request-panel { width: min(760px, 90vw); }
.password-reset-request-panel > p { color: var(--muted); }
.password-reset-request-list { max-height: min(55vh, 540px); display: grid; gap: 8px; overflow: auto; }
.password-reset-request { padding: 11px; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px 12px; align-items: center; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.password-reset-request > div:first-child { min-width: 0; display: grid; gap: 2px; }
.password-reset-request > div:first-child small { color: var(--muted); }
.password-reset-request-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.auth-message.success a.button { margin-top: 10px; color: #fff; text-decoration: none; background: var(--brand-blue); }
@media (max-width: 920px) {
  .auth-admin-card { align-items: stretch; flex-wrap: wrap; }
  .auth-admin-metrics { width: 100%; margin-left: 0; }
  .password-reset-request { grid-template-columns: 1fr; }
  .password-reset-request-actions { grid-column: 1; justify-content: stretch; }
  .password-reset-request-actions .button { flex: 1 1 180px; }
}
@media (max-width: 650px) {
  .user-access-status { grid-template-columns: 1fr; }
}
@media (max-width: 580px) {
  .auth-gate { padding: 10px; }
  .auth-card > header { grid-template-columns: 1fr; text-align: center; }
  .auth-card > header img { margin: auto; }
  .auth-card > footer { display: grid; }
}

.app-shell { min-height: 100vh; display: grid; grid-template-columns: var(--sidebar) minmax(0, 1fr); }
.sidebar { position: fixed; inset: 0 auto 0 0; width: var(--sidebar); display: flex; flex-direction: column; color: #fff; background: linear-gradient(180deg, var(--brand-blue-dark), #1b285c); z-index: 30; }
.brand-card { height: 112px; padding: 20px 22px 12px; background: #fff; border-right: 1px solid var(--line); }
.brand-card img { width: 164px; height: 70px; object-fit: contain; object-position: left center; display: block; }
.brand-card span { color: var(--brand-blue); text-transform: uppercase; letter-spacing: .16em; font-weight: 800; font-size: 10px; position: relative; top: -6px; left: 2px; }
.nav-list { width: 100%; padding: 14px 12px; display: grid; gap: 4px; overflow-x: hidden; overflow-y: auto; }
.nav-item { width: 100%; border: 0; border-radius: 9px; padding: 11px 13px; display: flex; align-items: center; gap: 11px; color: #dce4ff; background: transparent; text-align: left; font-weight: 650; }
.nav-item span { width: 23px; font-size: 19px; color: #91a7ef; text-align: center; }
.nav-item:hover { background: rgba(255,255,255,.08); }
.nav-item.active { color: #fff; background: linear-gradient(90deg, rgba(8,164,223,.42), rgba(8,164,223,.15)); box-shadow: inset 3px 0 0 var(--brand-cyan); }
.nav-item.active span { color: #fff; }
.sidebar-footer { margin-top: auto; padding: 14px 18px; display: grid; gap: 10px; align-items: center; border-top: 1px solid rgba(255,255,255,.1); background: rgba(0,0,0,.09); }
.normal-sidebar-state { min-width: 0; display: flex; gap: 10px; align-items: center; }
.sidebar-footer strong, .sidebar-footer span { display: block; }
.sidebar-footer strong { font-size: 12px; }
.ki-system-state[role="button"] { cursor: pointer; border-radius: 10px; }
.ki-system-state[role="button"]:focus-visible { outline: 2px solid #8ed6ff; outline-offset: 3px; }
.active-users-popover { position: fixed; z-index: 2147482400; left: 18px; bottom: 70px; width: min(330px,calc(100vw - 36px)); overflow: hidden; border: 1px solid #c9d9e7; border-radius: 14px; background: #fff; color: #18304a; box-shadow: 0 18px 48px rgb(8 31 55 / 28%); }
.active-users-popover header { padding: 13px 14px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #dce6ef; }
.active-users-popover header strong,.active-users-popover header small { display: block; }
.active-users-popover header small,.active-users-popover article small { margin-top: 2px; color: #65798c; }
.active-users-popover header button { width: 32px; height: 32px; border: 1px solid #c9d8e6; border-radius: 9px; background: #fff; color: #29465f; font-size: 20px; }
.active-users-popover > div { max-height: 320px; padding: 8px; overflow: auto; }
.active-users-popover article { padding: 9px; display: flex; align-items: center; gap: 10px; border-radius: 9px; }
.active-users-popover article > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: #e9f3ff; color: #1e5da8; font-size: 11px; font-weight: 850; }
.sidebar-footer span { color: #aebbe7; font-size: 10px; margin-top: 2px; }
.live-dot { width: 9px; height: 9px; flex: 0 0 auto; border-radius: 50%; background: #38d39f; box-shadow: 0 0 0 4px rgba(56,211,159,.15); }

.workspace { grid-column: 2; width: auto; min-width: 0; overflow: visible; overflow-x: clip; }
.topbar { height: 82px; padding: 13px 24px; position: sticky; top: 0; display: flex; align-items: center; justify-content: space-between; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--line); z-index: 60; backdrop-filter: blur(10px); }
.topbar h1 { margin: 1px 0 0; font-size: 22px; letter-spacing: -.02em; }
.eyebrow { margin: 0; color: var(--brand-cyan); text-transform: uppercase; letter-spacing: .12em; font-weight: 800; font-size: 10px; }
.topbar-actions { display: flex; align-items: center; gap: 12px; }
.global-history-controls { display: inline-flex; align-items: center; overflow: hidden; border: 1px solid #d6e0e8; border-radius: 9px; background: #f7fafc; }
.global-history-button { min-width: 43px; height: 34px; padding: 3px 8px; display: grid; grid-template-columns: auto auto; place-content: center; align-items: center; gap: 4px; color: #617284; border: 0; border-right: 1px solid #d6e0e8; background: transparent; cursor: pointer; }
.global-history-button:last-child { border-right: 0; }
.global-history-button > span { font-size: 19px; line-height: 1; }
.global-history-button > small { font-size: 9px; font-weight: 800; }
.global-history-button.has-action { color: var(--brand-blue); background: #fff; }
.global-history-button.has-action:hover { color: #fff; background: var(--brand-blue); }
.global-history-button:disabled { color: #a8b2bd; cursor: not-allowed; opacity: .58; }
.ui-ribbon-button { min-height: 30px; padding: 6px 10px; color: #315169; border-color: #d6e0e8; background: #f7fafc; font-size: 10px; white-space: nowrap; }
.ui-ribbon-button:hover { color: var(--brand-blue); border-color: #aebdca; background: #fff; }
.app-version-badge { position: fixed; top: 4px; right: 8px; z-index: 70; color: #8793a4; font-size: 9px; font-weight: 800; letter-spacing: .04em; pointer-events: none; }
.ui-personal-hidden { display: none !important; }
.ui-personal-sticky { position: sticky !important; top: var(--ui-sticky-offset, 82px) !important; z-index: 50 !important; }

/* Direct layout editing: controls are part of the real section, not a separate list. */
[data-ui-editing] { padding-bottom: var(--ui-inline-footer-space, 150px) !important; }
[data-ui-editing] .ui-inline-block { position: relative !important; top: auto !important; min-width: 0; outline: 2px solid #6c9bd2; outline-offset: 2px; flex-wrap: wrap; }
[data-ui-editing] .ui-inline-block > .ui-inline-bar { grid-column: 1 / -1; flex: 1 0 100%; }
.ui-inline-bar { box-sizing: border-box; display: flex; align-items: center; flex-wrap: wrap; gap: 10px; min-width: 0; width: 100%; padding: 10px; margin: 0 0 12px; border: 1px solid #b9d2eb; border-radius: 9px; background: #edf5ff; color: #183c60; text-align: left; }
.ui-inline-move { display: flex; align-items: center; flex: 0 0 auto; gap: 5px; }
.ui-inline-bar .ui-inline-move .button { min-width: 38px; min-height: 38px; padding: 6px; font-size: 19px; line-height: 1; }
.ui-inline-bar .ui-inline-grip { cursor: grab; touch-action: pan-y; }
.ui-inline-title { flex: 1 1 160px; min-width: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 4px 9px; }
.ui-inline-title > strong { font-size: 14px; line-height: 1.4; overflow-wrap: anywhere; }
.ui-inline-rename { border: 0; padding: 5px 0; background: transparent; color: #245894; font-size: 11px; text-decoration: underline; cursor: pointer; }
.ui-inline-options { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 12px; margin-left: auto; }
.ui-inline-options label, .ui-inline-default { display: flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 650; cursor: pointer; }
.ui-inline-options input, .ui-inline-default input { width: 18px; height: 18px; flex: 0 0 18px; margin: 0; accent-color: #285db3; }
.ui-inline-label-field { display: grid; gap: 4px; flex-basis: 100%; min-width: 0; font-size: 11px; }
.ui-inline-label-field input { width: 100%; min-width: 0; box-sizing: border-box; padding: 8px; border: 1px solid #9ebcdd; border-radius: 6px; font-size: 14px; }
.ui-inline-summary { flex-wrap: wrap !important; }
.ui-inline-summary > .ui-inline-bar { flex-basis: 100%; }
.ui-inline-will-hide { outline-style: dashed !important; }
.ui-inline-will-hide > :not(.ui-inline-bar, summary) { opacity: .45; }
.ui-inline-dragging { opacity: .6; }
.ui-inline-footer { position: fixed; z-index: 95; bottom: 12px; left: var(--ui-inline-left, 16px); right: var(--ui-inline-right, 16px); display: flex; flex-wrap: wrap; align-items: center; gap: 12px; max-height: 45dvh; overflow: auto; padding: 14px 16px; border: 1px solid #a5bfdf; border-radius: 12px; background: #fff; box-shadow: 0 5px 28px #17365a30; }
.ui-inline-footer-copy { display: grid; flex: 1 1 320px; gap: 5px; min-width: 0; }
.ui-inline-footer-copy > strong { font-size: 15px; color: #173b59; }
.ui-inline-footer-copy > span, .ui-inline-footer-copy > small { font-size: 12px; line-height: 1.4; color: #4c637b; }
.ui-inline-footer-actions { display: flex; justify-content: flex-end; gap: 8px; margin-left: auto; }
.ui-inline-footer-actions .button { min-height: 42px; }
.ui-inline-default { padding-top: 4px; }
.ui-layout-editing #customize-current-view { background: #e7f1ff; outline: 2px solid #2d61b2; }
.ui-layout-editing :is(#settings-save-all, #settings-cancel-all) { visibility: hidden; }
.settings-page-shell[data-ui-editing] { height: auto !important; min-height: 0; display: block; overflow: visible; }
.settings-page-shell[data-ui-editing] > .settings-panel:not([hidden]) { position: static !important; height: auto; overflow: visible; padding-top: 18px; }
.settings-page-shell[data-ui-editing] > .settings-tabs { position: static; margin-bottom: 18px; }
[data-ui-editing] .ui-inline-block:focus-within { outline-color: #245b9e; }
[data-ui-inline-control] :is(button, input):focus-visible { outline: 3px solid #245b9e; outline-offset: 2px; }
@media (max-width: 600px) {
  .ui-inline-bar { gap: 8px; padding: 8px; }
  .ui-inline-title { flex-basis: calc(100% - 135px); }
  .ui-inline-options { flex-basis: 100%; padding-top: 4px; }
  .ui-inline-footer { padding: 10px 12px; bottom: 8px; gap: 8px; }
  .ui-inline-footer-copy { flex-basis: 100%; }
  .ui-inline-footer-actions { width: 100%; }
}
.language-switch { display: flex; align-items: center; gap: 7px; padding: 5px 7px 5px 10px; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--muted); font-size: 10px; font-weight: 800; }
.language-switch select { min-width: 86px; border: 0; outline: 0; background: transparent; color: var(--ink); font: inherit; font-size: 12px; cursor: pointer; }
.course-switch { display: grid; gap: 3px; color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.course-switch select { min-width: 210px; padding: 7px 28px 7px 9px; color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 8px; text-transform: none; letter-spacing: 0; font-weight: 650; }
.sync-state { display: flex; gap: 8px; align-items: center; color: var(--muted); font-size: 12px; font-weight: 650; }
.sync-state span { width: 8px; height: 8px; border-radius: 50%; background: #23ae7e; }
.user-button { display: flex; align-items: center; gap: 9px; border: 0; background: transparent; color: var(--ink); text-align: left; }
.user-button > span { width: 37px; height: 37px; display: grid; place-items: center; border-radius: 50%; background: var(--brand-blue); color: #fff; font-size: 12px; font-weight: 800; }
.user-button strong, .user-button small { display: block; }
.user-button strong { font-size: 12px; }
.user-button small { color: var(--muted); font-size: 10px; }

main { min-width: 0; padding: 18px 22px 28px; }
.page-section { min-width: 0; display: grid; gap: 16px; }
/* Shared layout guard: module content must shrink inside the workspace instead
   of crossing card borders when the navigation or a side panel is open. */
.page-section > *,
.card,
.card > *,
.card-header,
.card-header > *,
.form-grid,
.form-grid > *,
.form-field,
.form-field > * { min-width: 0; }
/* Inhaltstexte folgen softwareweit dem üblichen linksbündigen Lesefluss.
   Bewusst zentrierte Kennzahlen, Kalenderzellen, Statusfelder und Buttons
   behalten ihre spezifischeren Komponentenregeln. */
.page-section .card,
.settings-panel,
.drawer-body > section { text-align: left; }
.form-field :is(input, select, textarea),
.form-grid :is(input, select, textarea) { max-width: 100%; box-sizing: border-box; }
.card-header :is(h2, h3, p),
.form-field > span { overflow-wrap: anywhere; }
.toolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.toolbar .spacer { flex: 1; }
.people-page-compact .toolbar { position: relative; container-type: inline-size; }
.people-archive-toggle { position: static; z-index: 1; visibility: visible; min-height: 36px; display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.9); color: var(--ink); font-size: 12px; font-weight: 700; white-space: nowrap; backdrop-filter: blur(12px); }
.people-archive-toggle input { width: 16px; height: 16px; margin: 0; accent-color: var(--brand-blue); }
.people-archive-toggle.permission-fallback { position: static; visibility: visible; }
@media (max-width: 900px) {
  .people-archive-toggle { position: static; visibility: visible; }
}
@container (max-width: 900px) {
  .people-archive-toggle { position: static; visibility: visible; }
}
.workspace-tools { position:sticky; top:var(--ui-sticky-offset,72px); z-index:24; padding:8px 10px; border:1px solid #d8e2ee; border-radius:11px; background:rgba(248,251,255,.97); box-shadow:0 4px 14px rgba(24,45,75,.06); backdrop-filter:blur(8px); }
.workspace-filter-field { min-width:min(390px,100%); flex:1 1 280px; display:grid; gap:3px; color:#506577; font-size:.65rem; font-weight:800; letter-spacing:.035em; text-transform:uppercase; }
.workspace-filter-field input { width:100%; min-height:36px; padding:7px 10px; border:1px solid #cfdbe8; border-radius:8px; background:#fff; color:var(--ink); }
.workspace-tools > strong { color:#53687b; font-size:.76rem; white-space:nowrap; }
.workspace-tools .button { min-height:34px; }
.people-search { min-width: 360px; }
.people-page-compact .field-inline:has(#people-course-filter) { width: 307px; max-width: 100%; flex: 0 1 307px; }
.people-page-compact #people-archive-filter:disabled { opacity: 1; color: var(--ink); background: #fff; }
.people-course-picker { position: relative; width: 100%; }
.people-course-picker-source { 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; }
.people-course-picker-trigger { width: 100%; min-height: 41px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 11px; background: rgba(255,255,255,.88); color: var(--ink); font: inherit; text-align: left; box-shadow: 0 2px 9px rgba(28,52,82,.05); backdrop-filter: blur(12px); }
.people-course-picker-trigger:hover { border-color: #9db6cf; background: rgba(255,255,255,.96); }
.people-course-picker-trigger[aria-expanded="true"] { border-color: var(--brand-cyan); box-shadow: 0 0 0 3px rgba(8,164,223,.12), 0 12px 28px rgba(25,49,80,.12); }
.people-course-picker-trigger > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.people-course-picker-chevron { flex: 0 0 auto; color: #526b83; transition: transform .18s ease; }
.people-course-picker-trigger[aria-expanded="true"] .people-course-picker-chevron { transform: rotate(180deg); }
.people-course-picker-panel { position: absolute; z-index: 90; top: calc(100% + 7px); left: 0; width: min(430px, calc(100vw - 36px)); max-height: min(520px, 64vh); overflow: auto; padding: 8px; border: 1px solid rgba(179,198,218,.8); border-radius: 15px; background: rgba(247,251,255,.94); box-shadow: 0 22px 55px rgba(20,43,72,.22); backdrop-filter: blur(18px) saturate(125%); }
.people-course-picker.simple .people-course-picker-panel { width: max(100%, 210px); }
.people-course-picker-panel[hidden] { display: none; }
.people-course-picker-all,
.people-course-picker-option { width: 100%; min-height: 38px; display: flex; align-items: center; gap: 9px; padding: 8px 10px; border: 0; border-radius: 9px; background: transparent; color: var(--ink); font: inherit; text-align: left; }
.people-course-picker-all:hover,
.people-course-picker-option:hover { background: rgba(28,130,190,.10); }
.people-course-picker-option.selected,
.people-course-picker-all.selected { color: #fff; background: linear-gradient(135deg, var(--brand-blue), #1e78bb); box-shadow: 0 5px 14px rgba(35,82,165,.22); }
.people-course-picker-section { margin-top: 7px; padding-top: 7px; border-top: 1px solid rgba(181,200,219,.65); }
.people-course-picker-heading { display: block; padding: 5px 10px 6px; color: #526b83; font-size: 10px; font-weight: 850; letter-spacing: .055em; text-transform: uppercase; }
.people-course-picker-section .people-course-picker-option[data-kind="group"] { padding-left: 22px; }
.people-course-picker-section .people-course-picker-option[data-kind="group"]::before { content: "↳"; color: var(--brand-cyan); font-weight: 900; }
.field-inline { min-width: 150px; position: relative; }
.field-inline label { display: block; margin: 0 0 4px; color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.field-inline select, .field-inline input { min-height: 36px; width: 100%; padding: 7px 10px; color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 8px; outline: none; }
.field-inline select:focus, .field-inline input:focus { border-color: var(--brand-cyan); box-shadow: 0 0 0 3px rgba(8,164,223,.12); }
.button { min-height: 36px; border: 1px solid var(--line); border-radius: 8px; padding: 7px 12px; background: #fff; color: var(--ink); font-weight: 700; }
.button:hover { border-color: #bdc6d4; background: #f9fafb; }
.button.primary { color: #fff; background: var(--brand-blue); border-color: var(--brand-blue); }
.button.primary:hover { background: var(--brand-blue-dark); }
.button.cyan { color: #fff; background: var(--brand-cyan); border-color: var(--brand-cyan); }
.button.danger { color: var(--danger); }
.icon-button { width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); }

.metrics { display: grid; grid-template-columns: repeat(4, minmax(180px, 1fr)); gap: 12px; }
.dashboard-actions { display: flex; gap: 9px; flex-wrap: wrap; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(320px, .75fr); gap: 16px; }
.dashboard-alerts { padding: 8px 14px; display: grid; gap: 6px; }
.dashboard-alert { padding: 9px 0; display: flex; gap: 9px; align-items: flex-start; border-bottom: 1px solid var(--line); }
.dashboard-alert:last-child { border-bottom: 0; }
.dashboard-alert > span { width: 25px; height: 25px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; color: #fff; background: var(--warning); font-weight: 800; }
.dashboard-alert.error > span { background: var(--danger); }
.dashboard-alert strong, .dashboard-alert small { display: block; }
.dashboard-alert small { margin-top: 2px; color: var(--muted); }
.appointment-conflict-summary { width: 100%; }
.appointment-conflict-summary > summary { min-height: 36px; padding: 6px 10px; display: flex; justify-content: space-between; align-items: center; gap: 10px; cursor: pointer; color: #9f2d36; background: #fff3f4; border: 1px solid #f2c9cd; border-radius: 7px; list-style: none; }
.appointment-conflict-summary > summary::-webkit-details-marker { display: none; }
.appointment-conflict-summary > summary::before { content: "▸"; flex: 0 0 auto; color: #b63542; font-size: 13px; font-weight: 900; line-height: 1; transition: transform .15s ease; }
.appointment-conflict-summary[open] > summary::before { transform: rotate(90deg); }
.appointment-conflict-summary-title { min-width: 0; display: flex; align-items: center; gap: 9px; color: inherit !important; font-size: inherit !important; }
.appointment-conflict-summary-title b { min-width: 28px; height: 24px; padding: 0 7px; display: inline-grid; place-items: center; flex: 0 0 auto; color: #fff; background: #d84653; border-radius: 999px; font-size: 12px; line-height: 1; }
.appointment-conflict-summary-title strong { min-width: 0; }
.appointment-conflict-summary > summary span { color: var(--muted); font-size: 12px; font-weight: 700; }
.appointment-conflict-summary[open] > summary { margin-bottom: 5px; }
.appointment-conflict-summary > div { max-height: 320px; overflow: auto; }
.appointment-conflict-summary:not([open]) > div,
.appointment-hint-summary:not([open]) > div { display: none; }
.appointment-conflict-clear { min-height: 42px; padding: 9px 12px; display: flex; align-items: center; gap: 10px; color: #176c51; background: #eefaf6; border: 1px solid #bde6d7; border-radius: 9px; }
.appointment-conflict-clear > span { width: 22px; height: 22px; display: inline-grid; place-items: center; color: #fff; background: #1b8f6a; border-radius: 50%; font-weight: 900; }
.appointment-conflict-row { min-height: 70px; padding: 8px 10px; display: grid; grid-template-columns: 28px minmax(180px, 1fr) minmax(280px, .9fr) auto; gap: 10px; align-items: center; border-bottom: 1px solid var(--line); }
.appointment-conflict-row:last-child { border-bottom: 0; }
.appointment-conflict-icon { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--danger); font-weight: 850; }
.appointment-conflict-copy strong, .appointment-conflict-copy small { display: block; }
.appointment-conflict-copy small { margin-top: 3px; color: var(--muted); line-height: 1.35; }
.appointment-conflict-facts { display: grid; grid-template-columns: repeat(2, minmax(120px, 1fr)); gap: 8px; }
.appointment-conflict-facts span { min-width: 0; padding: 6px 8px; display: block; border: 1px solid #f0d9dc; border-radius: 7px; background: #fff8f8; }
.appointment-conflict-facts small, .appointment-conflict-facts strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.appointment-conflict-facts small { color: var(--muted); font-size: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.appointment-conflict-facts strong { margin-top: 2px; font-size: 10px; }
.appointment-conflict-jump { white-space: nowrap; border-color: #e6aeb5; color: #9f2d36; background: #fff; }
@keyframes appointment-conflict-focus { 0%, 100% { box-shadow: 0 0 0 3px rgba(217,75,91,.18); } 35%, 70% { box-shadow: 0 0 0 7px rgba(217,75,91,.48); } }
.appointment-conflict-focus { outline: 3px solid #d94b5b !important; outline-offset: 2px; animation: appointment-conflict-focus .75s ease-in-out 3; z-index: 12 !important; }
@media (max-width: 1050px) {
  .appointment-conflict-row { grid-template-columns: 28px minmax(0,1fr) auto; }
  .appointment-conflict-facts { grid-column: 2 / -1; grid-row: 2; }
}
.metric { padding: 14px 15px; display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--line); border-radius: 11px; box-shadow: 0 2px 7px rgba(25,33,50,.03); }
.metric-icon { width: 38px; height: 38px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 9px; color: var(--brand-blue); background: #edf0fb; font-size: 18px; }
.metric:nth-child(2) .metric-icon { color: #087da8; background: var(--brand-cyan-soft); }
.metric:nth-child(3) .metric-icon { color: #b47b10; background: #fff6df; }
.metric:nth-child(4) .metric-icon { color: var(--success); background: #e9f7f2; }
.metric strong, .metric span { display: block; }
.metric strong { font-size: 20px; line-height: 1; }
.metric span { margin-top: 4px; color: var(--muted); font-size: 11px; }
.metric.metric-drilldown { padding: 0; overflow: hidden; }
.metric.metric-drilldown > button { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 66px; padding: 14px 15px; color: inherit; text-align: left; background: transparent; border: 0; cursor: pointer; }
.metric.metric-drilldown > button:hover, .metric.metric-drilldown > button:focus-visible { background: #f4f7ff; outline: 2px solid rgba(47,69,159,.22); outline-offset: -2px; }
.metric.metric-drilldown small { display: block; margin-top: 3px; color: var(--brand-blue); font-size: 9px; font-weight: 800; }

.card { min-width: 0; background: #fff; border: 1px solid var(--line); border-radius: 11px; box-shadow: 0 2px 7px rgba(25,33,50,.03); }
.card-header { min-height: 49px; padding: 10px 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); }
.card-header h2 { margin: 0; font-size: 15px; }
.card-header p { margin: 3px 0 0; color: var(--muted); font-size: 11px; }
.legend { display: flex; gap: 7px; flex-wrap: wrap; }
.legend span { padding: 4px 7px; border-radius: 5px; font-size: 9px; font-weight: 800; }

.timeline-wrap { overflow: auto; max-height: calc(100vh - 320px); min-height: 390px; }
.timeline { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; font-size: 11px; }
.timeline th, .timeline td { height: 32px; padding: 0; border-right: 1px solid #e6eaf0; border-bottom: 1px solid #e6eaf0; text-align: center; }
.timeline thead th { position: sticky; top: 0; height: 48px; background: #f8f9fb; z-index: 8; font-size: 9px; color: var(--muted); }
.timeline thead th strong { display: block; margin-bottom: 2px; color: var(--ink); font-size: 11px; }
.timeline .weekend { background: #f0f2f5; color: #a5aab3; }
.timeline .today { box-shadow: inset 0 3px 0 var(--brand-cyan); }
.sticky-group { position: sticky; left: 0; width: 58px; min-width: 58px; background: #fff; z-index: 6; }
.sticky-participant { position: sticky; left: 58px; width: 208px; min-width: 208px; padding: 0 10px !important; background: #fff; text-align: left !important; z-index: 6; }
.sticky-teacher { position: sticky; left: 266px; width: 190px; min-width: 190px; padding: 0 10px !important; background: #fff; text-align: left !important; z-index: 6; box-shadow: 5px 0 8px rgba(18,29,48,.05); }
.timeline thead .sticky-group, .timeline thead .sticky-participant, .timeline thead .sticky-teacher { z-index: 12; background: #f3f5f8; }
.timeline .date-cell { width: 42px; min-width: 42px; }
.group-code { width: 34px; height: 34px; border: 0; border-radius: 9px; color: #fff; background: var(--brand-blue); font-weight: 900; }
.group-code:hover { background: var(--brand-cyan); }
.participant-name { font-weight: 700; }
.participant-meta { color: var(--muted); font-size: 9px; margin-top: 2px; }
.teacher-chip { display: inline-flex; align-items: center; gap: 5px; padding: 4px 7px; border-radius: 999px; color: var(--brand-blue-dark); background: #eef1fb; font-weight: 750; white-space: nowrap; }
.teacher-chip.team { color: #087da8; background: #e5f7fd; }
.teacher-chip.substitute { color: #9b6708; background: #fff2d4; }
.cell-button { width: 100%; height: 100%; padding: 0; border: 0; background: transparent; color: inherit; font-size: 10px; font-weight: 800; }
.cell-button:hover { box-shadow: inset 0 0 0 2px var(--brand-cyan); }
.cell-drive { color: #24408f; background: #e9efff; }
.cell-U { color: #006e97; background: #dff5fd; }
.cell-KV { color: #6b4c8f; background: #f0e8fa; }
.cell-P { color: #fff; background: var(--danger); }
.cell-IHK { color: #7b4a00; background: #ffe6ad; }
.cell-K { color: #8b2733; background: #fde7ea; }
.cell-FREI { color: #4d5564; background: #eceff3; }
.cell-START { color: #fff; background: var(--success); }
.group-end td { border-bottom: 2px solid #bdc8d9; }

.grid-cards { display: grid; grid-template-columns: repeat(3, minmax(260px, 1fr)); gap: 13px; }
.entity-card { padding: 15px; }
.entity-card .entity-top { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.entity-card h3 { margin: 0; font-size: 16px; }
.entity-card p { color: var(--muted); font-size: 11px; }
.big-code { width: 43px; height: 43px; display: grid; place-items: center; border-radius: 10px; color: #fff; background: var(--brand-blue); font-size: 18px; font-weight: 900; }
.status-pill { display: inline-flex; padding: 4px 7px; border-radius: 999px; color: var(--success); background: #e9f7f2; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.meta-list { display: grid; gap: 7px; margin-top: 13px; }
.meta-row { display: flex; justify-content: space-between; gap: 12px; font-size: 11px; }
.meta-row span { color: var(--muted); }

.data-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.data-table th, .data-table td { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: left; }
.data-table th { color: var(--muted); background: #f8f9fb; font-size: 10px; text-transform: uppercase; letter-spacing: .05em; }
.data-table th.sortable-header { position: relative; padding-right: 28px; cursor: pointer; user-select: none; }
.data-table th.sortable-header::after { content: "⇅"; position: absolute; right: 10px; color: #96a0af; font-size: 12px; }
.data-table th.sortable-header.sort-active[data-sort-direction="asc"]::after { content: "↑"; color: var(--brand-blue); }
.data-table th.sortable-header.sort-active[data-sort-direction="desc"]::after { content: "↓"; color: var(--brand-blue); }
.data-table th.sortable-header:focus-visible { outline: 2px solid var(--brand-blue); outline-offset: -2px; }
.license-class-badge { display: inline-grid; min-width: 34px; min-height: 28px; padding: 4px 8px; place-items: center; border-radius: 8px; color: #fff; background: #56657a; font-weight: 900; }
.license-class-badge.class-A { background: #8a4faf; }
.license-class-badge.class-B { background: #2574a8; }
.license-class-badge.class-C { background: #b57b10; }
.license-class-badge.class-D { background: #167b5b; }
.license-class-catalog { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; padding: 12px 18px 2px; }
.license-class-card { display: grid; grid-template-columns: 28px 38px 1fr; align-items: center; min-height: 46px; border: 1px solid #dfe5ef; border-left: 5px solid #2f459f; border-radius: 10px; background: #fff; color: #182033; text-align: left; cursor: pointer; }
.license-class-card.class-A { border-left-color: #7b5bb5; }
.license-class-card.class-B { border-left-color: #08a4df; }
.license-class-card.class-C { border-left-color: #e2a52b; }
.license-class-card.class-D { border-left-color: #188b67; }
.license-class-card small { line-height: 1.15; color: #677184; }
.vehicle-category-list { display: grid; gap: 12px; }
.vehicle-category { border: 1px solid var(--line); border-radius: 10px; background: #fff; overflow: hidden; }
.vehicle-category summary { padding: 12px 14px; display: grid; grid-template-columns: 34px 1fr auto; gap: 8px; align-items: center; cursor: pointer; background: #f7f9fc; }
.vehicle-category summary small { color: var(--muted); }
.vehicle-category-icon { font-size: 21px; }
.data-table tr:last-child td { border-bottom: 0; }
.empty-state { padding: 40px; text-align: center; color: var(--muted); }
.table-scroll { overflow: auto; }
.drive-week { display: grid; grid-template-columns: repeat(5, minmax(190px, 1fr)); gap: 10px; align-items: start; }
.drive-day { min-height: 280px; background: #fff; border: 1px solid var(--line); border-radius: 11px; overflow: hidden; }
.drive-day > header { padding: 10px 12px; display: flex; justify-content: space-between; gap: 8px; background: #f8f9fb; border-bottom: 1px solid var(--line); }
.drive-day > header strong { font-size: 12px; }
.drive-day > header span { color: var(--muted); font-size: 11px; }
.drive-day-body { padding: 9px; display: grid; gap: 7px; }
.drive-session { width: 100%; padding: 9px; display: grid; gap: 3px; border: 1px solid #cbd5e5; border-left: 4px solid var(--brand-blue); border-radius: 8px; color: var(--ink); background: #f7f9ff; text-align: left; }
.drive-session strong { font-size: 11px; }
.drive-session span { color: var(--muted); font-size: 10px; }
.drive-session.has-warning { border-left-color: var(--warning); background: #fff9ec; }
.drive-session.has-error { border-left-color: var(--danger); background: #fff1f3; }
.drive-empty { padding: 22px 8px; color: var(--muted); text-align: center; font-size: 11px; }
.drive-add { width: 100%; }
.status-pill.warning { color: #8a5e09; background: #fff2d4; }
.status-pill.error { color: #a72e3e; background: #fde7ea; }
.status-pill.ok { color: var(--success); background: #e9f7f2; }
.progress-track { width: 130px; height: 7px; margin-bottom: 3px; overflow: hidden; border-radius: 99px; background: #e8ecf2; }
.progress-track span { display: block; height: 100%; background: linear-gradient(90deg, var(--brand-blue), var(--brand-cyan)); }
.check-list { display: grid; gap: 6px; }
.check-row { padding: 7px 8px; display: flex; gap: 8px; align-items: flex-start; border: 1px solid var(--line); border-radius: 7px; background: #f8f9fb; }
.check-row input { width: auto; min-height: auto; margin-top: 3px; }
.check-row strong, .check-row small { display: block; }
.check-row small { margin-top: 2px; color: var(--muted); font-size: 9px; }
.drive-result { display: grid; grid-template-columns: auto minmax(150px,1fr) 82px 108px; align-items: center; }
.drive-result > label strong, .drive-result > label small { display: block; }
.drive-result > input[type="number"], .drive-result > select { width: 100%; min-height: 32px; padding: 5px 6px; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.two-column { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(310px, .65fr); gap: 16px; }
.form-card { padding: 16px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
.form-field label { display: block; margin-bottom: 5px; color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.form-field input, .form-field select, .form-field textarea { width: 100%; min-height: 38px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); }
.form-field.full { grid-column: 1 / -1; }
.form-grid > .full { grid-column: 1 / -1; }
.backup-actions { margin: 14px 0; display: flex; flex-wrap: wrap; gap: 8px; }
.people-table { max-height: 650px; }
.person-open, .course-open { padding: 4px 7px; min-height: 28px; }

.drawer-backdrop, .modal-backdrop { position: fixed; inset: 0; background: rgba(12,18,33,.35); z-index: 99; }
.drawer { position: fixed; inset: 0 0 0 auto; width: 470px; padding: 0; background: #fff; box-shadow: -14px 0 30px rgba(16,27,48,.18); transform: translateX(102%); transition: transform .22s ease; z-index: 100; overflow: auto; }
.drawer.open { transform: translateX(0); }
.drawer.person-drawer { width: min(760px, calc(100vw - 40px)); }
.drawer-header { padding: 19px 20px; display: flex; justify-content: space-between; align-items: flex-start; border-bottom: 1px solid var(--line); }
.drawer-header h2 { margin: 0; font-size: 20px; }
.drawer-header p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.drawer-header .drawer-ribbon-button { margin-left: auto; margin-right: 7px; align-self: center; }
.person-record-tabs { position: sticky; top: 0; z-index: 9; padding: 8px 14px; display: flex; gap: 5px; overflow-x: auto; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.97); box-shadow: 0 4px 12px rgba(24,32,51,.04); }
.person-record-tabs button { min-height: 34px; padding: 7px 10px; border: 1px solid transparent; border-radius: 8px; color: #526077; background: transparent; font: inherit; font-size: 10px; font-weight: 850; white-space: nowrap; cursor: pointer; }
.person-record-tabs button:hover { color: #003f52; background: #eef7f9; }
.person-record-tabs button.active { color: #fff; border-color: #2f459f; background: #2f459f; box-shadow: 0 2px 7px rgba(47,69,159,.22); }
.drawer-body { padding: 18px 20px 100px; display: grid; gap: 18px; }
.drawer-footer { position: sticky; bottom: 0; width: 100%; max-width: 100%; padding: 10px 14px; display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 7px; background: rgba(255,255,255,.97); border-top: 1px solid var(--line); box-sizing: border-box; overflow: visible; }
.drawer-footer .button { min-width: 0; max-width: 100%; white-space: normal; text-align: center; line-height: 1.15; }
.section-title { margin: 0 0 8px; color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.assignment-list { display: grid; gap: 9px; }
.assignment-row { padding: 10px; display: grid; grid-template-columns: 1fr 118px 34px; gap: 7px; background: #f7f8fb; border: 1px solid var(--line); border-radius: 9px; }
.assignment-row select, .assignment-row input { width: 100%; min-height: 34px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.assignment-dates { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.assignment-dates label { color: var(--muted); font-size: 9px; }
.assignment-dates input { margin-top: 3px; }
.history-list { display: grid; gap: 9px; }
.history-block { border: 1px solid var(--line); border-radius: 9px; overflow: hidden; }
.history-block summary { padding: 10px 12px; display: flex; justify-content: space-between; gap: 12px; cursor: pointer; background: #f8f9fb; }
.history-block summary span { color: var(--muted); font-size: 10px; }
.hint { padding: 10px 12px; border-left: 3px solid var(--brand-cyan); border-radius: 4px; color: #3f4b5e; background: var(--brand-cyan-soft); font-size: 11px; line-height: 1.45; }

.modal { position: fixed; left: 50%; top: 50%; width: min(560px, calc(100vw - 40px)); min-width: min(560px, calc(100vw - 16px)); min-height: min(240px, calc(100vh - 16px)); max-width: calc(100vw - 16px); max-height: calc(100vh - 16px); box-sizing: border-box; overflow: auto; resize: both; container-type: inline-size; padding: 18px; border-radius: 12px; background: #fff; box-shadow: 0 20px 60px rgba(15,27,53,.25); transform: translate(-50%,-50%) scale(.96); opacity: 0; pointer-events: none; z-index: 100; transition: opacity .16s ease, transform .16s ease; }
.modal.open { opacity: 1; transform: translate(-50%,-50%) scale(1); pointer-events: auto; }
.modal :where(form,section,article,div,fieldset,label,p,span,strong,small,h1,h2,h3,h4,table) { min-width: 0; }
.modal :where(p,span,strong,small,h1,h2,h3,h4,td,th,label) { overflow-wrap: anywhere; }
.modal :where(input,select,textarea) { max-width: 100%; box-sizing: border-box; }
.app-context-menu { min-width: 190px; max-width: min(320px, calc(100vw - 16px)); padding: 6px; position: fixed; z-index: 1200; display: grid; gap: 2px; border: 1px solid #c7d2df; border-radius: 10px; background: #fff; box-shadow: 0 14px 38px rgba(15,27,53,.24); }
.app-context-menu[hidden] { display: none; }
.app-context-menu button { width: 100%; min-height: 34px; padding: 7px 10px; border: 0; border-radius: 7px; color: #14213d; background: transparent; text-align: left; font: inherit; cursor: pointer; }
.app-context-menu button:hover, .app-context-menu button:focus-visible { color: #003748; background: #e8f6fa; outline: none; }
.app-context-menu button:disabled { color: #778399; cursor: default; }
.modal h2 { margin: 0 0 4px; font-size: 18px; }
.modal p { margin: 0 0 14px; color: var(--muted); font-size: 11px; }
.modal-actions { margin-top: 15px; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.modal:not(.modal-pdf-designer) > form > .modal-actions { position: sticky; bottom: -18px; z-index: 8; margin-right: -18px; margin-bottom: -18px; margin-left: -18px; padding: 12px 18px; border-top: 1px solid var(--line); background: rgba(255,255,255,.97); box-shadow: 0 -8px 18px rgba(24,32,51,.05); }
.modal.modal-user-selector { height: min(720px, calc(100vh - 32px)); max-height: none; overflow: hidden; display: grid; grid-template-rows: auto auto minmax(0,1fr) auto; }
.modal-user-selector .check-list { min-height: 0; padding: 2px 5px 4px 1px; overflow-y: auto; overscroll-behavior: contain; }
.modal-user-selector .modal-actions { position: relative; z-index: 2; margin: 10px -18px -18px; padding: 12px 18px; flex-wrap: wrap; border-top: 1px solid var(--line); background: #fff; box-shadow: 0 -8px 18px rgba(24,32,51,.05); }
.modal-user-selector .modal-actions .button { min-height: 38px; }
.reset-warning { display: grid; gap: 5px; margin: 12px 0; padding: 12px 14px; border: 1px solid #efb3b9; border-left: 5px solid var(--danger); border-radius: 9px; background: #fff5f6; }
.reset-warning span { color: #6c2830; line-height: 1.45; }
.reset-summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 12px 0; }
.reset-summary-grid div { display: grid; gap: 2px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 8px; background: #f7f9fc; }
.reset-summary-grid strong { font-size: 18px; color: var(--brand-dark); }
.reset-summary-grid span { color: var(--muted); font-size: 10px; }
.reset-options { display: grid; gap: 7px; margin: 12px 0; }
.reset-legacy-option { border-color: #efb3b9; background: #fff8f8; }
.reset-confirm { margin-top: 13px; }
.toast-region { position: fixed; top: calc(var(--topbar-height, 82px) + 12px); right: 18px; bottom: auto; display: grid; justify-items: end; gap: 7px; z-index: 110; width: min(360px, calc(100vw - 36px)); max-width: min(360px, calc(100vw - 36px)); pointer-events: none; }
.toast { width: fit-content; min-width: min(220px, 100%); max-width: 100%; overflow-wrap: anywhere; pointer-events: none; padding: 9px 11px; border: 1px solid rgba(255,255,255,.22); border-radius: 12px; color: #fff; background: rgba(24,32,51,.84); box-shadow: 0 8px 22px rgba(24,32,51,.16); -webkit-backdrop-filter: blur(12px) saturate(120%); backdrop-filter: blur(12px) saturate(120%); font-size: 11px; line-height: 1.35; animation: toast-in .2s ease; }
.toast :is(button, a[href], [role="button"]) { pointer-events: auto; }
.toast.error { background: rgba(158,48,64,.9); }
.persistent-error-dialog { width: min(560px, calc(100vw - 32px)); max-height: min(680px, calc(100vh - 32px)); margin: auto; padding: 22px; border: 1px solid #e5a6ae; border-radius: 14px; color: #18263a; background: #fff; box-shadow: 0 24px 70px rgba(52,16,22,.32); overflow: auto; }
.persistent-error-dialog::backdrop { background: rgba(21,28,40,.52); }
.persistent-error-heading { display: flex; align-items: center; gap: 13px; padding-bottom: 14px; border-bottom: 1px solid #eed5d9; }
.persistent-error-heading > span { display: grid; place-items: center; width: 38px; height: 38px; flex: 0 0 38px; border-radius: 50%; color: #fff; background: #b72f42; font-size: 22px; font-weight: 800; }
.persistent-error-heading small { display: block; margin-bottom: 2px; color: #a32638; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.persistent-error-heading h2 { margin: 0; font-size: 20px; }
.persistent-error-dialog [data-error-dialog-message] { margin: 18px 0 8px; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 14px; line-height: 1.55; }
.persistent-error-dialog .modal-actions { margin-top: 20px; }
@keyframes toast-in { from { transform: translateY(-8px); opacity: 0; } }

@media (max-width: 1250px) {
  :root { --sidebar: 206px; }
  .metrics { grid-template-columns: repeat(2, minmax(180px, 1fr)); }
  .dashboard-grid { grid-template-columns: 1fr; }
  .grid-cards { grid-template-columns: repeat(2, minmax(260px, 1fr)); }
  .drive-week { grid-template-columns: repeat(3, minmax(210px, 1fr)); }
}

/* Version 2 · modulare Kurs- und Terminplanung */
[hidden] { display: none !important; }
button:disabled, input:disabled, select:disabled { cursor: not-allowed; opacity: .5; }
.actions-cell { display: flex; gap: 6px; flex-wrap: wrap; }
.course-color { width: 10px; height: 30px; margin-right: 7px; display: inline-block; border-radius: 99px; vertical-align: middle; }
.course-row.course-archived { color: #7b8290; background: #f5f6f8; }
.course-row.course-upcoming { background: #f2f8ff; }
.course-row.course-active { background: #f1fbf7; }
.status-pill.course-status-active { color: #087650; background: #dff5ec; }
.status-pill.course-status-upcoming { color: #275ba2; background: #e5f0ff; }
.status-pill.course-status-archived, .status-pill.archived { color: #667085; background: #e9ecf1; }
.status-pill.invoice-interim { color: #8a5e09; background: #fff2d4; }
.status-pill.invoice-partial { color: #5e3f91; background: #f0e8fa; }
.status-pill.invoice-final { color: #087650; background: #dff5ec; }
.status-pill.invoice-status-draft { color: #667085; background: #eef0f3; }
.status-pill.invoice-status-issued { color: #275ba2; background: #e5f0ff; }
.status-pill.invoice-status-paid { color: #087650; background: #dff5ec; }
.status-pill.invoice-status-cancelled { color: #a72e3e; background: #fde7ea; }
.archived-row { color: #777f8e; background: #f6f7f9; }

.modal.modal-wide { width: min(960px, calc(100vw - 40px)); min-width:min(960px,calc(100vw - 16px)); }
.modal.modal-wide.modal-user-access { width: min(760px, calc(100vw - 32px)); min-width: min(500px, calc(100vw - 16px)); }
.modal-wide .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@container (max-width: 620px) { .modal .form-grid, .modal.modal-wide .form-grid { grid-template-columns: minmax(0,1fr); } .modal .modal-actions .button { max-width: 100%; white-space: normal; } }
.profile-preview { padding: 10px 12px; border-radius: 8px; border: 1px solid #cde6ee; background: #f0fbff; }
.profile-preview strong, .profile-preview small { display: block; }
.profile-preview small { margin-top: 4px; color: var(--muted); line-height: 1.4; }
.participant-limit-list { display: grid; gap: 7px; }
.participant-limit-list label { display: grid; grid-template-columns: minmax(180px, 1fr) 110px 78px; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: #f8f9fb; }
.participant-limit-list input { min-height: 34px; }
.participant-limit-list small { color: var(--muted); }

.planner-toolbar { position: sticky; top: 82px; padding: 10px; margin: -4px -4px 0; border: 1px solid var(--line); border-radius: 10px; background: rgba(244,246,249,.96); z-index: 18; backdrop-filter: blur(7px); }
.timeline-global { max-height: calc(100vh - 245px); min-height: 520px; overflow: scroll; scrollbar-color: #95a3ba #edf0f4; scrollbar-width: auto; }
.planner-timeline-card { overflow: hidden; }
.planner-compact-legend { min-height: 34px; padding: 5px 10px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; border-bottom: 1px solid var(--line); background: #f8fafc; }
.planner-compact-legend > strong { margin-right: 2px; color: var(--brand-blue-dark); font-size: 12px; }
.planner-compact-legend > small { color: var(--muted); font-size: 9px; }
.planner-key-chip { padding: 3px 6px; border: 1px solid #cbd6e3; border-radius: 5px; color: #3a5068; background: #fff; font-size: 9px; white-space: nowrap; }
.planner-key-chip b { color: var(--brand-blue-dark); }
.planner-compact-legend .legend { gap: 4px; }
.planner-compact-legend .legend span { padding: 3px 5px; display: inline-flex; align-items: center; gap: 3px; color: var(--legend-fg); background: var(--legend-bg); font-size: 9px; }
.planner-compact-legend .legend span b { font-size: 9px; }
.planner-compact-legend .legend span small { color: inherit; font-size: 8px; opacity: .92; }
.timeline-v2 { --planner-group-width: 82px; --planner-participant-width: 278px; table-layout: fixed; font-size: 12px; }
.timeline-v2 col.planner-group-col { width: var(--planner-group-width); }
.timeline-v2 col.planner-participant-col { width: var(--planner-participant-width); }
.timeline-v2 col.planner-external-col, .timeline-v2 col.planner-current-col { width: 92px; }
.timeline-v2 th, .timeline-v2 td { height: 36px; }
.timeline-v2 td.date-cell { width: 92px; min-width: 92px; max-width: 92px; overflow: hidden; }
.timeline-v2 th.timeline-day-header { width: 184px; min-width: 184px; max-width: 184px; font-size: 10px; }
.timeline-v2 th.timeline-day-header strong { font-size: 12px; }
.timeline-v2 td.group-limit-cell[colspan="2"] { width: 184px; min-width: 184px; max-width: 184px; }
.timeline-v2 thead th { font-size: 10px; }
.sticky-group-v2, .sticky-participant-v2 { position: sticky; background: #fff; z-index: 7; }
.sticky-group-v2 { left: 0; width: var(--planner-group-width); min-width: var(--planner-group-width); padding: 4px !important; }
.sticky-participant-v2 { left: var(--planner-group-width); width: var(--planner-participant-width); min-width: var(--planner-participant-width); padding: 5px 8px !important; text-align: left !important; box-shadow: 7px 0 10px rgba(18,29,48,.07); }
.planner-overview-resizer { width: 18px; height: 100%; padding: 0; position: absolute; z-index: 18; top: 0; right: -9px; display: grid; place-items: center; border: 0; color: #315472; background: transparent; cursor: col-resize; touch-action: none; }
.planner-more-actions { position: relative; }
.planner-more-actions > summary { min-height: 38px; padding: 8px 12px; display: flex; align-items: center; gap: 7px; border: 1px solid var(--line); border-radius: 9px; color: #294c70; background: #fff; cursor: pointer; font-weight: 750; list-style: none; white-space: nowrap; }
.planner-more-actions > summary::-webkit-details-marker { display: none; }
.planner-more-actions[open] > summary { color: var(--brand-blue); border-color: #8fa6bf; background: #edf4fc; }
.planner-more-actions > div { min-width: 250px; padding: 8px; position: absolute; z-index: 80; top: calc(100% + 5px); right: 0; display: grid; gap: 6px; border: 1px solid #c7d5e2; border-radius: 11px; background: #fff; box-shadow: 0 14px 35px rgb(18 42 69 / 20%); }
.planner-more-actions > div .button { width: 100%; justify-content: flex-start; }
.planner-overview-resizer::before { content: ""; width: 3px; height: 52px; position: absolute; border-radius: 99px; background: #8da3ba; box-shadow: 0 0 0 1px rgba(255,255,255,.8); transition: width .15s ease, background .15s ease; }
.planner-overview-resizer i { min-width: 17px; padding: 2px 1px; position: relative; border: 1px solid #9aadc0; border-radius: 5px; color: #274b68; background: #fff; box-shadow: 0 2px 5px rgba(17,37,59,.16); font-size: 10px; font-style: normal; line-height: 1; }
.planner-overview-resizer:hover::before, .planner-overview-resizer:focus-visible::before, .planner-overview-resizer.active::before { width: 5px; background: var(--brand-cyan); }
.planner-overview-resizer:focus-visible { outline: 2px solid var(--brand-cyan); outline-offset: 1px; }
body.planner-overview-resizing, body.planner-overview-resizing * { cursor: col-resize !important; user-select: none !important; }
.timeline-v2 thead .sticky-group-v2, .timeline-v2 thead .sticky-participant-v2 { z-index: 13; background: #f1f4f8; }
.timeline-v2 .timeline-week-row th { top: 0; height: 27px; border-bottom-color: #bec9d8; }
.timeline-v2 .timeline-week-row th[rowspan="2"] { height: 75px; vertical-align: middle; }
.timeline-v2 .timeline-day-row th { top: 27px; height: 48px; }
.timeline-v2 .timeline-week-band { color: #23416f; background: #e7edf6; border-right: 2px solid #a8b6c9; letter-spacing: .02em; }
.timeline-v2 .timeline-week-band strong { display: inline; margin: 0 4px 0 0; font-size: 10px; }
.timeline-v2 .timeline-week-band small { color: #718098; font-size: 8px; }
.sticky-participant-v2 strong, .sticky-participant-v2 small, .sticky-group-v2 small { display: block; }
.sticky-participant-v2 small, .sticky-group-v2 small { color: var(--muted); font-size: 9px; }
.sticky-participant-v2 .person-link strong { font-size: 11px; line-height: 1.2; }
.planner-course-heading td { height: 32px !important; border-top: 3px solid #91a8c0; border-bottom: 1px solid #b9c8d7; background: #e8f0f7; }
.planner-course-heading-label { position: sticky; left: 0; z-index: 10; padding: 5px 9px !important; color: #173e61; text-align: left !important; box-shadow: 7px 0 10px rgba(18,29,48,.07); }
.planner-course-heading-label > span { width: 6px; height: 20px; margin-right: 7px; display: inline-block; border-radius: 99px; vertical-align: middle; }
.planner-course-heading-label > strong { margin-right: 7px; font-size: 13px; }
.planner-course-heading-label > small { color: #526b82; font-size: 10px; }
.planner-course-heading-label > em { float: right; margin-top: 2px; color: #647688; font-size: 9px; font-style: normal; font-weight: 800; }
.planner-course-heading-line { background: #edf3f8 !important; }
.planner-participant-heading { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 1px; }
.planner-participant-heading .person-link, .planner-participant-heading small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.group-plan-actions { margin-top: 4px; display: flex; justify-content: center; gap: 2px; }
.mini-action { width: 20px; height: 20px; padding: 0; border: 1px solid var(--line); border-radius: 5px; background: #fff; color: var(--brand-blue); font-size: 11px; font-weight: 900; }
.plan-cell { padding: 1px !important; background: #f8fafc; }
.plan-cell-button { display: flex; height: 32px; align-items: stretch; justify-content: center; gap: 1px; overflow: hidden; }
.plan-segment { min-width: 16px; padding: 0 2px; position: relative; display: grid; place-items: center; color: var(--cell-text); background: var(--cell-color); font-size: 10px; }
.plan-segment small { display: block; font-size: 8px; line-height: 1; opacity: .92; }
.plan-segment-appointment { outline: 2px solid #003f52; outline-offset: -2px; box-shadow: inset 0 -3px 0 rgba(255,255,255,.58); }
.plan-segment-locked { box-shadow: inset 0 0 0 1px rgba(0,0,0,.42); }
.plan-segment-locked::after { content: "🔒"; position: absolute; top: -1px; right: 0; font-size: 6px; line-height: 1; filter: drop-shadow(0 1px 1px rgba(255,255,255,.85)); }
.night-group-companion { background: #f1f1f1 !important; }
.night-group-marker { width: 100%; min-height: 30px; display: grid; place-items: center; align-content: center; color: #fff; background: #3a3a3a; font-size: 9px; font-weight: 900; line-height: 1; }
.night-group-marker small { margin-top: 2px; color: #fff; font-size: 6px; font-weight: 750; opacity: .82; }
.group-limit-open { width: 100%; min-height: 44px; padding: 2px 1px; border: 0; color: inherit; background: transparent; cursor: pointer; }
.group-limit-open strong, .group-limit-open small { display: block; }
.group-limit-open:hover, .group-limit-open:focus-visible { background: rgba(8,164,223,.12); box-shadow: inset 0 0 0 2px var(--brand-cyan); outline: 0; }
.course-plan-day-modal { display: grid; gap: 14px; }
.course-plan-day-list { display: grid; gap: 7px; max-height: min(56vh, 560px); overflow: auto; }
.course-plan-day-entry { min-height: 58px; padding: 8px 10px 8px 8px; display: grid; grid-template-columns: 6px minmax(0,1fr) auto; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.course-plan-day-entry.from-appointment { background: #eff9f7; border-color: #9bd4c5; }
.course-plan-day-color { align-self: stretch; border-radius: 99px; background: var(--course-day-color); }
.course-plan-day-entry strong, .course-plan-day-entry small { display: block; }
.course-plan-day-entry small { margin-top: 3px; color: var(--muted); }
.course-plan-day-add { padding: 10px; border: 1px solid var(--line); border-radius: 9px; background: #f7f9fc; }
.course-plan-day-add > div { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 6px; }
.legacy-cell { color: #3f4b5e; background: #eef1f5; }
.over-limit { box-shadow: inset 0 0 0 3px #d94b5b; animation: limit-pulse 1.6s infinite; }
.over-limit-day { color: #fff !important; background: #c8364a !important; }
.course-overlap-day { color: #4a3200 !important; background: #ffd66e !important; }
.user-rights-button { margin-left: 8px; }
.card-header.compact { margin-bottom: 10px; }
.empty-plan-cell { width: 100%; height: 100%; border: 0; background: transparent; }
.empty-plan-cell:hover { background: rgba(8,164,223,.1); box-shadow: inset 0 0 0 1px var(--brand-cyan); }
@keyframes limit-pulse { 50% { box-shadow: inset 0 0 0 3px #f2a0aa; } }
.existing-plan-entries { margin: 12px 0; display: grid; gap: 6px; }
.existing-plan-entries > div { display: grid; grid-template-columns: 44px minmax(120px, 1fr) auto auto auto; gap: 8px; align-items: center; padding: 7px; border: 1px solid var(--line); border-radius: 8px; }
.existing-plan-entries strong small { display: block; margin-top: 2px; color: var(--muted); font-size: 8px; font-weight: 650; }
.modal .course-plan-scope-hint { margin: 8px 0 0; white-space: normal; overflow-wrap: anywhere; }
@container (max-width: 420px) {
  #plan-entry-form .existing-plan-entries > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #plan-entry-form .existing-plan-entries > div > .color-preview { justify-self: start; }
  #plan-entry-form .existing-plan-entries > div > button { min-width: 0; max-width: 100%; white-space: normal; }
}
.lock-toggle { width: 100%; justify-content: center; border-color: #9faaba; background: #f2f4f7; }
.lock-toggle.lock-active, .button.lock-active { border-color: #23805b; color: #0e6744; background: #e7f6ee; }
.color-preview { width: 38px; min-height: 30px; display: inline-grid; place-items: center; margin-right: 8px; border-radius: 7px; font-weight: 800; }

.scheduler-card { overflow: hidden; }
.scheduler-scroll { height: calc(100vh - 250px); min-height: 560px; overflow: auto; display: flex; background: #fff; }
.scheduler-time { width: 70px; min-width: 70px; position: sticky; left: 0; background: #f4f6f9; z-index: 10; border-right: 1px solid var(--line); }
.scheduler-time header { height: 48px; position: sticky; top: 0; display: grid; place-items: center; color: var(--muted); background: #eef1f5; border-bottom: 1px solid var(--line); z-index: 12; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.scheduler-time > div { padding: 4px 7px 0; border-bottom: 1px solid #e6eaf0; color: var(--muted); text-align: right; font-size: 9px; }
.scheduler-columns { min-width: 100%; display: flex; align-items: flex-start; }
.scheduler-column { min-width: 205px; flex: 1 0 205px; position: relative; margin-top: 48px; border-right: 1px solid var(--line); background-image: repeating-linear-gradient(to bottom, #fff 0, #fff calc(var(--slot-height) - 1px), #e6eaf0 calc(var(--slot-height) - 1px), #e6eaf0 var(--slot-height)); }
.scheduler-column > header { height: 48px; position: absolute; left: 0; right: 0; top: -48px; padding: 5px 8px; display: grid; grid-template-columns: auto 1fr; gap: 1px 6px; align-items: center; background: #f7f8fb; border-bottom: 1px solid var(--line); z-index: 7; }
.scheduler-column > header .teacher-chip { grid-row: 1 / 3; }
.scheduler-column > header strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.scheduler-column > header small { color: var(--muted); font-size: 8px; }
.scheduler-empty { position: absolute; inset: 0; width: 100%; border: 0; background: transparent; }
.scheduler-empty:hover { background: rgba(8,164,223,.035); }
.scheduler-event { position: absolute; left: 4px; right: 4px; padding: 4px 6px; overflow: hidden; display: block; border: 1px solid rgba(24,32,51,.2); border-left: 5px solid rgba(24,32,51,.42); border-radius: 6px; text-align: left; z-index: 4; box-shadow: 0 1px 4px rgba(17,27,48,.12); }
.scheduler-event strong, .scheduler-event span, .scheduler-event small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.scheduler-event .scheduler-event-history { display:none; position:absolute; top:5px; right:5px; z-index:8; width:18px; height:18px; border-radius:50%; place-items:center; background:rgba(255,255,255,.92); color:#14233d; font:900 13px/18px Arial,sans-serif; cursor:pointer; box-shadow:0 1px 4px rgba(17,28,49,.28); }
.scheduler-event:hover .scheduler-event-history, .scheduler-event:focus-within .scheduler-event-history { display:grid; }
.scheduler-event .scheduler-event-history:hover, .scheduler-event .scheduler-event-history:focus-visible { background:#ffffff; outline:2px solid #163f9e; outline-offset:1px; }
.scheduler-event strong { font-size: 9px; }
.scheduler-event span { margin-top: 2px; font-size: 9px; font-weight: 700; }
.scheduler-event small { margin-top: 1px; opacity: .8; font-size: 8px; }
.scheduler-event.scheduler-break { border-style: dashed; border-left-color: #77808f; color: #3f4b5e !important; background: #e7eaee !important; }
.scheduler-event.scheduler-absence { border-left-color: #8f1830; background-image: repeating-linear-gradient(135deg, transparent 0 12px, rgba(255,255,255,.1) 12px 24px); font-weight: 700; }
.scheduler-event.scheduler-conflict { border: 3px solid #d94b5b; box-shadow: 0 0 0 3px rgba(217,75,91,.18); z-index: 6; }
.scheduler-event.scheduler-week-event.scheduler-rest-conflict {
  border: 5px solid #c51f35;
  box-shadow: 0 0 0 3px rgba(197,31,53,.28), 0 0 14px rgba(197,31,53,.32);
  animation: scheduler-rest-conflict-blink 1s ease-in-out infinite;
  z-index: 8;
}
@keyframes scheduler-rest-conflict-blink {
  0%, 100% { border-color: #b6152d; box-shadow: 0 0 0 3px rgba(182,21,45,.24), 0 0 10px rgba(182,21,45,.26); }
  50% { border-color: #ff6678; box-shadow: 0 0 0 6px rgba(220,35,57,.38), 0 0 22px rgba(220,35,57,.48); }
}
.scheduler-event.scheduler-conflict-ignored {
  outline: 3px solid #16845e;
  outline-offset: -3px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.8), 0 0 0 2px rgba(22,132,94,.16);
}
.scheduler-event.scheduler-fm-preview {
  z-index: 7;
  border: 2px dashed #1687b8;
  border-left-width: 5px;
  color: #0f4661 !important;
  background: repeating-linear-gradient(135deg, rgba(255,255,255,.78) 0 9px, rgba(35,166,221,.18) 9px 18px) !important;
  box-shadow: 0 0 0 2px rgba(35,166,221,.12);
  backdrop-filter: blur(1px);
}
.scheduler-event.scheduler-fm-preview:hover,
.scheduler-event.scheduler-fm-preview:focus-visible { background: rgba(220,246,255,.96) !important; outline: 2px solid #0f7fac; }
.scheduler-fm-badge { position:absolute; top:3px; right:3px; padding:2px 5px; border-radius:999px; color:#fff; background:#087daa; font-size:7px; font-style:normal; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
.scheduler-event.scheduler-fm-preview > strong { padding-right:42px; }
.scheduler-fm-day-count { display:block; margin-top:2px; color:#087daa; font-size:8px; white-space:nowrap; }
.fm-live-notice { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; border:1px solid #7bccec; background:#eefaff; }
.fm-live-notice > div { display:flex; align-items:center; gap:10px; }
.fm-live-notice p { display:grid; gap:2px; margin:0; }
.fm-live-notice p small, .fm-live-notice > span { color:var(--muted); font-size:11px; }
.fm-live-change-summary { width:100%; border:1px solid #7bccec; border-radius:9px; background:#eefaff; overflow:hidden; }
.fm-live-change-summary > summary { min-height:48px; padding:9px 12px; display:grid; grid-template-columns:36px minmax(180px,1fr) auto; gap:10px; align-items:center; cursor:pointer; list-style:none; }
.fm-live-change-summary > summary::-webkit-details-marker { display:none; }
.fm-live-change-summary > summary p { display:grid; gap:2px; margin:0; }
.fm-live-change-summary > summary p small, .fm-live-change-summary > summary > span:last-child { color:var(--muted); font-size:11px; }
.fm-live-change-summary > div { max-height:360px; overflow:auto; border-top:1px solid #b8e3f4; background:var(--surface, #fff); }
.fm-live-change-row { border-bottom-color:#d4edf7; }
.fm-live-change-row .appointment-conflict-facts span { border-color:#c9e8f4; background:#f4fbfe; }
.fm-live-change-jump { white-space:nowrap; border-color:#7bccec; color:#126c94; background:#fff; }
.fm-live-icon { display:grid; place-items:center; min-width:34px; height:34px; padding:0 7px; border-radius:10px; color:#fff; background:#087daa; font-size:11px; font-weight:900; letter-spacing:.04em; }
.fm-live-connection { display:flex; align-items:center; gap:10px; padding:10px 12px; border:1px solid; border-radius:12px; margin-bottom:8px; }
.fm-live-connection > span { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; color:#fff; font-weight:900; flex:0 0 auto; }
.fm-live-connection p { display:grid; gap:2px; margin:0; flex:1; }
.fm-live-connection small { color:var(--muted); }
.fm-live-connection.connected { background:#eefaf5; border-color:#8ad1b7; }
.fm-live-connection.connected > span { background:#188b67; }
.fm-live-connection.running { background:#e8f7ff; border-color:#55bce4; box-shadow:0 0 0 3px rgba(8,125,170,.08); }
.fm-live-connection.running > span { background:#087daa; animation:fmLivePulse 1.8s ease-in-out infinite; }
.fm-live-connection.waiting { background:#fff8e7; border-color:#e5bd5c; }
.fm-live-connection.waiting > span { background:#c98a16; animation:fmLivePulse 1.8s ease-in-out infinite; }
.fm-live-connection.disconnected { background:#fff7e8; border-color:#e4bd65; }
.fm-live-connection.disconnected > span { background:#c98a16; }
.fm-live-status-card { display:flex; flex-wrap:wrap; gap:8px 18px; padding:12px; border-radius:10px; margin:14px 0; }
.fm-live-status-card.connected { background:#eaf8f2; border:1px solid #8ad1b7; }
.fm-live-status-card.disconnected { background:#fff4e2; border:1px solid #e4bd65; }
.fm-live-steps { display:grid; gap:11px; padding-left:22px; line-height:1.5; }
.fm-live-token-row { display:flex; gap:7px; }
.fm-live-token-row input { min-width:0; flex:1; }
.fm-live-setup code { background:#edf1f7; padding:2px 5px; border-radius:4px; }
@keyframes fmLivePulse { 0%,100% { transform:scale(1); box-shadow:0 0 0 0 rgba(8,125,170,.22); } 50% { transform:scale(1.05); box-shadow:0 0 0 7px rgba(8,125,170,0); } }
.fm-candidate-dialog { display:grid; gap:16px; }
.fm-candidate-heading { display:flex; align-items:center; gap:12px; }
.fm-candidate-heading h2, .fm-candidate-heading p { margin:0; }
.fm-candidate-heading p { margin-top:3px; color:var(--muted); }
.fm-candidate-comparison { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:10px; }
.fm-candidate-comparison article { display:grid; gap:5px; min-height:76px; padding:12px; border:1px solid var(--line); border-radius:10px; background:var(--surface-muted, #f5f7fa); }
.fm-candidate-comparison article.new { border:2px dashed #1687b8; background:#eefaff; }
.fm-candidate-comparison small { color:var(--muted); }
.fm-candidate-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:0; }
.fm-candidate-facts div { padding:10px; border:1px solid var(--line); border-radius:8px; }
.fm-candidate-facts dt { color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; }
.fm-candidate-facts dd { margin:4px 0 0; font-weight:800; }
@media (max-width: 720px) {
  .fm-live-notice { align-items:flex-start; flex-direction:column; }
  .fm-live-change-summary > summary { grid-template-columns:36px minmax(0,1fr); }
  .fm-live-change-summary > summary > span:last-child { grid-column:2; }
  .fm-candidate-comparison { grid-template-columns:1fr; }
  .fm-candidate-comparison > span { transform:rotate(90deg); justify-self:center; }
  .fm-candidate-facts { grid-template-columns:1fr; }
}
.scheduler-event.scheduler-unbooked:not(.scheduler-missed-event) { filter: saturate(.66) brightness(1.14); }
.scheduler-event.scheduler-booked { filter: none; }
.scheduler-event-state { position:absolute; z-index:5; display:grid; place-items:center; width:16px; height:16px; border-radius:50%; background:rgba(255,255,255,.88); color:#17233d; font-style:normal; font-size:10px; font-weight:900; box-shadow:0 1px 4px rgba(17,28,49,.24); pointer-events:none; }
.scheduler-state-booked { top:3px; left:3px; color:#b77900; }
.scheduler-state-no-conflict { top:3px; right:3px; color:#147a51; }
.scheduler-event:has(.scheduler-state-booked) > strong { padding-left:18px; }
.scheduler-event:has(.scheduler-state-no-conflict) > strong { padding-right:18px; }

/* Plan delivery is separate from performance booking and does not intercept card actions. */
.scheduler-event.scheduler-has-plan-status > strong { padding-left:calc(var(--scheduler-plan-icons-width,16px) + var(--scheduler-plan-booked-width,0px)); }
.scheduler-event.scheduler-has-plan-status .scheduler-plan-delivery { position:absolute; top:1px; left:2px; z-index:7; display:inline-flex; align-items:center; gap:2px; height:12px; margin:0; padding:0; overflow:visible; pointer-events:none; }
.scheduler-plan-channel { display:inline-grid; place-items:center; width:14px; height:12px; border-radius:3px; font:900 8px/1 "Segoe UI",Arial,sans-serif; font-style:normal; background:#fff; box-shadow:0 0 0 1px rgba(0,0,0,.12); }
.scheduler-plan-channel[data-plan-channel="email"] { font-size:12px; }
.scheduler-plan-channel.is-current { color:#09673c; background:#e1f5e9; }
.scheduler-plan-channel.is-changed { color:#9f1c30; background:#fff0f2; animation:scheduler-plan-channel-pulse 1.8s ease-in-out infinite; }
.scheduler-event.scheduler-has-plan-status .scheduler-state-booked { top:1px; left:calc(3px + var(--scheduler-plan-icons-width,16px)); width:12px; height:12px; font-size:9px; line-height:12px; }
@keyframes scheduler-plan-channel-pulse { 0%,100% { opacity:1; } 50% { opacity:.42; } }
@media(prefers-reduced-motion:reduce) {
 .scheduler-plan-channel.is-changed { animation:none; opacity:1; }
}

.exam-booking-launch {
  border-color:#c99b2b;
  background:#fff8e6;
  color:#725000;
}
.modal.modal-exam-booking {
  width:min(1180px, calc(100vw - 32px));
  max-width:1180px;
  max-height:calc(100vh - 32px);
  overflow:auto;
}
.exam-booking-heading {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin-bottom:18px;
}
.exam-booking-heading h2 { margin:2px 0 4px; }
.exam-booking-heading p { margin:0; color:var(--muted); }
.exam-legal-badge {
  flex:0 0 auto;
  padding:7px 10px;
  border-radius:999px;
  background:#eaf6ef;
  color:#12613c;
  font-size:12px;
  font-weight:800;
}
.exam-booking-layout {
  display:grid;
  grid-template-columns:minmax(260px, .72fr) minmax(0, 1.8fr);
  gap:18px;
  min-height:0;
}
.exam-student-picker,
.exam-booking-fields {
  min-width:0;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  padding:14px;
}
.exam-student-picker {
  display:flex;
  flex-direction:column;
  max-height:620px;
}
.exam-student-picker > label { display:grid; gap:6px; }
#exam-participant-results {
  display:grid;
  gap:6px;
  margin-top:10px;
  padding-right:3px;
  overflow:auto;
}
#exam-participant-results label {
  display:grid;
  grid-template-columns:18px minmax(0, 1fr);
  gap:9px;
  align-items:center;
  padding:9px;
  border:1px solid var(--line);
  border-radius:9px;
  cursor:pointer;
}
#exam-participant-results label.selected {
  border-color:var(--primary);
  background:#edf4ff;
}
#exam-participant-results strong,
#exam-participant-results small { display:block; }
#exam-participant-results small { margin-top:2px; color:var(--muted); }
.exam-booking-fields .form-grid { align-items:start; }
.exam-rule-summary {
  display:grid;
  gap:10px;
  margin-top:14px;
  padding:13px;
  border:1px solid #c9dff2;
  border-radius:11px;
  background:#f3f9fe;
}
.exam-rule-summary > div:first-child {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
}
.exam-rule-summary > div:first-child span { color:var(--muted); }
.exam-rule-summary dl {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
  margin:0;
}
.exam-rule-summary dl div {
  padding:8px;
  border-radius:8px;
  background:#fff;
}
.exam-rule-summary dt { color:var(--muted); font-size:11px; font-weight:800; text-transform:uppercase; }
.exam-rule-summary dd { margin:3px 0 0; font-weight:700; }
.exam-rule-summary a,
.exam-booking-warnings a { color:#174b9b; font-weight:700; }
.exam-booking-warnings {
  display:grid;
  gap:8px;
  margin-top:12px;
}
.exam-booking-warnings article {
  padding:11px 12px;
  border:1px solid #e3ca89;
  border-radius:10px;
  background:#fff8e6;
}
.exam-booking-warnings article.blocking {
  border-color:#e7a7ad;
  background:#fff0f1;
}
.exam-booking-warnings p { margin:4px 0; }
.exam-booking-warnings small { display:block; margin-bottom:4px; }
@media (max-width:860px) {
  .modal.modal-exam-booking { width:calc(100vw - 16px); max-height:calc(100vh - 16px); }
  .exam-booking-heading,
  .exam-rule-summary > div:first-child { display:grid; }
  .exam-booking-layout { grid-template-columns:1fr; }
  .exam-student-picker { max-height:260px; }
}
.scheduler-event.scheduler-overlap-event { min-width: 0; padding-right: 17px; border-width: 2px; box-shadow: 0 2px 7px rgba(17,27,48,.2); }
.scheduler-overlap-badge { position: absolute; top: 3px; right: 3px; min-width: 15px; height: 15px; display: grid; place-items: center; padding: 0 2px; border-radius: 8px; color: #fff; background: rgba(24,32,51,.72); font-size: 7px; font-style: normal; font-weight: 900; }
.scheduler-event.scheduler-bookable { padding-right: 76px; padding-bottom: 27px; }
.scheduler-performance-actions { position: absolute; right: 3px; bottom: 3px; z-index: 9; display: flex !important; gap: 3px; overflow: visible !important; }
.scheduler-performance-actions > span { width: auto; min-width: 46px; height: 21px; margin: 0 !important; padding: 0 6px; display: inline-grid !important; place-items: center; overflow: visible !important; border: 1px solid rgba(255,255,255,.9); border-radius: 5px; color: #16324a; background: rgba(255,255,255,.97); box-shadow: 0 1px 4px rgba(20,35,58,.25); font-size: 7px !important; font-weight: 950 !important; line-height: 1; cursor: pointer; white-space: nowrap; }
.scheduler-performance-actions > span:hover,
.scheduler-performance-actions > span:focus-visible { outline: 2px solid #08a4df; transform: scale(1.08); }
.scheduler-performance-actions .scheduler-booking-toggle.is-booked { color: #fff; background: #168659; }
.scheduler-performance-actions .scheduler-booking-toggle.is-partial { color: #744900; background: #ffe29a; font-size: 7px !important; }
.scheduler-performance-actions .scheduler-booking-toggle.has-missed,
.scheduler-performance-actions .scheduler-missed-toggle.is-active { color: #fff; background: #c93649; }
.scheduler-performance-actions .scheduler-missed-toggle { color: #a51f33; background: #fff2f4; }
.scheduler-event.scheduler-overlap-event.scheduler-bookable { padding-right: 3px; padding-bottom: 27px; }
.scheduler-performance-actions.compact { left: 3px; right: auto; gap: 2px; }
.scheduler-performance-actions.compact > span { width: 20px; min-width: 20px; height: 20px; padding: 0; font-size: 8px !important; }
.scheduler-event.scheduler-overlap-event > strong,
.scheduler-event.scheduler-overlap-event > span:not(.scheduler-performance-actions),
.scheduler-event.scheduler-overlap-event > small { max-width: 100%; }
.scheduler-event.scheduler-missed-event { border: 3px solid #9f2033; border-left-width: 7px; box-shadow: 0 0 0 3px rgba(201,54,73,.16); }
.scheduler-event.scheduler-partial-missed-event { border: 3px solid #c93649; border-left-width: 7px; background-image: repeating-linear-gradient(135deg, transparent 0 10px, rgba(201,54,73,.13) 10px 20px) !important; }
.scheduler-event.scheduler-unlinked-lesson { border-style: dashed; filter: saturate(.55); }
.scheduler-event .scheduler-nonbookable-reason { margin-top: 3px; padding: 2px 4px; border-radius: 4px; color: #742b19; background: rgba(255,255,255,.88); font-size: 7px; font-weight: 900; }
.global-history-feedback { max-width: 0; overflow: hidden; white-space: nowrap; color: #536579; font-size: 8px; font-weight: 850; opacity: 0; transition: max-width .2s ease, opacity .2s ease; }
.global-history-feedback.success,
.global-history-feedback.error { max-width: 100px; opacity: 1; }
.global-history-feedback.success { color: #157a53; }
.global-history-feedback.error { color: #b3263a; }

.appointment-page { gap: 0; overflow: visible; }
.appointment-page > .appointment-toolbar.ui-personal-sticky { z-index: 55 !important; }
.appointment-page > .appointment-pinned.ui-personal-sticky { z-index: 52 !important; }
.appointment-page > .dashboard-alerts.ui-personal-sticky { z-index: 51 !important; }
body[data-ki-page="appointments"] .appointment-page > .scheduler-card.ui-personal-sticky {
  position: relative !important;
  top: auto !important;
  z-index: auto !important;
}
body[data-ki-page="appointments"] .appointment-page > .scheduler-card.ui-personal-sticky > .card-header {
  position: sticky;
  top: var(--ui-sticky-offset, 259px);
  z-index: 45;
  background: rgba(255,255,255,.985);
  box-shadow: 0 5px 12px rgba(24,32,51,.08);
  backdrop-filter: blur(8px);
}
body[data-ki-page="appointments"] .appointment-page > .scheduler-card.ui-personal-sticky .scheduler-week-scroll {
  height: max(320px, calc(100dvh - var(--ui-sticky-offset, 259px) - 60px));
  min-height: 320px;
}
body[data-ki-page="appointments"] .appointment-page > .scheduler-card.ui-personal-sticky :is(.scheduler-week-corner, .scheduler-week-day-header) {
  position: sticky;
  top: 0;
}
body[data-ki-page="appointments"] .appointment-calendar-workspace > .scheduler-card.ui-personal-sticky {
  position: relative !important;
  top: auto !important;
  z-index: auto !important;
}
body[data-ki-page="appointments"] .appointment-calendar-workspace > .scheduler-card.ui-personal-sticky > .card-header {
  position: sticky;
  top: var(--ui-sticky-offset, 259px);
  z-index: 45;
  background: rgba(255,255,255,.985);
  box-shadow: 0 5px 12px rgba(24,32,51,.08);
  backdrop-filter: blur(8px);
}
body[data-ki-page="appointments"] .appointment-calendar-workspace > .scheduler-card.ui-personal-sticky .scheduler-week-scroll {
  height: max(320px, calc(100dvh - var(--ui-sticky-offset, 259px) - 60px));
  min-height: 320px;
}
body[data-ki-page="appointments"] .appointment-calendar-workspace > .scheduler-card.ui-personal-sticky :is(.scheduler-week-corner, .scheduler-week-day-header) {
  position: sticky;
  top: 0;
}
.appointment-page > .ui-personal-sticky { margin-block: 0 !important; }
.appointment-page > .ui-personal-sticky + .ui-personal-sticky { border-radius: 0; }
.appointment-page > .dashboard-alerts { padding: 3px 5px; position: relative; border-radius: 7px; isolation: isolate; }
.appointment-page > .dashboard-alerts .appointment-conflict-summary-title b { min-width: 24px; height: 21px; padding-inline: 6px; }
.appointment-page > .dashboard-alerts .appointment-conflict-summary > summary { min-height: 34px; padding-block: 5px; }
.appointment-toolbar {
  padding: 5px 7px;
  position: sticky;
  top: var(--topbar-height, 82px);
  z-index: 55;
  display: grid;
  grid-template-columns: minmax(410px, 1.15fr) minmax(260px, .75fr) minmax(220px, .62fr) max-content;
  grid-template-areas: "navigation settings instructor actions";
  gap: 5px 8px;
  align-items: center;
  align-self: start;
  border: 1px solid var(--line);
  border-radius: 0 0 8px 8px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 5px 14px rgba(24,32,51,.12);
  backdrop-filter: blur(8px);
  isolation: isolate;
}
.appointment-week-navigation {
  grid-area: navigation;
  min-width: 0;
  display: grid;
  grid-template-columns: max-content minmax(175px, 1fr);
  gap: 7px;
  align-items: center;
}
.appointment-week-switcher { display: inline-grid; grid-template-columns: 36px 68px 36px; gap: 4px; align-items: center; justify-content: center; }
.appointment-week-switcher button { height: 34px; border-radius: 8px; font: inherit; font-weight: 900; cursor: pointer; transition: transform .12s ease, border-color .12s ease, background .12s ease, box-shadow .12s ease; }
.appointment-week-switcher button:hover { transform: translateY(-1px); }
.appointment-week-switcher button:focus-visible { outline: 3px solid rgba(8,164,223,.24); outline-offset: 2px; }
.appointment-week-arrow { display: grid; place-items: center; color: #173b76; border: 1px solid #9eb7d4; background: #f3f8ff; box-shadow: 0 3px 8px rgba(24,55,102,.16); font-size: 22px; line-height: 1; }
.appointment-week-arrow:hover { color: #fff; border-color: var(--brand-blue); background: var(--brand-blue); box-shadow: 0 5px 12px rgba(47,69,159,.26); }
.appointment-today-button { color: #17304f; border: 1px solid #b9c9da; background: #fff; box-shadow: 0 2px 6px rgba(24,32,51,.09); font-size: 11px; }
.appointment-today-button:hover { color: var(--brand-blue); border-color: #8ea5c0; background: #f8fbff; }
.appointment-week-label { min-width: 0; min-height: 34px; display: inline-flex; align-items: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.appointment-toolbar-settings { grid-area: settings; min-width: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); gap: 5px; align-items: end; }
.appointment-toolbar-settings .field-inline { min-width: 0; }
.appointment-toolbar-settings .appointment-view-toggle {
  min-height: 0;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0,1fr);
  gap: 3px;
  align-self: stretch;
  border: 0;
  background: transparent;
}
.appointment-toolbar-settings .appointment-view-toggle > span {
  color: var(--muted);
  font-size: 9px;
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.appointment-toolbar-settings .appointment-view-toggle > div {
  min-height: 32px;
  padding: 2px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #eef2f7;
}
.appointment-view-toggle {
  min-width: 0;
  min-height: 32px;
  padding: 2px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3px;
  align-self: end;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #eef2f7;
}
.appointment-view-toggle button {
  min-width: 0;
  min-height: 26px;
  padding: 3px 7px;
  border: 0;
  border-radius: 6px;
  color: #52617a;
  background: transparent;
  font: inherit;
  font-size: 10px;
  font-weight: 850;
  cursor: pointer;
}
.appointment-view-toggle button.active {
  color: #fff;
  background: var(--brand-blue);
  box-shadow: 0 2px 6px rgba(47,69,159,.22);
}
.appointment-toolbar-actions { grid-area: actions; min-width: 0; display: flex; gap: 6px; align-items: center; justify-content: flex-end; flex-wrap: wrap; }
.appointment-toolbar-actions .button { min-height: 30px; padding-block: 4px; }
.appointment-date-field { min-width: 0; }
.appointment-step-field { min-width: 0; }
.appointment-instructor-picker { min-width: 260px; position: relative; z-index: 24; }
.appointment-instructor-picker[open] { z-index: 80; }
.appointment-toolbar > #appointment-instructor-picker { grid-area: instructor; width: 100%; min-width: 0; height: fit-content; align-self: center; }
.appointment-pin-controls .appointment-group-picker { width: 100%; min-width: 0; }
.appointment-instructor-picker > summary { min-height: 38px; padding: 4px 8px; display: grid; grid-template-columns: 1fr auto; align-items: center; list-style: none; border: 1px solid var(--line); border-radius: 7px; background: #fff; cursor: pointer; }
.appointment-instructor-picker > summary::-webkit-details-marker { display: none; }
.appointment-instructor-picker > summary span { grid-column: 1 / -1; color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.appointment-instructor-picker > summary strong { max-width: 215px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.appointment-instructor-picker > summary small { width: 23px; height: 23px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--brand-blue); font-size: 9px; font-weight: 800; }
.appointment-instructor-picker[open] > summary { border-color: var(--brand-cyan); border-radius: 7px 7px 0 0; box-shadow: 0 0 0 3px rgba(8,164,223,.12); }
.appointment-group-picker { min-width: 260px; }
.appointment-group-picker .appointment-instructor-menu { left: 0; right: auto; }
.appointment-group-options { display: grid; gap: 2px; }
.group-picker-chip { min-width: 27px; height: 22px; padding: 0 5px; display: inline-grid; place-items: center; border-radius: 6px; color: #fff; background: var(--group-color); font-size: 8px; font-weight: 900; }
.appointment-group-picker .appointment-instructor-menu { width: min(620px, calc(100vw - 30px)); max-height: min(560px, 72vh); }
.appointment-group-picker-course { overflow: hidden; border: 1px solid #d8e2ef; border-radius: 9px; background: #fff; }
.appointment-group-picker-course + .appointment-group-picker-course { margin-top: 6px; }
.appointment-group-picker-course > header { min-height: 51px; padding: 7px 9px; display: grid; grid-template-columns: 5px minmax(145px, 1fr) auto auto auto; gap: 9px; align-items: center; background: #f4f8fd; border-bottom: 1px solid #d8e2ef; }
.appointment-group-picker-course > header .course-color { width: 5px; height: 31px; border-radius: 4px; }
.appointment-group-picker-course > header div { min-width: 0; display: grid; gap: 1px; }
.appointment-group-picker-course > header strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #183456; font-size: 11px; }
.appointment-group-picker-course > header small { color: var(--muted); font-size: 8px; }
.appointment-group-picker-course > header > span:not(.course-color) { display: grid; justify-items: center; color: var(--muted); font-size: 8px; white-space: nowrap; }
.appointment-group-picker-course > header > span b { color: #183456; font-size: 11px; }
.appointment-group-picker-course > header em { padding: 4px 7px; border-radius: 999px; color: #155f3b; background: #dff5e9; font-size: 8px; font-style: normal; font-weight: 850; }
.appointment-group-picker-course > div { padding: 5px; display: grid; gap: 4px; }
.appointment-group-picker-row { min-height: 46px; grid-template-columns: auto auto minmax(100px, .8fr) minmax(220px, 1.6fr); align-items: center; border: 1px solid #e1e8f1; border-radius: 7px; }
.appointment-group-picker-row:hover { border-color: #9fb9dc; background: #f6f9fd; }
.appointment-group-picker-row > strong { color: #173453; font-size: 10px; }
.appointment-group-picker-meta { min-width: 0; display: grid; grid-template-columns: auto minmax(90px, 1fr) auto; gap: 7px; align-items: center; color: var(--muted); font-size: 8px; }
.appointment-group-picker-meta span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.appointment-group-picker-meta b { color: #155f3b; }
@media (max-width: 700px) {
  .appointment-group-picker-course > header { grid-template-columns: 5px minmax(120px, 1fr) auto auto; }
  .appointment-group-picker-course > header > span:nth-of-type(3) { display: none; }
  .appointment-group-picker-row { grid-template-columns: auto auto minmax(90px, 1fr); }
  .appointment-group-picker-meta { grid-column: 2 / -1; grid-template-columns: auto minmax(80px, 1fr) auto; }
}
.appointment-instructor-menu { width: 330px; max-height: 430px; padding: 8px; position: absolute; z-index: 1; top: calc(100% - 1px); right: 0; overflow: auto; display: grid; gap: 4px; border: 1px solid var(--line); border-radius: 0 0 9px 9px; background: #fff; box-shadow: 0 14px 35px rgba(24,32,51,.18); }
.appointment-instructor-menu.is-single { width: 270px; max-height: 330px; padding: 5px; gap: 3px; }
.appointment-instructor-simple { display: grid; gap: 1px; }
.appointment-instructor-simple .appointment-instructor-option { min-height: 36px; padding: 6px 8px; grid-template-columns: 28px minmax(0,1fr); }
.appointment-instructor-compact-action { padding-top: 5px; border-top: 1px solid var(--line); }
.appointment-instructor-compact-action button { width: 100%; min-height: 30px; border: 1px solid var(--line); border-radius: 6px; color: var(--brand-blue); background: #fff; font-size: 9px; font-weight: 850; cursor: pointer; }
.appointment-instructor-compact-action button:hover { border-color: var(--brand-blue); background: #f3f7ff; }
.appointment-instructor-picker:not([open]) > .appointment-instructor-menu { display: none; }
.appointment-instructor-mode { padding: 8px; display: flex; align-items: center; gap: 10px; border: 1px solid #dbe4ef; border-radius: 8px; background: #f7f9fc; }
.appointment-instructor-mode > div { min-width: 0; display: grid; gap: 2px; }
.appointment-instructor-mode small { color: var(--muted); font-size: 9px; }
.appointment-instructor-mode > button { margin-left: auto; min-height: 31px; padding: 5px 8px; border: 1px solid var(--brand-blue); border-radius: 6px; color: var(--brand-blue); background: #fff; font-size: 9px; font-weight: 850; white-space: nowrap; }
.appointment-instructor-mode > button.active { color: #fff; background: var(--brand-blue); }
.appointment-selection-mode { font-size: 10px; font-weight: 900; }
.appointment-selection-mode.single { color: #38506b; }
.appointment-selection-mode.multi { color: var(--brand-blue); }
.appointment-selection-hint { padding: 4px 2px; color: var(--muted); font-size: 9px; font-weight: 700; }
.participant-abort-banner { padding: 12px 14px; display: grid; gap: 3px; border: 1px solid #ef9a9a; border-left: 5px solid #c62828; border-radius: 8px; color: #7f1d1d; background: #fff2f2; }
.participant-abort-banner strong { font-size: 13px; }
.participant-abort-banner span { font-size: 11px; }
.billing-abort-row td:nth-child(4) { box-shadow: inset 4px 0 0 #c62828; }
.course-tree-card { overflow: visible; }
.course-tree-card-header { align-items: flex-end; gap: 14px; flex-wrap: wrap; }
.course-list-controls { min-width: 0; margin-left: auto; display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: flex-end; gap: 10px; }
.course-status-control { display: grid; gap: 4px; color: var(--muted); font-size: 9px; font-weight: 800; }
.course-status-control select { min-height: 32px; padding: 5px 30px 5px 9px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: #fff; font: inherit; font-size: 10px; }
.course-sort-controls { min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.course-sort-controls > span { margin-right: 2px; color: var(--muted); font-size: 9px; font-weight: 800; }
.course-sort-button { min-height: 32px; padding: 5px 9px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; border: 1px solid var(--line); border-radius: 8px; color: #33415c; background: #fff; cursor: pointer; font-size: 9px; font-weight: 800; }
.course-sort-button:hover { border-color: var(--brand-blue); background: #f2f6ff; }
.course-sort-button.active { border-color: var(--brand-blue); color: #fff; background: var(--brand-blue); }
.course-sort-button span { font-size: 12px; line-height: 1; }
.course-hierarchy-list { display: grid; gap: 10px; }
.course-hierarchy { overflow: hidden; border: 1px solid var(--line); border-left: 5px solid var(--brand-blue); border-radius: 10px; background: #fff; }
.course-hierarchy.course-active { border-left-color: #198754; }
.course-hierarchy.course-upcoming { border-left-color: #e0a526; }
.course-hierarchy.course-archived { border-left-color: #7d8797; opacity: .88; }
.course-hierarchy > summary { min-height: 72px; padding: 10px 14px; display: grid; grid-template-columns: 14px minmax(220px, 1fr) 352px 110px 14px; align-items: center; gap: 12px; list-style: none; cursor: pointer; background: #f8fafc; }
.course-hierarchy > summary::-webkit-details-marker,
.course-group-tree > summary::-webkit-details-marker { display: none; }
.course-hierarchy > summary::after { content: "▸"; grid-column: 5; color: var(--brand-blue); font-size: 16px; font-weight: 900; }
.course-hierarchy[open] > summary::after { content: "▾"; }
.course-hierarchy > summary > div { min-width: 0; display: grid; gap: 3px; }
.course-hierarchy > summary > div strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #183470; font-size: 14px; }
.course-hierarchy > summary > div small { color: var(--muted); font-size: 10px; }
.course-hierarchy > summary > span:not(.course-color):not(.status-pill) { display: grid; gap: 2px; color: var(--muted); font-size: 10px; }
.course-hierarchy > summary > span b { color: var(--ink); font-size: 14px; }
.course-hierarchy-meta { min-width: 0; display: grid; grid-template-columns: 72px 90px 170px; align-items: center; gap: 10px; padding: 2px 0; }
.course-hierarchy-meta > span:not(.status-pill) { display: grid; gap: 2px; color: var(--muted); font-size: 10px; }
.course-hierarchy-meta > span b { color: var(--ink); font-size: 14px; }
.course-overview-inline { width: 100%; max-width: 170px; min-height: 24px; padding: 3px 7px; border: 1px solid #aebddd; border-radius: 6px; color: #24439b; background: #fff; cursor: pointer; font-size: 8.5px; font-weight: 850; line-height: 1.15; text-align: left; }
.course-overview-inline:hover { border-color: var(--brand-blue); background: #eef3ff; }
.course-hierarchy-body { padding: 12px; display: grid; gap: 10px; border-top: 1px solid var(--line); }
.course-tree-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.course-groups-list { display: grid; gap: 7px; }
.course-group-tree { overflow: hidden; border: 1px solid #dce3ed; border-radius: 8px; background: #fff; }
.course-group-tree > summary { min-height: 50px; padding: 8px 10px; display: grid; grid-template-columns: 12px minmax(100px, .7fr) minmax(90px, .45fr) minmax(170px, 1fr) minmax(120px, .7fr) auto auto 14px; align-items: center; gap: 10px; list-style: none; cursor: pointer; background: #fff; font-size: 10px; }
.course-group-tree > summary::after { content: "▸"; color: var(--brand-blue); font-size: 13px; font-weight: 900; }
.course-group-tree[open] > summary::after { content: "▾"; }
.course-group-tree > summary strong { color: #233c80; font-size: 12px; }
.course-group-tree > summary > span:not(.course-color) { color: var(--muted); }
.course-group-tree > summary b { padding: 3px 7px; border-radius: 999px; color: #305169; background: #edf3f7; font-size: 9px; }
.group-summary-lifecycle { min-height: 28px; padding: 4px 8px; border: 1px solid #b9c7d8; border-radius: 6px; color: var(--brand-blue); background: #fff; cursor: pointer; font-size: 9px; font-weight: 850; white-space: nowrap; }
.group-summary-lifecycle:hover { border-color: var(--brand-blue); background: #f1f6ff; }
.group-summary-lifecycle.danger { border-color: #efb7b7; color: #a42323; background: #fff7f7; }
.group-summary-actions { display: flex; align-items: center; justify-content: flex-end; gap: 5px; }
.group-summary-actions .group-summary-lifecycle.primary { color: #fff; border-color: var(--brand-blue); background: var(--brand-blue); }
.group-summary-actions .group-summary-lifecycle.primary:hover { background: var(--brand-blue-dark); }
.group-summary-actions .group-summary-lifecycle.delete { color: #a42323; border-color: #efb7b7; background: #fff; }
.group-summary-actions .group-summary-lifecycle.delete:hover { color: #fff; background: #b52d3d; border-color: #b52d3d; }
.checklist-settings-card { display: grid; gap: 12px; }
.legal-rule-note { padding: 10px 12px; display: grid; gap: 3px; border: 1px solid #b9d8c8; border-left: 5px solid #198754; border-radius: 8px; color: #194d36; background: #f2fbf6; }
.legal-rule-note strong { font-size: 12px; }
.legal-rule-note span { font-size: 10px; line-height: 1.45; }
.checklist-config-list { display: grid; gap: 7px; }
.checklist-config-item { overflow: hidden; border: 1px solid #d8e0eb; border-radius: 8px; background: #fff; }
.checklist-config-item.is-inactive { opacity: .72; }
.checklist-config-item > summary { min-height: 50px; padding: 8px 10px; display: grid; grid-template-columns: minmax(220px, 1fr) auto auto; align-items: center; gap: 10px; list-style: none; cursor: pointer; background: #f8fafc; }
.checklist-config-item > summary::-webkit-details-marker { display: none; }
.checklist-config-item > summary span { min-width: 0; display: grid; gap: 2px; }
.checklist-config-item > summary strong { color: #183470; font-size: 12px; }
.checklist-config-item > summary small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: 9px; }
.checklist-config-item > summary b,
.checklist-config-item > summary em { padding: 3px 7px; border-radius: 999px; font-size: 9px; font-style: normal; }
.checklist-config-item > summary b { color: #21496d; background: #e8f1fa; }
.checklist-config-item > summary em { color: #235f39; background: #e7f6ec; }
.checklist-config-item.is-inactive > summary em { color: #6c5b2d; background: #fff3cd; }
.checklist-config-grid { padding: 11px; display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 10px; border-top: 1px solid #d8e0eb; }
.checklist-config-grid .checklist-wide { grid-column: span 2; }
@media (max-width: 900px) {
  .checklist-config-grid { grid-template-columns: repeat(2, minmax(140px, 1fr)); }
}
@media (max-width: 560px) {
  .checklist-config-item > summary { grid-template-columns: 1fr auto; }
  .checklist-config-item > summary em { display: none; }
  .checklist-config-grid { grid-template-columns: 1fr; }
  .checklist-config-grid .checklist-wide { grid-column: auto; }
}
.course-group-tree.archived > summary { background: #f2f3f5; }
.course-group-tree.ungrouped > summary { background: #fff9e8; }
.course-group-tree.ungrouped > summary .course-color { background: #e0a526; }
.course-group-tree-body { padding: 9px; display: grid; gap: 8px; border-top: 1px solid var(--line); background: #fbfcfe; }
.pdf-course-group-sample { overflow: hidden; border: 1px solid #d8e0ee; border-radius: 7px; }
.pdf-course-group-sample > strong { display: block; padding: 7px 9px; border-left: 5px solid var(--group-color); color: #183470; background: color-mix(in srgb, var(--group-color) 16%, white); font-size: 10px; }
.compact-tree-table th,
.compact-tree-table td { padding: 7px 9px; font-size: 10px; }
.course-member-aborted td:first-child { box-shadow: inset 4px 0 0 #c62828; background: #fff5f5; }
@media (max-width: 1100px) {
  .course-hierarchy > summary { grid-template-columns: 12px minmax(190px, 1fr) 319px 100px 12px; }
  .course-hierarchy-meta { grid-template-columns: 58px 72px 173px; gap: 8px; }
  .course-hierarchy > summary::after { grid-column: auto; }
  .course-group-tree > summary { grid-template-columns: 10px minmax(95px, .6fr) auto minmax(140px, 1fr) auto auto 12px; }
  .course-group-tree > summary > span:nth-of-type(4) { display: none; }
}
@media (max-width: 760px) {
  .attention-list-row { grid-template-columns: 28px minmax(0, 1fr); }
  .attention-list-row > .button { grid-column: 1 / -1; width: 100%; }
  .course-hierarchy > summary { grid-template-columns: 10px minmax(140px, 1fr) auto 12px; }
  .course-hierarchy > summary > .course-hierarchy-meta { grid-column: 2 / 4; grid-row: 2; }
  .course-hierarchy > summary > .status-pill { grid-column: 3; grid-row: 1; }
  .course-hierarchy-meta { grid-template-columns: 46px 58px minmax(125px, 1fr); gap: 6px; }
  .course-tree-card-header { align-items: stretch; }
  .course-list-controls { width: 100%; margin-left: 0; justify-content: flex-start; }
  .course-status-control { width: 100%; }
  .course-status-control select { width: 100%; }
  .course-sort-controls { width: 100%; }
  .course-group-tree > summary { grid-template-columns: 9px minmax(90px, 1fr) auto auto 12px; }
  .course-group-tree > summary > span:not(.course-color),
  .course-group-tree > summary > b { display: none; }
  .course-group-tree > summary > .group-summary-actions { display: flex; }
  .group-summary-actions .group-summary-lifecycle { padding-right: 6px; padding-left: 6px; font-size: 0; }
  .group-summary-actions .group-summary-lifecycle::before { font-size: 11px; }
  .group-summary-actions .group-summary-lifecycle.primary::before { content: "✎"; }
  .group-summary-actions .group-summary-lifecycle.danger::before { content: "▣"; }
  .group-summary-actions .group-summary-lifecycle.delete::before { content: "×"; }
}

.planner-window-controls {
  display: grid;
  grid-template-columns: auto minmax(118px, auto) auto;
  align-items: end;
  gap: 6px;
}

.planner-window-controls > strong {
  grid-column: 1 / -1;
  color: var(--muted, #667085);
  font-size: 11px;
  text-align: center;
  white-space: nowrap;
}

@media (max-width: 1180px) {
  .planner-toolbar { align-items: end; }
  .planner-window-controls { order: 3; width: 100%; grid-template-columns: auto minmax(160px, 1fr) auto; }
  .lecturer-planning-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lecturer-planning-layout { min-width: 0; }
  .lecturer-calendar-shell, .lecturer-calendar-grid { min-width: 720px; }
}

@media (max-width: 760px) {
  .planner-toolbar > .field-inline { min-width: min(100%, 220px); }
  .planner-window-controls { grid-template-columns: 44px minmax(0, 1fr) 44px; }
  .lecturer-planning-controls { grid-template-columns: 1fr; }
}

@media (pointer: coarse) {
  button, .button, select, input:not([type="checkbox"]):not([type="radio"]), [role="button"] { min-height: 44px; }
  input[type="checkbox"], input[type="radio"] { min-width: 22px; min-height: 22px; }
  .person-link, .document-selection-check { min-height: 44px; }
  .timeline button, .scheduler-week-grid button { touch-action: manipulation; }
}
.appointment-instructor-category { overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.appointment-instructor-category > summary { min-height: 34px; padding: 6px 8px; display: flex; align-items: center; gap: 7px; list-style: none; color: var(--brand-blue); background: #f5f8fc; cursor: pointer; font-size: 11px; font-weight: 850; }
.appointment-instructor-category > summary::-webkit-details-marker { display: none; }
.appointment-instructor-category > summary::before { content: "▸"; width: 12px; }
.appointment-instructor-category[open] > summary::before { content: "▾"; }
.appointment-instructor-category > summary small { margin-left: auto; min-width: 22px; height: 20px; display: grid; place-items: center; border-radius: 10px; color: #fff; background: var(--brand-blue); font-size: 9px; }
.appointment-instructor-category > div { padding: 3px; display: grid; gap: 2px; }
.appointment-instructor-option { width: 100%; padding: 7px; display: grid; gap: 7px; align-items: center; border: 0; border-radius: 6px; color: inherit; background: transparent; cursor: pointer; font: inherit; text-align: left; }
.appointment-instructor-option.is-multi { grid-template-columns: 20px auto minmax(0,1fr) auto; }
.appointment-instructor-option.is-single { grid-template-columns: auto minmax(0,1fr) auto; }
.appointment-instructor-option:hover { background: #f3f6fb; }
.appointment-instructor-option.is-single.selected { color: var(--brand-blue); background: #eaf1ff; }
.appointment-instructor-option input { width: 16px; height: 16px; accent-color: var(--brand-blue); }
.appointment-instructor-option strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.appointment-instructor-option em { color: var(--muted); font-size: 8px; font-style: normal; font-weight: 800; }
.appointment-instructor-category.category-bus > summary { box-shadow: inset 4px 0 0 #146c43; }
.appointment-instructor-category.category-truck > summary { box-shadow: inset 4px 0 0 #ef7d00; }
.appointment-instructor-category.category-car > summary { box-shadow: inset 4px 0 0 #2f459f; }
.appointment-instructor-category.category-motorcycle > summary { box-shadow: inset 4px 0 0 #7448a8; }
.appointment-instructor-actions { padding-bottom: 6px; display: flex; gap: 6px; border-bottom: 1px solid var(--line); }
.appointment-instructor-actions button { min-height: 28px; padding: 4px 9px; border: 1px solid var(--line); border-radius: 6px; color: var(--brand-blue); background: #fff; font-size: 10px; font-weight: 800; }

.scheduler-week-card { overflow: visible; }
.scheduler-week-card > .card-header { min-height: 58px; }
.scheduler-week-scroll { height: calc(100vh - 265px); min-height: 620px; overflow: auto; background: #fff; scrollbar-gutter: stable; }
.scheduler-week-grid { width: 100%; min-width: var(--scheduler-min-width, 1122px); display: grid; grid-template-columns: 72px repeat(var(--calendar-days, 7), minmax(var(--calendar-day-min, 150px), 1fr)); grid-template-rows: 78px var(--calendar-height); align-items: stretch; }
.scheduler-week-grid.scheduler-continuous-grid {
  width: max-content;
  min-width: 100%;
  grid-template-columns: 72px repeat(var(--calendar-days), var(--calendar-day-min, 150px));
}
.scheduler-continuous-card { overflow: visible; }
.scheduler-continuous-scroll {
  overflow: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
}
.scheduler-continuous-grid .scheduler-week-day-header,
.scheduler-continuous-grid .scheduler-week-day-body { scroll-snap-align: start; }
.scheduler-continuous-grid .scheduler-week-day-header.week-start { border-left: 4px solid rgba(47,69,159,.4); }
.scheduler-continuous-grid .scheduler-week-day-body.week-start { border-left: 4px solid rgba(47,69,159,.24); }
.scheduler-week-corner { padding: 8px; position: sticky; top: 0; left: 0; display: grid; place-items: end center; color: var(--muted); background: #eef1f5; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); z-index: 30; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.scheduler-week-day-header { min-width: calc(150px * var(--lane-count)); padding: 6px 0 0; position: sticky; top: 0; overflow: hidden; background: #fff; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); z-index: 20; text-align: center; }
.scheduler-week-day-header.today { box-shadow: inset 0 4px 0 var(--brand-cyan); background: #f4fbfe; }
.scheduler-week-day-header > div:first-child { height: 43px; display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; padding: 0 9px; align-items: center; text-align: left; }
.scheduler-week-day-header > div:first-child span { color: var(--muted); font-size: 10px; }
.scheduler-week-day-header > div:first-child strong { grid-row: 2; font-size: 13px; }
.scheduler-week-day-header > div:first-child small { grid-column: 2; grid-row: 1 / 3; color: var(--muted); font-size: 9px; }
.scheduler-day-open { width: 100%; height: 43px; padding: 0 9px; display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; align-items: center; border: 0; color: var(--ink); background: transparent; text-align: left; cursor: pointer; }
.scheduler-day-open:hover, .scheduler-day-open:focus-visible { background: rgba(8,164,223,.09); outline: none; }
.scheduler-day-open span { color: var(--muted); font-size: 10px; }
.scheduler-day-open strong { grid-row: 2; font-size: 13px; }
.scheduler-day-open small { min-width: 86px; grid-column: 2; grid-row: 1 / 3; display: grid; justify-items: end; gap: 2px; color: var(--muted); font-size: 9px; }
.scheduler-day-minute-summary { display: inline-flex; justify-content: center; color: var(--brand-blue-dark); font-size: 9px; line-height: 1.15; }
.scheduler-day-minute-summary b { font-weight: 800; white-space: nowrap; }
.scheduler-week-teacher-heads { height: 29px; display: grid; grid-template-columns: repeat(var(--lane-count), minmax(150px, 1fr)); align-items: center; border-top: 1px solid #edf0f4; background: #f8f9fb; }
.scheduler-week-teacher-heads span { padding: 0 5px; overflow: hidden; color: var(--brand-blue-dark); text-overflow: ellipsis; white-space: nowrap; border-right: 1px solid var(--line); font-size: 9px; font-weight: 800; }
.scheduler-week-time { position: sticky; left: 0; background: #f4f6f9; border-right: 1px solid var(--line); z-index: 18; }
.scheduler-week-time-label { position: relative; padding: 0 7px; border-top: 1px dashed #dfe4ec; color: var(--muted); text-align: right; font-size: 8px; }
.scheduler-week-time-label.full-hour { border-top-style: solid; border-top-color: #c8cfda; color: var(--ink); }
.scheduler-week-time-label > strong,
.scheduler-week-time-label > span { position: absolute; top: 0; right: 7px; z-index: 1; padding-left: 4px; line-height: 1; background: #f4f6f9; transform: translateY(-50%); }
.scheduler-week-time-label strong { font-size: 10px; }
.scheduler-week-time-label:first-child > strong,
.scheduler-week-time-label:first-child > span { top: 2px; transform: none; }
.scheduler-week-day-body { min-width: calc(150px * var(--lane-count)); position: relative; border-right: 1px solid var(--line); background: #fff; }
.scheduler-week-day-body.today { background: #fbfeff; box-shadow: inset 2px 0 0 rgba(8,164,223,.18), inset -2px 0 0 rgba(8,164,223,.18); }
.scheduler-week-lanes { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(var(--lane-count), minmax(150px, 1fr)); z-index: 2; }
.scheduler-week-lane { min-width: 150px; position: relative; border-right: 1px solid #edf0f4; background-image: repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--slot-height) - 1px), #e3e7ed calc(var(--slot-height) - 1px), #e3e7ed var(--slot-height)); }
.scheduler-week-lane:nth-child(even) { background-color: rgba(244,246,249,.34); }
.scheduler-week-event { left: 3px; right: 3px; z-index: 5; }
.scheduler-week-event.scheduler-event-continuation { border-top-style: dashed; border-top-left-radius: 2px; border-top-right-radius: 2px; }
.scheduler-week-event.scheduler-event-continues { border-bottom-style: dashed; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; }
.scheduler-selection { position: absolute; left: 4px; right: 4px; min-height: 24px; padding: 5px 7px; overflow: hidden; display: grid; align-content: start; border: 2px solid var(--brand-cyan); border-radius: 6px; color: #fff; background: rgba(0,68,89,.76); box-shadow: 0 4px 12px rgba(0,68,89,.25); pointer-events: none; z-index: 12; }
.scheduler-selection strong, .scheduler-selection span { font-size: 9px; line-height: 1.25; }
.scheduler-week-lane.scheduler-drag-target { background-color: rgba(8,164,223,.055); }
.scheduler-week-event.is-dragging { opacity: .34; filter: saturate(.65); }
.scheduler-drop-preview { position: absolute; left: 3px; right: 3px; min-height: 16px; padding: 5px 7px; overflow: hidden; display: grid; align-content: start; gap: 2px; border: 2px dashed #0789bd; border-radius: 7px; color: #074c68; background: repeating-linear-gradient(135deg, rgba(8,164,223,.24) 0, rgba(8,164,223,.24) 8px, rgba(232,247,253,.82) 8px, rgba(232,247,253,.82) 16px); box-shadow: 0 3px 12px rgba(8,137,189,.18), inset 0 0 0 1px rgba(255,255,255,.75); pointer-events: none; z-index: 4; }
.scheduler-drop-preview strong { font-size: 9px; line-height: 1.15; }
.scheduler-drop-preview span { overflow: hidden; font-size: 8px; font-weight: 750; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.scheduler-no-teacher { padding: 45px 12px; position: sticky; top: 20px; color: var(--muted); text-align: center; font-size: 11px; }

.appointment-timeline-card {
  padding: 0;
  overflow: hidden;
  --appointment-timeline-day-width: 58px;
  --appointment-timeline-days: 35;
}
.appointment-timeline-heading { min-height: 66px; padding: 10px 14px; }
.appointment-timeline-controls { display: flex; align-items: end; gap: 6px; }
.appointment-timeline-controls label { display: grid; gap: 3px; color: var(--muted); font-size: 9px; font-weight: 800; }
.appointment-timeline-controls select { min-height: 32px; padding: 5px 27px 5px 8px; }
.appointment-timeline-controls > span { align-self: center; color: var(--muted); font-size: 9px; font-weight: 800; }
.appointment-timeline-controls button {
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 7px;
  color: var(--brand-blue);
  background: #fff;
  font-size: 16px;
  font-weight: 900;
  cursor: pointer;
}
.appointment-timeline-scroll { max-height: calc(100vh - 300px); overflow: auto; scrollbar-gutter: stable; background: #fff; }
.appointment-timeline-grid {
  min-width: max-content;
  display: grid;
  grid-template-columns: 190px repeat(var(--appointment-timeline-days), var(--appointment-timeline-day-width));
  align-items: stretch;
}
.appointment-timeline-corner,
.appointment-timeline-month,
.appointment-timeline-day-head,
.appointment-timeline-instructor {
  position: sticky;
  z-index: 10;
}
.appointment-timeline-corner {
  left: 0;
  z-index: 25;
  padding: 7px 10px;
  display: flex;
  align-items: center;
  border-right: 1px solid #c8d4e4;
  border-bottom: 1px solid #c8d4e4;
  color: #53627a;
  background: #eaf0f8;
  font-size: 9px;
  font-weight: 900;
  text-transform: uppercase;
}
.appointment-timeline-corner.month { top: 0; }
.appointment-timeline-corner.day { top: 30px; }
.appointment-timeline-month {
  top: 0;
  height: 30px;
  display: grid;
  place-items: center;
  border-right: 1px solid #c6d2e2;
  border-bottom: 1px solid #c6d2e2;
  color: #263a62;
  background: #eaf0f8;
  font-size: 9px;
  font-weight: 900;
  text-transform: uppercase;
}
.appointment-timeline-day-head {
  top: 30px;
  min-width: var(--appointment-timeline-day-width);
  min-height: 48px;
  padding: 4px 2px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 1px;
  border: 0;
  border-right: 1px solid #dce3ec;
  border-bottom: 1px solid #cbd6e4;
  color: #17233b;
  background: #f7f9fc;
  cursor: pointer;
}
.appointment-timeline-day-head small { color: #76849a; font-size: 7px; font-weight: 800; }
.appointment-timeline-day-head strong { font-size: 12px; }
.appointment-timeline-day-head span {
  max-width: calc(var(--appointment-timeline-day-width) - 5px);
  overflow: hidden;
  color: #9d2740;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 6px;
  font-weight: 850;
}
.appointment-timeline-day-head.weekend,
.appointment-timeline-cell.weekend { background: #edf2f8; }
.appointment-timeline-day-head.holiday,
.appointment-timeline-cell.holiday { background: #fff0f2; }
.appointment-timeline-day-head.today,
.appointment-timeline-cell.today { box-shadow: inset 0 0 0 2px rgba(8,164,223,.45); }
.appointment-timeline-instructor {
  left: 0;
  z-index: 12;
  min-height: 62px;
  padding: 8px 10px;
  display: grid;
  align-content: center;
  gap: 3px;
  border-right: 1px solid #c8d4e4;
  border-bottom: 1px solid #dbe3ee;
  background: #fff;
}
.appointment-timeline-instructor strong {
  max-width: 170px;
  overflow: hidden;
  color: #203a78;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 11px;
}
.appointment-timeline-instructor small { color: #748096; font-size: 8px; }
.appointment-timeline-cell {
  position: relative;
  min-width: var(--appointment-timeline-day-width);
  min-height: 62px;
  padding: 17px 3px 4px;
  border-right: 1px solid #e0e6ef;
  border-bottom: 1px solid #dbe3ee;
  background: #fff;
  cursor: pointer;
}
.appointment-timeline-cell:hover { box-shadow: inset 0 0 0 2px var(--brand-cyan); }
.appointment-timeline-cell.conflict { box-shadow: inset 0 0 0 2px #d94b5b; }
.appointment-timeline-capacity {
  position: absolute;
  top: 3px;
  left: 3px;
  right: 3px;
  overflow: hidden;
  color: #718097;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 7px;
  font-weight: 850;
}
.appointment-timeline-capacity.over { color: #b3263a; }
.appointment-timeline-holiday {
  position: absolute;
  inset: 18px 3px auto;
  overflow: hidden;
  color: #a9253c;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 7px;
  font-weight: 850;
}
.appointment-timeline-cell > div { display: grid; gap: 3px; }
.appointment-timeline-entry {
  min-width: 0;
  padding: 4px;
  display: grid;
  gap: 1px;
  border: 0;
  border-left: 3px solid color-mix(in srgb, var(--entry-bg) 68%, #17233b);
  border-radius: 5px;
  color: var(--entry-fg);
  background: var(--entry-bg);
  box-shadow: 0 1px 3px rgba(24,32,51,.13);
  text-align: left;
  cursor: pointer;
}
.appointment-timeline-entry b,
.appointment-timeline-entry span,
.appointment-timeline-entry small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.appointment-timeline-entry b { font-size: 7px; }
.appointment-timeline-entry span { font-size: 7px; font-weight: 850; }
.appointment-timeline-entry small { font-size: 6px; opacity: .82; }
.appointment-timeline-entry.block { border-style: dashed; }
.appointment-timeline-entry.ignored { outline: 2px dashed #2f459f; outline-offset: -2px; }
.appointment-timeline-empty { grid-column: 1 / -1; min-height: 120px; }
.scheduler-solar-line { position: absolute; left: 0; right: 0; border-top: 2px solid; pointer-events: none; z-index: 4; }
.scheduler-current-time-line { position: absolute; inset-inline: 0; border-top: 2px solid #dc263e; z-index: 12; pointer-events: none; }
.scheduler-current-time-line[hidden] { display: none; }
.scheduler-current-time-line::before { content: ""; position: absolute; width: 7px; height: 7px; left: 0; top: -4px; border-radius: 50%; background: #dc263e; }
.scheduler-current-time-line > span { position: absolute; top: -17px; left: 4px; padding: 1px 4px; border-radius: 3px; background: #dc263e; color: #fff; font-size: 10px; line-height: 13px; font-weight: 700; }
.scheduler-solar-line.solar-sunrise { border-color: #f5b700; }
.scheduler-solar-line.solar-sunset { border-color: #6b5bc7; }
.solar-legend { display: flex; gap: 8px; flex-wrap: wrap; }
.solar-legend span { padding: 4px 7px; border-radius: 6px; font-size: 9px; font-weight: 800; }
.solar-legend .solar-sunrise { color: #8b6600; background: #fff5ce; }
.solar-legend .solar-sunset { color: #4b3d9b; background: #eeeafd; }
.solar-marker { width: 30px; height: 24px; position: absolute; right: 2px; transform: translateY(-50%); display: grid; place-items: center; border: 0; border-radius: 6px 0 0 6px; background: #fff; z-index: 25; font-size: 16px; }
.solar-marker.solar-sunrise { color: #e5a900; box-shadow: inset 0 -2px 0 #f5b700; }
.solar-marker.solar-sunset { color: #5e4db8; box-shadow: inset 0 -2px 0 #6b5bc7; }
.solar-tooltip { min-width: 180px; padding: 9px 11px; position: absolute; left: 34px; top: 50%; transform: translateY(-50%); visibility: hidden; opacity: 0; display: grid; gap: 3px; color: #fff; background: #263044; border-radius: 7px; box-shadow: 0 8px 22px rgba(24,32,51,.24); text-align: left; font-size: 10px; pointer-events: none; transition: opacity .12s ease; }
.solar-tooltip::before { content: ""; width: 0; height: 0; position: absolute; left: -6px; top: calc(50% - 6px); border-top: 6px solid transparent; border-bottom: 6px solid transparent; border-right: 6px solid #263044; }
.solar-tooltip strong { margin-bottom: 3px; font-size: 10px; }
.solar-marker:hover .solar-tooltip, .solar-marker:focus .solar-tooltip { visibility: visible; opacity: 1; }

.invoice-items { margin-top: 14px; display: grid; gap: 7px; }
.invoice-item-head, .invoice-item-row { display: grid; grid-template-columns: minmax(220px, 1fr) 80px 110px 75px 36px; gap: 6px; align-items: center; }
.invoice-item-head { color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.invoice-item-row input { min-width: 0; min-height: 35px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 7px; }
.invoice-total { margin: 14px 0 0 auto; width: max-content; padding: 10px 15px; border-radius: 8px; color: #fff; background: var(--brand-blue); font-size: 17px; font-weight: 800; }
.import-preview { margin-top: 14px; max-height: 310px; overflow: auto; }
.import-mapping-preview { display: grid; gap: 12px; max-height: min(68vh, 760px); padding: 0 3px 10px 0; background: transparent; }
.import-mapping-panel { overflow: hidden; border: 1px solid #d8e2ec; border-radius: 10px; background: #fff; }
.import-mapping-panel > summary { display: grid; gap: 3px; padding: 11px 13px; cursor: pointer; background: #f5f8fc; }
.import-mapping-panel > summary small { color: var(--muted); font-weight: 400; }
.import-mapping-panel .table-scroll { max-height: 310px; }
.import-mapping-table select { min-width: 240px; }
.import-sample-value { display: block; max-width: 360px; overflow: hidden; color: #536176; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
.import-validation-table { max-height: 360px; }
.import-row-error td { background: #fff5f2; }

.settings-tabs { padding: 8px; position: sticky; top: 82px; border: 1px solid var(--line); border-radius: 10px; background: rgba(244,246,249,.96); z-index: 18; }
.settings-tab.active { color: #fff; border-color: var(--brand-blue); background: var(--brand-blue); }
.settings-panel { display: grid; gap: 16px; }
.settings-page-shell { height: calc(100dvh - 118px); min-height: 520px; display: grid; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; }
.settings-page-shell > .settings-tabs { top: 0; margin: 0; flex-wrap: wrap; overflow: visible; }
.settings-page-shell > .settings-tabs > * { flex: 0 0 auto; }
.settings-page-shell > .settings-tabs .spacer { flex: 1 1 18px; }
.settings-page-shell > .settings-panel:not([hidden]) { min-height: 0; height: 100%; padding: 2px 4px 22px 0; overflow: auto; align-content: start; overscroll-behavior: contain; }
@media (max-width: 760px) {
  .settings-page-shell { display: block; overflow-x: hidden; overflow-y: auto; }
  .settings-page-shell > .settings-tabs { position: static; }
  .settings-page-shell > .settings-panel:not([hidden]) { height: auto; overflow: visible; padding-top: 12px; }
}
.settings-table input[type="color"] { width: 50px; height: 34px; padding: 2px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.planner-group-select { display: flex; justify-content: center; margin-bottom: 5px; }
.planner-group-select input { width: 16px; height: 16px; margin: 0; accent-color: var(--brand-blue); cursor: pointer; }
.plan-stale { background: #fff3cd !important; }
.plan-stale-badge { display: inline-flex; margin-top: 4px; padding: 2px 5px; color: #7a3f00; background: #ffd978; border-radius: 999px; font-size: 8px; font-weight: 800; }
.settings-table input[type="number"] { width: 85px; min-height: 34px; padding: 5px; border: 1px solid var(--line); border-radius: 7px; }
.requirement-chip { display: inline-flex; margin: 2px; padding: 3px 6px; border-left: 4px solid; border-radius: 5px; background: #f5f7fa; font-size: 9px; white-space: nowrap; }
.permission-table-wrap { max-height: 680px; }
.permission-table th:not(:first-child), .permission-table td:not(:first-child) { width: 85px; text-align: center; }
.permission-category-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 12px 0 9px; padding: 9px 10px; border: 1px solid #d8e2ec; border-radius: 9px; background: #f5f8fb; }
.permission-category-toolbar > span { color: #30445f; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.permission-category-toolbar > div { display: flex; flex-wrap: wrap; gap: 6px; }
.permission-category-toolbar .button { min-height: 32px; padding: 5px 9px; }
.permission-settings-layout { grid-template-columns: minmax(0,1fr); }
.permission-settings-layout > .card { min-width: 0; }
.permission-area-tabs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-bottom: 12px; padding: 7px; border: 1px solid #d6e1ec; border-radius: 13px; background: #eef3f7; }
.permission-area-tabs .button { display: grid; grid-template-columns: 28px minmax(0,1fr); grid-template-rows: auto auto; column-gap: 9px; align-items: center; min-height: 62px; padding: 9px 13px; border-color: transparent; background: transparent; color: #24374e; text-align: left; }
.permission-area-tabs .button > span { grid-row: 1 / 3; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #dbe6ef; color: var(--brand-blue); font-size: 12px; font-weight: 900; }
.permission-area-tabs .button strong { font-size: 14px; }
.permission-area-tabs .button small { color: #66788d; font-size: 11px; }
.permission-area-tabs .button.active { border-color: #91b7d4; background: #fff; box-shadow: 0 2px 8px rgba(26,55,82,.08); color: var(--brand-blue); }
.permission-area-tabs .button.active > span { background: var(--brand-blue); color: #fff; }
.rights-explainer { display: grid; grid-template-columns: minmax(135px,1fr) auto minmax(135px,1fr) auto minmax(135px,1fr) auto minmax(150px,1.1fr); gap: 8px; align-items: center; margin: 12px 0; padding: 12px; border: 1px solid #cee0eb; border-radius: 12px; background: linear-gradient(135deg,#f5fafe,#eef7f4); }
.rights-explainer article { display: grid; grid-template-columns: 28px minmax(0,1fr); align-items: center; column-gap: 8px; padding: 8px; border: 1px solid #d6e3ec; border-radius: 9px; background: #fff; }
.rights-explainer article > span { grid-row: 1 / 3; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #e5eef6; color: var(--brand-blue); font-weight: 900; }
.rights-explainer article strong { font-size: 12px; }
.rights-explainer article small { color: #66788d; font-size: 10px; line-height: 1.25; }
.rights-explainer > b { color: #6e879b; font-size: 18px; }
.rights-explainer article.result { border-color: #82c7a8; background: #effaf5; }
.rights-explainer article.result > span { background: #187a5b; color: #fff; }
.central-personnel-categories { display: grid; grid-template-columns: minmax(190px,.8fr) minmax(260px,2fr) auto; gap: 12px; align-items: center; margin: 12px 0; padding: 12px; border: 1px solid #d5e1eb; border-radius: 12px; background: #f7fafc; }
.central-personnel-categories > div:first-child { display: grid; gap: 2px; }
.central-personnel-categories small { color: #65768b; }
.personnel-category-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.personnel-category-chip { display: inline-flex; gap: 7px; align-items: center; padding: 6px 9px; border: 1px solid #d3dde8; border-radius: 999px; background: #fff; color: #16243c; cursor: pointer; }
.personnel-category-chip b { margin-left: 2px; color: #5f7090; font-size: 13px; }
.personnel-category-chip:hover, .personnel-category-chip:focus-visible { border-color: #4058b7; box-shadow: 0 0 0 2px rgba(64,88,183,.12); }
.personnel-category-chip.archived { border-style: dashed; background: #f1f3f5; color: #748092; opacity: .85; }
.personnel-category-chip.archived > small { padding-left: 2px; color: #8a5260; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.personnel-category-chip span, .personnel-category-color { width: 10px; height: 10px; border-radius: 50%; background: var(--category-color, #78849a); flex: 0 0 auto; }
.personnel-category-row td { padding: 0 !important; background: #f1f6fa; border-top: 2px solid #dce7ef; }
.personnel-category-row-toolbar { display: flex; align-items: center; gap: 8px; padding-right: 8px; }
.personnel-category-row [data-personnel-category-toggle] { flex: 1 1 auto; min-width: 0; min-height: 42px; display: grid; grid-template-columns: 14px minmax(120px,1fr) auto 20px; align-items: center; gap: 10px; padding: 8px 12px; border: 0; background: transparent; text-align: left; color: #1d3150; cursor: pointer; }
.personnel-category-row [data-personnel-category-toggle] small { color: #6b7d91; }
.personnel-category-row [data-personnel-category-toggle] b { font-size: 17px; text-align: center; }
.personnel-category-row-actions { flex: 0 0 auto; }
.personnel-category-row-actions .button { width: auto; min-height: 32px; padding: 6px 10px; white-space: nowrap; }
.settings-users-table .settings-user-select-cell { width: 42px; min-width: 42px; padding-inline: 9px; text-align: center; }
.settings-user-select-cell input { width: 18px; height: 18px; accent-color: var(--brand-blue); cursor: pointer; }
.settings-user-select-protected { color: #b88800; font-size: 12px; }
.settings-users-table tr.bulk-selected > td { background: #eef4ff; box-shadow: inset 0 1px #cad7ff, inset 0 -1px #cad7ff; }
.settings-users-table tr.bulk-selected > td:first-child { box-shadow: inset 4px 0 var(--brand-blue), inset 0 1px #cad7ff, inset 0 -1px #cad7ff; }
.settings-user-bulk-toolbar { margin: 12px 0; padding: 11px 12px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; border: 1px solid #c9d6f4; border-radius: 12px; background: linear-gradient(135deg, #f5f8ff, #eef4ff); }
.settings-user-bulk-toolbar > div { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.settings-user-bulk-toolbar > div:first-child { min-width: min(100%, 320px); display: grid; gap: 2px; }
.settings-user-bulk-toolbar small { color: var(--muted); }
.bulk-user-settings-form { width: 100%; max-width: 1040px; min-width: 0; box-sizing: border-box; }
.bulk-user-selection-summary { margin: 10px 0 14px; display: flex; flex-wrap: wrap; gap: 6px; }
.bulk-user-selection-summary span { padding: 5px 9px; border: 1px solid #cad7ef; border-radius: 999px; background: #f5f8fd; color: #263c68; font-weight: 750; font-size: 12px; }
.bulk-user-common-settings { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.bulk-user-common-settings .form-field { min-width: 0; }
.bulk-user-rights-heading { margin-top: 16px; padding: 10px 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; border-top: 1px solid var(--line); }
.bulk-user-rights-heading > div { display: flex; flex-wrap: wrap; gap: 7px; }
.bulk-user-rights-heading > div:first-child { display: grid; gap: 2px; }
.bulk-user-rights-heading small { color: var(--muted); }
.bulk-user-rights-modules { max-height: min(50vh, 520px); overflow: auto; border: 1px solid var(--line); border-radius: 10px; background: #f7f9fc; }
.bulk-user-rights-module + .bulk-user-rights-module { border-top: 1px solid var(--line); }
.bulk-user-rights-module-head { width: 100%; padding: 10px 12px; display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; gap: 8px; align-items: center; border: 0; background: #fff; color: var(--text); text-align: left; cursor: pointer; }
.bulk-user-rights-module.open .bulk-user-rights-module-head { background: #edf3ff; color: #203a80; }
.bulk-user-rights-module-head small { color: var(--muted); }
.bulk-user-rights-list { padding: 6px; display: grid; gap: 5px; }
.bulk-user-rights-list label { padding: 8px 9px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(190px, 250px); gap: 10px; align-items: center; border: 1px solid #e0e6ef; border-radius: 8px; background: #fff; }
.bulk-user-rights-list label > span { min-width: 0; display: grid; gap: 2px; }
.bulk-user-rights-list label small { color: var(--muted); }
@media (max-width: 760px) {
  .bulk-user-common-settings { grid-template-columns: 1fr; }
  .bulk-user-rights-list label { grid-template-columns: 1fr; }
  .settings-user-bulk-toolbar > div:last-child { width: 100%; }
}
.status-pill.superadmin, .status-pill.role-superadmin { color: #fff; border-color: #45207a; background: linear-gradient(135deg,#2f145d,#7448a8); }
.personnel-area-badge { display: inline-flex; width: fit-content; margin-top: 3px; padding: 2px 7px; border-radius: 999px; background: #edf3f8; color: #536a81; font-size: 10px; font-weight: 700; }
.rights-help-dialog { width: min(980px, 92vw); }
.rights-help-flow { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1.15fr; gap: 10px; align-items: stretch; margin: 18px 0; }
.rights-help-flow article { display: grid; grid-template-columns: 34px 1fr; column-gap: 9px; align-content: center; min-height: 100px; padding: 12px; border: 1px solid #d4e0ea; border-radius: 12px; background: #f8fbfd; }
.rights-help-flow article > span { grid-row: 1 / 3; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #dfeaf3; color: #233f69; font-weight: 900; }
.rights-help-flow article small { color: #61768a; line-height: 1.35; }
.rights-help-flow > b { align-self: center; color: #7b90a4; font-size: 20px; }
.rights-help-flow article.result { border-color: #75bf9e; background: #eef9f4; }
.rights-help-flow article.result > span { color: #fff; background: #187a5b; }
.rights-help-examples { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.rights-help-examples article { padding: 12px; border: 1px solid #d8e1e9; border-radius: 10px; background: #fff; }
.permission-feature-info { display: grid; gap: 3px; min-width: 210px; max-width: 760px; text-align: left; }
.permission-feature-info strong { color: #20354d; font-size: 12px; }
.permission-feature-info small { color: #60738a; font-size: 10.5px; line-height: 1.35; }
.permission-module td { padding: 0 !important; color: #18314a; background: #edf4f8; border-top: 7px solid #fff; }
.permission-module:first-child td { border-top-width: 0; }
.permission-module button { display: grid; grid-template-columns: 20px minmax(150px,1fr) auto auto; align-items: center; gap: 10px; width: 100%; min-height: 46px; padding: 9px 12px; border: 0; color: inherit; background: transparent; text-align: left; cursor: pointer; }
.permission-module button:hover, .permission-module button:focus-visible { background: #e2edf4; outline: none; }
.permission-module.open td { color: #fff; background: var(--brand-blue); }
.permission-module.open button:hover, .permission-module.open button:focus-visible { background: rgba(255,255,255,.08); }
.permission-module strong { font-size: 13px; }
.permission-module small { color: #66788d; font-weight: 700; white-space: nowrap; }
.permission-module.open small { color: rgba(255,255,255,.76); }
.permission-module-chevron { font-size: 18px; font-weight: 900; text-align: center; }
.permission-module-role-summary { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.permission-module-role-summary span { padding: 3px 6px; border: 1px solid #c6d6e2; border-radius: 999px; background: rgba(255,255,255,.76); color: #40556d; font-size: 10px; font-weight: 700; white-space: nowrap; }
.permission-module.open .permission-module-role-summary span { border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.12); color: #fff; }
.switch { display: inline-block; }
.switch input { width: 18px; height: 18px; accent-color: var(--brand-blue); }
.compact-form { grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: end; }

.person-link { min-height: 32px; padding: 5px 0; display: inline-flex; align-items: center; border: 0; color: var(--brand-blue); background: transparent; font: inherit; font-weight: 800; text-align: left; cursor: pointer; }
.person-link:hover, .person-link:focus-visible { color: var(--brand-cyan); text-decoration: underline; }
.person-link.record-name-link { min-height:0; max-width:100%; padding:0; border:0; border-radius:3px; background:transparent; font:inherit; font-weight:800; line-height:inherit; white-space:normal; overflow-wrap:anywhere; text-decoration:underline; text-decoration-color:color-mix(in srgb,var(--brand-blue) 35%,transparent); text-underline-offset:3px; }
.person-link.record-name-link:focus-visible { outline:2px solid var(--brand-cyan); outline-offset:3px; }
.office-week-person-select { display:block; width:100%; min-width:0; padding:0; border:0; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.office-week-person-select:focus-visible { outline:2px solid var(--brand-cyan); outline-offset:3px; border-radius:5px; }
.document-selection-check { width: 34px; min-height: 34px; display: inline-grid; place-items: center; cursor: pointer; }
.document-selection-check input { width: 18px; height: 18px; margin: 0; accent-color: var(--brand-blue); }
.document-selection-check:focus-within { border-radius: 8px; outline: 3px solid rgb(8 164 223 / 28%); outline-offset: 1px; }
.document-workflow { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(120px, 1fr)); gap: 8px; list-style: none; }
.document-workflow li { min-height: 58px; padding: 9px 11px; display: flex; align-items: center; gap: 9px; border: 1px solid #d5e0ea; border-radius: 10px; background: #fff; }
.document-workflow li > b { width: 29px; height: 29px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; color: #526a81; background: #e9eef4; }
.document-workflow li.active { border-color: #8fb3dd; background: #edf5ff; }
.document-workflow li.active > b { color: #fff; background: var(--brand-blue); }
.document-workflow strong,.document-workflow small { display: block; }
.document-workflow small { margin-top: 2px; color: var(--muted); font-size: 9px; }
@media (max-width: 900px) { .document-workflow { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.dashboard-widget-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 14px; }
.dashboard-widget { grid-column: span 12; min-width: 0; }
.dashboard-widget.dashboard-width-half { grid-column: span 6; }
.dashboard-widget.dashboard-width-wide { grid-column: span 8; }
.dashboard-widget.dashboard-width-full, .dashboard-widget.widget-wide { grid-column: span 12; }
.dashboard-widget .table-scroll { max-height: 360px; }
.work-center-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.work-center-summary :is(button,a) { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 8px; padding: 10px 12px; color: var(--brand-blue-dark); background: #f4f7fb; border: 1px solid #dce4ef; border-radius: 9px; cursor: pointer; }
.work-center-summary :is(button,a):hover, .work-center-summary :is(button,a):focus-visible { background: #eaf0ff; border-color: #aebde2; outline: none; }
.work-center-summary strong { font-size: 1.2rem; }
.work-center-summary small { flex-basis: 100%; color: #66758a; font-size: 9px; text-align: right; }
.work-center-list { display: grid; gap: 6px; }
.work-center-row { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto; align-items: center; gap: 10px; width: 100%; padding: 9px 11px; color: #182033; text-align: left; background: #fff; border: 1px solid #dce4ef; border-left: 4px solid #6f829a; border-radius: 8px; cursor: pointer; }
.work-center-row.error { border-left-color: #c8364a; background: #fff7f8; }
.work-center-row.warning { border-left-color: #e2a52b; background: #fffaf0; }
.work-center-row.info { border-left-color: var(--brand-cyan); }
.work-center-row small { display: block; margin-top: 2px; color: #66758a; }
.work-center-area { font-size: .75rem; font-weight: 800; text-transform: uppercase; color: #53647a; }
.dashboard-alert-button { width: 100%; color: inherit; text-align: left; background: transparent; border-top: 0; border-right: 0; border-left: 0; cursor: pointer; }
.dashboard-alert-button > div { min-width: 0; flex: 1; }
.dashboard-alert-button > b { align-self: center; color: var(--brand-blue); font-size: 18px; }
.attention-list-dialog { display: grid; min-height: 0; max-height: min(82vh, 780px); }
.attention-list-dialog > .card-header { padding-right: 4px; }
.attention-list-scroll { display: grid; gap: 8px; min-height: 120px; max-height: min(64vh, 620px); padding: 5px 4px 12px; overflow: auto; }
.attention-list-row { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px; border: 1px solid #dce4ef; border-left: 5px solid #e2a52b; border-radius: 10px; background: #fffaf0; }
.attention-list-row.error { border-left-color: #c8364a; background: #fff7f8; }
.attention-list-icon { display: grid; place-items: center; width: 28px; height: 28px; color: #fff; background: #e2a52b; border-radius: 50%; font-weight: 900; }
.attention-list-row.error .attention-list-icon { background: #c8364a; }
.attention-list-copy { min-width: 0; }
.attention-list-copy > strong, .attention-list-copy > small { display: block; }
.attention-list-copy > small { margin-top: 3px; color: #53647a; line-height: 1.35; }
.attention-list-facts { display: flex; flex-wrap: wrap; gap: 5px 14px; margin-top: 8px; color: #60738a; font-size: 10px; }
.attention-list-facts b { color: #263c55; }
.exam-overview-table { min-width: 980px; table-layout: fixed; }
.exam-overview-table th:nth-child(1) { width: 145px; }
.exam-overview-table th:nth-child(2) { width: 195px; }
.exam-overview-table th:nth-child(3) { width: 135px; }
.exam-overview-table th:nth-child(4) { width: 150px; }
.exam-overview-table th:nth-child(5) { width: 210px; }
.exam-overview-table th:nth-child(6) { width: 145px; }
.exam-overview-table td { padding: 11px 12px; vertical-align: top; line-height: 1.3; }
.exam-overview-table td > strong, .exam-overview-table td > small, .exam-overview-table td > .person-link + small, .exam-overview-table .exam-status-cell > small { display: block; }
.exam-overview-table td > small, .exam-overview-table .exam-status-cell > small { margin-top: 4px; color: #65758a; font-size: 10px; }
.exam-overview-table .person-link { display: block; max-width: 100%; line-height: 1.25; }
.exam-overview-table .exam-location-missing { background: #fffaf0; }
.dashboard-config-row { display: grid; grid-template-columns: auto minmax(260px, 1fr) 150px; align-items: center; gap: 10px; padding: 7px; border-bottom: 1px solid #e3e8ef; }
.dashboard-config-move { display: flex; gap: 4px; }
.dashboard-width-field { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 7px; }
.dashboard-width-field span { color: #66758a; font-size: .8rem; }
.ui-global-label-field { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 4px 8px; }
.ui-global-label-field > span { color: #315169; font-size: 10px; font-weight: 800; }
.ui-global-label-field input { min-width: 0; }
.ui-global-label-field small { grid-column: 2; color: var(--muted); font-size: 9px; }
.dashboard-global-labels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 14px; padding: 14px; border: 1px solid #dfe5ec; border-radius: 10px; background: #f8fafc; }
.dashboard-global-labels > div { grid-column: 1 / -1; }
.dashboard-global-labels h3 { margin: 0 0 3px; color: #1d3650; }
.dashboard-global-labels p { margin: 0; color: var(--muted); font-size: 11px; }
.dashboard-global-labels .ui-global-label-field { padding: 9px; border: 1px solid #e0e7ef; border-radius: 8px; background: #fff; }
@media (max-width: 760px) {
  .ui-global-label-field { grid-column: 1 / -1; }
  .dashboard-global-labels { grid-template-columns: 1fr; }
}
.import-center-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 24px; overflow: hidden; background: linear-gradient(135deg, #f4fbfe, #ffffff 62%); }
.import-center-hero h2 { margin: 8px 0 5px; }
.import-center-hero p { max-width: 820px; margin: 0; color: #5b6b7e; }
.import-center-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; max-width: 420px; }
.import-source-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.import-source { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 11px; min-width: 0; border-top: 4px solid #8090a5; }
.import-source.ready { border-top-color: #188b67; }
.import-source.inspect { border-top-color: #08a4df; }
.import-source > span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; color: #fff; background: #2f459f; font-weight: 900; }
.import-source h3 { margin: 0 0 5px; font-size: 1rem; }
.import-source p { margin: 0 0 8px; color: #66758a; font-size: .82rem; }
.import-source b { color: #15694f; font-size: .78rem; }
.import-inspection-result { display: grid; gap: 10px; margin-top: 14px; min-height: 170px; }
.import-detection { display: grid; grid-template-columns: minmax(0, 1fr) 120px 120px; align-items: center; gap: 12px; padding: 12px; border: 1px solid #d8e2ec; border-left: 5px solid #8090a5; border-radius: 10px; background: #f8fafc; }
.import-detection.good { border-left-color: #188b67; }
.import-detection.warning { border-left-color: #e2a52b; }
.import-detection.error { border-left-color: #c8364a; }
.import-detection h3 { margin: 6px 0 2px; }
.import-detection p { margin: 0; color: #66758a; }
.import-detection > div:not(:first-child) { display: grid; justify-items: end; }
.import-detection > div:not(:first-child) strong { font-size: 1.35rem; }
.import-detection > div:not(:first-child) span { color: #66758a; font-size: .72rem; }
.import-sample-table { max-height: 300px; }
.personnel-sync-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 24px; border-left: 5px solid #188b67; }
.personnel-sync-card h2 { margin: 8px 0 5px; }
.personnel-sync-card p { max-width: 820px; margin: 0; color: #66758a; }
.personnel-sync-summary { display: flex; align-items: center; gap: 10px; }
.personnel-sync-summary > span { display: grid; min-width: 90px; padding: 8px 12px; border-radius: 9px; background: #eff8f5; color: #526475; font-size: .72rem; text-align: center; }
.personnel-sync-summary > span strong { color: #15694f; font-size: 1.35rem; }
.portal-import-safety { display: grid; gap: 4px; margin-bottom: 14px; padding: 12px 14px; border: 1px solid #b8ddd0; border-radius: 10px; background: #eff8f5; color: #38594f; }
.external-source-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.external-source-grid > div { display: grid; gap: 3px; padding: 10px; border: 1px solid #d8e2ec; border-radius: 8px; background: #f8fafc; }
.external-source-grid small { color: #66758a; }
.bulk-actions, .appointment-pin-controls { display: flex; gap: 8px; align-items: end; flex-wrap: wrap; }
.bulk-actions[hidden] { display: none; }
.people-selection-actions { margin: 0 14px 12px; padding: 9px 10px; align-items: center; border: 1px solid rgba(151,180,208,.65); border-radius: 11px; background: rgba(239,247,255,.86); backdrop-filter: blur(10px); }
.people-selection-count { margin-right: 4px; color: #31516e; font-size: 12px; white-space: nowrap; }
.people-communication-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.people-import-actions { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.mini-flags { display: flex; gap: 3px; flex-wrap: wrap; }
.mini-flags span { width: 22px; height: 22px; display: inline-grid; place-items: center; border-radius: 50%; color: #596578; background: #e8ecf2; font-size: 8px; font-weight: 900; }
.mini-flags span.done { color: #fff; background: #198754; }
.preset-palette { margin-top: 7px; display: flex; gap: 5px; flex-wrap: wrap; }
.preset-palette button { width: 26px; height: 26px; padding: 0; border: 2px solid #fff; border-radius: 7px; box-shadow: 0 0 0 1px #aeb7c5; cursor: pointer; }
.preset-palette button:hover, .preset-palette button.selected { transform: translateY(-1px); box-shadow: 0 0 0 3px rgba(8,164,223,.38); }
.compact-input { width: 95px; min-height: 33px; padding: 5px 7px; border: 1px solid var(--line); border-radius: 7px; }
.compact-setting { display: grid; grid-template-columns: minmax(150px, 1fr) auto; gap: 8px; align-items: center; }
.participant-progress-list, .checklist-grid, .absence-list, .absence-overview, .backup-list { display: grid; gap: 8px; }
.participant-progress-row, .checklist-grid > label, .absence-list > div, .absence-overview > div, .backup-list > div { padding: 9px 10px; display: grid; gap: 5px; border: 1px solid var(--line); border-radius: 8px; background: #f8fafc; }
.participant-progress-row { grid-template-columns: minmax(135px, 1fr) 2fr auto; align-items: center; }
.participant-progress-row.performance-progress-row { grid-template-columns: minmax(150px, .8fr) minmax(260px, 1.4fr); }
.performance-requirement-title { min-width: 0; display: grid; grid-template-columns: 7px minmax(0, 1fr); gap: 3px 7px; align-items: center; }
.performance-requirement-title > i { width: 7px; height: 30px; grid-row: 1 / 3; border-radius: 5px; }
.performance-requirement-title strong,
.performance-requirement-title small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.performance-requirement-title small { color: var(--muted); font-size: 8px; }
.performance-triplet { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
.performance-triplet > span { min-width: 0; padding: 7px 8px; display: grid; gap: 2px; border: 1px solid #dce4ec; border-radius: 7px; background: #fff; }
.performance-triplet small { color: #67758a; font-size: 8px; font-weight: 850; text-transform: uppercase; }
.performance-triplet strong { color: #182f4b; font-size: 12px; white-space: nowrap; }
.performance-progress-values { min-width: 0; display: grid; gap: 2px; }
.performance-progress-values b { color: #1f3049; font-size: 10px; }
.performance-progress-values small { color: var(--muted); font-size: 8px; }
.participant-progress-row .progress-track { min-width: 120px; }
.checklist-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.checklist-grid > label { grid-template-columns: auto 1fr; align-items: start; cursor: pointer; }
.appointment-pinned { padding: 0; display: block; overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: #f7f9fc; }
.appointment-calendar-workspace.is-top > .appointment-pinned[open] { position: relative; z-index: 30; overflow: visible; }
.appointment-pinned > summary { list-style: none; cursor: pointer; }
.appointment-pinned > summary::-webkit-details-marker { display: none; }
.appointment-pin-heading { min-height: 34px; padding: 5px 9px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 7px; align-items: center; justify-content: space-between; }
.appointment-pin-heading::before { content: "▸"; color: var(--brand-blue); font-size: 14px; font-weight: 900; }
.appointment-pinned[open] .appointment-pin-heading::before { content: "▾"; }
.appointment-pin-heading > div { display: grid; gap: 1px; }
.appointment-pin-heading > div > strong { color: var(--brand-blue-dark); font-size: 12px; }
.appointment-pin-heading small { color: var(--muted); }
.appointment-pin-heading > span { padding: 4px 9px; border-radius: 999px; color: #fff; background: var(--brand-blue); font-size: 9px; font-weight: 900; }
.appointment-pinned:not([open]) .appointment-pin-heading > div > small { display: none; }
.appointment-pin-body { padding: 0 11px 11px; display: grid; gap: 10px; border-top: 1px solid var(--line); }
.appointment-pinned:not([open]) > .appointment-pin-body { display: none; }
.appointment-pinned:not([open]) > .appointment-pin-body > .appointment-pin-controls,
.appointment-pinned:not([open]) > .appointment-pin-body .appointment-pinned-unit-note { display: none; }
.appointment-pinned:not([open])[data-has-pinned="0"] > .appointment-pin-body { display: none; }
.appointment-calendar-workspace { min-width: 0; display: grid; gap: 8px; align-items: start; }
.appointment-calendar-workspace.is-top { grid-template-columns: minmax(0, 1fr); }
.appointment-calendar-workspace.is-side { grid-template-columns: minmax(280px, var(--appointment-pin-width, 360px)) 10px minmax(0, 1fr); gap: 0; }
.appointment-calendar-workspace > .appointment-pinned,
.appointment-calendar-workspace > .scheduler-card { min-width: 0; margin: 0; }
.appointment-calendar-workspace.is-side > .appointment-pinned { max-height: calc(100vh - 176px); position: sticky; top: var(--appointment-sticky-offset, 120px); overflow: auto; }
.appointment-pin-splitter { display: none; align-self: stretch; min-height: 180px; position: relative; cursor: col-resize; touch-action: none; }
.appointment-calendar-workspace.is-side > .appointment-pin-splitter { display: block; }
.appointment-pin-splitter::before { content: ""; width: 3px; height: 100%; position: absolute; left: 50%; top: 0; border-radius: 4px; background: #c5d2e2; transform: translateX(-50%); transition: width .15s ease, background .15s ease; }
.appointment-pin-splitter:hover::before,
.appointment-pin-splitter:focus-visible::before,
.appointment-calendar-workspace.is-resizing .appointment-pin-splitter::before { width: 5px; background: var(--brand-blue); }
.appointment-pin-splitter:focus-visible { outline: 3px solid rgba(21, 91, 188, .28); outline-offset: -2px; }
.appointment-calendar-workspace.is-resizing { cursor: col-resize; user-select: none; }
.appointment-pin-placement { min-height: 35px; white-space: nowrap; }
.appointment-pin-placement > span { margin-right: 4px; color: var(--brand-blue); font-size: 15px; }
.appointment-calendar-workspace.is-side .appointment-pin-controls { grid-template-columns: minmax(0, 1fr); gap: 6px; }
.appointment-calendar-workspace.is-side .appointment-pin-course,
.appointment-calendar-workspace.is-side .appointment-group-picker,
.appointment-calendar-workspace.is-side .appointment-student-chooser,
.appointment-calendar-workspace.is-side .training-unit-control,
.appointment-calendar-workspace.is-side .appointment-view-toggle,
.appointment-calendar-workspace.is-side .appointment-pin-clear { width: 100%; min-width: 0; grid-column: 1 / -1; }
.appointment-calendar-workspace.is-side .appointment-pin-clear { min-height: 35px; }
.appointment-calendar-workspace.is-side .appointment-student-chooser { grid-template-columns: 1fr; }
.appointment-calendar-workspace.is-side .appointment-pin-controls :is(select, input, button) { max-width: 100%; min-width: 0; }
.appointment-calendar-workspace.is-side .appointment-view-toggle > div { width: 100%; }
.appointment-calendar-workspace.is-side .appointment-view-toggle button { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.appointment-calendar-workspace.is-side .appointment-student-chooser label,
.appointment-calendar-workspace.is-side .appointment-student-chooser label > span { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.appointment-calendar-workspace.is-side .appointment-progress-strip { grid-template-columns: 1fr; }
.appointment-calendar-workspace.is-side .appointment-pinned-view-content { min-width: 0; overflow: hidden; }
.appointment-calendar-workspace.is-side .appointment-pinned-unit-note { margin-bottom: 5px; }
.appointment-calendar-workspace.is-side .appointment-pinned-student { padding: 6px; }
.appointment-calendar-workspace.is-side .appointment-pinned-student > header { grid-template-columns: minmax(0, 1fr) auto; align-items: start; }
.appointment-calendar-workspace.is-side .appointment-pinned-name .person-link { display: -webkit-box; white-space: normal; line-height: 1.25; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.appointment-calendar-workspace.is-side .appointment-pinned-actions { align-items: flex-start; }
.appointment-calendar-workspace.is-side .appointment-requirement-list.appointment-requirement-chips { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; }
.appointment-calendar-workspace.is-side .appointment-requirement-chip { min-width: 0; padding: 4px 3px; }
.appointment-calendar-workspace.is-side .appointment-requirement-chip b { font-size: 8px; }
.appointment-calendar-workspace.is-side .appointment-view-toggle button:disabled { color: #96a2b0; background: #eef1f5; cursor: not-allowed; }
@media (max-width: 1099px) {
  .appointment-calendar-workspace.is-side { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .appointment-calendar-workspace.is-side > .appointment-pinned { max-height: none; position: static; overflow: hidden; }
  .appointment-calendar-workspace.is-side > .appointment-pin-splitter { display: none; }
  .appointment-calendar-workspace.is-side .appointment-pin-controls { grid-template-columns: 1fr 1fr; }
  .appointment-calendar-workspace.is-side .training-unit-control,
  .appointment-calendar-workspace.is-side .appointment-view-toggle,
  .appointment-calendar-workspace.is-side .appointment-pin-clear { grid-column: auto; }
  .appointment-calendar-workspace.is-side .appointment-student-chooser { grid-template-columns: minmax(180px, 1fr) minmax(220px, 1fr) auto; }
}
@media (max-width: 699px) {
  .appointment-calendar-workspace.is-side .appointment-pin-controls,
  .appointment-calendar-workspace.is-side .appointment-student-chooser { grid-template-columns: 1fr; }
  .appointment-calendar-workspace.is-side .training-unit-control,
  .appointment-calendar-workspace.is-side .appointment-view-toggle,
  .appointment-calendar-workspace.is-side .appointment-pin-clear { grid-column: 1 / -1; }
}
.appointment-pinned:not([open]) .appointment-pin-heading {
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
}
.appointment-pin-collapsed-summary {
  min-width: 0;
  grid-column: 1 / -1;
  grid-row: 2;
  display: block !important;
  overflow: visible;
}
.appointment-pin-collapsed-summary > em { display: block; padding: 4px 8px; color: var(--muted); font-size: 9px; }
.appointment-collapsed-cards { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 6px; }
.appointment-collapsed-cards .appointment-pinned-student { min-width: 0; }
.appointment-pinned[open] .appointment-pin-collapsed-summary { display: none !important; }
.appointment-calendar-workspace.is-side .appointment-pinned:not([open]) .appointment-pin-heading {
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-rows: auto;
  gap: 4px 7px;
}
.appointment-calendar-workspace.is-side .appointment-pinned:not([open]) .appointment-pin-heading::before { grid-column: 1; grid-row: 1; }
.appointment-calendar-workspace.is-side .appointment-pinned:not([open]) .appointment-pin-heading > div:first-of-type { grid-column: 2; grid-row: 1; }
.appointment-calendar-workspace.is-side .appointment-pinned:not([open]) .appointment-pin-heading > span:last-child { grid-column: 3; grid-row: 1; }
.appointment-calendar-workspace.is-side .appointment-pinned:not([open]) .appointment-pin-collapsed-summary {
  display: block !important;
  grid-column: 1 / -1;
  grid-row: 2;
}
.appointment-calendar-workspace.is-side .appointment-collapsed-cards { grid-template-columns: minmax(0, 1fr); }
.appointment-pin-compact-student { min-width: 0; max-width: 180px; padding: 3px 7px; display: block; flex: 0 1 auto; overflow: hidden; border: 1px solid #d4dfed; border-radius: 999px; background: #fff; }
.appointment-pin-compact-student > strong { display: block; overflow: hidden; color: #233c80; font-size: 9px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.appointment-pin-controls { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 7px; align-items: end; }
.appointment-pin-controls label { min-width: 0; display: grid; gap: 3px; }
.appointment-pin-controls label > span { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; letter-spacing: .05em; }
.appointment-pin-controls select { width: 100%; min-height: 35px; padding: 6px 28px 6px 8px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.appointment-pin-controls { grid-template-columns: minmax(130px, .65fr) minmax(230px, 1.05fr) minmax(105px, .48fr) minmax(125px, .55fr) auto; }
.appointment-pin-course { min-width: 0; }
.appointment-pin-clear { min-height: 35px; }
.appointment-view-toggle { min-width: 0; display: grid; gap: 3px; }
.appointment-view-toggle > span { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; letter-spacing: .05em; }
.appointment-view-toggle > div { min-height: 35px; padding: 3px; display: grid; grid-template-columns: 1fr 1fr; gap: 3px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.appointment-view-toggle button { padding: 3px 7px; border: 0; border-radius: 5px; color: #627187; background: transparent; font-size: 9px; font-weight: 850; cursor: pointer; }
.appointment-view-toggle button.active { color: #fff; background: var(--brand-blue); }
.appointment-student-chooser { grid-column: 1 / -1; padding: 7px; display: grid; grid-template-columns: minmax(180px, .8fr) minmax(220px, 1.2fr) auto; gap: 7px; align-items: end; border: 1px solid #dfe6ee; border-radius: 8px; background: #f7f9fc; }
.appointment-student-chooser .button { min-height: 35px; }
.appointment-pin-catalog { min-width: 0; position: relative; grid-column: 2 / -1; border: 1px solid #cbd9e7; border-radius: 7px; background: #fff; }
.appointment-pin-catalog > summary { min-height: 35px; padding: 6px 9px; display: flex; align-items: center; justify-content: space-between; gap: 8px; list-style: none; cursor: pointer; }
.appointment-pin-catalog > summary::-webkit-details-marker { display: none; }
.appointment-pin-catalog > summary::after { content: "▾"; color: var(--brand-blue); font-weight: 900; }
.appointment-pin-catalog:not([open]) > summary::after { content: "▸"; }
.appointment-pin-catalog > summary > span { min-width: 0; display: grid; gap: 1px; }
.appointment-pin-catalog > summary strong,
.appointment-pin-catalog > summary small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.appointment-pin-catalog > summary strong { color: #173b56; font-size: 10px; }
.appointment-pin-catalog > summary small { color: var(--muted); font-size: 8px; }
#appointment-pin-catalog-list { max-height: min(420px, calc(100vh - 220px)); padding: 6px; display: grid; gap: 7px; position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 90; overflow: auto; border: 1px solid #b9cada; border-radius: 8px; background: #fff; box-shadow: 0 14px 34px rgba(28,48,72,.24); }
.appointment-pin-catalog:not([open]) > #appointment-pin-catalog-list { display: none; }
.appointment-pin-catalog-course { min-width: 0; display: grid; gap: 5px; }
.appointment-pin-catalog-course > h4 { margin: 0; padding: 4px 7px; border-radius: 5px; color: #fff; background: #29458b; font-size: 10px; }
.appointment-pin-catalog-group { min-width: 0; overflow: hidden; border: 1px solid #dbe4ed; border-radius: 6px; background: #f8fafc; }
.appointment-pin-catalog-group > header { min-width: 0; padding: 5px 6px; display: flex; align-items: center; justify-content: space-between; gap: 6px; border-bottom: 1px solid #dbe4ed; background: #edf4f9; }
.appointment-pin-catalog-group > header > div { min-width: 0; display: grid; gap: 1px; }
.appointment-pin-catalog-group > header strong,
.appointment-pin-catalog-group > header small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.appointment-pin-catalog-group > header strong { color: #173b56; font-size: 9px; }
.appointment-pin-catalog-group > header small { color: var(--muted); font-size: 7px; }
.appointment-pin-catalog-group button { min-height: 27px; padding: 4px 7px; flex: 0 0 auto; border: 1px solid #9bb8d3; border-radius: 5px; color: #173f78; background: #fff; font-size: 8px; font-weight: 850; }
.appointment-pin-catalog-group button:hover:not(:disabled) { color: #fff; border-color: var(--brand-blue); background: var(--brand-blue); }
.appointment-pin-catalog-group button:disabled { color: #68798a; border-color: #d7e0e8; background: #edf1f5; cursor: default; }
.appointment-pin-catalog-group > div { display: grid; }
.appointment-pin-catalog-person { min-width: 0; padding: 5px 6px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; align-items: center; border-top: 1px solid #e8edf2; background: #fff; }
.appointment-pin-catalog-person:first-child { border-top: 0; }
.appointment-pin-catalog-person > span { min-width: 0; display: grid; gap: 1px; }
.appointment-pin-catalog-person strong,
.appointment-pin-catalog-person small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.appointment-pin-catalog-person strong { color: #233c80; font-size: 9px; }
.appointment-pin-catalog-person small { color: var(--muted); font-size: 7px; }
.appointment-calendar-workspace.is-side .appointment-pin-catalog { grid-column: 1; }
.appointment-calendar-workspace.is-side #appointment-pin-catalog-list { width: max(100%, 270px); max-height: min(430px, calc(100vh - 210px)); }
.appointment-calendar-workspace.is-side .appointment-pin-catalog[open] > #appointment-pin-catalog-list { width: auto; position: static; max-height: min(360px, calc(100vh - 280px)); margin-top: 4px; box-shadow: none; }
.appointment-student-suggestions { grid-column: 1 / -1; overflow: hidden; border: 1px solid #bfd4e7; border-radius: 8px; background: #fff; box-shadow: 0 7px 18px rgba(34,55,83,.1); }
.appointment-student-suggestions[hidden] { display: none; }
.appointment-student-suggestion-heading { padding: 7px 9px; display: flex; justify-content: space-between; gap: 12px; color: #37546b; background: #edf6fb; border-bottom: 1px solid #d8e6ef; }
.appointment-student-suggestion-heading strong { font-size: 10px; }
.appointment-student-suggestion-heading small { color: var(--muted); font-size: 8px; }
#appointment-pin-suggestion-list { max-height: 184px; padding: 5px; display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 4px; overflow: auto; }
#appointment-pin-suggestion-list > button { min-width: 0; padding: 7px 8px; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 2px 8px; border: 1px solid #dfe6ef; border-radius: 6px; color: var(--ink); background: #fff; text-align: left; cursor: pointer; }
#appointment-pin-suggestion-list > button:hover { border-color: #7bbcdc; background: #f1f9fd; }
#appointment-pin-suggestion-list > button:disabled { cursor: default; opacity: .58; background: #f5f7f9; }
#appointment-pin-suggestion-list > button strong { overflow: hidden; color: #203f82; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
#appointment-pin-suggestion-list > button small { grid-column: 1; overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; font-size: 8px; }
#appointment-pin-suggestion-list > button span { grid-column: 2; grid-row: 1 / 3; align-self: center; color: #147150; font-size: 8px; font-weight: 850; white-space: nowrap; }
.appointment-student-no-result { grid-column: 1 / -1; padding: 14px; color: var(--muted); text-align: center; font-size: 10px; }
.appointment-group-multi-picker { min-width: min(360px, 100%); display: grid; gap: 3px; }
.appointment-group-multi-picker > span { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; letter-spacing: .05em; }
.appointment-group-multi-picker > div { max-height: 125px; padding: 5px; display: grid; gap: 3px; overflow: auto; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.appointment-group-multi-picker label { padding: 5px 6px; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px; align-items: center; border-radius: 5px; cursor: pointer; }
.appointment-group-multi-picker label:has(input:checked) { color: #173b7c; background: #edf2ff; }
.appointment-group-multi-toggle.active { color: #fff; border-color: var(--brand-blue); background: var(--brand-blue); }
.training-unit-control { min-width: 120px; display: grid; gap: 3px; }
.training-unit-control > span { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; letter-spacing: .05em; }
.training-unit-control select { min-height: 35px; padding: 6px 28px 6px 8px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.appointment-pinned-unit-note { margin: 0 0 7px; padding: 5px 9px; display: flex; justify-content: flex-start; align-items: center; width: fit-content; border: 1px solid #c8d5f5; border-radius: 7px; background: #edf2ff; color: #33415a; font-size: 11px; font-weight: 750; }
.appointment-pinned-unit-note strong { margin: 0 3px; color: #243d7d; font-size: 12px; }
.appointment-progress-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr)); gap: 7px; overflow: visible; padding: 1px; }
.appointment-pinned-student { width: auto; min-width: 0; padding: 7px; display: grid; gap: 5px; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: 0 1px 3px rgba(24,32,51,.05); }
.appointment-pinned-student > header { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; align-items: center; padding-bottom: 5px; border-bottom: 1px solid #edf0f4; }
.appointment-pinned-name { min-width: 0; display: grid; gap: 1px; }
.appointment-pinned-name .person-link { overflow: hidden; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.appointment-pinned-name > span { overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.appointment-pinned-actions { display: flex; gap: 5px; align-items: center; }
.appointment-participant-plan-state { padding: 3px 6px; border-radius: 999px; font-size: 8px; font-weight: 900; white-space: nowrap; }
.appointment-participant-plan-state.missing { color: #9e2738; background: #ffe8eb; }
.appointment-participant-plan-state.complete { color: #17663e; background: #e5f7ed; }
.appointment-unpin { width: 25px; height: 25px; border: 1px solid #e5a5ad; border-radius: 6px; color: #b42336; background: #fff5f6; cursor: pointer; font-size: 15px; font-weight: 800; }
.appointment-unpin:hover { color: #fff; background: #c93649; }
.appointment-requirement-list { min-width: 0; display: grid; gap: 1px; overflow: hidden; border: 1px solid #e1e7ee; border-radius: 7px; background: #e1e7ee; }
.appointment-requirement-list.appointment-requirement-chips {
  padding: 3px;
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  overflow: visible;
  border-color: #dfe6ee;
  background: #f7f9fc;
}
.appointment-requirement-chip {
  min-width: 68px;
  min-height: 23px;
  padding: 2px 4px 2px 3px;
  display: inline-grid;
  grid-template-columns: 3px auto minmax(0, 1fr) 14px;
  align-items: center;
  gap: 3px;
  border: 1px solid #dce4ec;
  border-radius: 6px;
  color: #273a52;
  background: #fff;
  cursor: help;
  white-space: nowrap;
}
.appointment-requirement-chip > i { width: 3px; height: 15px; border-radius: 3px; background: var(--lesson-color); }
.appointment-requirement-chip > strong { font-size: 9px; }
.appointment-requirement-chip > b { display: inline-flex; align-items: baseline; justify-content: flex-end; gap: 1px; color: #234b7f; font-size: 8px; }
.appointment-requirement-chip > b small { color: #8793a4; font-size: 7px; }
.appointment-requirement-chip > em { width: 14px; height: 14px; display: inline-grid; place-items: center; border-radius: 50%; font-size: 7px; font-style: normal; font-weight: 950; }
.appointment-requirement-chip.requirement-missing { border-color: #efbac1; background: #fff4f5; }
.appointment-requirement-chip.requirement-missing > em { color: #fff; background: #c93649; }
.appointment-requirement-chip.requirement-exact { border-color: #b9dfca; background: #f1fbf5; }
.appointment-requirement-chip.requirement-exact > em { color: #fff; background: #248859; }
.appointment-requirement-chip.requirement-scheduled { border-color: #a9c8e8; background: #f2f7fd; }
.appointment-requirement-chip.requirement-scheduled > em { color: #fff; background: #4778b6; }
.appointment-requirement-chip.requirement-excess { border-color: #efcf79; background: #fff9e8; }
.appointment-requirement-chip.requirement-excess > em { color: #5f4700; background: #edca63; }
.appointment-requirement-head,
.appointment-requirement { min-width: 0; display: grid; grid-template-columns: minmax(110px, 1.5fr) repeat(2, minmax(64px, .8fr)); align-items: center; }
.appointment-requirement-head { min-height: 20px; color: #66758a; background: #f1f4f8; font-size: 8px; font-weight: 900; text-transform: uppercase; letter-spacing: .035em; }
.appointment-requirement-head > span { padding: 4px 6px; text-align: right; }
.appointment-requirement-head > span:first-child { text-align: left; }
.appointment-requirement { min-height: 27px; color: #21334c; background: #fff; }
.appointment-requirement > b { min-width: 0; padding: 5px 6px; overflow: hidden; border-left: 1px solid #edf0f4; font-size: 9px; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.appointment-requirement-type { min-width: 0; padding: 4px 6px; display: grid; grid-template-columns: 4px auto minmax(0, 1fr) auto; gap: 4px; align-items: center; }
.appointment-requirement-type > i { width: 4px; height: 17px; border-radius: 3px; background: var(--lesson-color); box-shadow: inset 0 0 0 1px rgba(24,32,51,.12); }
.appointment-requirement-type > strong { font-size: 9px; }
.appointment-requirement-type > small { overflow: hidden; color: #617087; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.appointment-requirement-type > em { width: 15px; height: 15px; display: inline-grid; place-items: center; border-radius: 50%; font-size: 8px; font-style: normal; font-weight: 950; }
.appointment-value-planned { color: #2459a0; background: #f2f7fd; }
.appointment-value-booked { color: #12603b; background: #eef9f3; }
.appointment-value-required { color: #3c485a; background: #f7f8fa; }
.appointment-requirement.requirement-missing .appointment-requirement-type { background: #fff1f3; }
.appointment-requirement.requirement-missing .appointment-requirement-type > em { color: #fff; background: #c93649; }
.appointment-requirement.requirement-exact .appointment-requirement-type { background: #effaf4; }
.appointment-requirement.requirement-exact .appointment-requirement-type > em { color: #fff; background: #248859; }
.appointment-requirement.requirement-scheduled .appointment-requirement-type { background: #f1f6fd; }
.appointment-requirement.requirement-scheduled .appointment-requirement-type > em { color: #fff; background: #4778b6; }
.appointment-requirement.requirement-excess .appointment-requirement-type { background: #fff8e6; }
.appointment-requirement.requirement-excess .appointment-requirement-type > em { color: #5f4700; background: #edca63; }
.appointment-matrix-wrap { width: 100%; max-height: 315px; overflow: auto; border: 1px solid #dfe6ee; border-radius: 9px; background: #fff; }
.appointment-matrix { display: grid; gap: 1px; background: #dfe6ee; }
.appointment-matrix > * { min-width: 0; min-height: 42px; background: #fff; }
.appointment-matrix-corner { position: sticky; top: 0; left: 0; z-index: 5; padding: 7px 9px; display: grid; align-content: center; gap: 2px; color: #fff; background: var(--brand-blue-dark); }
.appointment-matrix-corner small { color: rgba(255,255,255,.82); font-size: 8px; }
.appointment-matrix-type { position: sticky; top: 0; z-index: 4; padding: 6px 7px; display: grid; grid-template-columns: 5px minmax(0, 1fr); gap: 4px 5px; align-items: center; color: #314056; background: #f2f6fa; }
.appointment-matrix-type i { width: 5px; height: 28px; grid-row: 1 / 3; border-radius: 4px; background: var(--lesson-color); }
.appointment-matrix-type strong { min-width: 0; overflow: hidden; font-size: 10px; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.appointment-matrix-type small { grid-column: 2; color: #66758a; font-size: 8px; white-space: nowrap; }
.appointment-matrix-student { position: sticky; left: 0; z-index: 3; padding: 6px 8px; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 5px; align-items: center; box-shadow: 2px 0 5px rgba(31,48,73,.08); }
.appointment-matrix-student > div { min-width: 0; display: grid; gap: 1px; }
.appointment-matrix-student .person-link, .appointment-matrix-student small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.appointment-matrix-student small { color: var(--muted); font-size: 7px; }
.appointment-matrix-student .appointment-participant-plan-state { max-width: 70px; overflow: hidden; text-overflow: ellipsis; }
.appointment-matrix-student .appointment-unpin { width: 22px; height: 22px; }
.appointment-matrix-cell { position: relative; padding: 4px 5px 4px 9px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; align-items: center; }
.appointment-matrix-cell::before { content: ""; position: absolute; inset: 5px auto 5px 3px; width: 4px; border-radius: 4px; background: var(--lesson-color); }
.appointment-matrix-cell > span { min-width: 0; display: grid; gap: 1px; text-align: right; }
.appointment-matrix-cell small { color: #748195; font-size: 8px; font-weight: 900; }
.appointment-matrix-cell b { overflow: hidden; color: #20344f; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.appointment-matrix-cell.empty { place-items: center; color: #a3adba; background: #f8fafc; }
.appointment-matrix-cell.requirement-missing { background: #fff3f4; }
.appointment-matrix-cell.requirement-exact { background: #effaf4; }
.appointment-matrix-cell.requirement-scheduled { background: #f1f6fd; }
.appointment-matrix-cell.requirement-excess { background: #fff8e6; }
.holiday-blocked { background-color: #fff0f1 !important; }
.timeline .holiday-blocked { box-shadow: inset 0 0 0 1px rgba(201,54,73,.16); }
.holiday-header { color: #9f2637 !important; }
.holiday-name { max-width: 100%; display: block; overflow: hidden; color: #a52b3c; text-overflow: ellipsis; white-space: nowrap; font-size: 8px; line-height: 1.15; }
.timeline-v2 thead th.holiday-header { height: 61px; padding: 3px 2px; }
.scheduler-week-day-header.holiday-header { background: #fff0f1; }
.scheduler-week-day-header .holiday-name { max-width: 135px; }
.scheduler-week-lane.holiday-blocked { background-image: repeating-linear-gradient(135deg, rgba(201,54,73,.035) 0, rgba(201,54,73,.035) 8px, transparent 8px, transparent 16px); }
.scheduler-holiday-cover { position: sticky; top: 18px; margin: 16px 8px; padding: 9px; display: grid; gap: 2px; border: 1px solid #e6adb6; border-radius: 8px; color: #9f2637; background: rgba(255,255,255,.92); text-align: center; z-index: 4; pointer-events: none; }
.scheduler-holiday-cover span { font-size: 9px; }
.group-capacity-row td { height: 44px !important; border-top: 2px solid #9eacbe; border-bottom: 1px solid #cdd5e0; background: #edf2f7; }
.group-limit-label { position: sticky; left: 0; z-index: 9; padding: 3px 10px !important; color: var(--brand-blue-dark); text-align: left !important; box-shadow: 7px 0 10px rgba(18,29,48,.07); }
.group-limit-label > span:first-child { width: 6px; height: 20px; display: inline-block; margin-right: 7px; border-radius: 99px; vertical-align: middle; }
.group-limit-label > strong { font-size: 12px; }
.group-limit-label small { margin-left: 8px; color: var(--muted); font-size: 10px; }
.planner-group-instructor { margin-left: 7px; padding: 3px 7px; display: inline-flex; align-items: center; border: 1px solid #187197; border-radius: 999px; color: #fff; background: #16688b; box-shadow: 0 1px 3px rgba(15,72,97,.18); font-size: 10px; line-height: 1.1; }
.planner-group-toggle { width: 24px; height: 24px; margin-right: 5px; padding: 0; border: 1px solid #c4d1dc; border-radius: 6px; color: #234f6b; background: #fff; cursor: pointer; font-weight: 900; }
.planner-group-toggle:hover { border-color: var(--brand-blue); color: var(--brand-blue); background: #f5f8ff; }
.group-limit-label .group-collapse-summary { width: auto; height: auto; margin: 0 0 0 12px; display: inline; color: #3d5868; border-radius: 0; vertical-align: baseline; font-size: 10px; }
.group-limit-label .group-collapse-summary b { color: #153f56; }
.group-capacity-row.group-collapsed td { height: 42px !important; background: #f4f7fa; }
.group-capacity-row.group-collapsed .group-limit-label { box-shadow: inset 4px 0 0 var(--brand-blue), 7px 0 10px rgba(18,29,48,.07); }
.planner-unassigned-course strong, .planner-unassigned-course span { display: block; }
.planner-unassigned-course strong { margin-bottom: 5px; color: var(--navy, #18325f); }
.group-limit-cell strong { display: block; font-size: 10px; line-height: 1.08; }
.group-limit-cell small { display: block; color: #526579; font-size: 8px; line-height: 1.15; white-space: nowrap; }
.group-limit-open { width: 100%; min-height: 100%; padding: 3px 2px; border: 0; color: inherit; background: transparent; cursor: pointer; }
.group-limit-compact .group-limit-open { min-height: 30px; }
.planner-external-cell, .planner-current-cell { width: 92px !important; min-width: 92px !important; max-width: 92px !important; overflow: hidden; }
.planner-external-cell { padding: 3px !important; vertical-align: top; border-right: 2px solid #9aa9b8 !important; background: #eef2f6 !important; }
.planner-external-cell.has-external-booking { background: #e7edf3 !important; }
.planner-external-day { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.planner-external-day > strong { display: block; overflow: hidden; color: #2f4358; font-size: 10px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.planner-external-entry { min-width: 0; padding: 3px 4px; display: block; overflow: hidden; border-left: 3px solid var(--planner-entry-color, #75869a); border-radius: 3px; background: #fff; box-shadow: 0 0 0 1px rgba(72,91,111,.14); }
.planner-external-entry b, .planner-external-entry small { max-width: 100%; display: block; overflow: hidden; font-size: 9px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.planner-external-entry b { color: #1f354b; font-weight: 850; }
.planner-external-entry small { color: #43566a; }
.planner-external-empty { margin: auto 0; padding: 7px 2px; color: #718096; font-size: 9px; text-align: center; }
.planner-current-cell { position: relative; vertical-align: top; border-left-color: #ccd6e1 !important; }
.planner-current-day-summary { position: relative; z-index: 2; min-width: 0; margin: 0 0 3px; padding: 2px 3px; display: grid; place-items: center; border: 1px solid #b9dec9; border-radius: 4px; color: #17633d; background: #ebf8f0; line-height: 1.1; pointer-events: none; }
.planner-current-day-summary b { max-width: 100%; overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.planner-current-day-summary small { color: #47725b; font-size: 8px; white-space: nowrap; }
.group-limit-cell.limit-full { color: #11633c; background: #e8f7ee; }
.timeline td.has-absence { background-color: #fff0f1; box-shadow: inset 0 0 0 1px rgba(201,54,73,.18); }
.group-limit-cell.has-absence strong { color: #a72e3e; }
.group-limit-cell.has-absence small { color: #8d3542; white-space: normal; min-width: 54px; }
.planner-minute-key { margin-top: 5px !important; color: #40596d !important; font-size: 10px !important; }
.planner-minute-key b { color: var(--brand-blue-dark); }
.planner-stale-notice { margin: 0 16px 10px; padding: 8px 11px; display: flex; align-items: center; gap: 10px; border: 1px solid #e9c46a; border-radius: 8px; color: #614a12; background: #fff8df; font-size: 11px; }
.planner-stale-notice strong { white-space: nowrap; }
.planner-stale-notice span { color: #6e5d31; }
.planner-transfer-notice { margin: 0 16px 10px; padding: 8px 11px; display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; border: 1px solid #88b3d2; border-radius: 8px; color: #16426a; background: #eef7ff; font-size: 11px; }
.planner-transfer-notice strong { white-space: nowrap; }
.planner-transfer-notice span { min-width: 0; overflow-wrap: anywhere; }
.planner-transfer-notice.success { border-color: #75b9a0; color: #126448; background: #ebf9f2; }
.planner-transfer-notice.error { border-color: #e1a2aa; color: #8e2739; background: #fff1f2; }
.prior-course-overhang .sticky-group-v2, .prior-course-overhang .sticky-participant-v2, .prior-course-overhang .group-limit-label { color: #536172; background: #e8ebef; }
.prior-course-overhang .person-link { color: #465568; }
.prior-course-label { align-content: center; }
.overhang-badge { display: block; margin-top: 4px; padding: 3px 4px; border: 1px solid #abb5c1; border-radius: 5px; color: #536172; background: #f5f6f8; font-size: 7px; line-height: 1.25; text-align: center; }
.timeline-v2 td.overhang-period { background-color: #e8ebef !important; background-image: repeating-linear-gradient(135deg, rgba(75,88,105,.035) 0, rgba(75,88,105,.035) 6px, transparent 6px, transparent 12px); }
.overhang-period .plan-segment { opacity: .72; filter: saturate(.7); }
.timeline-v2 td.overhang-end { border-left: 3px solid #7f8b9b; }
.holiday-state-dropdown { position: relative; width: 100%; }
.holiday-state-dropdown summary { min-height: 42px; padding: 8px 12px; display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: #fff; cursor: pointer; list-style: none; }
.holiday-state-dropdown summary::-webkit-details-marker { display: none; }
.holiday-state-dropdown summary::after { content: "▾"; grid-column: 2; grid-row: 1; color: var(--brand-blue); }
.holiday-state-dropdown summary span { padding-right: 18px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 750; }
.holiday-state-dropdown summary small { grid-column: 1 / -1; color: var(--muted); font-size: 8px; }
.holiday-state-menu { position: absolute; z-index: 40; left: 0; bottom: calc(100% + 6px); width: min(680px, 100%); max-height: min(310px, 48vh); padding: 8px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; overflow: auto; border: 1px solid var(--line); border-radius: 9px; background: #fff; box-shadow: 0 14px 36px rgba(20,35,58,.18); }
.holiday-state-menu label { min-height: 36px; padding: 6px 8px; display: grid; grid-template-columns: auto 1fr auto; gap: 7px; align-items: center; border: 1px solid #e3e8ef; border-radius: 7px; background: #f8fafc; cursor: pointer; }
.holiday-state-menu input { width: 16px; height: 16px; accent-color: var(--brand-blue); }
.holiday-state-menu span { font-size: 10px; font-weight: 700; }
.holiday-state-menu small { color: var(--muted); font-size: 8px; }
.participant-progress-row.requirement-missing, .participant-total.requirement-missing { border-color: #efbac1; background: #fff4f5; }
.participant-progress-row.requirement-exact, .participant-total.requirement-exact { border-color: #b9dfca; background: #f1fbf5; }
.participant-progress-row.requirement-scheduled, .participant-total.requirement-scheduled { border-color: #a9c8e8; background: #f2f7fd; }
.participant-progress-row.requirement-excess, .participant-total.requirement-excess { border-color: #efcf79; background: #fff9e8; }
.extra-hours-field small { display: flex; gap: 6px; align-items: baseline; color: var(--muted); }
.extra-hours-field small strong { color: #55339b; font-size: 13px; }
.extra-hours-progress { border-left: 5px solid #7352b6 !important; }
.approved-extra-hours-summary { margin: 0 0 14px; padding: 12px 14px; border: 1px solid #cfc3e8; border-radius: 10px; background: #f8f5ff; display: grid; gap: 10px; }
.approved-extra-hours-summary.has-open { border-color: #efcf79; background: #fff9e8; }
.approved-extra-hours-summary > div:first-child { display: grid; gap: 3px; }
.approved-extra-hours-summary > div:last-child { display: flex; flex-wrap: wrap; gap: 8px; }
.approved-extra-hours-summary span { padding: 5px 8px; border: 1px solid rgba(47,69,159,.13); border-radius: 7px; background: #fff; }
.billing-extra-hours-card .data-table td { vertical-align: middle; }
.billing-extra-open { background: #fffaf0; }
.participant-total { min-width: 185px; padding: 8px 10px; display: grid; gap: 2px; border: 1px solid var(--line); border-radius: 8px; text-align: right; }
.participant-total small { color: var(--muted); font-size: 8px; }
.performance-status-header { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 10px; }
.exam-training-forecast { margin: 0 11px 10px; padding: 10px 12px; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 9px; align-items: center; border: 1px solid #cdd9e5; border-radius: 9px; background: #f6f9fc; }
.exam-training-forecast > span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: #54718b; font-weight: 900; }
.exam-training-forecast > div { display: grid; gap: 2px; }
.exam-training-forecast small { color: #5f6e80; }
.exam-training-forecast.danger { border-color: #e9aab3; background: #fff1f3; }
.exam-training-forecast.danger > span { background: #c52f44; }
.exam-training-forecast.danger strong { color: #9f2436; }
.exam-training-forecast.ok { border-color: #a9d7bc; background: #eff9f3; }
.exam-training-forecast.ok > span { background: #188b67; }
.performance-summary-grid { margin-bottom: 10px; display: grid; grid-template-columns: repeat(auto-fit, minmax(115px, 1fr)); gap: 7px; }
.performance-summary-grid > div { min-width: 0; padding: 9px 10px; display: grid; gap: 3px; border: 1px solid #dce3eb; border-radius: 8px; background: #f8fafc; }
.performance-summary-grid > div.ok { border-color: #b9dfca; background: #f1fbf5; }
.performance-summary-grid > div.warning { border-color: #efcf79; background: #fff9e8; }
.performance-summary-grid > div.error { border-color: #efbac1; background: #fff4f5; }
.performance-summary-grid small { color: var(--muted); font-size: 8px; }
.performance-summary-grid strong { color: #19324b; font-size: 12px; }
.performance-lesson-chip { display: inline-flex; gap: 6px; align-items: center; font-weight: 800; }
.performance-lesson-chip i { width: 7px; height: 25px; border-radius: 5px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.08); }
.performance-record-table td { vertical-align: middle; }
.performance-live-section { position: relative; }
.performance-live-header { position: sticky; top: 50px; z-index: 7; margin: -3px -4px 9px; padding: 7px 5px; border-bottom: 1px solid #e3e8ef; background: rgba(255,255,255,.97); backdrop-filter: blur(7px); }
.drawer-body > section[data-person-panel="performance"] { min-width: 0; border: 1px solid #e0e6ed; border-radius: 11px; overflow: clip; background: #fff; }
.drawer-body > section[data-person-panel="performance"] > :not(.card-header) { margin-right: 11px; margin-left: 11px; }
.drawer-body > section[data-person-panel="performance"] > :last-child { margin-bottom: 11px; }
.drawer-body > section[data-person-panel="performance"].person-section-collapsed > :not(.card-header) { display: none !important; }
.person-section-toggle { flex: 0 0 auto; width: 28px; height: 28px; margin-left: 4px; color: #315169; background: #f5f8fb; }
.performance-live-section.person-section-collapsed .performance-live-header { position: static; margin-bottom: 0; }
.performance-live-scroll { max-height: min(430px, 52vh); overflow: auto; border: 1px solid #dce3eb; border-radius: 9px; background: #fff; }
.performance-live-scroll .performance-record-table { margin: 0; }
.performance-live-scroll .performance-record-table thead { position: sticky; top: 0; z-index: 3; background: #eef3f7; box-shadow: 0 1px 0 #cdd7e1; }
.performance-record-table th,
.performance-record-table td { padding: 6px 7px; }
.performance-record-table .table-actions { flex-wrap: nowrap; }
.performance-record-table .button { min-height: 27px; padding: 4px 7px; font-size: 9px; }
.performance-calendar-jump { color: #fff; border-color: #0f7089; background: #0f7089; }
.performance-missed-row td { background: #fff7f8; }
.performance-missed-list { display: grid; gap: 6px; }
.performance-missed-list > article { min-width: 0; padding: 8px 9px; display: grid; grid-template-columns: 6px minmax(0, 1fr) auto; gap: 8px; align-items: center; border: 1px solid #efbac1; border-radius: 8px; background: #fff7f8; }
.performance-missed-list > article > i { width: 6px; height: 100%; min-height: 38px; border-radius: 4px; }
.performance-missed-list > article > div:not(.table-actions) { min-width: 0; display: grid; gap: 2px; }
.performance-missed-list strong,
.performance-missed-list span,
.performance-missed-list small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.performance-missed-list span { color: #8c2939; font-size: 9px; font-weight: 750; }
.performance-missed-list small { color: var(--muted); }
.missed-participant-list { margin: 12px 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 7px; }
.missed-participant-row { padding: 9px 10px; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: center; border: 1px solid #e0e6ed; border-radius: 8px; background: #f8fafc; cursor: pointer; }
.missed-participant-row:has(input:checked) { border-color: #d94b5b; background: #fff2f4; }
.missed-participant-row > span { min-width: 0; display: grid; gap: 2px; }
.missed-participant-row strong,
.missed-participant-row small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.missed-participant-row small { color: var(--muted); font-size: 8px; }
.performance-booking-summary { margin: 14px 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.performance-booking-summary > div { padding: 9px; display: grid; gap: 4px; border: 1px solid #dce3eb; border-radius: 8px; background: #f8fafc; }
.performance-booking-summary small { color: var(--muted); font-size: 8px; }
.performance-booking-summary strong { min-width: 0; display: flex; gap: 5px; align-items: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.performance-booking-summary i { width: 7px; height: 22px; border-radius: 4px; }
.appointment-session-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.appointment-session-summary .appointment-session-duration { border-color: #91b8ee; background: #edf5ff; }
.appointment-session-summary .appointment-session-duration strong { color: #123e82; font-size: 16px; }
.appointment-participants { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-top: 10px; }
.appointment-participants > small { flex-basis: 100%; color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.modal.modal-appointment-editor { width: min(900px, calc(100vw - 28px)); max-height: calc(100vh - 28px); padding: 0; overflow: hidden; }
.modal-appointment-editor > .appointment-session-editor { width: 100%; max-height: calc(100vh - 28px); display: flex; flex-direction: column; overflow: hidden; }
.appointment-editor-scroll { min-height: 0; padding: 20px 22px 14px; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.appointment-editor-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.appointment-editor-header h2 { margin: 1px 0 3px; color: var(--ink); font-size: 21px; }
.appointment-editor-header p { margin: 0; }
.appointment-editor-kicker { display: block; color: var(--brand-blue); font-size: 9px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.appointment-editor-participants { margin: 12px 0 10px; gap: 7px; }
.appointment-editor-participants > small { flex-basis: auto; margin-right: 2px; }
.appointment-editor-participants .person-link { min-height: 29px; padding: 5px 10px; border: 1px solid #cbdaf0; border-radius: 999px; background: #f5f8fd; }
.appointment-editor-livebar { display: grid; grid-template-columns: 1.15fr .7fr 1.15fr 1fr 1fr; gap: 1px; margin: 0 0 12px; overflow: hidden; border: 1px solid #c9d7e8; border-radius: 12px; background: #d7e1ee; }
.appointment-editor-livebar > div { min-width: 0; padding: 10px 12px; background: #f8fafc; }
.appointment-editor-livebar > div:first-child { background: #edf5ff; }
.appointment-editor-livebar small { display: block; margin-bottom: 3px; color: var(--muted); font-size: 8px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.appointment-editor-livebar strong { display: block; overflow: hidden; color: #18304d; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.appointment-editor-livebar .appointment-editor-live-main strong { color: var(--brand-blue-dark); font-size: 17px; }
.appointment-editor-livebar span { display: block; margin-top: 2px; color: var(--muted); font-size: 9px; }
.appointment-block-livebar { grid-template-columns: 1.1fr .75fr 1.4fr 1fr; }
.appointment-editor-section { margin: 10px 0; padding: 14px; border: 1px solid #d7e0eb; border-radius: 12px; background: #fff; }
.appointment-editor-section-heading, .appointment-editor-details > summary { display: flex; align-items: center; gap: 10px; }
.appointment-editor-section-heading > span, .appointment-editor-details > summary > span { width: 25px; height: 25px; flex: 0 0 25px; display: grid; place-items: center; border-radius: 8px; color: #fff; background: var(--brand-blue); font-size: 10px; font-weight: 900; }
.appointment-editor-section-heading h3, .appointment-editor-details h3 { margin: 0; color: #163052; font-size: 13px; }
.appointment-editor-section-heading small, .appointment-editor-details small { display: block; margin-top: 1px; color: var(--muted); font-size: 9px; }
.appointment-editor-time { border-color: #bcd3ef; background: linear-gradient(135deg,#f7fbff,#fff 62%); }
.appointment-time-fields { display: grid; grid-template-columns: 1.15fr .85fr .9fr .75fr; gap: 10px; margin-top: 12px; align-items: end; }
.appointment-time-fields label { min-width: 0; }
.appointment-time-fields label > span, .appointment-end-preview > span, .appointment-time-shortcuts > span { display: block; margin-bottom: 5px; color: #60718a; font-size: 8px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.appointment-time-fields input { width: 100%; min-height: 42px; font-size: 13px; font-weight: 750; }
.appointment-end-preview { min-height: 42px; padding: 7px 11px; display: flex; flex-direction: column; justify-content: center; border: 1px solid #b9cae0; border-radius: 8px; background: #eaf3ff; }
.appointment-end-preview > span { margin: 0; }
.appointment-end-preview strong { color: #123e82; font-size: 17px; }
.appointment-time-shortcuts { margin-top: 10px; display: grid; grid-template-columns: auto minmax(0,1fr) auto auto; gap: 8px; align-items: center; }
.appointment-time-shortcuts > span { margin: 0; white-space: nowrap; }
.appointment-time-shortcuts > div { display: flex; flex-wrap: wrap; gap: 5px; }
.appointment-duration-preset, .appointment-time-shift { min-width: 45px; height: 30px; padding: 0 9px; border: 1px solid #c6d4e5; border-radius: 8px; color: #294866; background: #fff; font: inherit; font-size: 10px; font-weight: 850; cursor: pointer; }
.appointment-duration-preset:hover, .appointment-time-shift:hover { border-color: var(--brand-blue); background: #edf5ff; }
.appointment-duration-preset.active { color: #fff; border-color: var(--brand-blue); background: var(--brand-blue); }
.appointment-editor-assignment { margin-top: 12px; }
.appointment-editor-details { padding: 0; }
.appointment-editor-details > summary { padding: 13px 14px; cursor: pointer; list-style: none; }
.appointment-editor-details > summary::-webkit-details-marker { display: none; }
.appointment-editor-details > summary > div { flex: 1; }
.appointment-editor-details > summary > b { color: var(--muted); transition: transform .15s ease; }
.appointment-editor-details[open] > summary > b { transform: rotate(180deg); }
.appointment-editor-details > .form-grid { padding: 0 14px 14px; }
.appointment-editor-actions { display: grid !important; grid-template-columns: auto 1fr auto; align-items: center; }
.appointment-editor-actions > div { display: flex; flex-wrap: wrap; gap: 7px; }
.appointment-editor-actions > div:last-child { justify-content: flex-end; }
.appointment-editor-actions .modal-assistant-button { justify-self: start; }
.modal.modal-appointment-editor > form > .appointment-editor-actions { position: relative; bottom: auto; z-index: 12; flex: 0 0 auto; margin: 0; padding: 12px 22px max(12px, env(safe-area-inset-bottom)); border-top: 1px solid #cbd7e6; background: rgba(255,255,255,.985); box-shadow: 0 -9px 22px rgba(24,32,51,.09); }
@media (max-width: 760px) {
  .appointment-editor-scroll { padding: 15px 14px 12px; }
  .appointment-editor-livebar { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .appointment-editor-livebar > div:first-child { grid-column: 1 / -1; }
  .appointment-time-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .appointment-time-shortcuts { grid-template-columns: 1fr; }
  .appointment-editor-actions { grid-template-columns: 1fr !important; }
  .appointment-editor-actions > div, .appointment-editor-actions > div:last-child { justify-content: stretch; }
  .appointment-editor-actions .button { flex: 1; }
  .modal.modal-appointment-editor > form > .appointment-editor-actions { padding: 10px 14px max(10px, env(safe-area-inset-bottom)); }
}
.performance-booked-result { margin: 12px 0; padding: 13px; display: grid; gap: 4px; border: 1px solid #a9d9bd; border-radius: 10px; background: #f0faf4; }
.performance-booked-result strong { color: #12653c; font-size: 15px; }
.performance-booked-result span { color: #426050; font-size: 9px; }
.performance-booked-result p { margin: 5px 0 0; color: #33475b; }
.performance-booked-result.missed { border-color: #efbac1; background: #fff4f5; }
.performance-booked-result.missed strong { color: #a91f31; }
.performance-booked-result.missed span { color: #7f3540; }
.performance-booking-choice { margin: 12px 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.performance-booking-choice-card { min-width: 0; padding: 12px; display: grid; gap: 4px; border: 2px solid; border-radius: 10px; }
.performance-booking-choice-card strong { font-size: 14px; }
.performance-booking-choice-card span { color: #536579; font-size: 9px; line-height: 1.4; }
.performance-booking-choice-card.service { border-color: #7cc7a1; background: #effaf4; }
.performance-booking-choice-card.service strong { color: #126b46; }
.performance-booking-choice-card.missed { border-color: #e7919d; background: #fff1f3; }
.performance-booking-choice-card.missed strong { color: #a51f33; }
.performance-booking-actions .performance-book-service,
.performance-booking-actions .performance-book-missed { min-height: 42px; font-size: 11px; font-weight: 900; }
.performance-booking-actions .performance-book-service { color: #fff; border-color: #157a53; background: #168659; }
.performance-booking-actions .performance-book-missed { color: #fff; border-color: #a91f31; background: #c93649; }
.performance-signature-editor { margin-top: 13px; padding: 12px; border: 1px solid #cbd8e3; border-radius: 10px; background: #f8fafc; }
.performance-signature-editor h3 { margin: 0; color: #003f52; }
.performance-signature-editor p { margin: 3px 0 9px; }
.performance-signature-editor canvas { width: 100%; height: 150px; display: block; border: 1px dashed #8395a8; border-radius: 8px; background: #fff; cursor: crosshair; touch-action: none; }
.performance-signature-actions { margin-top: 8px; display: grid; grid-template-columns: auto minmax(180px, 1fr); gap: 8px; align-items: end; }
.performance-signature-actions label { display: grid; gap: 3px; color: var(--muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }
.performance-signature-actions input { min-height: 36px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.performance-signature-paper { margin: 14px 0; padding: 18px; display: grid; place-items: center; border: 1px solid #cbd8e3; border-radius: 10px; background: #fff; box-shadow: inset 0 -1px 0 #94a3b4; }
.performance-signature-paper img { max-width: 100%; max-height: 190px; }
.performance-signature-meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.performance-signature-meta span { padding: 8px; display: grid; gap: 3px; border-radius: 7px; background: #f4f7fa; font-size: 9px; }
.performance-signature-meta b { color: var(--muted); font-size: 7px; text-transform: uppercase; }
.permission-profile-grid { margin: 0 0 11px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 330px), 1fr)); gap: 9px; overflow: visible; }
.permission-profile-card { min-width: 0; padding: 9px; display: grid; grid-template-columns: 7px minmax(0, 1fr) auto; grid-template-rows: auto auto; gap: 7px 9px; align-items: center; border: 1px solid #dce3eb; border-radius: 9px; background: #f8fafc; }
.permission-profile-card > span { width: 7px; height: 100%; min-height: 39px; border-radius: 6px; background: var(--profile-color); }
.permission-profile-card > div { min-width: 0; display: grid; gap: 2px; }
.permission-profile-card strong { color: #1d3049; }
.permission-profile-card small { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; font-size: 9px; }
.permission-profile-card > b { padding: 4px 7px; border-radius: 999px; color: var(--profile-color); background: color-mix(in srgb, var(--profile-color) 11%, white); font-size: 8px; white-space: normal; text-align: center; }
.permission-profile-card > span { grid-row: 1 / 3; }
.permission-profile-card > button { grid-column: 2 / 4; justify-self: end; }
.permission-profile-head { padding-left: 9px; position: relative; white-space: nowrap; }
.permission-profile-head::before { content: ""; width: 5px; height: 18px; position: absolute; left: 0; top: 50%; transform: translateY(-50%); border-radius: 5px; background: var(--profile-color); }
.permission-profile-pill { padding: 4px 8px; display: inline-flex; align-items: center; gap: 5px; border: 1px solid color-mix(in srgb, var(--profile-color) 38%, white); border-radius: 999px; color: var(--profile-color); background: color-mix(in srgb, var(--profile-color) 9%, white); font-size: 9px; font-weight: 850; }
.permission-profile-pill::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--profile-color); }
.permission-profile-preview { margin: 13px 0; padding: 11px; display: grid; grid-template-columns: 8px 1fr; gap: 9px; border: 1px solid #dce3eb; border-radius: 10px; background: #f8fafc; }
.permission-profile-preview > span { border-radius: 6px; background: var(--profile-color); }
.permission-profile-preview > div { display: grid; gap: 3px; }
.permission-profile-preview strong { color: #1d3049; }
.permission-profile-preview small { color: var(--muted); }
@media (max-width: 720px) {
  .performance-summary-grid, .performance-booking-summary, .performance-signature-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .performance-booking-choice { grid-template-columns: 1fr; }
  .participant-progress-row.performance-progress-row { grid-template-columns: 1fr; }
  .performance-status-header { grid-template-columns: 1fr; }
  .performance-status-header .participant-total { text-align: left; }
  .performance-triplet { grid-template-columns: 1fr; }
  .performance-signature-actions { grid-template-columns: 1fr; }
}
.group-split-codes { margin: 12px 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px; }
.group-split-codes label { padding: 8px; display: grid; grid-template-columns: 1fr 44px; gap: 5px; border: 1px solid var(--line); border-radius: 8px; background: #f8fafc; }
.group-split-codes label span { grid-column: 1 / -1; color: var(--muted); font-size: 9px; font-weight: 800; }
.group-split-codes input[type="color"] { width: 44px; height: 38px; padding: 2px; }
.instructor-profile-steps { margin-top: 14px; display: grid; grid-template-columns: 1.35fr 1fr 1fr; gap: 14px; }
.instructor-profile-steps > section { min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: #fbfcfe; }
.instructor-profile-steps h3 { margin: 0 0 12px; padding-bottom: 8px; display: flex; align-items: center; gap: 7px; border-bottom: 1px solid var(--line); color: var(--brand-blue-dark); font-size: 12px; }
.instructor-profile-steps h3 b { width: 23px; height: 23px; display: inline-grid; place-items: center; border-radius: 50%; color: #fff; background: var(--brand-blue); font-size: 10px; }
.instructor-editor-title { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; }
.instructor-editor-title h2 { margin-bottom: 3px; }
.instructor-editor-title p { margin: 0; color: var(--muted); }
.instructor-editor-tabs { margin: 14px 0 12px; padding-bottom: 8px; display: flex; flex-wrap: wrap; gap: 6px; border-bottom: 1px solid var(--line); }
.instructor-editor-tabs .button.active { color: #fff; border-color: var(--brand-blue); background: var(--brand-blue); }
.instructor-editor-panels { min-height: 340px; padding: 14px; border: 1px solid var(--line); border-radius: 10px; background: #fbfcfe; }
.instructor-editor-panels [data-instructor-panel][hidden] { display: none; }
.preferred-vehicle-list { display: grid; gap: 8px; }
.preferred-vehicle-option { padding: 9px 10px; display: grid; grid-template-columns: 18px 28px 48px 1fr auto; align-items: center; gap: 9px; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.preferred-vehicle-option:has(input:checked) { border-color: #0789a8; background: #effafd; }
.preferred-vehicle-rank { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: #6c7a86; font-weight: 800; }
.preferred-vehicle-option:has(input:checked) .preferred-vehicle-rank { background: #00758e; }
.preferred-vehicle-option > span:nth-of-type(3) { display: grid; }
.preferred-vehicle-option small { color: var(--muted); }
.preferred-vehicle-option-icon { width: 46px; height: 30px; display: grid; place-items: center; border-radius: 7px; background: #eef6f8; }
.preferred-vehicle-option-icon svg { width: 42px; height: 26px; fill: #d9edf2; stroke: #00465a; stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.preferred-vehicle-buttons { display: flex; gap: 4px; }
.preferred-vehicle-buttons button { width: 30px; height: 30px; border: 1px solid var(--line); border-radius: 6px; background: #fff; cursor: pointer; }
.instructor-vehicle-catalog { display: grid; grid-template-columns: repeat(auto-fill, minmax(285px, 1fr)); gap: 10px; }
.instructor-vehicle-category-list { display: grid; gap: 9px; }
.instructor-vehicle-category-group { overflow: hidden; border: 1px solid #d9e3e8; border-radius: 11px; background: #f8fafc; }
.instructor-vehicle-category-group > summary { min-height: 58px; padding: 8px 11px; display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 10px; align-items: center; cursor: pointer; list-style: none; background: linear-gradient(135deg, #fff, #eef7f9); }
.instructor-vehicle-category-group > summary::-webkit-details-marker { display: none; }
.instructor-vehicle-category-group > summary::after { content: "▾"; margin-left: 4px; color: #456276; font-size: 15px; transition: transform .15s ease; }
.instructor-vehicle-category-group:not([open]) > summary::after { transform: rotate(-90deg); }
.instructor-vehicle-category-group > summary > span:nth-child(2) { min-width: 0; display: grid; gap: 2px; }
.instructor-vehicle-category-group > summary strong { color: #063f52; font-size: 13px; }
.instructor-vehicle-category-group > summary small { overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.instructor-vehicle-category-group > summary > b { padding: 4px 7px; border-radius: 999px; color: #66758a; background: #e8edf2; font-size: 8px; white-space: nowrap; }
.instructor-vehicle-category-group > summary > b.selected { color: #076b80; background: #d9f1f5; }
.instructor-vehicle-category-group > .instructor-vehicle-catalog { padding: 10px; border-top: 1px solid #dfe8ed; background: #fff; }
.instructor-vehicle-category-icon { width: 62px; height: 40px; display: grid; place-items: center; border-radius: 8px; background: #e4f2f5; }
.instructor-vehicle-category-icon svg { width: 54px; height: 34px; fill: #d9edf2; stroke: #00465a; stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.instructor-trailer-category-icon, .instructor-trailer-symbol { color: #075f73; font-size: 27px; font-weight: 900; }
.instructor-trailer-combinations { padding: 10px; display: grid; gap: 8px; border-top: 1px solid #dfe8ed; background: #fff; }
.instructor-trailer-combination { padding: 9px 10px; display: grid; grid-template-columns: 46px minmax(150px, 1fr) minmax(245px, 1.25fr); gap: 10px; align-items: center; border: 1px solid #dfe5eb; border-radius: 9px; background: #f9fbfc; }
.instructor-trailer-combination.combined { border-color: #85bfcb; box-shadow: inset 4px 0 #0789a8; }
.instructor-trailer-symbol { width: 42px; height: 32px; display: grid; place-items: center; border-radius: 7px; background: #e4f2f5; font-size: 21px; }
.instructor-trailer-main { min-width: 0; display: grid; gap: 2px; }
.instructor-trailer-main strong { color: #073f51; font-size: 12px; }
.instructor-trailer-main span, .instructor-trailer-main small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.instructor-trailer-main span { color: #2a3d50; font-size: 9px; font-weight: 750; }
.instructor-trailer-main small { color: var(--muted); font-size: 8px; }
.instructor-trailer-combination > label { min-width: 0; display: grid; gap: 4px; }
.instructor-trailer-combination > label > span { color: #52657a; font-size: 8px; font-weight: 850; text-transform: uppercase; }
.instructor-trailer-combination select { width: 100%; min-width: 0; }
.instructor-trailer-empty { padding: 13px; display: grid; gap: 4px; border: 1px dashed #a9c4cc; border-radius: 9px; color: #52657a; background: #f5fafb; }
.instructor-trailer-empty strong { color: #073f51; font-size: 12px; }
.instructor-trailer-empty span { font-size: 9px; line-height: 1.45; }
.instructor-trailer-actions { display: flex; justify-content: flex-end; }
@media (max-width: 760px) {
  .instructor-trailer-combination { grid-template-columns: 42px minmax(0, 1fr); }
  .instructor-trailer-combination > label { grid-column: 1 / -1; }
}
.instructor-vehicle-catalog-card { min-width: 0; overflow: hidden; border: 1px solid #dfe5eb; border-radius: 12px; background: #fff; box-shadow: 0 2px 8px rgba(0,55,72,.05); transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.instructor-vehicle-catalog-card:hover { border-color: #8fbac5; box-shadow: 0 5px 14px rgba(0,55,72,.1); transform: translateY(-1px); }
.instructor-vehicle-catalog-card.selected { border-color: #63afc0; background: linear-gradient(145deg, #fff, #eef9fb); box-shadow: inset 4px 0 #0789a8, 0 4px 12px rgba(0,91,111,.1); }
.instructor-vehicle-catalog-card.primary { border-color: #2f459f; box-shadow: inset 5px 0 #2f459f, 0 5px 15px rgba(47,69,159,.14); }
.instructor-vehicle-select { min-width: 0; padding: 10px; display: grid; grid-template-columns: 20px 78px minmax(0, 1fr); gap: 9px; align-items: center; cursor: pointer; }
.instructor-vehicle-select > input { width: 17px; height: 17px; accent-color: #0789a8; }
.instructor-vehicle-select .vehicle-graphic { width: 78px; height: 50px; display: grid; place-items: center; border-radius: 9px; background: #eef6f8; }
.instructor-vehicle-select .vehicle-graphic svg { width: 70px; height: 42px; fill: #d9edf2; stroke: #00465a; stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.instructor-vehicle-card-main { min-width: 0; display: grid; gap: 2px; }
.instructor-vehicle-card-main strong { overflow: hidden; color: #003f52; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.instructor-vehicle-card-main > span { overflow: hidden; color: #253b4f; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.instructor-vehicle-card-main small { overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.instructor-vehicle-card-footer { padding: 8px 10px; display: flex; align-items: center; justify-content: space-between; gap: 8px; border-top: 1px solid #e8edf1; background: rgba(248,250,252,.9); }
.instructor-vehicle-selection-state { color: var(--muted); font-size: 9px; font-weight: 850; }
.instructor-vehicle-catalog-card.selected .instructor-vehicle-selection-state { color: #06738a; }
.instructor-vehicle-catalog-card.primary .instructor-vehicle-selection-state { color: #2f459f; }
.instructor-vehicle-card-footer .button { padding: 6px 8px; font-size: 8px; }
.instructor-toolbar { flex-wrap: wrap; }
.instructor-search-field input { min-width: 230px; }
.instructor-overview-intro { padding: 16px 18px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; background: linear-gradient(135deg, #ffffff, #eef8fa); }
.instructor-overview-intro > div:first-child { flex: 1 1 360px; min-width: 0; }
.instructor-overview-intro h2 { margin: 0 0 3px; color: var(--brand-blue-dark); }
.instructor-overview-intro p { margin: 0; color: var(--muted); }
.instructor-overview-metrics { flex: 0 0 auto; display: flex; gap: 8px; }
.instructor-overview-metrics span { min-width: 96px; padding: 8px 10px; display: grid; text-align: center; border: 1px solid #cfe3e8; border-radius: 9px; background: #fff; color: var(--muted); }
.instructor-overview-metrics strong { color: var(--brand-blue-dark); font-size: 18px; }
.instructor-category-list { display: grid; gap: 12px; }
.instructor-category { border: 1px solid var(--line); border-radius: 11px; overflow: hidden; background: #fff; }
.instructor-category > summary { padding: 12px 14px; display: grid; grid-template-columns: 52px 1fr auto; gap: 10px; align-items: center; cursor: pointer; background: #f7fafc; }
.instructor-category > summary > span:nth-child(2) { display: grid; }
.instructor-category > summary strong { color: var(--brand-blue-dark); font-size: 14px; }
.instructor-category > summary small { color: var(--muted); }
.instructor-category > summary > b { padding: 5px 8px; border-radius: 7px; color: #31536a; background: #eaf3f6; font-size: 10px; }
.instructor-category .vehicle-category-icon { width: 48px; height: 34px; display: grid; place-items: center; border-radius: 8px; background: #e7f3f6; }
.instructor-category .vehicle-category-icon svg { width: 43px; height: 27px; fill: #d9edf2; stroke: #00465a; stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.instructor-card-grid { padding: 12px; display: grid; grid-template-columns: repeat(auto-fill, minmax(390px, 1fr)); gap: 12px; }
.instructor-overview-card { min-width: 0; padding: 13px; display: grid; gap: 11px; border: 1px solid #dce5eb; border-radius: 12px; background: #fff; box-shadow: 0 2px 8px rgba(0,55,72,.06); }
.instructor-overview-card:hover { border-color: #85b7c4; box-shadow: 0 5px 16px rgba(0,55,72,.1); }
.instructor-card-head { display: grid; grid-template-columns: 76px minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.instructor-card-avatar { width: 76px; height: 48px; position: relative; display: grid; grid-template-columns: 30px 1fr; align-items: center; gap: 3px; border-radius: 9px; background: #eef6f8; }
.instructor-card-avatar .teacher-chip { margin-left: 4px; }
.instructor-card-avatar svg { width: 40px; height: 28px; fill: #d9edf2; stroke: #00465a; stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.instructor-card-head > div:nth-child(2) { min-width: 0; display: grid; }
.instructor-card-head > div:nth-child(2) > strong { overflow: hidden; color: #193a65; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.instructor-card-head > div:nth-child(2) > span { color: var(--muted); font-size: 10px; }
.instructor-card-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.instructor-card-facts > div { padding: 7px 8px; display: grid; border-radius: 7px; background: #f5f8fa; }
.instructor-card-facts small, .instructor-card-groups small, .instructor-card-vehicles small { color: var(--muted); font-size: 8px; text-transform: uppercase; letter-spacing: .04em; }
.instructor-card-facts strong { font-size: 10px; }
.instructor-card-groups { display: grid; gap: 4px; }
.instructor-card-groups > span { display: flex; flex-wrap: wrap; gap: 5px; }
.instructor-card-groups b { padding: 4px 6px; border-radius: 6px; color: #29475f; background: #eaf1f6; font-size: 9px; }
.instructor-card-groups em { color: var(--muted); font-size: 10px; }
.instructor-card-vehicles { padding: 9px; display: grid; gap: 7px; border: 1px solid #dce8ec; border-radius: 9px; background: #f8fbfc; }
.instructor-card-vehicles > div:first-child { display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.instructor-card-vehicles > div:first-child > span { color: #11657a; font-size: 9px; font-weight: 800; }
.instructor-vehicle-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.instructor-vehicle-chip { min-width: 145px; padding: 5px 7px; display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 5px; border: 1px solid #dce5eb; border-radius: 8px; background: #fff; }
.instructor-vehicle-chip.primary { border-color: #72b9ca; box-shadow: inset 3px 0 #0789a8; }
.instructor-vehicle-chip-icon svg { width: 34px; height: 22px; fill: #d9edf2; stroke: #00465a; stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.instructor-vehicle-chip > span:nth-child(2) { min-width: 0; display: grid; }
.instructor-vehicle-chip strong, .instructor-vehicle-chip small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.instructor-vehicle-chip strong { color: #153f51; font-size: 9px; }
.instructor-vehicle-chip small { color: var(--muted); font-size: 8px; }
.instructor-vehicle-chip b { padding: 2px 4px; border-radius: 4px; color: #fff; background: #0789a8; font-size: 7px; }
.instructor-vehicle-empty { padding: 8px; color: var(--muted); border: 1px dashed #cdd7de; border-radius: 7px; text-align: center; font-size: 9px; }
.instructor-overview-card > .table-actions { padding-top: 9px; justify-content: flex-end; border-top: 1px solid #edf0f3; }
.instructor-flexible-icon { width: 32px; height: 32px; display: inline-grid; place-items: center; border-radius: 50%; color: #fff; background: #5a67a8; font-size: 19px; font-weight: 900; }
.instructor-flexible-icon.unassigned { background: #83909c; }
.instructor-vehicle-editor-heading, .instructor-preferred-heading { margin-bottom: 10px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.instructor-vehicle-editor-heading h3, .instructor-preferred-heading h3 { margin: 0 0 3px; color: var(--brand-blue-dark); }
.instructor-vehicle-editor-heading p, .instructor-preferred-heading p { margin: 0; color: var(--muted); }
#instructor-category-preview { width: 72px; height: 48px; display: grid; place-items: center; border-radius: 9px; background: #e8f4f7; }
#instructor-category-preview svg { width: 60px; height: 38px; fill: #d9edf2; stroke: #00465a; stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.instructor-category-choices { margin-bottom: 18px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.instructor-category-choice { min-width: 0; padding: 8px; display: grid; grid-template-columns: 18px 48px 1fr; align-items: center; gap: 7px; border: 1px solid var(--line); border-radius: 9px; background: #fff; cursor: pointer; }
.instructor-category-choice:has(input:checked) { border-color: #0789a8; background: #ebf8fb; box-shadow: inset 3px 0 #0789a8; }
.instructor-category-choice-icon { width: 46px; height: 32px; display: grid; place-items: center; border-radius: 7px; background: #eef6f8; }
.instructor-category-choice-icon svg { width: 42px; height: 27px; fill: #d9edf2; stroke: #00465a; stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.instructor-category-choice > span:last-child { min-width: 0; display: grid; }
.instructor-category-choice strong { color: #183d50; }
.instructor-category-choice small { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.instructor-vehicle-filter-status { margin: -8px 0 16px; padding: 8px 11px; display: flex; align-items: center; gap: 8px; border: 1px solid #b9d8e0; border-radius: 8px; color: #476275; background: #f1fafc; }
.instructor-vehicle-filter-status strong { color: #075f73; }
.instructor-vehicle-filter-status span { font-size: 10px; }
@media (max-width: 900px) {
  .instructor-category-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .instructor-card-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .instructor-overview-intro { align-items: stretch; flex-direction: column; }
  .instructor-overview-intro > div:first-child { flex: 0 1 auto; }
  .instructor-overview-metrics { width: 100%; }
  .instructor-overview-metrics span { flex: 1; }
  .instructor-category > summary { grid-template-columns: 44px 1fr; }
  .instructor-category > summary > b { grid-column: 2; justify-self: start; }
  .instructor-card-head { grid-template-columns: 76px minmax(0, 1fr); }
  .instructor-card-head > .status-pill { grid-column: 2; justify-self: start; }
  .instructor-card-facts { grid-template-columns: 1fr; }
  .instructor-category-choices { grid-template-columns: 1fr; }
  .preferred-vehicle-option { grid-template-columns: 18px 28px 40px minmax(0, 1fr); }
  .preferred-vehicle-buttons { grid-column: 2 / -1; justify-content: flex-end; }
  .instructor-vehicle-catalog { grid-template-columns: 1fr; }
}
.instructor-rule-copy { margin-top: 18px; padding: 14px; border: 1px solid #b9d8e0; border-radius: 10px; background: #f1fafc; }
.instructor-rule-copy h3 { margin: 0 0 3px; color: var(--brand-blue); }
.instructor-rule-copy p { margin: 0 0 12px; color: var(--muted); }
.instructor-rule-copy-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 8px; max-height: 190px; overflow: auto; }
.instructor-rule-copy-option { display: flex; align-items: center; gap: 9px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; cursor: pointer; }
.instructor-rule-copy-option:has(input:checked) { border-color: #0789a8; background: #e7f8fb; box-shadow: inset 3px 0 #0789a8; }
.instructor-rule-copy-option span { display: grid; min-width: 0; }
.instructor-rule-copy-option small { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.archived-row { color: #6d7480; background: #f4f5f7; }
.archived-row .teacher-chip { filter: grayscale(1); opacity: .7; }

.planner-total-minutes {
  display: block;
  margin-top: 3px;
  color: #173b65;
  font-size: 12px;
  white-space: nowrap;
}
.planner-total-minutes > span { display: block; font-size: 10px; line-height: 1.35; }
.planner-total-minutes > span:first-child { color: #17663e; }
.timeline-v2-compact .planner-total-minutes { margin-top: 4px; display: flex; flex-wrap: wrap; gap: 3px; }
.timeline-v2-compact .planner-total-minutes > span { padding: 2px 4px; display: inline-flex; gap: 3px; border-radius: 4px; color: #39536d; background: #eef3f7; font-size: 8px; line-height: 1.1; }
.timeline-v2-compact .planner-total-minutes > span:first-child { color: #145d3a; background: #e9f7ef; }
.timeline-v2-compact .planner-total-minutes > span b { color: inherit; font-size: 9px; }

.planner-exam-target {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 4px 6px;
  margin-top: 6px;
  padding: 5px 6px;
  border: 1px solid #cbd9e8;
  border-radius: 7px;
  background: #f7faff;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.planner-exam-target > label:first-child {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 6px;
  color: #38506b;
  font-size: 9px;
  font-weight: 800;
  white-space: nowrap;
}
.planner-exam-target input[type="date"] {
  width: 100%;
  min-width: 0;
  height: 25px;
  padding: 2px 4px;
  border: 1px solid #b8c8da;
  border-radius: 5px;
  background: #fff;
  color: #15375d;
  font: 700 10px/1.1 inherit;
}
.planner-exam-priority {
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  color: #38506b;
  font-size: 9px;
  font-weight: 800;
  line-height: 1.15;
  cursor: pointer;
}
.planner-exam-priority input { margin: 0; flex: 0 0 auto; }
.planner-exam-target.is-priority { border-color: #168aa6; background: #eaf9fc; box-shadow: inset 3px 0 #168aa6; }
.planner-exam-target.is-dirty { border-color: #d58a00; background: #fff8e7; box-shadow: inset 3px 0 #d58a00; }
.planner-exam-target :disabled { cursor: wait; opacity: .65; }
.timeline-v2-compact .planner-exam-target { grid-template-columns: minmax(130px, 1fr) auto; gap: 3px 5px; margin-top: 4px; padding: 4px; }
.timeline-v2-compact .planner-exam-target > label:first-child { grid-column: auto; gap: 4px; }
.timeline-v2-compact .planner-exam-priority { font-size: 8px; }

.absence-cell-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 54px;
  min-height: 24px;
  padding: 2px 5px;
  border-radius: 5px;
  background: #b4233a;
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.05;
}

.participant-absence-cell { background: #fff0f1 !important; }
.participant-absence-editor { margin-top: 12px; }
.table-actions { display: flex; flex-wrap: wrap; gap: 5px; }
.appointment-pin-empty { width: 100%; padding: 14px; border: 1px dashed #bdc6d2; border-radius: 8px; color: var(--muted); background: #fff; text-align: center; }
.plan-cell-selected { box-shadow: inset 0 0 0 3px var(--brand-cyan) !important; background-color: rgba(8,164,223,.12) !important; }
.billing-course-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 10px; }
.billing-course { padding: 11px; display: grid; gap: 6px; border: 1px solid var(--line); border-left: 5px solid var(--brand-blue); border-radius: 9px; background: #fff; }
.billing-course strong { color: var(--brand-blue-dark); }
.billing-course > div { display: grid; gap: 2px; }
.billing-course small { display: block; color: var(--muted); }

.people-table table { min-width: 980px; }
.people-table th, .people-table td { white-space: nowrap; vertical-align: middle; }
.people-table td.people-identity { min-width: 245px; white-space: normal; }
.people-table td.people-identity small,
.people-table td:nth-child(3) small,
.people-table td:nth-child(4) small { display: block; margin-top: 3px; color: var(--muted); }
.people-progress-cell { min-width: 220px; }
.people-progress-cell .progress-track { height: 6px; margin-top: 5px; }
.minute-order-triplet { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
.minute-order-triplet > span { min-width: 0; display: grid; gap: 1px; }
.minute-order-triplet small { color: var(--muted); font-size: 7px; font-weight: 850; text-transform: uppercase; }
.minute-order-triplet strong { color: #19324b; font-size: 10px; white-space: nowrap; }
.minute-order-triplet > span:first-child strong { color: #17663e; }
.minute-order-triplet.compact { min-width: 205px; }
.participant-total .minute-order-triplet { text-align: left; }
.people-finance-status { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.groups-table table { min-width: 1080px; }
.groups-table th, .groups-table td { vertical-align: middle; }
.groups-table td:first-child { min-width: 170px; }
.groups-table td:nth-child(2) { min-width: 180px; }
.groups-table td:nth-child(5) { min-width: 170px; }
.data-table td > small.participant-meta { display: block; margin-top: 3px; }

.group-member-picker { margin-top: 16px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: #f8fafc; }
.group-member-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; max-height: 310px; overflow: auto; }
.group-member-option { display: flex; gap: 9px; align-items: flex-start; padding: 9px; border: 1px solid var(--line); border-radius: 8px; background: #fff; cursor: pointer; }
.group-member-option input { margin-top: 3px; }
.group-member-option span, .group-member-option small { display: block; }
.group-member-option small { margin-top: 2px; color: var(--muted); }
.group-member-option.already-assigned { border-style: dashed; background: #fff9eb; }
.group-location-toolbar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin: 10px 0; }
.group-location-toolbar label { display: grid; gap: 4px; color: var(--muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.group-location-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 10px; }
.group-location-summary > div { display: grid; gap: 3px; padding: 9px 11px; border: 1px solid #cdd9e7; border-radius: 8px; background: #f6f9fc; }
.group-location-summary span { color: var(--muted); font-size: .76rem; }
.group-location-summary .group-location-warning { border-color: #e4b456; background: #fff8e9; }
.group-location-summary .group-location-ok { border-color: #8ac7b4; background: #f0f9f6; }
.group-member-location-list .group-member-option { min-height: 118px; }
.group-candidate-location { display: flex; flex-wrap: wrap; gap: 4px 6px; margin-top: 6px; }
.group-candidate-location > span { padding: 3px 6px; border-radius: 999px; background: #edf2f8; color: #425269; font-size: .68rem; line-height: 1.15; }
.group-candidate-location .exam-location-badge { background: #e9efff; color: #293f91; font-weight: 800; }
.group-candidate-location .proximity-badge.ok { background: #e8f7f1; color: #146c4d; }
.group-candidate-location .proximity-badge.warning { background: #fff4da; color: #7d5708; }
.group-candidate-location .proximity-badge.danger { background: #ffebeb; color: #a32a38; }
.group-candidate-location .proximity-badge.recommendation { background: #e8f6fb; color: #006a83; font-weight: 800; }
.group-create-palette button.selected { outline: 3px solid var(--brand-blue); outline-offset: 2px; }
@media (max-width: 760px) {
  .group-member-list, .group-location-summary, .group-location-toolbar { grid-template-columns: 1fr; }
  .import-mapping-table select { min-width: 180px; }
}
.scheduler-week-event[draggable="true"] { cursor: grab; }
.scheduler-week-event[draggable="true"]:active { cursor: grabbing; opacity: .75; }
.scheduler-week-event.scheduler-compliance-override { outline: 3px solid #f04438; outline-offset: 1px; box-shadow: 0 0 0 5px rgba(240,68,56,.2); }
.conflict-exception-control { padding: 10px; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 10px; border: 1px solid #d8e2ec; border-radius: 9px; background: #f6f9fc; }
.conflict-exception-control .button.active { color: #fff; border-color: var(--brand-blue); background: var(--brand-blue); box-shadow: 0 0 0 3px rgba(47,69,159,.14); }
.appointment-editor-actions #session-conflict-ignore[aria-pressed="true"],
.appointment-editor-actions #block-conflict-ignore[aria-pressed="true"] {
  color: #fff;
  border-color: #0f7652;
  background: #16845e;
  box-shadow: 0 0 0 3px rgba(22,132,94,.18);
}
.conflict-exception-control small { color: var(--muted); }
.email-test-mode-card { padding: 14px 16px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(210px, 240px); align-items: center; gap: 16px; border-color: #b8d9ca; background: linear-gradient(135deg, #f7fcfa, #edf8f3); }
.email-test-mode-card.active { border-color: #e7b84c; background: linear-gradient(135deg, #fffaf0, #fff3d4); }
.email-test-mode-card h2 { margin: 5px 0 3px; font-size: 18px; }
.email-test-mode-card p { max-width: 900px; margin: 0; color: var(--muted); line-height: 1.45; }
.email-delivery-main { flex: 1 1 620px; min-width: 0; }
.email-sender-row { display: grid; grid-template-columns: minmax(120px, auto) minmax(220px, 420px) auto; align-items: center; gap: 8px; margin-top: 14px; }
.email-sender-row label { font-weight: 800; color: var(--ink); }
.email-sender-row input { width: 100%; min-width: 0; }
.email-test-mode-switch { width: 100%; min-width: 0; padding: 10px 12px; display: flex; align-items: center; justify-content: flex-start; gap: 10px; cursor: pointer; border: 1px solid rgba(31, 73, 125, .16); border-radius: 10px; background: rgba(255,255,255,.72); }
.email-test-mode-switch > b { min-width: 0; text-align: left; color: var(--ink); overflow-wrap: anywhere; }
.document-email-test-banner { margin: 12px 0; padding: 11px 13px; display: grid; gap: 3px; border: 1px solid #e7b84c; border-radius: 10px; background: #fff5d9; color: #72510a; }
.document-email-test-banner strong { color: #8a5b00; }
@media (max-width: 720px) {
  .email-test-mode-card { grid-template-columns: 1fr; align-items: stretch; gap: 10px; }
  .email-sender-row { grid-template-columns: 1fr; }
  .email-test-mode-switch { min-width: 0; width: max-content; }
  .drawer.person-drawer { width: 100vw; }
  .drawer-footer { justify-content: stretch; }
  .drawer-footer .button { flex: 1 1 145px; }
}
.appointment-exam-performance { margin: 12px 0; padding: 10px 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid #e5a0aa; border-left: 5px solid #a72e3e; border-radius: 9px; background: #fff4f5; }
.appointment-exam-performance > div:first-child { min-width: 0; display: grid; gap: 2px; }
.appointment-exam-performance > div:first-child strong { color: #771b28; }
.appointment-exam-performance > div:first-child span { color: #76535a; font-size: 10px; }
.appointment-exam-performance > div:last-child { flex: 0 0 auto; display: flex; gap: 7px; flex-wrap: wrap; }
.protected-vacation-dialog { display: grid; gap: 13px; }
.protected-vacation-dialog h2, .protected-vacation-dialog p { margin: 0; }
.protected-vacation-badge, .protected-inline-badge { display: inline-flex; width: max-content; align-items: center; gap: 5px; padding: 5px 8px; border: 1px solid #efbd63; border-radius: 999px; color: #72500d; background: #fff7df; font-size: 11px; font-weight: 850; }
.protected-vacation-dialog dl { margin: 0; display: grid; gap: 7px; }
.protected-vacation-dialog dl > div { padding: 9px 10px; display: grid; grid-template-columns: 110px 1fr; gap: 10px; border-radius: 8px; background: #f3f7fb; }
.protected-vacation-dialog dt { color: var(--muted); font-size: 10px; font-weight: 850; text-transform: uppercase; }
.protected-vacation-dialog dd { margin: 0; font-weight: 700; }
.history-confirmation { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 14px; }
.history-confirmation-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--brand-blue); font-size: 28px; font-weight: 900; }
.history-confirmation h2 { margin: 2px 0 7px; }
.history-confirmation p { margin: 0 0 9px; color: var(--muted); }
.history-confirmation article { padding: 11px 12px; display: grid; gap: 3px; border: 1px solid #cbd9e8; border-left: 5px solid var(--brand-blue); border-radius: 8px; background: #f4f7fb; }
.history-confirmation article span { color: var(--muted); font-size: 11px; }
.history-confirmation-note { margin-top: 10px !important; font-size: 11px; }
.history-confirmation .modal-actions { grid-column: 1 / -1; }
.scheduler-week-lane.drag-target { background-color: rgba(8,164,223,.12); box-shadow: inset 0 0 0 2px var(--brand-cyan); }
.modal.modal-day-planner { width: min(1220px, calc(100vw - 30px)); max-height: calc(100vh - 30px); overflow: hidden; }
.modal-day-planner > form { max-height: calc(100vh - 66px); display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 8px; }
.day-plan-heading { display: grid; grid-template-columns: 1fr minmax(190px, 250px); gap: 16px; align-items: end; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
.day-plan-heading h2, .day-plan-heading p { margin: 0; }
.day-plan-heading p { margin-top: 4px; color: var(--muted); }
.day-plan-layout { min-height: 0; overflow: hidden; display: grid; grid-template-columns: clamp(220px, var(--day-plan-picker-width, 270px), 420px) 6px minmax(340px, 1fr) 6px clamp(300px, var(--day-plan-sequence-width, 360px), 520px); grid-template-rows: auto minmax(0, 1fr); gap: 8px; }
.day-plan-layout > .day-plan-participant-picker { grid-column: 1; grid-row: 1 / 3; }
.day-plan-layout > .day-plan-splitter-picker { grid-column: 2; grid-row: 1 / 3; }
.day-plan-layout > .day-plan-workspace-top { grid-column: 3; grid-row: 1; }
.day-plan-layout > .day-plan-editor { grid-column: 3; grid-row: 2; }
.day-plan-layout > .day-plan-splitter-sequence { grid-column: 4; grid-row: 1 / 3; }
.day-plan-layout > .day-plan-sequence { grid-column: 5; grid-row: 1 / 3; }
.day-plan-layout.sequence-first { grid-template-columns: clamp(220px, var(--day-plan-picker-width, 270px), 420px) 6px clamp(300px, var(--day-plan-sequence-width, 360px), 520px) 6px minmax(340px, 1fr); }
.day-plan-layout.sequence-first > .day-plan-sequence { grid-column: 3; grid-row: 1 / 3; }
.day-plan-layout.sequence-first > .day-plan-splitter-sequence { grid-column: 4; }
.day-plan-layout.sequence-first > .day-plan-workspace-top { grid-column: 5; }
.day-plan-layout.sequence-first > .day-plan-editor { grid-column: 5; grid-row: 2; }
.day-plan-layout.participant-picker-collapsed { grid-template-columns: 54px 0 minmax(340px, 1fr) 6px clamp(300px, var(--day-plan-sequence-width, 360px), 520px); }
.day-plan-layout.sequence-first.participant-picker-collapsed { grid-template-columns: 54px 0 clamp(300px, var(--day-plan-sequence-width, 360px), 520px) 6px minmax(340px, 1fr); }
.day-plan-workspace-top { min-width: 0; display: grid; gap: 6px; }
.day-plan-splitter { width: 6px; min-width: 6px; height: 100%; padding: 0; position: relative; align-self: stretch; border: 0; border-radius: 999px; background: transparent; cursor: col-resize; touch-action: none; }
.day-plan-splitter::after { content: ""; width: 3px; height: 54px; position: absolute; top: 50%; left: 50%; border-radius: 999px; background: #a7b8cc; transform: translate(-50%, -50%); transition: width .15s ease, background .15s ease; }
.day-plan-splitter:hover::after, .day-plan-layout.is-resizing .day-plan-splitter::after { width: 5px; background: #2f459f; }
.day-plan-layout.participant-picker-collapsed .day-plan-splitter-picker { visibility: hidden; }
.day-plan-editor, .day-plan-sequence { min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: #f8fafc; }
.day-plan-editor { min-height: 0; display: grid; grid-template-rows: auto auto auto auto; align-content: start; gap: 8px; overflow: auto; overscroll-behavior: contain; }
.day-plan-participant-picker { min-width: 0; min-height: 0; height: 100%; display: grid; grid-template-rows: auto auto minmax(0, 1fr); gap: 10px; padding: 12px; overflow: hidden; border: 1px solid #c9d9ea; border-radius: 11px; background: #fff; box-shadow: 0 4px 14px rgba(27, 52, 92, .06); }
.day-plan-participant-picker > header { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.day-plan-participant-picker > header > div { min-width: 0; display: grid; gap: 3px; }
.day-plan-participant-picker > header strong { color: #172b52; font-size: 15px; }
.day-plan-participant-picker > header small { color: var(--muted); font-size: 10px; }
.day-plan-participant-picker > header > span { flex: 0 0 auto; padding: 5px 9px; border-radius: 999px; color: #28449d; background: #edf2ff; font-size: 10px; font-weight: 850; }
.day-plan-participant-picker > header > button { flex: 0 0 32px; width: 32px; height: 32px; padding: 0; display: grid; place-items: center; border: 1px solid #b8c8dc; border-radius: 8px; color: #28449d; background: #fff; font-size: 22px; font-weight: 900; cursor: pointer; }
.day-plan-participant-picker > header > button:hover { border-color: #2f459f; background: #edf2ff; }
.day-plan-participant-picker-collapsed { display: none; }
.day-plan-layout.participant-picker-collapsed .day-plan-participant-picker { padding: 8px 5px; grid-template-rows: auto minmax(0, 1fr); }
.day-plan-layout.participant-picker-collapsed .day-plan-participant-picker > header { justify-content: center; }
.day-plan-layout.participant-picker-collapsed .day-plan-participant-picker > header > div,
.day-plan-layout.participant-picker-collapsed .day-plan-participant-picker > header > span,
.day-plan-layout.participant-picker-collapsed .day-plan-filters,
.day-plan-layout.participant-picker-collapsed .day-plan-participants { display: none; }
.day-plan-layout.participant-picker-collapsed .day-plan-participant-picker-collapsed { min-height: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; color: #29449c; writing-mode: vertical-rl; transform: rotate(180deg); }
.day-plan-layout.participant-picker-collapsed .day-plan-participant-picker-collapsed > span { font-size: 22px; }
.day-plan-layout.participant-picker-collapsed .day-plan-participant-picker-collapsed > strong { min-width: 24px; min-height: 24px; display: grid; place-items: center; border-radius: 999px; color: #fff; background: #2f459f; font-size: 10px; }
.day-plan-layout.participant-picker-collapsed .day-plan-participant-picker-collapsed > small { color: #536078; font-size: 9px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.day-plan-filters { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }
.day-plan-filters .day-plan-search-field { grid-column: 1 / -1; grid-row: 1; }
.day-plan-filters .day-plan-search-field input { min-height: 42px; padding: 9px 12px 9px 38px; border-color: #93abc7; border-radius: 9px; background: #fbfdff; font-size: 14px; }
.day-plan-filters .day-plan-search-field::after { content: "⌕"; position: absolute; left: 13px; bottom: 9px; color: #29449c; font-size: 19px; font-weight: 900; pointer-events: none; }
.day-plan-filters .day-plan-search-field { position: relative; }
.day-plan-participants { min-height: 0; max-height: none; overflow: auto; display: grid; align-content: start; gap: 7px; padding-right: 4px; }
.day-plan-participants > label { min-height: 72px; padding: 10px 9px 29px; position: relative; display: grid; grid-template-columns: auto minmax(0,1fr); gap: 9px; align-items: start; border: 1px solid var(--line); border-radius: 9px; background: #fff; cursor: pointer; }
.day-plan-pin-toggle { min-height: 23px; position: absolute; right: 7px; bottom: 5px; border: 1px solid #b8c5dc; border-radius: 6px; background: #fff; color: #2f459f; padding: 2px 6px; font-size: 9px; font-weight: 850; cursor: pointer; }
.day-plan-pin-toggle:hover { background:#eef2ff; }
.day-plan-participants > label:hover { border-color: var(--brand-cyan); background: #f1fbfe; }
.day-plan-participants > label.participant-favorite, .participant-limit-list label.participant-favorite { border-color: #e4ba4f; background: #fff9e9; box-shadow: inset 4px 0 0 #e4ba4f; }
.day-plan-participants input { width: 17px; height: 17px; accent-color: var(--brand-blue); }
.day-plan-participants span, .day-plan-participants strong, .day-plan-participants small { min-width: 0; display: block; }
.day-plan-participants strong { overflow: hidden; color: #17294a; font-size: 12px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.day-plan-participants small { margin-top: 3px; overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.day-plan-favorite-hint { position: sticky; top: 0; z-index: 2; padding: 6px 8px; border: 1px solid #e8c86d; border-radius: 7px; color: #765000; background: #fff4cc; font-size: 9px; font-weight: 900; }
.favorite-badge { margin-left: 7px; display: inline-flex; padding: 2px 5px; border-radius: 999px; color: #765000; background: #ffe9a8; font-size: 8px; vertical-align: 1px; }
.participant-minute-summary { margin-top: 4px; display: block; color: #182b49; font-size: 10px; font-weight: 900; line-height: 1.35; }
.participant-limit-list label { grid-template-columns: auto minmax(0, 1fr); }
.day-plan-add { position: sticky; bottom: 0; z-index: 3; width: 100%; justify-self: stretch; box-shadow: 0 -5px 12px rgba(248,250,252,.92); }
.day-plan-block-quick { margin-top: 10px; padding: 10px; display: grid; gap: 8px; border: 1px solid #ccd7e6; border-radius: 12px; background: #f7f9fc; }
.day-plan-block-quick header { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.day-plan-block-quick header strong { color: #263b58; font-size: 12px; }
.day-plan-block-quick header small { color: #69778b; font-size: 10px; }
.day-plan-block-quick label { display: grid; gap: 4px; }
.day-plan-block-quick label span { color: #53647a; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.day-plan-block-quick > div { display: flex; flex-wrap: wrap; gap: 7px; }
.day-plan-block-quick [hidden], .day-plan-edit-context[hidden] { display: none; }
.day-plan-block-quick .day-plan-lesson-button b { white-space: normal; overflow-wrap: anywhere; }
.day-plan-block-quick .day-plan-lesson-button { max-width: 100%; }
.day-plan-block-quick header { flex-wrap: wrap; }
.day-plan-edit-context { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding: 9px; border: 1px solid #8eb3e9; border-radius: 9px; background: #edf4ff; font-size: 12px; }
.day-plan-edit-context > span { min-width: 0; overflow-wrap: anywhere; font-weight: 700; }
.day-plan-draft-item.editable-entry { cursor: pointer; }
.day-plan-draft-item.editable-entry:hover { border-color: #7099d4; }
.day-plan-draft-item.editing-entry { outline: 2px solid #2d60b4; outline-offset: -2px; background: #edf4ff; }
.day-plan-entry-edit { justify-self: start; margin-top: 3px; padding: 2px 6px; border: 1px solid #b8cce9; border-radius: 6px; background: #f3f7ff; color: #234c8b; font: inherit; font-size: 10px; cursor: pointer; }
.day-plan-entry-edit:focus-visible { outline: 2px solid #2d60b4; outline-offset: 2px; }
.modal-day-planner .day-plan-add { position: static; box-shadow: none; }
.day-plan-block-quick #day-plan-add-other { border-color: #748399; color: #3f4c5e; background: #fff; }
.day-plan-block-quick #day-plan-add-private { border-color: #7c5aa6; color: #604080; background: #fbf8ff; }
@media (max-width: 760px) { .day-plan-block-quick > div { grid-template-columns: 1fr; } }
.day-plan-resource-overview { min-width: 0; padding: 6px 7px; border: 1px solid #bfd8e3; border-radius: 8px; background: #f4fbfd; }
.day-plan-resource-overview > header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.day-plan-resource-overview > header strong { font-size: 12px; }
.day-plan-resource-overview > header small { display: none; }
.day-plan-resource-overview > div { margin-top: 4px; display: flex; gap: 5px; overflow-x: auto; scrollbar-width: thin; }
.day-plan-resource-card { min-width: 155px; max-width: 210px; padding: 5px 7px; display: grid; gap: 3px; border: 1px solid var(--line); border-radius: 6px; color: inherit; background: #fff; text-align: left; cursor: pointer; }
.day-plan-resource-card > strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.day-plan-resource-card:hover { border-color: #75bfdc; background: #f7fcff; }
.day-plan-resource-card.editing { border-color: var(--brand-cyan); background: #f4fbff; box-shadow: inset 4px 0 0 var(--brand-cyan); }
.day-plan-resource-card > span { max-height: 31px; padding-left: 5px; overflow: hidden; border-left: 3px solid var(--resource-color); font-size: 9px; line-height: 1.25; }
.day-plan-resource-card > em { color: var(--muted); font-size: 9px; }
.day-plan-entry-fields { align-items: start; }
.day-plan-lesson-field { position: relative; }
.day-plan-type-picker-row { display:block; }
.day-plan-type-picker-row .day-plan-lesson-buttons { width:100%; }
.day-plan-exam-buttons { display:none; }
.day-plan-exam-buttons legend { display:none; }
.day-plan-exam-buttons > div { display:flex; gap:7px; }
.day-plan-exam-buttons .day-plan-exam-button { min-width:52px; }
.day-plan-lesson-inline-group, .day-plan-exam-inline-group { position: relative; display: inline-grid; gap: 3px; align-self: end; }
.day-plan-lesson-inline-group > small, .day-plan-exam-inline-group > small { color:#536078; font-size:9px; font-weight:900; line-height:1; letter-spacing:.035em; text-align:left; text-transform:uppercase; }
.day-plan-lesson-inline-group > span, .day-plan-exam-inline-group > span { display:flex; gap:4px; }
.day-plan-exam-inline-group { margin-left: 2px; padding-left: 9px; }
.day-plan-exam-inline-group::before { content:""; width:2px; height:38px; position:absolute; left:2px; bottom:0; border-radius:2px; background:#aab5c4; }
.day-plan-exam-inline-group .day-plan-exam-button { min-width:52px; }
.day-plan-lesson-buttons { min-height: 40px; display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
.modal-day-planner .day-plan-lesson-field > label { display:none; }
.modal-day-planner .day-plan-lesson-buttons { flex-wrap: wrap; gap: 8px 10px; overflow: visible; padding: 2px 0 4px; }
.modal-day-planner .day-plan-lesson-inline-group, .modal-day-planner .day-plan-exam-inline-group { min-width: 0; max-width: 100%; }
.modal-day-planner .day-plan-lesson-inline-group > small, .modal-day-planner .day-plan-exam-inline-group > small { line-height: 1.3; overflow-wrap: anywhere; }
.modal-day-planner .day-plan-lesson-inline-group > span, .modal-day-planner .day-plan-exam-inline-group > span { flex-wrap: wrap; }
.modal-day-planner .day-plan-lesson-button { min-width: 40px; min-height: 35px; padding: 5px 6px; border:1px solid rgba(15,31,53,.42); border-radius:8px; box-shadow:0 1px 2px rgba(15,31,53,.18); }
.modal-day-planner .day-plan-lesson-button b { font-size:11px; letter-spacing:0; }
.modal-day-planner .day-plan-lesson-button:hover, .modal-day-planner .day-plan-lesson-button:focus-visible { transform:none; filter:none; box-shadow:0 2px 5px rgba(15,31,53,.22); }
.modal-day-planner .day-plan-lesson-button > span[role="tooltip"] { display:none; }
.modal-day-planner .day-plan-exam-inline-group { flex: 0 1 auto; margin-left: 2px; padding-left: 9px; }
.modal-day-planner .day-plan-exam-inline-group > span { gap: 4px; }
.modal-day-planner .day-plan-exam-inline-group .day-plan-exam-button { min-width: 43px; }
.day-plan-lesson-button { min-width: 48px; min-height: 38px; padding: 6px 11px; position: relative; display: inline-grid; place-items: center; border: 2px solid color-mix(in srgb, var(--lesson-color) 72%, #1d2e48); border-radius: 9px; color: var(--lesson-text); background: var(--lesson-color); box-shadow: 0 2px 5px color-mix(in srgb, var(--lesson-color) 25%, transparent); cursor: pointer; }
.day-plan-lesson-button b { color: inherit; font-size: 12px; font-weight: 950; letter-spacing: .025em; line-height: 1; white-space: nowrap; }
.day-plan-lesson-button:hover, .day-plan-lesson-button:focus-visible { transform: translateY(-1px); filter: brightness(1.03); box-shadow: 0 4px 10px color-mix(in srgb, var(--lesson-color) 38%, transparent); }
.day-plan-lesson-button.selected { outline: 3px solid color-mix(in srgb, var(--lesson-color) 34%, #173d72); outline-offset: 2px; }
.day-plan-lesson-button > span[role="tooltip"] { min-width: max-content; max-width: 250px; padding: 6px 9px; position: absolute; z-index: 30; top: calc(100% + 7px); left: 50%; visibility: hidden; border-radius: 7px; color: #fff; background: #17263c; box-shadow: 0 5px 15px rgba(13,31,54,.24); font-size: 11px; font-weight: 800; line-height: 1.2; opacity: 0; pointer-events: none; transform: translate(-50%, -3px); transition: opacity .14s ease, transform .14s ease; }
.day-plan-lesson-button:hover > span[role="tooltip"], .day-plan-lesson-button:focus-visible > span[role="tooltip"] { visibility: visible; opacity: 1; transform: translate(-50%, 0); }
.day-plan-lesson-empty { width: 100%; padding: 9px 11px; border: 1px dashed #b9c6d6; border-radius: 8px; color: #69768a; background: #f4f7fa; font-size: 11px; }
.day-plan-duration-field { min-width: 0; }
.day-plan-duration-quick { width: 100%; margin-top: 8px; display: grid; gap: 5px; }
.day-plan-duration-quick > span { color: #4f5c70; font-size: 10px; font-weight: 850; }
.duration-presets { display: flex; gap: 5px; flex-wrap: wrap; }
.duration-presets button { min-width: 48px; min-height: 31px; padding: 4px 8px; border: 1px solid var(--line); border-radius: 7px; color: var(--brand-blue); background: #fff; font-weight: 800; cursor: pointer; }
.duration-presets button:hover, .duration-presets button.selected { color: #fff; border-color: var(--brand-blue); background: var(--brand-blue); }
.modal-day-planner .duration-presets .exam-preparation-preset,
.modal-day-planner .duration-presets .exam-preparation-preset.selected { min-height:35px; padding:5px 10px; border:1px solid rgba(15,31,53,.42); border-radius:8px; color:var(--prep-text); background:var(--prep-color); box-shadow:0 1px 2px rgba(15,31,53,.18); font-size:11px; font-weight:900; letter-spacing:0; line-height:1.15; }
.modal-day-planner .duration-presets .exam-preparation-preset:hover,
.modal-day-planner .duration-presets .exam-preparation-preset:focus-visible { color:var(--prep-text); border-color:rgba(15,31,53,.52); background:var(--prep-color); box-shadow:0 2px 5px rgba(15,31,53,.22); transform:none; filter:none; }
.day-plan-sequence { min-height: 0; display: grid; grid-template-rows: auto minmax(170px, 1fr); gap: 8px; overflow: hidden; overscroll-behavior: contain; }
.day-plan-existing h3, .day-plan-draft-heading h3 { margin: 0 0 6px; }
#day-plan-existing { max-height: 145px; overflow: auto; display: grid; gap: 5px; }
#day-plan-existing > button { padding: 7px 9px; display: grid; grid-template-columns: 95px 1fr auto; gap: 7px; align-items: center; border: 1px solid var(--line); border-left: 4px solid var(--brand-blue); border-radius: 7px; background: #fff; text-align: left; cursor: pointer; }
#day-plan-existing > button:hover { border-color: var(--brand-cyan); }
#day-plan-existing small { color: var(--muted); }
.day-plan-draft-heading { display: flex; align-items: end; justify-content: space-between; gap: 10px; padding-top: 8px; border-top: 1px solid var(--line); }
.day-plan-draft-heading small { color: var(--muted); }
.day-plan-limit-summary { display: inline-flex; margin-top: 6px; padding: 4px 8px; border-radius: 999px; background: #e7f6ee; color: #12613f; font-size: 11px; }
.day-plan-limit-summary.limit-exceeded { background: #fff0f1; color: #a51f34; box-shadow: inset 0 0 0 1px #ef9aa7; }
.day-plan-source-badge { width: max-content; padding: 3px 7px; border-radius: 999px; color: #29449c; background: #edf2ff; font-size: 10px; font-weight: 850; }
.day-plan-draft-heading label { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 9px; font-weight: 800; }
.day-plan-draft-heading input { width: 95px; min-height: 32px; padding: 4px 6px; border: 1px solid var(--line); border-radius: 6px; }
.day-plan-draft { min-height: 0; max-height: none; overflow-y: auto; overflow-x: hidden; display: grid; grid-auto-rows: max-content; align-content: start; gap: 6px; }
.day-plan-draft-item { min-height: 55px; padding: 7px 7px 7px 4px; display: grid; grid-template-columns: 20px 16px minmax(0, 1fr) auto; gap: 6px; align-items: center; border: 1px solid var(--line); border-left: 6px solid var(--draft-color); border-radius: 8px; background: #fff; box-shadow: 0 1px 3px rgba(24,32,51,.07); }
.day-plan-auto-break { margin: 7px 2px; padding: 7px 10px; border: 1px dashed #9aa5b3; border-radius: 7px; color: #4d5968; background: #eef1f5; font-size: 10px; font-weight: 750; }
.day-plan-pause-item { border-style: dashed; background: #f3f5f8; box-shadow: inset 4px 0 0 #77808f; }
.day-plan-pause-item.automatic { background: #eef4f7; }
.day-plan-pause-item .day-plan-item-main > strong { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: end; }
.day-plan-pause-item .day-plan-item-main > strong label { display: inline-flex; align-items: center; gap: 5px; color: #344357; font-size: 10px; white-space: nowrap; }
.day-plan-pause-item input { min-height: 29px; padding: 3px 5px; border: 1px solid #aeb9c8; border-radius: 5px; color: #17294a; background: #fff; font: inherit; }
.day-plan-pause-item input[type="time"] { width: 92px; }
.day-plan-pause-item input[type="number"] { width: 58px; }
.document-pdf-frame { width: min(920px, 80vw); height: min(720px, 68vh); border: 1px solid var(--line); border-radius: 8px; background: #f2f4f7; }
.day-plan-draft-item .drag-handle { color: #8791a0; cursor: grab; font-weight: 900; }
.day-plan-item-main { min-width: 0; display: grid; gap: 5px; }
.day-plan-item-main > strong { min-width: 0; display: grid; grid-template-columns: auto minmax(0,1fr); gap: 6px; align-items: baseline; color: #17294a; font-size: 12px; }
.day-plan-item-main > strong time { color: #213d7e; font-size: 11px; white-space: nowrap; }
.day-plan-time-editor { min-width:0; display:inline-flex; align-items:center; gap:2px; color:#213d7e; font-size:11px; font-weight:850; white-space:nowrap; }
.day-plan-time-editor input { width:78px; min-height:27px; padding:2px 4px; border:1px solid #aeb9c8; border-radius:6px; color:#213d7e; background:#fff; font:inherit; font-weight:850; }
.day-plan-time-editor input:hover, .day-plan-time-editor input:focus { border-color:var(--brand-cyan); outline:none; box-shadow:0 0 0 2px rgba(8,164,223,.13); }
.day-plan-item-main > strong .day-plan-time-editor > span { overflow:visible; text-overflow:clip; }
.day-plan-item-main > strong span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.day-plan-item-facts { display: flex; flex-wrap: wrap; min-width: 0; align-items: center; gap: 5px; }
.day-plan-item-facts > b, .day-plan-item-facts > i { flex: 0 0 auto; white-space: nowrap; }
.day-plan-item-facts > em { flex: 0 1 auto; min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.day-plan-item-facts > b, .day-plan-item-facts > em, .day-plan-item-facts > i { min-height: 20px; padding: 2px 6px; display: inline-flex; align-items: center; border-radius: 999px; font-size: 10px; font-style: normal; font-weight: 900; }
.day-plan-item-facts > b { color: #fff; background: #243d7d; }
.day-plan-item-facts > em { color: #24324c; background: color-mix(in srgb, var(--draft-color) 25%, white); box-shadow: inset 3px 0 0 var(--draft-color); }
.day-plan-item-facts > i { color: #7d5700; background: #fff0bd; }
.day-plan-block-item { background: color-mix(in srgb, var(--draft-color) 9%, #fff); box-shadow: inset 4px 0 0 var(--draft-color); }
.day-plan-block-item .drag-handle { color: var(--draft-color); cursor: default; }
.day-plan-block-item.protected { background: #f4f8f5; box-shadow: inset 4px 0 0 #248859; }
.day-plan-block-note { display: block; overflow: hidden; color: #5f6c7d; font-size: 10px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.day-plan-item-actions { display: flex; gap: 3px; }
.day-plan-item-actions button { width: 27px; min-width: 27px; min-height: 29px; padding: 3px; border: 1px solid var(--line); border-radius: 5px; color: var(--brand-blue); background: #fff; font-size: 14px; font-weight: 900; cursor: pointer; }
.day-plan-item-actions button:hover { border-color: var(--brand-cyan); background: #eefafe; }
.backup-list > div, .absence-list > div { grid-template-columns: auto 1fr auto; align-items: center; }
.backup-overview { margin: 14px 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.backup-overview article { padding: 14px; display: grid; gap: 4px; border: 1px solid #cbdde6; border-radius: 10px; background: linear-gradient(145deg, #f4fbfd, #fff); }
.backup-overview article > span, .backup-overview small { color: var(--muted); }
.backup-overview article strong { color: #003f52; font-size: 1.05rem; }
.backup-scope { margin: 10px 0 18px; padding: 14px; border-left: 4px solid #188b67; border-radius: 8px; background: #eef9f5; }
.backup-scope p { margin: 6px 0 10px; line-height: 1.45; }
.official-document-card { padding: 16px 18px; display: flex; justify-content: space-between; align-items: center; gap: 20px; border-left: 5px solid #188b67; background: linear-gradient(110deg, #effaf6, #fff 72%); }
.official-document-card h2 { margin: 7px 0 4px; }
.official-document-card p { margin: 0; max-width: 820px; color: var(--muted); line-height: 1.45; }
.legal-document-note { margin: 12px 0; padding: 12px; display: grid; gap: 4px; border-left: 4px solid #2f459f; border-radius: 7px; background: #f1f4fd; }
.legal-document-note.success,
.legal-document-note.verified { border-left-color: #188b67; background: #eef9f5; }
.legal-document-note.warning,
.legal-document-note.pending_review { border-left-color: #d48a00; background: #fff8e7; }
.legal-document-note.withdrawn { border-left-color: #c73949; background: #fff1f2; }
.template-legal-controls .form-grid { padding: 12px 0 2px; }
.template-legal-intro { margin-top: 10px; padding: 10px 12px; display: grid; gap: 3px; border-left: 4px solid #d48a00; border-radius: 7px; background: #fff8e7; }
.template-legal-intro.verified { border-left-color: #188b67; background: #eef9f5; }
.template-legal-intro.withdrawn { border-left-color: #c73949; background: #fff1f2; }
.template-legal-reviewer { min-height: 39px; padding: 9px 10px; display: flex; align-items: center; border: 1px solid var(--line); border-radius: 7px; color: var(--muted); background: #f7f9fb; }
@media (max-width: 850px) { .backup-overview { grid-template-columns: 1fr; } }
.hint.warning { color: #8a4a00; background: #fff3cd; border-color: #efcf79; }
.archive-impact-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 8px; margin: 12px 0; }
.archive-impact-list > div { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 12px; border: 1px solid #efcf79; border-radius: 9px; background: #fffaf0; }
.archive-impact-list > div strong { min-width: 28px; color: #8a4a00; text-align: right; }

.settings-save-state { color: var(--muted); font-size: 9px; font-weight: 800; white-space: nowrap; }
#settings-save-all.dirty { box-shadow: 0 0 0 3px rgba(8,164,223,.25); }
.settings-row-state { color: var(--muted); font-size: 8px; }
.calculation-sequence { padding: 12px; border: 1px solid var(--line); border-radius: 9px; background: #f8fafc; }
.sequence-editor { display: grid; gap: 6px; }
.sequence-item { min-height: 42px; padding: 6px 7px; display: grid; grid-template-columns: 22px 24px minmax(160px, 1fr) auto; gap: 7px; align-items: center; border: 1px solid var(--line); border-left: 6px solid var(--sequence-color, var(--brand-blue)); border-radius: 8px; background: #fff; }
.sequence-item .drag-handle { color: #7c8797; cursor: grab; font-size: 17px; }
.sequence-item .drag-handle:active, .custom-element-row .drag-handle:active { cursor: grabbing; }
.sequence-item.sequence-field { grid-template-columns: 22px minmax(160px, 1fr) auto; }
.sequence-item.sequence-inactive { border-left-color: #aab3c0; background: #f4f6f9; opacity: .72; }
.sequence-item.sequence-inactive .drag-handle { cursor: not-allowed; opacity: .35; }
.sequence-item.is-dragging, .custom-element-row.is-dragging { opacity: .42; }
.sequence-item.drop-before, .custom-element-row.drop-before { box-shadow: inset 0 4px 0 var(--brand-cyan); }
.sequence-item.drop-after, .custom-element-row.drop-after { box-shadow: inset 0 -4px 0 var(--brand-cyan); }
.sequence-item > b { width: 23px; height: 23px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--brand-blue); font-size: 9px; }
.sequence-item > small { color: var(--muted); }
.sequence-swatch { padding: 6px 9px; border-radius: 6px; font-weight: 800; }
.sequence-item > div { display: flex; gap: 3px; }
.sequence-item button, .custom-element-row button { min-width: 28px; min-height: 28px; padding: 3px 6px; border: 1px solid var(--line); border-radius: 5px; color: var(--brand-blue); background: #fff; cursor: pointer; }
.sequence-add { margin-top: 8px; display: flex; gap: 7px; align-items: center; }
.sequence-add select { min-width: 220px; }

.modal.modal-pdf-designer { width: min(1580px, calc(100vw - 24px)); height: calc(100vh - 24px); min-width:min(1280px,calc(100vw - 16px)); min-height:min(720px,calc(100vh - 16px)); max-height: calc(100vh - 16px); padding: 14px; overflow: hidden; }
.pdf-designer-form { height: 100%; display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 12px; }
.pdf-designer-title { display: flex; gap: 16px; align-items: center; justify-content: space-between; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.pdf-designer-title h2, .pdf-designer-title p { margin: 0; }
.pdf-designer-title p { margin-top: 3px; color: var(--muted); }
.pdf-designer-layout { min-height: 0; display: grid; grid-template-columns: minmax(470px, .82fr) minmax(220px, .36fr) minmax(520px, 1.12fr); gap: 14px; }
.pdf-variable-picker { max-height:none; height:100%; }
.pdf-variable-picker .email-variable-list button { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.pdf-designer-controls { min-height: 0; padding-right: 5px; overflow: auto; display: grid; align-content: start; gap: 8px; }
.pdf-designer-controls details { border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.pdf-designer-controls summary { padding: 10px 12px; color: var(--brand-blue-dark); background: #f5f7fa; border-radius: 9px; cursor: pointer; font-weight: 900; }
.pdf-designer-controls details > .form-grid, .pdf-designer-controls details > .pdf-field-grid, .pdf-designer-controls details > .sequence-editor, .pdf-designer-controls details > p, .pdf-designer-controls details > #template-custom-elements, .pdf-designer-controls details > .sequence-add { margin: 10px; }
.pdf-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.pdf-field-grid label { padding: 7px 8px; display: flex; gap: 7px; align-items: center; border: 1px solid var(--line); border-radius: 7px; background: #f8fafc; cursor: pointer; }
.pdf-field-grid input { accent-color: var(--brand-blue); }
.pdf-welcome-text-editor textarea { min-height: 180px; resize: vertical; line-height: 1.5; }
.pdf-word-ribbon { margin-top: 8px; padding: 7px; display: grid; gap: 6px; grid-column: 1 / -1; border: 1px solid #b8c8db; border-radius: 8px; background: linear-gradient(#fff,#eef3f8); box-shadow: 0 5px 16px rgba(31,56,92,.12); }
.pdf-word-ribbon[hidden] { display: none; }
.pdf-word-ribbon-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 3px; }
.pdf-word-ribbon-head strong { color: #203c70; font-size: 10px; }
.pdf-word-ribbon-head span { overflow: hidden; color: #64748b; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.pdf-word-font-group, .pdf-word-paragraph-group { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.pdf-word-ribbon select, .pdf-word-ribbon input, .pdf-word-ribbon button { min-height: 30px; border: 1px solid #c6d1df; border-radius: 5px; background: #fff; color: #17243b; }
.pdf-word-ribbon select[data-pdf-text-style="font_family"] { width: 148px; }
.pdf-word-ribbon input[data-pdf-text-style="font_size"] { width: 62px; }
.pdf-word-ribbon select[data-pdf-text-style="line_spacing"] { width: 72px; }
.pdf-word-ribbon button { min-width: 32px; padding: 4px 7px; cursor: pointer; font-size: 11px; }
.pdf-word-ribbon button:hover, .pdf-word-ribbon button.active { color: #fff; border-color: #315fb4; background: #315fb4; }
.pdf-word-ribbon label { width: 42px; min-height: 30px; padding: 3px; display: grid; grid-template-columns: 15px 1fr; gap: 2px; align-items: center; border: 1px solid #c6d1df; border-radius: 5px; background: #fff; }
.pdf-word-ribbon label span { font-weight: 900; text-align: center; }
.pdf-word-ribbon input[type="color"] { width: 19px; min-height: 22px; padding: 0; border: 0; }
.pdf-rich-list-row { display: block; }
.pdf-document-type-label { margin-bottom: 3px; text-transform: none; }
.custom-element-row { margin-bottom: 6px; padding: 7px; display: grid; grid-template-columns: 22px 120px minmax(120px, 1fr) auto auto auto; gap: 6px; align-items: center; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.custom-element-row > .drag-handle { align-self: stretch; display: grid; place-items: center; color: #7c8797; cursor: grab; font-size: 17px; }
.custom-element-row input, .custom-element-row select { min-width: 0; }
.custom-element-geometry { display: grid; grid-template-columns: repeat(4, minmax(52px, 1fr)); gap: 5px; grid-column: 2 / -1; }
.custom-element-geometry label { font-size: 11px; color: #677184; }
.custom-element-geometry input { width: 100%; }
.pdf-designer-preview-wrap { min-height: 0; padding: 10px; overflow: auto; border: 1px solid var(--line); border-radius: 10px; background: #dce1e8; }
.pdf-preview-toolbar { margin-bottom: 8px; display: flex; justify-content: space-between; color: #465164; }
.pdf-live-preview { display: grid; place-items: start center; }
.pdf-live-preview article { width: 595px; min-height: 842px; padding: 32px; position: relative; color: #182033; background: #fff; box-shadow: 0 8px 28px rgba(24,32,51,.2); transform-origin: top center; font-size: var(--pdf-font-size, 8.5px); }
.pdf-live-preview.course-overview-landscape article { width: 842px; min-height: 595px; }
.pdf-free-layer { position: absolute; inset: 0; z-index: 5; pointer-events: none; }
.pdf-free-element { position: absolute; min-width: 18px; min-height: 12px; box-sizing: border-box; cursor: move; pointer-events: auto; user-select: none; white-space: pre-wrap; }
.pdf-free-frame { border-style: solid; background: transparent; }
.pdf-free-divider { border-top-style: solid; height: 2px !important; }
.pdf-free-text { padding: 3px; outline: 1px dashed rgba(47,69,159,.45); }
.pdf-free-element i { position: absolute; right: -5px; bottom: -5px; width: 11px; height: 11px; border-radius: 2px; background: #08a4df; cursor: nwse-resize; }
.document-email-selection { margin: 14px 0; border: 1px solid var(--line); border-radius: 9px; }
.document-email-selection > summary { padding: 10px 12px; color: var(--brand-blue-dark); background: #f5f7fa; cursor: pointer; font-weight: 800; }
.document-email-selection > div { max-height: 230px; padding: 8px; overflow: auto; }
.document-email-selection > small { display: block; padding: 0 12px 10px; color: var(--muted); }

.training-plan-email-form { width: 100%; max-width: 100%; }
.modal.modal-email-pdf-preview { min-width:min(600px,calc(100vw - 16px)); max-width:calc(100vw - 16px); max-height:calc(100dvh - 16px); overflow:hidden; }
.ki-interface .modal.modal-wide.modal-email-pdf-preview { max-height:calc(100dvh - 16px); }
.modal-email-pdf-preview > .training-plan-email-form { height:100%; min-height:0; display:flex; flex-direction:column; }
.modal-email-pdf-preview .email-composer-head,.modal-email-pdf-preview .document-email-test-banner,.modal-email-pdf-preview .modal-actions { flex-shrink:0; }
.modal-email-pdf-preview .email-composer-grid { flex:1; min-height:0; grid-template-columns:minmax(340px,.9fr) minmax(0,1.1fr); align-items:stretch; overflow-anchor:none; }
.modal-email-pdf-preview .email-composer-main,.modal-email-pdf-preview .email-composer-summary { min-height:0; overflow:auto; overscroll-behavior:contain; }
.modal-email-pdf-preview .email-composer-summary { display:flex; flex-direction:column; }
.modal-email-pdf-preview .email-composer-summary > * { flex-shrink:0; }
.modal-email-pdf-preview .email-attachment-preview { order:-1; display:flex; flex-direction:column; margin-top:0; border-top:0; padding-top:0; }
.modal-email-pdf-preview [data-pdf-panel] { order:-1; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:8px; min-width:0; }
.modal-email-pdf-preview [data-preview-title] { margin:0; overflow-wrap:anywhere; }
.modal-email-pdf-preview .email-pdf-inline-viewer,.modal-email-pdf-preview [data-preview-download] { grid-column:1 / -1; }
.modal-email-pdf-preview [data-preview-download] { justify-self:start; }
.email-pdf-inline-viewer { min-width:0; max-width:100%; }
.email-pdf-inline-viewer > [role="status"]:empty { display:none; }
@container(max-width:800px){.modal-email-pdf-preview .email-composer-grid { display:flex; flex-direction:column; overflow:auto; }.modal-email-pdf-preview .email-composer-main,.modal-email-pdf-preview .email-composer-summary { overflow:visible; flex-shrink:0; }.modal-email-pdf-preview .email-composer-summary { order:-1; margin-bottom:14px; }}
.email-composer-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.email-composer-head h2 { margin: 2px 0 4px; }
.email-composer-head p { margin: 0; color: var(--muted); }
.email-composer-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(250px, .75fr); gap: 14px; align-items: start; }
.training-email-template-preview { min-height: 210px; max-height: 390px; overflow: auto; padding: 14px 16px; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: #17243b; line-height: 1.45; outline: none; }
.training-email-template-preview:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(37, 91, 178, .12); }
.training-email-template-preview img { max-width: 100%; height: auto; }
.email-composer-main, .email-composer-summary { min-width: 0; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.email-delivery-choice { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin: 12px 0; padding: 0; border: 0; }
.email-delivery-choice legend { margin-bottom: 7px; font-weight: 800; color: var(--text); }
.email-delivery-choice label { display: flex; gap: 9px; min-width: 0; padding: 11px; border: 1px solid var(--line); border-radius: 12px; background: #f7faff; cursor: pointer; }
.email-delivery-choice label:has(input:checked) { border-color: #2f63bd; box-shadow: 0 0 0 2px rgb(47 99 189 / 12%); background: #eef5ff; }
.email-delivery-choice span { display: grid; min-width: 0; gap: 2px; }
.email-delivery-choice small { color: var(--muted); line-height: 1.35; }
.email-composer-summary h3 { margin: 0 0 10px; }
.email-composer-summary ul { display: grid; gap: 7px; max-height: 280px; margin: 0; padding: 0; overflow: auto; list-style: none; }
.email-composer-summary li { display: grid; gap: 2px; min-width: 0; padding: 9px 10px; border-radius: 10px; background: #f4f7fb; }
.email-composer-summary li strong, .email-composer-summary li span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.email-composer-summary li span { color: var(--muted); font-size: .82rem; }
.email-send-explanation { display: grid; gap: 4px; margin-top: 12px; padding: 11px; border-left: 4px solid #2f63bd; border-radius: 9px; background: #eef5ff; }
.email-settings-columns { align-items: start; }
.email-settings-columns > .card > .email-template-list { padding: 10px 12px 12px; }
.email-settings-columns > .card > #mail-transport-form { padding: 10px 14px 12px; }
.email-settings-columns #mail-transport-form .form-field:has([name="username"]),
.email-settings-columns #mail-transport-form .form-field:has([name="password"]) { grid-column: auto; }
.email-settings-columns > .card > .hint { margin: 0 14px 14px; }
.email-template-list { display: grid; gap: 8px; }
.email-template-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; padding: 11px 12px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.email-template-card > div:first-child { display: grid; min-width: 0; gap: 3px; }
.email-template-card span, .email-template-card small { overflow-wrap: anywhere; color: var(--muted); }
.email-template-card.archived { opacity: .62; }
.email-template-title { display: flex !important; align-items: center; flex-wrap: wrap; gap: 7px !important; }
.email-template-designer { display: grid; grid-template-columns: minmax(420px, 1.15fr) minmax(240px, .58fr) minmax(380px, .92fr); gap: 14px; align-items: start; width: min(1420px, calc(100vw - 52px)); max-width: 100%; }
.modal.modal-email-designer { width:min(1580px,calc(100vw - 24px)); height:calc(100vh - 24px); min-width:min(1280px,calc(100vw - 16px)); min-height:min(720px,calc(100vh - 16px)); max-height:calc(100vh - 16px); padding:14px; overflow:hidden; }
.modal-email-designer #email-template-form { height:100%; display:grid; grid-template-rows:auto minmax(0,1fr); gap:12px; }
.modal-email-designer .email-composer-head { margin:0; padding-bottom:10px; align-items:center; border-bottom:1px solid var(--line); }
.modal-email-designer .email-composer-head .modal-actions { margin-left:auto; flex:0 0 auto; }
.modal-email-designer .email-template-designer { width:100%; height:100%; min-height:0; align-items:stretch; grid-template-columns:minmax(430px,.9fr) minmax(250px,.46fr) minmax(520px,1.12fr); }
.modal-email-designer .email-template-designer:has(.email-variable-picker.is-collapsed) { grid-template-columns:minmax(430px,.9fr) 52px minmax(520px,1.12fr); }
.modal-email-designer .email-template-fields { min-height:0; padding-right:5px; align-content:start; overflow:auto; }
.modal-email-designer .email-variable-picker { height:100%; max-height:none; }
.modal-email-designer .email-live-preview { min-height:0; height:100%; overflow:auto; background:#dce1e8; }
.modal-email-designer .email-live-preview-head { position:sticky; top:0; z-index:2; }
.modal-email-designer .email-live-preview-message { min-height:calc(100% - 76px); align-content:start; }
.email-template-fields { min-width: 0; }
.email-variable-picker { min-width: 0; max-height: min(66vh, 650px); display: grid; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #f7faff; }
.email-variable-picker-head { display: grid; gap: 5px; padding: 12px; border-bottom: 1px solid var(--line); background: #fff; }
.email-variable-picker-title { display:flex; align-items:center; justify-content:space-between; gap:8px; min-width:0; }
.email-variable-toggle { width:32px; min-width:32px; height:32px; padding:0; display:grid; place-items:center; border:1px solid #bfccdc; border-radius:8px; background:#fff; color:#174f96; font-size:22px; line-height:1; cursor:pointer; }
.email-variable-toggle:hover,.email-variable-toggle:focus-visible { border-color:#2f63bd; background:#eef5ff; }
.email-variable-picker.is-collapsed .email-variable-picker-head { height:100%; padding:9px; align-content:start; border-bottom:0; }
.email-variable-picker.is-collapsed .email-variable-picker-title { justify-content:center; }
.email-variable-picker.is-collapsed h3,.email-variable-picker.is-collapsed p,.email-variable-picker.is-collapsed input,.email-variable-picker.is-collapsed .email-variable-list { display:none; }
.email-variable-picker-head h3, .email-variable-picker-head p { margin: 0; }
.email-variable-picker-head p { color: var(--muted); font-size: .82rem; }
.email-variable-picker-head input { width: 100%; }
.email-variable-list { min-height: 0; overflow-x: hidden; overflow-y: auto; padding: 9px; }
.email-variable-list section { display: grid; gap: 5px; margin-bottom: 12px; }
.email-variable-list h4 { margin: 0 3px 2px; color: var(--muted); font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; }
.email-variable-list button { min-width: 0; display: block; width: 100%; padding: 8px 9px; border: 1px solid #cfdaea; border-radius: 9px; background: #fff; color: var(--text); text-align: left; cursor: pointer; }
.email-variable-list button:hover, .email-variable-list button:focus-visible { border-color: #2f63bd; background: #eef5ff; box-shadow: 0 0 0 2px rgb(47 99 189 / 10%); }
.email-variable-list button span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 750; }
.email-variable-list button code { max-width: 48%; overflow: hidden; color: #174f96; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.email-live-preview { min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:14px; background:#eef2f7; }
.email-live-preview-head { padding:12px 14px; display:flex; align-items:center; justify-content:space-between; gap:10px; border-bottom:1px solid var(--line); background:#fff; }
.email-live-preview-head span { color:var(--muted); font-size:.78rem; }
.email-live-preview-message { margin:14px; padding:20px; display:grid; gap:18px; border-radius:10px; background:#fff; box-shadow:0 8px 24px rgb(24 32 51 / 10%); }
.email-live-preview-message small { display:block; color:var(--muted); font-size:.68rem; letter-spacing:.04em; }
.email-live-preview-message h3 { margin:4px 0 0; color:var(--text); font-size:1rem; overflow-wrap:anywhere; }
.email-preview-meta { padding-bottom:13px; display:grid; grid-template-columns:1fr 1fr; gap:10px; border-bottom:1px solid var(--line); }
.email-preview-meta b { font-size:.82rem; overflow-wrap:anywhere; }
.email-preview-body { min-height:210px; color:#26354b; line-height:1.55; overflow-wrap:anywhere; }
.email-preview-attachment { padding:10px; display:flex; gap:9px; align-items:center; border:1px solid #d5dfeb; border-radius:10px; background:#f7faff; }
.email-preview-attachment > span { padding:6px; border-radius:6px; color:#fff; background:#b83246; font-size:.7rem; font-weight:900; }
.email-preview-attachment strong,.email-preview-attachment small { display:block; overflow-wrap:anywhere; }
.mail-account-list { display: grid; gap: 8px; padding: 10px 12px 12px; }
.mail-account-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; padding: 11px 12px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.mail-account-card > div:first-child { display: grid; min-width: 0; gap: 3px; }
.mail-account-card span, .mail-account-card small { overflow-wrap: anywhere; color: var(--muted); }
.mail-accounts-card > .hint { margin: 0 12px 12px; }
.mail-transport-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.email-address-settings { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr) auto; gap: 10px; align-items: end; margin-top: 12px; }
.email-address-settings .form-field { min-width: 0; }
.email-address-settings .button { margin-bottom: 1px; white-space: nowrap; }

@media (max-width: 840px) {
  .email-composer-grid { grid-template-columns: 1fr; }
  .email-template-designer { grid-template-columns: 1fr; width: 100%; }
  .email-variable-picker { max-height: 360px; }
  .email-delivery-choice { grid-template-columns: 1fr; }
  .email-composer-head { display: grid; }
  .email-address-settings { grid-template-columns: 1fr; }
  .mail-account-card { align-items: stretch; flex-direction: column; }
}
@media (max-width: 1180px) {
  .modal-email-designer .email-template-designer { grid-template-columns:minmax(390px,1fr) minmax(220px,.55fr); overflow:auto; }
  .modal-email-designer .email-live-preview { grid-column:1 / -1; min-height:620px; }
}
.document-recipient { display: flex; gap: 9px; align-items: center; padding: 8px; border-bottom: 1px solid #edf0f5; cursor: pointer; }
.document-recipient span, .document-recipient small { display: block; }
.document-recipient.missing-email { color: #9a3440; background: #fff4f5; cursor: not-allowed; }
.pdf-live-preview header { min-height: 70px; position: relative; border-bottom: 3px solid var(--pdf-accent); }
.pdf-live-preview header > small { display: block; margin-top: 4px; color: #4f5e74; font-size: 9px; font-weight: 800; }
.pdf-live-preview header h3 { max-width: 390px; margin: 0 0 3px; color: var(--pdf-primary); font-size: 22px; line-height: 1.16; }
.pdf-live-preview header > p { max-width: 390px; margin: 5px 0 10px; color: #526077; font-size: 10px; }
.pdf-live-preview header img { max-width: 150px; max-height: 55px; position: absolute; right: 0; top: 0; object-fit: contain; }
.pdf-logo-placeholder { padding: 8px 10px; position: absolute; right: 0; top: 0; color: #fff; background: var(--pdf-primary); font-size: 19px; }
.pdf-logo-placeholder small { font-size: 9px; }
.pdf-live-preview section { margin-top: 14px; }
.pdf-live-preview h4 { margin: 0 0 7px; color: var(--pdf-primary); }
.pdf-sample-identity { padding: 10px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; border: 1px solid #d5dae2; background: #f4f7fb; }
.pdf-sample-identity small, .pdf-sample-identity b { display: block; }
.pdf-sample-identity small { color: #687386; font-size: 8px; }
.pdf-sample-welcome { padding: 11px; border: 1px solid var(--pdf-accent); background: var(--pdf-info); }
.pdf-sample-welcome p { margin: 5px 0; font-size: 10px; }
.pdf-sample-welcome-custom { color: var(--welcome-body-color); border-color: var(--welcome-border); background: var(--welcome-bg); }
.pdf-sample-welcome-custom > b { display: block; color: var(--welcome-title-color); font-size: var(--welcome-title-size); }
.pdf-sample-welcome-custom > p { margin: 6px 0; color: var(--welcome-body-color); font-size: var(--welcome-body-size); line-height: var(--welcome-line-height); white-space: pre-wrap; }
.pdf-sample-welcome-custom > small { color: var(--welcome-body-color); }
@media (max-width: 820px) { .pdf-word-ribbon { position: sticky; left: 0; right: 0; z-index: 4; } }
.pdf-sample-table { display: grid; grid-template-columns: 1fr 85px 80px; }
.pdf-sample-table > * { padding: 5px 7px; border: 1px solid #e0e4ea; font-size: 9px; }
.pdf-sample-schedule { display: grid; grid-template-columns: 140px 1fr; }
.pdf-sample-schedule > * { padding: 5px 7px; border-bottom: 1px solid #e0e4ea; font-size: 9px; }
.pdf-sample-schedule > :nth-child(1), .pdf-sample-schedule > :nth-child(2) { color: var(--pdf-empty); background: #fff5ec; }
.pdf-sample-signatures { padding-top: 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 70px; }
.pdf-sample-signatures span { padding-top: 5px; border-top: 1px solid #687386; font-size: 8px; }
.pdf-live-preview footer { margin-top: 22px; padding-top: 8px; color: #687386; border-top: 1px solid #d5dae2; font-size: 8px; }
.pdf-live-preview .pdf-layout-official_form header { min-height: 88px; border: 2px solid #222; padding: 12px; text-align: center; }
.pdf-live-preview .pdf-layout-official_form header h3 { max-width: none; color: #111; font-family: Georgia, serif; }
.pdf-live-preview .pdf-layout-official_form section { border-color: #555; background: #fff; }
.pdf-live-preview article[class*="pdf-layout-certificate"] header,
.pdf-live-preview .pdf-layout-certificate header { min-height: 120px; padding-top: 44px; border-bottom: 1px solid var(--pdf-primary); text-align: center; }
.pdf-live-preview article[class*="pdf-layout-certificate"] header h3,
.pdf-live-preview .pdf-layout-certificate header h3 { max-width: none; font-family: Georgia, serif; font-size: 27px; }
.pdf-live-preview article[class*="pdf-layout-certificate"] .pdf-sample-identity,
.pdf-live-preview .pdf-layout-certificate .pdf-sample-identity { margin-top: 40px; padding: 20px; background: #fff; }
.pdf-live-preview .pdf-layout-performance_ledger .pdf-sample-table,
.pdf-live-preview .pdf-layout-daily_record .pdf-sample-schedule { border: 1px solid #aab4c2; }
.pdf-live-preview .pdf-layout-daily_record header { min-height: 50px; border-bottom-width: 1px; }
.pdf-live-preview .pdf-layout-daily_record section { margin-top: 8px; }
.pdf-live-preview .pdf-layout-funding_plan .pdf-sample-welcome { border-left: 7px solid var(--pdf-primary); }
.pdf-live-preview .pdf-layout-training_plan header,
.pdf-live-preview .pdf-layout-training header { border-bottom-width: 5px; }
.pdf-live-preview .pdf-layout-training_plan .pdf-sample-table,
.pdf-live-preview .pdf-layout-training .pdf-sample-table { border-left: 6px solid var(--pdf-accent); }
.pdf-live-preview .pdf-layout-contract header { min-height: 72px; border-bottom: 3px double var(--pdf-primary); }
.pdf-live-preview .pdf-layout-contract .pdf-sample-welcome { padding: 16px; border: 1px solid #cbd4e1; background: #fff; }
.pdf-live-preview .pdf-layout-privacy header { min-height: 54px; border-bottom: 1px solid #29364b; }
.pdf-live-preview .pdf-layout-privacy .pdf-sample-welcome { border-left: 4px solid #29364b; background: #f6f7f9; }
.pdf-live-preview .pdf-layout-consent .pdf-sample-welcome { padding: 18px; border: 2px solid var(--pdf-primary); background: #fff; }
.pdf-live-preview .pdf-layout-consent .pdf-sample-signatures { min-height: 110px; border-top: 1px dashed #7a879b; }
.pdf-live-preview .pdf-layout-finance header { color: #fff; border: 0; background: var(--pdf-primary); }
.pdf-live-preview .pdf-layout-finance header h3,
.pdf-live-preview .pdf-layout-finance header small,
.pdf-live-preview .pdf-layout-finance header p { color: #fff; }
.pdf-live-preview .pdf-layout-finance section { border-radius: 3px; }
.pdf-live-preview .pdf-layout-assessment .pdf-sample-checklist { border-left: 7px solid var(--pdf-accent); background: #f3f9fc; }
.pdf-live-preview .pdf-layout-letter header { min-height: 48px; border-bottom-width: 1px; }
.pdf-live-preview .pdf-layout-letter .pdf-sample-welcome { min-height: 220px; padding: 22px; background: #fff; }
.pdf-live-preview .pdf-layout-weekly_matrix header { min-height: 62px; padding: 10px 14px; color: #fff; border: 0; background: var(--pdf-primary); }
.pdf-live-preview .pdf-layout-weekly_matrix header h3,
.pdf-live-preview .pdf-layout-weekly_matrix header > small,
.pdf-live-preview .pdf-layout-weekly_matrix header > p { color: #fff; }
.pdf-live-preview .pdf-layout-weekly_matrix .pdf-course-preview-grid { font-size: 7px; }

/* Version 2.15: klar gegliederte Einstellungen */
.settings-subsection { margin: 0; padding: 0; border: 1px solid #dfe5ec; border-radius: 12px; overflow: hidden; background: #fff; }
.settings-subsection-heading { padding: 13px 15px 11px; border-bottom: 1px solid #e4e9ef; background: linear-gradient(135deg, #f5f9fb, #edf4f7); }
.settings-subsection-heading h3 { margin: 0 0 3px; color: #003f52; font-size: 15px; }
.settings-subsection-heading p { margin: 0; color: var(--muted); font-size: 11px; }
.settings-subgrid { padding: 14px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.settings-subgrid > .full { grid-column: 1 / -1; }
.settings-tabs #settings-cancel-all { border-color: #9aa6b2; background: #fff; }
.lesson-counting-rules { margin-top: 7px; display: grid; gap: 5px; min-width: 200px; }
.settings-table tbody tr { border-left: 4px solid transparent; }
.settings-table tbody tr:focus-within { border-left-color: var(--accent); background: #f7fbfd; }
.settings-table .compact-setting { margin-top: 5px; display: grid; grid-template-columns: 1fr 80px; gap: 7px; align-items: center; font-size: 10px; }

/* Treffpunkte und PDF-Beilage */
.meeting-point-list { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(390px, 1fr)); }
.meeting-point-card { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 16px; min-height: 190px; padding: 12px; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: 0 3px 12px rgba(15, 35, 55, .05); }
.meeting-point-card.archived { opacity: .7; background: #f5f6f8; }
.meeting-point-card > img, .meeting-point-card-placeholder { width: 180px; height: 164px; object-fit: cover; border: 1px solid #ccd5df; border-radius: 9px; background: #edf1f5; }
.meeting-point-card-placeholder { display: grid; place-items: center; color: var(--muted); font-weight: 700; }
.meeting-point-card-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.meeting-point-card h3 { margin: 0 0 5px; color: var(--brand-blue); }
.meeting-point-card p { margin: 5px 0 8px; }
.meeting-point-card small { display: block; min-height: 30px; color: var(--muted); }
.meeting-point-card .table-actions { margin-top: 12px; flex-wrap: wrap; }
.exam-location-settings-card { margin-top: 16px; }
.exam-location-settings-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 10px; }
.exam-location-settings-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.exam-location-settings-row.archived { opacity: .7; background: #f5f6f8; }
.exam-location-settings-row > div { display: grid; gap: 4px; min-width: 0; }
.exam-location-settings-row strong, .exam-location-settings-row small { overflow-wrap: anywhere; }
.exam-location-settings-row small { color: var(--muted); }
.exam-location-class-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(72px, 1fr)); gap: 8px; }
.exam-location-class-grid label { display: flex; align-items: center; gap: 7px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 9px; }
.exam-location-assignment-list { display: grid; gap: 8px; max-height: min(58vh, 620px); overflow: auto; padding: 2px; }
.exam-location-assignment { display: flex; align-items: flex-start; gap: 10px; padding: 11px; border: 1px solid var(--line); border-radius: 10px; }
.exam-location-assignment span { display: grid; gap: 3px; min-width: 0; }
.exam-location-assignment small { color: var(--muted); overflow-wrap: anywhere; }
.participant-location-field.has-preserved-location small { color: #9b5b00; font-weight: 700; }

.modal-meeting-point-designer.modal-wide { width: min(1560px, calc(100vw - 30px)); max-width: none; height: min(920px, calc(100vh - 28px)); overflow: hidden; }
.meeting-point-designer-form { height: 100%; display: flex; flex-direction: column; }
.meeting-point-designer-layout { min-height: 0; flex: 1; display: grid; grid-template-columns: minmax(350px, 440px) minmax(620px, 1fr); gap: 18px; }
.meeting-point-designer-layout .pdf-designer-controls { min-height: 0; overflow-y: auto; padding-right: 5px; }
.meeting-point-instructors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.meeting-point-palettes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.meeting-point-palette { display: flex; align-items: center; gap: 8px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px; background: #fff; cursor: pointer; }
.meeting-point-palette:hover { border-color: var(--accent); box-shadow: 0 0 0 2px rgba(8,164,223,.12); }
.meeting-point-palette span { width: 44px; height: 24px; border-radius: 5px; background: linear-gradient(90deg, var(--p) 0 42%, var(--a) 42% 72%, var(--h) 72%); border: 1px solid rgba(0,0,0,.12); }
.meeting-point-live-preview { min-height: 0; flex: 1; display: grid; place-items: center; overflow: auto; padding: 18px; background: #dfe4ea; }
.meeting-point-sheet { --meeting-primary:#003748; --meeting-accent:#08a4df; --meeting-highlight:#fff200; --meeting-text:#182033; width: min(100%, 1000px); aspect-ratio: 1.4142; position: relative; display: grid; grid-template-rows: 118px minmax(0, 1fr) 132px; padding: 32px 38px 24px 44px; overflow: hidden; color: var(--meeting-text); background: #fff; box-shadow: 0 12px 34px rgba(15,34,52,.22); font-size: var(--meeting-font); }
.meeting-point-sheet::before { position: absolute; inset: 0 auto 0 0; width: 10px; content: ""; background: var(--meeting-accent); }
.meeting-point-sheet header { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 41%; grid-template-rows: 20px 45px 45px; column-gap: 25px; border-bottom: 3px solid var(--meeting-accent); }
.meeting-point-sheet header > small { color: var(--meeting-accent); font-size: .8em; font-weight: 800; letter-spacing: .08em; }
.meeting-point-sheet header > b { position: absolute; top: 0; right: 0; color: var(--meeting-primary); font-size: 2.1em; }
.meeting-point-sheet header > b em { color: var(--meeting-accent); font-size: .48em; font-style: normal; }
.meeting-point-sheet header h3 { grid-column: 1; margin: 3px 0; color: var(--meeting-primary); font-size: 2em; line-height: 1.12; }
.meeting-point-sheet header > span { align-self: center; justify-self: start; padding: 8px 13px; background: var(--meeting-highlight); font-size: 1.45em; font-weight: 800; }
.meeting-point-sheet header > div { grid-column: 2; grid-row: 2 / span 2; align-self: end; min-width: 0; }
.meeting-point-sheet header > div strong, .meeting-point-sheet header > div p { display: block; margin: 0 0 4px; }
.meeting-point-map { min-height: 0; display: grid; place-items: center; margin-top: 14px; overflow: hidden; border: 1px solid #cbd5df; background: #f1f4f7; }
.meeting-point-map img { width: 100%; height: 100%; object-fit: contain; }
.meeting-point-map > div { display: grid; gap: 8px; text-align: center; color: #657282; }
.meeting-point-map > div small { display: block; }
.meeting-point-sheet footer { min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) 31%; gap: 25px; padding-top: 12px; }
.meeting-point-sheet footer strong { color: var(--meeting-primary); }
.meeting-point-sheet footer p { margin: 6px 0 0; line-height: 1.35; }
.meeting-point-sheet footer aside { padding: 10px 13px; border: 1px solid var(--meeting-accent); background: #edf8fc; overflow: hidden; }
.meeting-point-sheet footer aside p { margin: 3px 0 8px; }
.instructor-meeting-preview { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 14px; align-items: center; grid-column: 1 / -1; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: #f7fafc; }
.instructor-meeting-preview img { width: 180px; height: 105px; object-fit: cover; border-radius: 7px; }
.instructor-meeting-preview strong, .instructor-meeting-preview span { display: block; }
.instructor-meeting-preview p { margin: 4px 0 0; color: var(--muted); }

@media (max-width: 1050px) {
  .meeting-point-designer-layout { grid-template-columns: 1fr; overflow-y: auto; }
  .meeting-point-designer-layout .pdf-designer-controls { overflow: visible; }
  .meeting-point-live-preview { min-height: 520px; }
}
@media (max-width: 680px) {
  .meeting-point-list { grid-template-columns: 1fr; }
  .meeting-point-card { grid-template-columns: 1fr; }
  .meeting-point-card > img, .meeting-point-card-placeholder { width: 100%; }
  .exam-location-settings-list { grid-template-columns: 1fr; }
  .exam-location-settings-row { align-items: stretch; flex-direction: column; }
  .meeting-point-instructors { grid-template-columns: 1fr; }
  .meeting-point-sheet { min-width: 760px; }
  .instructor-meeting-preview { grid-template-columns: 1fr; }
  .instructor-meeting-preview img { width: 100%; }
}
.legal-training-catalog { margin-top: 14px; }
.legal-rule-group { margin: 8px 0; border: 1px solid #dde4eb; border-radius: 9px; overflow: hidden; }
.legal-rule-group > summary { padding: 9px 12px; display: grid; grid-template-columns: 52px 1fr auto; gap: 9px; align-items: center; cursor: pointer; background: #f7f9fc; }
.legal-rule-group > summary small { color: var(--muted); }

/* Fahrzeugpark mit echten, einheitlichen Piktogrammen und Anhängerbeziehungen */
.vehicle-category-icon svg, .trailer-subcategory h3 svg { width: 38px; height: 24px; }
.vehicle-graphic svg, .vehicle-form-preview svg { width: 100%; height: 100%; }
.vehicle-category svg { fill: #d9edf2; stroke: #00465a; stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.vehicle-card-grid { padding: 12px; display: grid; grid-template-columns: repeat(auto-fill, minmax(310px, 1fr)); gap: 12px; }
.vehicle-card { min-width: 0; padding: 12px; display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 12px; border: 1px solid #dfe5eb; border-radius: 12px; background: #fff; box-shadow: 0 2px 8px rgba(0,55,72,.06); }
.vehicle-card:hover { border-color: #87b8c5; box-shadow: 0 5px 16px rgba(0,55,72,.1); }
.vehicle-graphic { height: 70px; padding: 7px; border-radius: 10px; background: linear-gradient(145deg, #edf8fa, #dceff3); }
.vehicle-card-main { min-width: 0; }
.vehicle-card-title { display: flex; justify-content: space-between; gap: 8px; }
.vehicle-card-title div { min-width: 0; display: grid; }
.vehicle-card-title strong { color: #003f52; font-size: 15px; }
.vehicle-card-title span { font-size: 10px; color: var(--muted); }
.vehicle-card-main > p { margin: 6px 0 9px; }
.vehicle-links { display: grid; gap: 4px; }
.vehicle-links > b { color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .05em; }
.vehicle-links > span { display: grid; grid-template-columns: 28px 1fr; align-items: center; gap: 5px; padding: 4px 6px; border-radius: 7px; background: #f4f8fa; font-size: 10px; }
.vehicle-links svg { width: 27px; height: 17px; }
.vehicle-card-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; border-top: 1px solid #edf0f3; padding-top: 9px; }
.trailer-groups { padding: 12px; display: grid; gap: 14px; }
.trailer-subcategory { border-left: 4px solid #78aebb; border-radius: 8px; background: #f8fafc; }
.trailer-subcategory h3 { margin: 0; padding: 9px 12px; display: flex; align-items: center; gap: 8px; color: #003f52; }
.trailer-subcategory h3 small { margin-left: auto; color: var(--muted); }
.vehicle-form-preview { width: 130px; height: 78px; margin: 0 auto 12px; padding: 8px; border-radius: 12px; background: #e8f4f7; }
.vehicle-form-preview svg, .vehicle-assignment-option svg { fill: #d9edf2; stroke: #00465a; stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.trailer-assignment-panel { padding: 12px; border: 1px solid #dce5eb; border-radius: 10px; background: #f8fafc; }
.trailer-assignment-panel h3 { margin: 0 0 10px; color: #003f52; }
.compatible-vehicle-list { margin-top: 9px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.compatible-vehicle-list > p { grid-column: 1 / -1; margin: 0 0 3px; color: var(--muted); }
.vehicle-assignment-option { padding: 7px; display: grid; grid-template-columns: 18px 44px 1fr; align-items: center; gap: 6px; border: 1px solid #dce5eb; border-radius: 9px; background: #fff; cursor: pointer; }
.vehicle-assignment-option:has(input:checked) { border-color: #0789a8; background: #eaf8fb; }
.vehicle-assignment-option svg { width: 42px; height: 26px; }
.vehicle-assignment-option span { display: grid; }
.vehicle-import-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.vehicle-import-summary > div { padding: 11px 13px; display: grid; gap: 3px; border: 1px solid #bcdbe3; border-radius: 10px; background: linear-gradient(145deg, #edf9fb, #fff); }
.vehicle-import-summary strong { color: #003f52; }
.vehicle-import-summary span { color: var(--muted); font-size: 9px; line-height: 1.4; }
.vehicle-scope-list { margin: 0 0 9px; display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.vehicle-scope-list > span { padding: 3px 7px; border: 1px solid #abd5df; border-radius: 999px; color: #004e63; background: #ecf9fb; font-size: 9px; font-weight: 900; }
.vehicle-scope-list > small { width: 100%; color: #5b6b7d; font-size: 8px; }
.vehicle-instructor-assignment { margin: 0 0 9px; display: grid; gap: 5px; }
.vehicle-instructor-assignment > b { color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .05em; }
.vehicle-instructor-assignment > div { display: flex; flex-wrap: wrap; gap: 5px; }
.vehicle-instructor-chip { padding: 4px 6px; display: grid; grid-template-columns: auto 1fr; gap: 1px 5px; align-items: center; border: 1px solid #d8e2e9; border-radius: 8px; color: #24344d; background: #f7f9fc; font-size: 9px; }
.vehicle-instructor-chip b { width: 25px; height: 25px; grid-row: 1 / 3; display: grid; place-items: center; border-radius: 7px; color: #fff; background: #2f459f; font-size: 8px; }
.vehicle-instructor-chip small { color: var(--muted); font-size: 7px; }
.vehicle-instructor-chip.is-today { border-color: #8ccab0; background: #effaf4; }
.vehicle-instructor-chip.is-today b { background: #168253; }
.vehicle-unassigned { color: #8a5660; font-size: 9px; }
@media (max-width: 850px) {
  .vehicle-import-summary { grid-template-columns: 1fr; }
}

/* Fixierte Fahrschüler bleiben in der Tagesplanung jederzeit greifbar. */
.day-plan-favorite-dock { position: relative; z-index: 6; margin: 0; padding: 7px 9px; display: grid; gap: 6px; border: 1px solid #e6bd45; border-radius: 10px; background: linear-gradient(135deg, #fff8dd, #fffdf4); box-shadow: 0 3px 10px rgba(97,72,0,.1); }
.day-plan-favorite-dock > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; color: #6d4d00; }
.day-plan-favorite-dock > div:first-child strong { font-size: 13px; }
.day-plan-favorite-dock > div:first-child small { display: inline-flex; align-items: center; padding: 4px 8px; border: 1px solid #e5c85a; border-radius: 7px; background: #fff3b9; color: #5c4300; font-size: 11px; font-weight: 850; }
.day-plan-favorite-dock > div:last-child { min-width: 0; overflow: hidden; padding-bottom: 1px; }
.day-plan-favorite-matrix { width: 100%; min-width: 0; display: grid; gap: 3px; }
.day-plan-favorite-matrix-head, .day-plan-favorite-matrix-row { width: 100%; min-width: 0; display: grid; grid-template-columns: var(--favorite-matrix-columns); gap: 3px; align-items: stretch; }
.day-plan-favorite-matrix-head > span { min-width: 0; padding: 3px 6px; display: grid; align-content: center; border-radius: 5px; color: #243d7d; background: #edf2fa; text-align: center; }
.day-plan-favorite-matrix-head > span.participant { text-align: left; }
.day-plan-favorite-matrix-head b { font-size: 10px; line-height: 1.08; overflow-wrap: anywhere; }
.day-plan-favorite-matrix-head small { color: #526078; font-size: 9px; }
.day-plan-favorite-matrix-row { border-radius: 7px; background: #fff; box-shadow: inset 0 0 0 1px #ead797; }
.day-plan-favorite-person { min-width: 0; position: relative; display: grid; grid-template-columns: minmax(0,1fr) 28px; align-items: stretch; }
.day-plan-favorite-person > button[data-day-favorite] { min-width: 0; padding: 6px 7px; display: grid; gap: 1px; border: 0; border-radius: 7px 0 0 7px; color: #17314d; background: transparent; text-align: left; cursor: pointer; }
.day-plan-favorite-person > button[data-day-favorite] b { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.day-plan-favorite-person > button[data-day-favorite] small { overflow: hidden; color: #5a6678; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.day-plan-favorite-person > button[data-day-favorite].selected { color: #fff; background: #00667d; }
.day-plan-favorite-person > button[data-day-favorite].selected small { color: #fff; }
.day-plan-favorite-remove { width: 24px; height: 24px; align-self: center; justify-self: center; padding: 0 !important; display: grid; place-items: center; border: 1px solid #e7a0a8; border-radius: 6px; color: #b42335; background: #fff5f6; font-size: 14px; font-weight: 900; cursor: pointer; }
.day-plan-favorite-matrix-cell { min-width: 0; padding: 5px 4px; display: flex; align-items: center; justify-content: center; gap: 3px; border-left: 3px solid #e1a42b; border-radius: 4px; color: #26364e; background: #fff8e6; font-size: 11px; font-variant-numeric: tabular-nums; }
.day-plan-favorite-matrix-cell b { min-width: 0; overflow: hidden; font-size: 10px; text-overflow: ellipsis; }
.day-plan-favorite-matrix-cell i { color: #8390a2; font-size: 9px; font-style: normal; }
.day-plan-favorite-matrix-cell.planned { border-left-color: #2f459f; background: #edf2ff; }
.day-plan-favorite-matrix-cell.booked { border-left-color: #168253; background: #ebf8f1; }
.day-plan-favorite-matrix-cell.empty { color: #8b96a6; border-left-color: transparent; background: #f5f7fa; }
.day-plan-favorite-dock.compact { position: static; margin: 8px 0 13px; }

.planner-distribution-editor { padding: 14px; border: 1px solid #cddbe3; border-radius: 12px; background: linear-gradient(180deg, #f8fbfc, #fff); }
.planner-distribution-editor > label:first-child { font-weight: 850; color: #003748; }
#group-distribution-sliders { display: grid; grid-template-columns: repeat(3, minmax(120px, 1fr)); gap: 10px; margin: 12px 0; }
#group-distribution-sliders[hidden] { display: none; }
#group-distribution-sliders > small { grid-column: 1 / -1; color: var(--muted); }
.distribution-mini-timeline { grid-column: 1 / -1; height: 112px; padding: 9px 7px 0; position: relative; display: grid; grid-template-columns: repeat(3, 1fr); align-items: end; gap: 4px; border-radius: 9px; background: repeating-linear-gradient(to top, #edf2f5 0 1px, transparent 1px 18px); border: 1px solid #c8d9e0; border-bottom: 2px solid #00667d; overflow: hidden; touch-action: none; user-select: none; }
.distribution-mini-timeline span { min-width: 0; min-height: 18%; position: relative; display: flex; justify-content: center; align-items: flex-start; border-radius: 6px 6px 0 0; background: linear-gradient(180deg, #08a4df, #2f459f); transition: height .12s ease, width .12s ease; }
.distribution-mini-timeline span b { padding: 4px 3px; color: #fff; font-size: 11px; line-height: 1; text-shadow: 0 1px 2px #003748; white-space: nowrap; }
.distribution-boundary-handle { width: 18px; height: 100%; padding: 0; position: absolute; z-index: 5; top: 0; transform: translateX(-50%); border: 0; background: transparent; cursor: col-resize; touch-action: none; }
.distribution-boundary-handle::before { content: ""; width: 3px; height: 100%; position: absolute; left: 50%; top: 0; transform: translateX(-50%); border-radius: 3px; background: rgba(0,55,72,.48); box-shadow: 0 0 0 1px rgba(255,255,255,.78); }
.distribution-boundary-handle::after { content: "↔"; width: 24px; height: 22px; position: absolute; left: 50%; top: 7px; transform: translateX(-50%); display: grid; place-items: center; border: 1px solid #00667d; border-radius: 7px; color: #003748; background: #fff; box-shadow: 0 2px 6px rgba(0,55,72,.2); font-weight: 900; }
.distribution-boundary-handle:hover::before, .distribution-boundary-handle.dragging::before { background: #08a4df; }
.distribution-height-handle { width: 100%; height: 18px; padding: 0; position: absolute; z-index: 4; left: 0; top: -7px; border: 0; background: transparent; cursor: ns-resize; touch-action: none; }
.distribution-height-handle::before { content: ""; height: 4px; position: absolute; inset: 5px 8px auto; border-radius: 4px; background: #fff; box-shadow: 0 0 0 1px #00667d, 0 2px 5px rgba(0,55,72,.25); }
.distribution-height-handle::after { content: "↕"; width: 20px; height: 18px; position: absolute; left: 50%; top: -2px; transform: translateX(-50%); display: grid; place-items: center; border-radius: 6px; color: #003748; background: #fff; font-size: 12px; font-weight: 900; }
.distribution-height-handle:hover::before, .distribution-height-handle.dragging::before { background: #fff200; }
.distribution-direct-hint { grid-column: 1 / -1; margin-top: -4px; color: #31505b; font-size: 12px; font-weight: 750; text-align: center; }
.distribution-width-controls, .distribution-weight-controls { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(180px, 1fr)); gap: 8px 14px; padding: 11px; border: 1px solid #dbe5ea; border-radius: 9px; background: #fff; }
.distribution-weight-controls { grid-template-columns: repeat(3, minmax(140px, 1fr)); }
.distribution-width-controls > strong, .distribution-weight-controls > strong, .distribution-width-controls > small { grid-column: 1 / -1; }
.distribution-width-controls > label, .distribution-weight-controls > label { display: grid; grid-template-columns: auto minmax(90px, 1fr) auto; align-items: center; gap: 7px; color: #31505b; font-weight: 750; }
.distribution-width-controls output, .distribution-weight-controls output { min-width: 42px; text-align: right; color: #003748; font-weight: 850; }
@media (max-width: 760px) {
  #group-distribution-sliders, .distribution-width-controls, .distribution-weight-controls { grid-template-columns: 1fr; }
  .distribution-width-controls > strong, .distribution-weight-controls > strong, .distribution-width-controls > small { grid-column: 1; }
}

.brand-card img { object-fit: contain; background: #fff; border-radius: 6px; }
.central-logo-card { border-top: 4px solid var(--brand-cyan); }
.central-logo-layout { display: grid; grid-template-columns: minmax(260px, .72fr) minmax(420px, 1.28fr); gap: 18px; align-items: stretch; }
.central-logo-preview { min-height: 180px; padding: 20px; display: flex; align-items: center; border: 1px dashed #91aab5; border-radius: 12px; background: linear-gradient(145deg, #f4f9fb, #fff); overflow: hidden; }
.central-logo-preview img { max-width: 100%; max-height: 145px; object-fit: contain; transition: width .15s ease, margin .15s ease, opacity .15s ease; }
.central-logo-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.logo-link-status { display: inline-flex; width: fit-content; align-items: center; gap: 7px; padding: 6px 10px; border-radius: 999px; color: #5b2630; background: #f6e8eb; font-size: 12px; font-weight: 800; }
.logo-link-status::before { content: "●"; }
.logo-link-status.linked { color: #12573d; background: #e4f6ee; }
.logo-link-status.linked::before { content: "↔"; }
.document-template-catalog { display: grid; gap: 10px; }
.document-template-group { overflow: hidden; border: 1px solid #dbe5ea; border-radius: 11px; background: #fff; }
.document-template-group > summary { min-height: 52px; padding: 10px 14px; display: flex; align-items: center; gap: 12px; cursor: pointer; color: #003748; background: linear-gradient(90deg, #edf7fa, #fff); }
.document-template-group > summary > span { display: grid; gap: 2px; margin-right: auto; }
.document-template-group > summary small { color: var(--muted); font-weight: 600; }
.document-template-group > summary > b { min-width: 92px; padding: 5px 9px; border-radius: 999px; text-align: center; background: #fff; box-shadow: inset 0 0 0 1px #c9dbe2; font-size: 12px; }
.document-template-group .table-scroll { border-top: 1px solid #dbe5ea; }
.document-template-category-actions { padding: 9px 12px; display: flex; justify-content: flex-end; border-top: 1px solid #dbe5ea; background: #f9fbfc; }
.document-template-group .empty-state.compact { min-height: 70px; margin: 0; border: 0; border-top: 1px solid #e2e9ed; border-radius: 0; }
.lesson-group-heading td { padding: 0 !important; color: #003748; background: linear-gradient(90deg, #e9f6fa, #f8fbfc); border-top: 2px solid #b8d5df; }
.lesson-group-heading button { width: 100%; min-height: 52px; padding: 10px 14px; display: grid; grid-template-columns: 34px minmax(150px,auto) 1fr auto; gap: 8px; align-items: center; border: 0; color: inherit; background: transparent; text-align: left; cursor: pointer; }
.lesson-group-heading button > span { display: inline-grid; width: 30px; height: 30px; place-items: center; border-radius: 8px; color: #fff; background: #00667d; font-weight: 900; }
.lesson-group-heading button > small { color: var(--muted); }
.lesson-group-heading button > b { font-size: 18px; }
.lesson-group-heading.open button { background: rgba(8,164,223,.06); }
.lesson-name-line { display: grid; grid-template-columns: auto minmax(170px, 1fr) auto; gap: 7px; align-items: center; }
.lesson-catalog-fields { display: grid; grid-template-columns: minmax(175px, 1.2fr) minmax(150px, 1fr) 88px; gap: 6px; margin-top: 8px; }
.lesson-catalog-fields label { display: grid; gap: 3px; color: #526873; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.lesson-catalog-fields input, .lesson-catalog-fields select { min-width: 0; padding: 6px 7px; font-size: 12px; text-transform: none; }
.lesson-link-info { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-top: 6px; color: #526873; font-size: 11px; }
.lesson-link-info > span { overflow: hidden; max-width: 320px; text-overflow: ellipsis; white-space: nowrap; }
.settings-table .lesson-config-card > td:first-child { min-width: 430px; }
.settings-table .lesson-config-card { scroll-margin-top: 130px; }
.bulk-delete-results { min-height: 150px; margin: 12px 0; padding: 10px; border: 1px solid #d7dfe5; border-radius: 10px; background: #f8fafb; }
.bulk-delete-search-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.bulk-delete-scope-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.bulk-delete-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 8px; }
.bulk-delete-session-list { max-height: 330px; overflow: auto; display: grid; gap: 5px; }
.bulk-delete-session-list label { display: grid; grid-template-columns: auto 1fr; gap: 9px; align-items: start; padding: 8px; border: 1px solid #e0e6ea; border-radius: 8px; background: #fff; cursor: pointer; }
.bulk-delete-session-list label:has(input:checked) { border-color: #d94b5b; background: #fff5f6; }
.bulk-delete-session-list span { display: grid; gap: 2px; }
.bulk-delete-session-list small { color: var(--muted); }
.bulk-delete-session-card { grid-template-columns: minmax(155px, auto) minmax(100px, max-content); align-items: center; column-gap: 8px; }
.bulk-delete-session-card small { grid-column: 1 / -1; }
.bulk-delete-lesson-type { max-width: 220px; padding: 4px 8px; justify-self: start; border-radius: 999px; color: var(--lesson-text); background: var(--lesson-color); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bulk-delete-empty-actions { margin-top: 10px; }
.bulk-delete-action-status { margin: 10px 0 0; min-height: 22px; font-weight: 700; }
.bulk-delete-action-status.warning { color: #a3202c; background: #fff2f3; border-color: #efb5bb; }

@media (max-width: 800px) {
  #group-distribution-sliders { grid-template-columns: 1fr; }
  .central-logo-layout { grid-template-columns: 1fr; }
  .lesson-catalog-fields { grid-template-columns: 1fr; }
  .settings-table .lesson-config-card > td:first-child { min-width: 300px; }
}

@media (max-width: 1500px) {
  .appointment-toolbar {
    grid-template-columns: minmax(320px, 1.05fr) minmax(245px, .78fr) minmax(190px, .55fr) max-content;
    grid-template-areas: "navigation settings instructor actions";
  }
  .appointment-toolbar-actions { justify-content: flex-end; flex-wrap: nowrap; }
  .appointment-toolbar-actions .button { padding-inline: 9px; white-space: nowrap; }
}

@media (max-width: 1300px) {
  .modal.modal-wide { width: calc(100vw - 24px); }
  .dashboard-widget { grid-column: span 12; }
  .appointment-pin-controls { grid-template-columns: minmax(180px, 1fr) minmax(190px, 1fr) repeat(3, auto); }
  .instructor-profile-steps { grid-template-columns: 1fr 1fr; }
  .instructor-profile-steps > section:first-child { grid-row: span 2; }
  .holiday-state-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .import-source-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .personnel-sync-card { grid-template-columns: 1fr; }
  .personnel-sync-summary { flex-wrap: wrap; }
}

@media (max-width: 1050px) {
  .appointment-toolbar {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "navigation"
      "settings"
      "actions"
      "instructor";
  }
  .appointment-toolbar-settings { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
  .appointment-toolbar > #appointment-instructor-picker { min-width: 0; }
  .appointment-instructor-menu { width: min(430px, calc(100vw - 44px)); left: 0; right: auto; }
  .appointment-timeline-heading { align-items: flex-start; }
  .day-plan-layout { grid-template-columns: 1fr; }
  .day-plan-layout.participant-picker-collapsed { grid-template-columns: 1fr; }
  .day-plan-layout > .day-plan-participant-picker,
  .day-plan-layout > .day-plan-workspace-top,
  .day-plan-layout > .day-plan-editor,
  .day-plan-layout > .day-plan-sequence,
  .day-plan-layout.sequence-first > .day-plan-editor,
  .day-plan-layout.sequence-first > .day-plan-sequence { grid-column: 1; grid-row: auto; }
  .day-plan-splitter { display: none; }
  .day-plan-layout.participant-picker-collapsed .day-plan-participant-picker { height: 54px; min-height: 54px; grid-template-columns: auto 1fr; grid-template-rows: 1fr; }
  .day-plan-layout.participant-picker-collapsed .day-plan-participant-picker-collapsed { flex-direction: row; writing-mode: horizontal-tb; transform: none; }
  .modal.modal-day-planner { overflow: auto; }
  .pdf-designer-layout { grid-template-columns: 1fr; overflow: auto; }
  .modal.modal-pdf-designer { overflow: auto; }
  .instructor-profile-steps { grid-template-columns: 1fr; }
  .instructor-profile-steps > section:first-child { grid-row: auto; }
  .holiday-state-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 800px) {
  .appointment-toolbar {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "navigation"
      "settings"
      "actions"
      "instructor";
  }
  .appointment-week-navigation { grid-template-columns: minmax(0, 1fr); justify-items: center; gap: 4px; }
  .appointment-week-label { min-height: 24px; justify-content: center; text-align: center; }
  .appointment-toolbar-settings { grid-template-columns: repeat(2, minmax(130px, 1fr)); }
  .checklist-grid { grid-template-columns: 1fr; }
  .participant-progress-row { grid-template-columns: 1fr; }
  .compact-form { grid-template-columns: 1fr; }
  .appointment-pin-controls { grid-template-columns: 1fr 1fr; }
  .appointment-pin-controls .button { width: 100%; }
  .appointment-group-picker { min-width: 0; }
  .appointment-student-chooser { grid-template-columns: 1fr 1fr; }
  .appointment-student-chooser .button { grid-column: 1 / -1; }
  .appointment-progress-strip { grid-template-columns: repeat(auto-fit, minmax(min(205px, 100%), 1fr)); }
  .holiday-state-grid { grid-template-columns: 1fr; }
  .settings-subgrid, .compatible-vehicle-list { grid-template-columns: 1fr; }
  .vehicle-card-grid { grid-template-columns: 1fr; }
  .work-center-summary, .import-source-grid { grid-template-columns: 1fr 1fr; }
  .work-center-row { grid-template-columns: 88px minmax(0, 1fr) auto; }
  .dashboard-config-row, .import-center-hero, .import-detection { grid-template-columns: 1fr; }
  .external-source-grid { grid-template-columns: 1fr; }
  .import-center-actions { justify-content: flex-start; }
  .import-detection > div:not(:first-child) { justify-items: start; }
}

@media (max-width: 560px) {
  .appointment-pin-controls,
  .appointment-student-chooser,
  .appointment-student-chooser .button { grid-column: auto; }
}

/* V2.20 – kompakte Verwaltung und robuste kleinere Fenster */
.pdf-preview-status { padding: 8px 11px; border: 1px solid var(--line); border-radius: 8px; color: var(--muted); background: #f8fafc; font-size: 11px; }
.pdf-preview-status.loading { border-color: #b6dff0; background: #eef9fd; }
.pdf-preview-status.ok { color: #12664e; border-color: #a9dcc8; background: #eefaf5; }
.pdf-preview-status.error { color: #9d2e3c; border-color: #f0b7bf; background: #fff3f5; }
.modal.modal-course-overview.modal-wide { width: min(1220px, calc(100vw - 28px)); height: min(920px, calc(100vh - 28px)); max-height: none; overflow: hidden; }
.modal-course-overview #course-overview-pdf-form { height: 100%; min-height: 0; display: flex; flex-direction: column; }
.modal-course-overview #course-overview-live-preview { min-height: 0; flex: 1; margin-top: 10px; display: grid; grid-template-rows: auto auto minmax(420px, 1fr); }
.modal-course-overview #course-overview-live-preview[hidden] { display: none; }
.course-overview-preview-content { min-height: 0; overflow: hidden; border: 1px solid #c8d1df; border-radius: 8px; background: #737982; }
.course-overview-preview-content > .course-overview-pdf-engine { width: 100%; height: 100%; min-height: 500px; display: block; border: 0; background: #737982; }
.course-overview-preview-content > [hidden] { display: none; }
.course-overview-preview-toolbar-actions, .course-overview-preview-view-switch { display: flex; align-items: center; gap: 7px; }
.course-overview-preview-view-switch { padding: 3px; border: 1px solid #cad4e4; border-radius: 8px; background: #eef2f8; }
.course-overview-preview-view-switch .button { min-height: 30px; padding: 5px 9px; border-color: transparent; background: transparent; }
.course-overview-preview-view-switch .button.active { color: #fff; border-color: #314fa7; background: #314fa7; box-shadow: 0 2px 7px rgb(31 58 132 / 18%); }
.course-overview-html-preview { min-height: 0; padding: 18px; overflow: auto; border: 1px solid #c8d1df; border-radius: 8px; background: #eef2f7; }
.course-overview-html-preview > header { margin-bottom: 14px; padding: 14px 16px; display: flex; align-items: end; justify-content: space-between; gap: 18px; border-bottom: 3px solid var(--brand-cyan); background: #fff; }
.course-overview-html-preview > header div { display: grid; gap: 3px; }
.course-overview-html-preview > header small { color: var(--brand-cyan-dark); font-size: 9px; font-weight: 900; letter-spacing: .08em; }
.course-overview-html-preview > header strong { color: #263f96; font-size: 18px; }
.course-overview-html-preview > header > span { color: var(--muted); font-size: 10px; font-weight: 750; }
.course-overview-preview-group { margin-bottom: 12px; overflow: hidden; border: 1px solid color-mix(in srgb, var(--preview-group) 26%, #d9e0ea); border-radius: 8px; background: #fff; break-inside: avoid; }
.course-overview-preview-group > header { min-height: 38px; padding: 7px 10px; display: grid; grid-template-columns: 110px minmax(180px, 1fr) auto; align-items: center; gap: 12px; border-left: 7px solid var(--preview-group); color: #16223a; background: color-mix(in srgb, var(--preview-group) 18%, white); }
.course-overview-preview-group > header strong { color: color-mix(in srgb, var(--preview-group) 78%, #12204a); font-size: 12px; }
.course-overview-preview-group > header span, .course-overview-preview-group > header b { font-size: 10px; }
.course-overview-preview-table { display: grid; }
.course-overview-preview-head, .course-overview-preview-row { min-width: max(720px, calc(var(--course-preview-columns, 5) * 112px)); padding: 6px 9px; display: grid; grid-template-columns: repeat(var(--course-preview-columns, 5), minmax(96px, 1fr)); gap: 8px; align-items: center; }
.course-overview-preview-head { color: #354158; background: color-mix(in srgb, var(--preview-group) 10%, #f4f6fa); font-size: 8.5px; font-weight: 900; }
.course-overview-preview-row { border-top: 1px solid #e5e9f0; color: #263248; font-size: 9.5px; }
.course-overview-preview-row .strong { font-weight: 800; color: #17254d; }
.course-overview-preview-row:nth-child(odd) { background: #fafbfd; }
.course-overview-preview-empty { padding: 20px; color: var(--muted); text-align: center; }
.course-overview-preview-summary { display: grid; grid-template-columns: repeat(var(--cover-column-count, 3), minmax(0, 1fr)); gap: 8px; padding: 10px 12px; background: #f5f8fd; border-bottom: 1px solid #dce4f0; }
.course-overview-preview-summary span { display: grid; gap: 2px; }
.course-overview-preview-summary small { color: var(--muted); font-size: 9px; }
.course-overview-preview-summary strong { color: var(--preview-primary, #2f459f); }
.course-overview-preview-cover-groups { margin: 10px 0 14px; overflow: auto; border: 1px solid #d7dfeb; border-radius: 8px; background: #fff; }
.course-overview-preview-cover-groups h4 { margin: 0; padding: 9px 11px; color: var(--preview-primary, #2f459f); background: #f1f5fb; font-size: 11px; text-transform: uppercase; }
.course-overview-preview-cover-head, .course-overview-preview-cover-row { min-width: max(640px, calc(var(--cover-group-columns, 3) * 140px)); display: grid; grid-template-columns: repeat(var(--cover-group-columns, 3), minmax(110px, 1fr)); align-items: center; }
.course-overview-preview-cover-head { color: #fff; background: var(--preview-primary, #2f459f); font-size: 8.5px; font-weight: 900; }
.course-overview-preview-cover-row { border-top: 1px solid #e2e7ef; border-left: 5px solid var(--cover-group-color, #2f459f); color: #263248; background: color-mix(in srgb, var(--cover-group-color, #2f459f) 8%, white); font-size: 9.5px; }
.course-overview-preview-cover-head span, .course-overview-preview-cover-row span { min-width: 0; padding: 7px 9px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.course-overview-preview-schedule { display: flex; justify-content: space-between; gap: 12px; padding: 11px 13px; border: 1px dashed color-mix(in srgb, var(--preview-accent, #08a4df) 65%, #9aa7ba); border-radius: 8px; background: #f7fbff; color: #263248; }
.course-overview-preview-schedule span { color: var(--muted); text-align: right; }
.course-overview-preview-schedule > div { display: grid; gap: 2px; }
.course-overview-preview-schedule small { color: var(--muted); font-size: 9px; }
.course-overview-daily-preview { margin-top: 14px; display: grid; gap: 9px; }
.course-overview-daily-preview > header { padding: 10px 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-radius: 8px; color: #fff; background: var(--preview-primary, #2f459f); }
.course-overview-daily-preview > header strong { font-size: 12px; }
.course-overview-daily-preview > header span { font-size: 9px; font-weight: 800; }
.course-overview-daily-preview-card { overflow: hidden; border: 1px solid #d6deeb; border-radius: 9px; background: #fff; }
.course-overview-daily-preview-card > summary { min-height: 48px; padding: 8px 11px; display: flex; align-items: center; justify-content: space-between; gap: 14px; cursor: pointer; background: #f2f6fc; }
.course-overview-daily-preview-card > summary span { min-width: 0; display: grid; gap: 2px; }
.course-overview-daily-preview-card > summary strong { color: #1e398a; font-size: 11px; }
.course-overview-daily-preview-card > summary small { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.course-overview-daily-preview-card > summary b { flex: 0 0 auto; color: #2a3855; font-size: 9px; }
.course-overview-daily-preview-table { max-height: 420px; overflow: auto; }
.course-overview-daily-preview-head { display: grid; grid-template-columns: 74px minmax(180px, 1.25fr) minmax(95px, .65fr) minmax(95px, .65fr); align-items: center; }
.course-overview-daily-preview-row { display: grid; grid-template-columns: minmax(180px, 1.25fr) minmax(95px, .65fr) minmax(95px, .65fr); align-items: center; }
.course-overview-daily-preview-head { position: sticky; top: 0; z-index: 1; color: #fff; background: #314fa7; font-size: 9px; font-weight: 900; }
.course-overview-daily-preview-head span, .course-overview-daily-preview-row > * { padding: 6px 10px; }
.course-overview-daily-preview-week { display: grid; grid-template-columns: 74px minmax(0, 1fr); border-top: 2px solid #bbc8dc; }
.course-overview-daily-preview-week:first-of-type { border-top: 0; }
.course-overview-daily-preview-week-label { padding: 9px 7px; display: flex; align-items: center; align-self: stretch; flex-direction: column; justify-content: flex-start; gap: 4px; border-right: 1px solid #ccd6e5; color: #203b91; background: #eaf0fb; text-align: center; }
.course-overview-daily-preview-week-label strong { font-size: 10.5px; }
.course-overview-daily-preview-week-label small { color: #65728a; font-size: 7.5px; line-height: 1.25; }
.course-overview-daily-preview-week > div:last-child { min-width: 0; }
.course-overview-daily-preview-row { border-top: 1px solid #e3e8f1; color: #25314a; font-size: 9.5px; }
.course-overview-daily-preview-row:nth-child(odd) { background: #f8fafd; }
.course-overview-daily-preview-row.empty { color: #b35e20; background: #fff8f0; }
.course-overview-daily-preview-row strong { font-size: 10px; }
.course-overview-daily-preview-row .no-training { grid-column: 2 / -1; color: #a34e15; }
.course-overview-daily-preview-meta { padding: 8px 11px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; border-top: 1px solid #d9e2ef; border-bottom: 1px solid #d9e2ef; background: #f8fbff; }
.course-overview-daily-preview-meta span { min-width: 0; display: grid; gap: 2px; }
.course-overview-daily-preview-meta small { color: var(--muted); font-size: 8.5px; font-weight: 800; }
.course-overview-daily-preview-meta strong { overflow: hidden; color: #1d2f62; font-size: 9.5px; text-overflow: ellipsis; white-space: nowrap; }
.course-overview-daily-options { margin-top: 10px; padding: 12px; display: grid; gap: 10px; border: 1px solid #cad6e6; border-radius: 10px; background: #f7faff; }
.course-overview-daily-options-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(230px, 330px); align-items: end; gap: 14px; }
.course-overview-daily-options-heading > div:first-child { display: grid; gap: 3px; }
.course-overview-daily-options-heading > div:first-child > strong { color: #213b8f; font-size: 13px; }
.course-overview-daily-options-heading > div:first-child > small { color: var(--muted); line-height: 1.35; }
.course-overview-daily-options-heading .form-field { margin: 0; }
.course-overview-daily-choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.course-overview-daily-choice-grid > label { min-width: 0; padding: 9px 10px; display: flex; align-items: flex-start; gap: 8px; border: 1px solid #d5ddea; border-radius: 8px; background: #fff; cursor: pointer; }
.course-overview-daily-choice-grid > label:has(input:checked) { border-color: #2f54ba; box-shadow: 0 0 0 2px rgb(47 84 186 / 12%); background: #eef3ff; }
.course-overview-daily-choice-grid span { min-width: 0; display: grid; gap: 2px; }
.course-overview-daily-choice-grid strong { color: #17254d; font-size: 11px; }
.course-overview-daily-choice-grid small { color: var(--muted); font-size: 9px; }
#course-overview-daily-selection { max-height: 285px; min-height: 0; overflow: auto; overscroll-behavior: contain; border-top: 1px solid #d9e2ef; padding-top: 10px; }
#course-overview-daily-selection[hidden] { display: none; }
.course-overview-daily-selection-tools { margin-bottom: 8px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.course-overview-daily-selection-tools span { color: var(--muted); font-size: 9px; text-align: right; }
.course-overview-daily-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.course-overview-daily-group { min-width: 0; overflow: hidden; border: 1px solid #d8e0ec; border-radius: 8px; background: #fff; }
.course-overview-daily-group-title { padding: 8px 10px; display: flex; align-items: flex-start; gap: 8px; background: #f2f6fc; cursor: pointer; }
.course-overview-daily-group-title span { min-width: 0; display: grid; gap: 1px; }
.course-overview-daily-group-title strong { color: #203c90; font-size: 11px; }
.course-overview-daily-group-title small { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.course-overview-daily-group > div { padding: 7px 10px 9px 30px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 10px; }
.course-overview-daily-group > div > label { min-width: 0; display: flex; align-items: center; gap: 6px; cursor: pointer; }
.course-overview-daily-group > div > label span { overflow: hidden; color: #25314a; font-size: 9.5px; text-overflow: ellipsis; white-space: nowrap; }
.course-overview-daily-group.all-selected { border-color: #5c76c7; background: #f4f7ff; }
.course-overview-daily-group.all-selected > div { opacity: .58; }
@media (max-width: 850px) {
  .course-overview-daily-options-heading, .course-overview-daily-choice-grid, .course-overview-daily-groups { grid-template-columns: 1fr; }
  .course-overview-daily-group > div { grid-template-columns: 1fr; }
  .course-overview-preview-schedule, .course-overview-daily-selection-tools { align-items: flex-start; flex-direction: column; }
  .course-overview-preview-schedule span, .course-overview-daily-selection-tools span { text-align: left; }
  .course-overview-preview-toolbar-actions { width: 100%; align-items: stretch; flex-direction: column; }
  .course-overview-preview-view-switch { width: 100%; }
  .course-overview-preview-view-switch .button { flex: 1; }
  .course-overview-daily-preview-meta { grid-template-columns: 1fr; }
  .course-overview-preview-summary { grid-template-columns: 1fr; }
}
.course-overview-html-preview > header em { display: block; margin-top: 3px; color: var(--muted); font-size: 9px; font-style: normal; }
.course-overview-setting-intro { display: grid; gap: 4px; margin: 8px 0 12px; padding: 10px 12px; border-left: 4px solid #2f459f; border-radius: 8px; background: #f1f5ff; color: #25324b; }
.course-overview-setting-intro span { color: var(--muted); font-size: 12px; }
.participant-exam-history > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.participant-exam-history article { display: grid; gap: 3px; min-width: 0; padding: 11px 13px; border: 1px solid #d8e0ed; border-left: 5px solid #9aa7ba; border-radius: 10px; background: #f7f9fc; }
.participant-exam-history article.filled { border-left-color: #2f459f; background: #f1f4ff; }
.participant-exam-history article.actual.filled { border-left-color: #188b67; background: #edf8f4; }
.participant-exam-history article small, .participant-exam-history article span { color: var(--muted); line-height: 1.25; }
.participant-exam-history article strong { overflow-wrap: anywhere; color: #142143; }
.participant-exam-history article input[type="date"] { width: 100%; min-width: 0; padding: 7px 8px; border: 1px solid #b9c8dd; border-radius: 7px; background: #fff; color: #142143; font-weight: 700; }
@media (max-width: 760px) { .participant-exam-history > div { grid-template-columns: 1fr; } }
.day-plan-layout.stacked { grid-template-columns: 1fr; overflow: auto; }
.day-plan-layout.stacked .day-plan-splitter { display: none; }
.day-plan-layout.stacked > .day-plan-participant-picker,
.day-plan-layout.stacked > .day-plan-workspace-top,
.day-plan-layout.stacked > .day-plan-editor,
.day-plan-layout.stacked > .day-plan-sequence { grid-column: 1; grid-row: auto; }
.day-plan-heading { flex-wrap: wrap; }
.day-layout-picker { min-width: 160px; }
.day-plan-sequence-tools { display: flex; align-items: end; gap: 8px; flex-wrap: wrap; }
.day-plan-select { width: 24px; height: 34px; display: grid; place-items: center; border: 1px solid #c5cfda; border-radius: 7px; background: #f5f7fa; cursor: pointer; }
.day-plan-select input { width: 17px; height: 17px; margin: 0; accent-color: var(--brand-blue); cursor: pointer; }
.day-plan-draft-item.selected-for-group { border-color: #7651b5; background: #f7f2ff; box-shadow: inset 4px 0 0 #7651b5, 0 0 0 2px rgba(118,81,181,.12); }
.day-plan-draft-item.selected-for-group .day-plan-select { border-color: #7651b5; background: #eee5fb; }
.day-plan-draft-item.editing { outline: 3px solid rgba(8,164,223,.24); border-color: var(--brand-cyan); background: #effaff; }
.day-plan-draft-item.daily-grouped { box-shadow: inset 4px 0 0 #8a5bd3; }
.backup-browser-toolbar { margin: 12px 0 8px; display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.backup-browser-toolbar input { min-width: min(320px, 100%); padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; }
.segmented-control { display: flex; padding: 3px; border: 1px solid var(--line); border-radius: 9px; background: #f4f6f9; }
.segmented-control button { padding: 6px 12px; border: 0; border-radius: 6px; color: var(--muted); background: transparent; font-weight: 750; }
.segmented-control button.active { color: #fff; background: var(--brand-blue); }
.backup-group { overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.backup-group > summary { padding: 10px 12px; display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 12px; align-items: center; cursor: pointer; }
.backup-group > summary small { color: var(--muted); }
.backup-group > div { display: grid; border-top: 1px solid var(--line); }
.backup-group article { padding: 9px 12px; display: flex; justify-content: space-between; align-items: center; gap: 12px; border-bottom: 1px solid #edf0f4; }
.backup-group article:last-child { border-bottom: 0; }
.backup-group article div { min-width: 0; display: grid; gap: 2px; }
.backup-group article strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.backup-group article span { color: var(--muted); font-size: 10px; }
.student-history-list { display: grid; gap: 8px; }
.student-history-item { padding: 9px 10px; display: grid; grid-template-columns: 10px minmax(0,1fr) auto; gap: 10px; align-items: start; border: 1px solid var(--line); border-radius: 9px; background: #fbfcfe; }
.student-history-item > i { width: 9px; height: 9px; margin-top: 5px; border-radius: 50%; background: var(--brand-cyan); }
.student-history-item > div:nth-child(2) { display: grid; gap: 3px; }
.student-history-item small { color: var(--muted); }
.student-history-item p { margin: 2px 0 0; }
.audit-filter-toolbar { align-items: end; }
.audit-period-list { display: grid; gap: 10px; }
.audit-period-group { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: #fff; }
.audit-period-group > summary { min-height: 54px; padding: 10px 14px; display: flex; align-items: center; justify-content: space-between; gap: 16px; cursor: pointer; background: #f5f8fb; }
.audit-period-group > summary span { display: grid; gap: 2px; }
.audit-period-group > summary small { color: var(--muted); font-size: 9px; }
.audit-period-group > summary b { padding: 4px 8px; color: #fff; background: var(--brand-blue); border-radius: 999px; font-size: 9px; }
.audit-period-group[open] > summary { color: var(--brand-blue); border-bottom: 1px solid var(--line); background: #eef7fb; }
.audit-period-group .table-scroll { max-height: 520px; }
.audit-empty-selection { min-height: 260px; display: grid; place-content: center; gap: 7px; color: var(--muted); text-align: center; }
.audit-empty-selection strong { color: var(--brand-blue); font-size: 18px; }
.pdf-course-preview-grid { display: grid; grid-template-columns: repeat(var(--course-column-count), minmax(70px, 1fr)); overflow: hidden; border: 1px solid #dfe4ea; border-radius: 5px; }
.pdf-course-preview-grid > * { min-width: 0; padding: 5px; border-right: 1px solid #e2e6eb; font-size: 8px; overflow-wrap: anywhere; }
.pdf-course-preview-grid > b { color: #fff; background: var(--pdf-primary); }
.course-overview-column-settings[hidden] { display: none; }
.legal-profile-preview span { display: block; margin-top: 4px; color: var(--success); font-size: 10px; font-weight: 700; }
.error-text { color: var(--danger); }
.license-document-card { overflow: hidden; border: 1px solid #cbdbe2; border-radius: 11px; background: #f8fbfc; }
.license-document-card > summary { padding: 12px 14px; display: flex; justify-content: space-between; gap: 12px; cursor: pointer; color: var(--brand-blue-dark); background: #eaf5f8; }
.license-document-card > summary small { color: var(--muted); }
.license-document-meta { padding: 12px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.license-document-meta label,
.license-holding-row > label:not(.license-holding-class) { display: grid; gap: 4px; color: #526873; font-size: 10px; font-weight: 800; }
.license-document-meta input,
.license-holding-row input[type="date"] { min-width: 0; width: 100%; padding: 7px 8px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.license-holdings-heading { padding: 6px 12px; display: grid; grid-template-columns: minmax(210px,1.1fr) repeat(3,minmax(130px,1fr)); gap: 8px; color: var(--muted); font-size: 9px; font-weight: 850; text-transform: uppercase; }
.license-holdings-grid { max-height: 390px; overflow: auto; border-top: 1px solid #d8e4e9; }
.license-holding-row { padding: 8px 12px; display: grid; grid-template-columns: minmax(210px,1.1fr) repeat(3,minmax(130px,1fr)); gap: 8px; align-items: center; border-bottom: 1px solid #e5ecef; opacity: .58; }
.license-holding-row.selected { opacity: 1; background: #fff; box-shadow: inset 4px 0 0 var(--brand-cyan); }
.license-holding-class { display: grid; grid-template-columns: auto 48px minmax(0,1fr); gap: 8px; align-items: center; cursor: pointer; }
.license-holding-class small { overflow: hidden; color: #526873; text-overflow: ellipsis; white-space: nowrap; }
.participant-location-field small { color: var(--muted); }
.target-license-card { border-color: #9fc8d6; background: #fff; }
.target-license-card > summary { background: linear-gradient(90deg,#e4f4f8,#f4f8ff); }
.target-license-explainer { padding: 10px 12px; display: flex; flex-wrap: wrap; gap: 8px 18px; color: #526873; font-size: 11px; font-weight: 700; border-bottom: 1px solid #dce9ee; }
.target-license-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); max-height: 420px; overflow: auto; background: #f7fafc; }
.target-license-row { min-width: 0; padding: 9px 10px; display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 7px; align-items: center; border-right: 1px solid #e2eaee; border-bottom: 1px solid #e2eaee; opacity: .63; }
.target-license-row.selected { opacity: 1; background: #fff; box-shadow: inset 4px 0 0 var(--brand-cyan); }
.target-license-class { min-width: 0; display: grid; grid-template-columns: auto 45px minmax(0,1fr); gap: 7px; align-items: center; cursor: pointer; }
.target-license-class small { overflow: hidden; color: #526873; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.target-license-primary { display: flex; align-items: center; gap: 4px; color: #526873; font-size: 10px; font-weight: 800; cursor: pointer; }
.target-license-primary input:disabled + span { opacity: .45; }
.license-requirement-button { min-height: 30px; padding: 5px 8px; font-size: 10px; }
.license-eligibility-preview { border-top: 1px solid #cfe0e7; }
.license-eligibility-heading { padding: 11px 12px; display: flex; align-items: center; gap: 9px; }
.license-eligibility-heading > span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; color: #fff; font-size: 16px; font-weight: 900; }
.license-eligibility-heading > div { display: grid; gap: 2px; }
.license-eligibility-heading small { color: var(--muted); }
.license-eligibility-heading.ok { background: #e9f7f1; }
.license-eligibility-heading.ok > span { background: var(--success); }
.license-eligibility-heading.warning { background: #fff8df; }
.license-eligibility-heading.warning > span { background: #d39a11; }
.license-eligibility-heading.error { background: #fff0f2; }
.license-eligibility-heading.error > span { background: var(--danger); }
.license-eligibility-results { padding: 10px; display: grid; gap: 8px; background: #f8fbfc; }
.license-eligibility-results article { overflow: hidden; border: 1px solid #d8e3e8; border-radius: 9px; background: #fff; }
.license-eligibility-results article.error { border-color: #efb0b9; }
.license-eligibility-results article.warning { border-color: #ead18d; }
.license-eligibility-results article > header { padding: 8px 9px; display: grid; grid-template-columns: 45px minmax(0,1fr) auto; gap: 8px; align-items: center; background: #f6f9fb; }
.license-eligibility-results article > header strong { font-size: 11px; line-height: 1.35; }
.license-eligibility-results article > header .button { min-height: 28px; padding: 4px 8px; font-size: 10px; }
.license-eligibility-results ul { margin: 0; padding: 8px 10px; display: grid; gap: 5px; list-style: none; }
.license-eligibility-results li { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 7px; align-items: start; color: #415560; font-size: 11px; line-height: 1.4; }
.license-eligibility-results li i { width: 18px; height: 18px; display: grid; place-items: center; border-radius: 50%; color: #fff; font-style: normal; font-size: 10px; font-weight: 900; background: var(--success); }
.license-eligibility-results li.warning i { background: #d39a11; }
.license-eligibility-results li.error i { background: var(--danger); }
.license-requirement-dialog { display: grid; gap: 16px; }
.license-requirement-title { display: flex; gap: 12px; align-items: flex-start; }
.license-requirement-title .license-class-badge { width: 62px; min-width: 62px; min-height: 50px; font-size: 18px; }
.license-requirement-title h2 { margin: 0 0 4px; }
.license-requirement-title p { margin: 0; color: #526873; line-height: 1.45; }
.license-requirement-facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.license-requirement-facts article { padding: 11px; display: grid; gap: 4px; border: 1px solid #d9e5ea; border-radius: 9px; background: #f7fafc; }
.license-requirement-facts small { color: var(--muted); font-weight: 800; text-transform: uppercase; }
.license-special-route { padding: 12px; border-left: 4px solid #d39a11; border-radius: 8px; background: #fff8df; }
.license-special-route h3, .license-special-route p { margin: 0; }
.license-special-route p { margin-top: 5px; line-height: 1.5; }
.license-check-list { margin: 0; padding: 0; display: grid; gap: 7px; list-style: none; }
.license-check-list li { display: grid; grid-template-columns: 24px minmax(0,1fr); gap: 8px; align-items: start; }
.license-check-list li span { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--success); font-weight: 900; }
.license-source-list { display: flex; flex-wrap: wrap; gap: 8px; }
.legal-auto-settings,
.legal-training-catalog { margin: 12px; }
.lesson-config-card .lesson-color-tools > input,
.lesson-config-card .lesson-color-tools > .preset-palette,
.lesson-config-card .lesson-color-tools > .rgb-fields,
.lesson-config-card td:nth-child(3) { display: none; }
.lesson-config-card.colors-open .lesson-color-tools > input,
.lesson-config-card.colors-open .lesson-color-tools > .preset-palette,
.lesson-config-card.colors-open .lesson-color-tools > .rgb-fields { display: block; }
.lesson-config-card.colors-open td:nth-child(3) { display: table-cell; }
.lesson-color-tools .preset-palette { margin-top: 7px; }
.rgb-fields { margin-top: 7px; display: grid; grid-template-columns: repeat(3, minmax(54px, 1fr)); gap: 5px; }
.rgb-fields label { display: flex; align-items: center; gap: 4px; color: var(--muted); font-size: 10px; }
.rgb-fields input { width: 100%; min-width: 0; padding: 4px; }
.lesson-color-toggle { min-height: 30px; padding: 4px 9px; }

@media (max-width: 900px) {
  :root { --sidebar: 72px; }
  .brand-card { height: 72px; padding: 8px; }
  .brand-card img { width: 55px; height: 50px; }
  .brand-card span, .nav-item > :not(span), .sidebar-footer > .normal-sidebar-state > div { display: none; }
  .nav-list { padding: 8px; }
  .nav-item { min-height: 44px; justify-content: center; padding: 8px; font-size: 0; }
  .nav-item span { width: auto; font-size: 19px; }
  .sidebar-footer { justify-content: center; padding: 10px 8px; }
  .normal-sidebar-state { justify-content: center; }
  .topbar { height: auto; min-height: 68px; padding: 9px 12px; gap: 8px; flex-wrap: wrap; }
  .topbar-actions { width: 100%; gap: 7px; flex-wrap: wrap; }
  .course-switch { flex: 1; }
  .course-switch select { min-width: 0; width: 100%; }
  main { padding: 12px; }
  .people-search { min-width: min(100%, 260px); }
  .metrics, .dashboard-grid, .two-column { grid-template-columns: 1fr; }
  .modal { width: calc(100vw - 18px); max-height: calc(100vh - 18px); }
  .modal.modal-day-planner { width: calc(100vw - 12px); }
  .day-plan-layout { grid-template-columns: 1fr; overflow: auto; }
  .day-plan-heading { display: grid; grid-template-columns: 1fr 1fr; }
  .day-plan-heading > div:first-child { grid-column: 1 / -1; }
  .day-plan-draft-item { grid-template-columns: 22px 22px minmax(0,1fr) auto; }
  .day-plan-item-actions { grid-column: auto; justify-content: flex-end; }
  .appointment-pin-controls { grid-template-columns: 1fr 1fr; }
  .document-pdf-frame { width: 100%; height: 58vh; }
  .license-document-meta { grid-template-columns: 1fr 1fr; }
  .license-holdings-heading { display: none; }
  .license-holding-row { grid-template-columns: 1fr 1fr; }
  .license-holding-class { grid-column: 1 / -1; }
  .target-license-grid { grid-template-columns: 1fr; }
  .license-requirement-facts { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  :root { --sidebar: 58px; }
  .topbar h1 { font-size: 17px; }
  .language-switch, .sync-state { display: none; }
  .day-plan-heading, .appointment-pin-controls, .form-grid { grid-template-columns: 1fr; }
  .target-license-row { grid-template-columns: minmax(0,1fr) auto; }
  .license-requirement-button { grid-column: 1 / -1; }
  .license-eligibility-results article > header { grid-template-columns: 42px minmax(0,1fr); }
  .license-eligibility-results article > header .button { grid-column: 1 / -1; }
  .day-plan-heading > * { grid-column: 1; }
  .day-plan-draft-item { min-height: 96px; grid-template-columns: 22px 22px minmax(0,1fr); }
  .day-plan-item-actions { grid-column: 1 / -1; }
  .day-plan-favorite-dock > div:last-child { overflow-x: auto; }
  .backup-group > summary { grid-template-columns: minmax(0,1fr) auto; }
  .backup-group > summary small { grid-column: 1 / -1; }
  .backup-group article { align-items: stretch; flex-direction: column; }
  .student-history-item { grid-template-columns: 10px minmax(0,1fr); }
  .student-history-item .table-actions { grid-column: 2; }
}

/* V2.28 – geführte, unverbindliche Kurs-Vorplanung */
.modal.modal-course-draft {
  width: min(1480px, calc(100vw - 28px));
  max-width: none;
  height: min(920px, calc(100vh - 28px));
  max-height: none;
  padding: 0;
  overflow: hidden;
}
.course-draft-wizard {
  height: 100%;
  min-height: 0;
  display: grid;
  grid-template-rows: auto auto auto minmax(0, 1fr);
  background: #f3f7fa;
}
.course-draft-header {
  padding: 15px 18px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  color: #fff;
  background: linear-gradient(118deg, #003f54 0%, #075f78 70%, #087fa4 100%);
}
.course-draft-header h2 { margin: 6px 0 3px; color: #fff; font-size: 22px; }
.course-draft-header p { margin: 0; color: rgba(255,255,255,.82); }
.course-draft-header .status-pill { color: #5a4200; background: #ffe39a; }
.course-draft-header .icon-button { color: #fff; border-color: rgba(255,255,255,.35); background: rgba(255,255,255,.1); }
.course-draft-variantbar {
  min-height: 56px;
  padding: 8px 16px;
  display: flex;
  align-items: end;
  gap: 8px;
  border-bottom: 1px solid #dbe5eb;
  background: #fff;
}
.course-draft-variantbar label {
  min-width: 220px;
  display: grid;
  gap: 3px;
  color: #526873;
  font-size: 9px;
  font-weight: 850;
  text-transform: uppercase;
}
.course-draft-variantbar select,
.draft-form-grid input,
.draft-group-config input,
.draft-group-config select,
.draft-participant-assignment select {
  width: 100%;
  min-width: 0;
  padding: 8px 9px;
  border: 1px solid var(--line);
  border-radius: 7px;
  color: var(--text);
  background: #fff;
}
.draft-save-state { align-self: center; color: #247456; font-size: 11px; font-weight: 800; white-space: nowrap; }
.draft-save-state.dirty { color: #a56a00; }
.draft-comparison > header {
  margin-bottom: 14px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 14px;
}
.draft-comparison > header span { color: #0787ad; font-size: 10px; font-weight: 900; text-transform: uppercase; }
.draft-comparison > header h3 { margin: 3px 0; color: #123d54; }
.draft-comparison > header p { max-width: 850px; margin: 0; color: var(--muted); }
.draft-comparison-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.draft-comparison-card {
  padding: 14px;
  display: grid;
  gap: 12px;
  border: 1px solid #d8e5eb;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 4px 15px rgba(23, 56, 74, .06);
}
.draft-comparison-card.recommended { border-color: #188b67; box-shadow: 0 0 0 2px rgba(24, 139, 103, .12); }
.draft-comparison-card > header h3 { margin: 6px 0 2px; color: #123d54; }
.draft-comparison-card > header p { margin: 0; color: var(--muted); }
.draft-comparison-metrics { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 6px; }
.draft-comparison-metrics span { padding: 8px; display: grid; gap: 3px; border-radius: 8px; background: #f1f6f8; }
.draft-comparison-metrics small { color: var(--muted); font-size: 9px; }
.draft-comparison-metrics b { color: #173d52; font-size: 12px; }
.draft-comparison-groups { display: grid; gap: 7px; }
.draft-comparison-groups > section { padding: 9px 10px; border-left: 4px solid #08a4df; border-radius: 7px; background: #f7fafb; }
.draft-comparison-groups section > header,
.draft-comparison-groups section > footer,
.draft-comparison-groups details div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; }
.draft-comparison-groups section p { margin: 6px 0; color: #405965; font-size: 11px; }
.draft-comparison-groups section footer { color: var(--muted); font-size: 10px; }
.draft-comparison-groups details { margin-top: 7px; font-size: 10px; }
.draft-comparison-groups details div { padding: 3px 0; border-top: 1px solid #e4ecef; }
.draft-comparison-limits { color: #536d79; }
@media (max-width: 1050px) {
  .draft-comparison-grid { grid-template-columns: 1fr; }
  .draft-comparison-metrics { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
.course-draft-steps {
  padding: 9px 16px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  border-bottom: 1px solid #dbe5eb;
  background: #f9fbfc;
}
.course-draft-steps button {
  min-width: 0;
  padding: 8px 10px;
  display: grid;
  grid-template-columns: 28px minmax(0,1fr);
  align-items: center;
  gap: 8px;
  color: #647782;
  text-align: left;
  border: 1px solid #dce6eb;
  border-radius: 9px;
  background: #fff;
}
.course-draft-steps button b {
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #9aabb4;
}
.course-draft-steps button span { overflow: hidden; font-size: 11px; font-weight: 850; text-overflow: ellipsis; white-space: nowrap; }
.course-draft-steps button.active { color: #113c55; border-color: #08a4df; background: #eaf8fd; box-shadow: 0 0 0 2px rgba(8,164,223,.1); }
.course-draft-steps button.active b { background: #08a4df; }
.course-draft-steps button.complete b { background: #188b67; }
#course-draft-content { min-height: 0; padding: 16px; overflow: auto; }
.draft-step-intro {
  margin-bottom: 14px;
  padding: 14px 16px;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  border: 1px solid #d9e6ec;
  border-radius: 11px;
  background: #fff;
}
.draft-step-intro > div:first-child > span { color: #08a4df; font-size: 9px; font-weight: 900; text-transform: uppercase; }
.draft-step-intro h3 { margin: 3px 0; color: #123d54; }
.draft-step-intro p { max-width: 840px; margin: 0; color: var(--muted); }
.draft-next-course {
  min-width: 230px;
  padding: 9px 11px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2px 9px;
  align-content: center;
  border-left: 4px solid #e2a52b;
  border-radius: 7px;
  background: #fff9e9;
}
.draft-next-course span, .draft-next-course small { grid-column: 1 / -1; color: var(--muted); font-size: 9px; }
.draft-next-course.neutral { border-left-color: #8ea2ae; background: #f4f7f9; }
.draft-form-grid { margin-bottom: 14px; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; }
.draft-form-grid label,
.draft-group-config label {
  display: grid;
  gap: 4px;
  color: #526873;
  font-size: 9px;
  font-weight: 850;
  text-transform: uppercase;
}
.draft-instructor-pool,
.draft-participant-assignment {
  overflow: hidden;
  border: 1px solid #d9e5eb;
  border-radius: 11px;
  background: #fff;
}
.draft-follow-up-courses {
  margin-bottom: 14px;
  overflow: hidden;
  border: 1px solid #d9e5eb;
  border-radius: 11px;
  background: #fff;
}
.draft-follow-up-courses > header {
  padding: 10px 13px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  border-bottom: 1px solid #e4ebef;
  background: #f8fafc;
}
.draft-follow-up-courses h3 { margin: 0; color: #143f56; }
.draft-follow-up-courses p { margin: 2px 0 0; color: var(--muted); font-size: 10px; }
.draft-follow-up-courses > header > span { padding: 5px 9px; color: #fff; border-radius: 999px; background: #3150a3; font-size: 9px; font-weight: 850; white-space: nowrap; }
.draft-follow-up-list { padding: 10px 12px; display: flex; flex-wrap: wrap; gap: 7px; }
.draft-follow-up-list > span { padding: 6px 8px; display: inline-flex; align-items: center; gap: 7px; border: 1px solid #cbdde6; border-radius: 8px; color: #123d54; background: #eef8fc; }
.draft-follow-up-list button { width: 20px; height: 20px; padding: 0; border: 0; border-radius: 50%; color: #a12838; background: #fff; cursor: pointer; }
.draft-follow-up-list > small { color: var(--muted); }
.draft-follow-up-add { padding: 0 12px 10px; display: flex; align-items: end; gap: 8px; }
.draft-follow-up-add label { display: grid; gap: 4px; color: #526873; font-size: 9px; font-weight: 850; text-transform: uppercase; }
.draft-follow-up-add input { min-height: 35px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 7px; }
.draft-follow-up-suggestions { padding: 8px 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; border-top: 1px solid #e7edf0; background: #fafcfd; }
.draft-follow-up-suggestions small { margin-right: 4px; color: var(--muted); }
.draft-follow-up-suggestions button { padding: 5px 8px; border: 1px solid #d5e2e8; border-radius: 7px; color: #3150a3; background: #fff; cursor: pointer; }
.draft-instructor-pool > header,
.draft-participant-assignment > header,
.draft-group-config-heading {
  padding: 11px 13px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid #e4ebef;
  background: #f8fafc;
}
.draft-instructor-pool h3,
.draft-participant-assignment h3,
.draft-group-config-heading h3 { margin: 0; color: #143f56; }
.draft-instructor-pool p,
.draft-group-config-heading p { margin: 2px 0 0; color: var(--muted); font-size: 10px; }
.draft-instructor-pool > header > span,
.draft-participant-assignment > header > span {
  padding: 5px 9px;
  color: #fff;
  border-radius: 999px;
  background: #3150a3;
  font-size: 9px;
  font-weight: 850;
  white-space: nowrap;
}
.draft-instructor-grid { padding: 10px; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 390px), 1fr)); gap: 8px; }
.draft-instructor-card {
  min-width: 0;
  padding: 9px;
  display: grid;
  grid-template-columns: auto 34px minmax(0,1fr) auto;
  gap: 8px;
  align-items: center;
  border: 1px solid #dfe7eb;
  border-radius: 9px;
  cursor: pointer;
  background: #fff;
}
.draft-instructor-card.selected { border-color: #08a4df; background: #eefaff; box-shadow: inset 4px 0 0 #08a4df; }
.draft-instructor-card input { margin: 0; }
.draft-instructor-card .instructor-avatar {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  color: #fff;
  border-radius: 9px;
  background: #075f78;
  font-size: 10px;
  font-weight: 900;
}
.draft-instructor-card > span:nth-child(3) { min-width: 0; display: grid; }
.draft-instructor-card strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.draft-instructor-card small { color: var(--muted); }
.draft-instructor-card > b { color: #3150a3; font-size: 9px; white-space: nowrap; }
.draft-course-capacity {
  margin-top: 7px;
  padding-top: 7px;
  display: grid;
  gap: 4px;
  border-top: 1px solid #dbe7ec;
}
.draft-course-capacity > span:first-child { color: #143f56; font-size: 9px; font-weight: 850; }
.draft-course-capacity > span:nth-child(2) { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 6px; }
.draft-course-capacity input { min-width: 0; width: 100%; padding: 6px 7px; border: 1px solid #b9ced8; border-radius: 7px; background: #fff; font-weight: 800; }
.draft-course-capacity input:disabled { color: #7c8c94; background: #eef2f4; }
.draft-course-capacity b { color: #3150a3; font-size: 9px; white-space: nowrap; }
.draft-course-capacity > .draft-instructor-setting-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  align-items: start;
  gap: 7px;
}
.draft-instructor-setting-row > label { min-width: 0; display: grid; gap: 3px; }
.draft-instructor-setting-row > label > small { color: #51636c; font-size: 8px; font-weight: 800; }
.draft-instructor-setting-row > label > span { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px; }
@media (max-width: 700px) {
  .draft-course-capacity > .draft-instructor-setting-row { grid-template-columns: 1fr; }
}
.draft-course-capacity-review { margin: 0 0 12px; padding: 10px 12px; border: 1px solid #b9decf; border-radius: 10px; background: #f2fbf7; }
.draft-course-capacity-review.warning { border-color: #efb3b8; background: #fff4f5; }
.draft-course-capacity-review > header { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.draft-course-capacity-review > header > span { color: #146c43; font-size: 10px; font-weight: 850; }
.draft-course-capacity-review.warning > header > span { color: #b32632; }
.draft-course-capacity-review > div { margin-top: 8px; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 7px; }
.draft-course-capacity-review > div > span { padding: 7px 8px; display: grid; gap: 2px; border: 1px solid #d9e7e1; border-radius: 8px; background: #fff; }
.draft-course-capacity-review > div b { color: #143f56; font-size: 11px; }
.draft-course-capacity-review > div small { color: var(--muted); }
.draft-fixed-schedule {
  margin-top: 12px;
  overflow: hidden;
  border: 1px solid #bfd9e5;
  border-radius: 11px;
  background: #fff;
}
.draft-fixed-schedule > header { padding: 11px 13px; border-bottom: 1px solid #dce8ed; background: #f1f9fc; }
.draft-fixed-schedule > header span { color: #087fa6; font-size: 9px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.draft-fixed-schedule > header h3 { margin: 2px 0; color: #143f56; }
.draft-fixed-schedule > header p { margin: 0; color: var(--muted); font-size: 10px; }
.draft-fixed-schedule > details { border-top: 1px solid #e4ecef; }
.draft-fixed-schedule > details:first-of-type { border-top: 0; }
.draft-fixed-schedule > details > summary {
  padding: 9px 12px;
  display: grid;
  grid-template-columns: 32px minmax(0,1fr) auto;
  align-items: center;
  gap: 9px;
  cursor: pointer;
  list-style: none;
  background: #fbfcfd;
}
.draft-fixed-schedule > details > summary::-webkit-details-marker { display: none; }
.draft-fixed-schedule > details > summary .instructor-avatar { width: 32px; height: 32px; display: grid; place-items: center; color: #fff; border-radius: 8px; background: #075f78; font-size: 9px; font-weight: 900; }
.draft-fixed-schedule > details > summary > span:nth-child(2) { min-width: 0; display: grid; }
.draft-fixed-schedule > details > summary strong { color: #143f56; }
.draft-fixed-schedule > details > summary small { color: var(--muted); }
.draft-fixed-schedule > details > summary > b { color: #a35f00; font-size: 10px; white-space: nowrap; }
.draft-fixed-days { max-height: 330px; padding: 9px; display: grid; gap: 7px; overflow: auto; border-top: 1px solid #e2eaee; background: #f8fafb; }
.draft-fixed-days > article { overflow: hidden; border: 1px solid #dce6ea; border-radius: 8px; background: #fff; }
.draft-fixed-days > article > header { padding: 6px 8px; display: flex; justify-content: space-between; gap: 10px; border-bottom: 1px solid #e7edef; background: #f7fafb; }
.draft-fixed-days > article > header strong { color: #173f55; }
.draft-fixed-days > article > header span { color: #a35f00; font-size: 9px; font-weight: 850; }
.draft-fixed-days > article > div { padding: 6px; display: grid; gap: 4px; }
.draft-fixed-entry { min-width: 0; padding: 5px 7px; display: grid; grid-template-columns: 78px minmax(0,1fr) auto; align-items: center; gap: 8px; border-left: 3px solid #08a4df; border-radius: 5px; background: #f1f9fc; }
.draft-fixed-entry.course_plan { border-left-color: #7b5bb5; background: #f6f2fb; }
.draft-fixed-entry.block { border-left-color: #8b99a1; background: #f1f3f4; }
.draft-fixed-entry > b { color: #143f56; font-variant-numeric: tabular-nums; }
.draft-fixed-entry > span { min-width: 0; display: grid; }
.draft-fixed-entry > span strong, .draft-fixed-entry > span small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.draft-fixed-entry > span small { color: var(--muted); }
.draft-fixed-entry > em { color: #52707e; font-size: 8px; font-style: normal; font-weight: 850; text-transform: uppercase; }
@media (max-width: 700px) {
  .draft-fixed-schedule > details > summary { grid-template-columns: 32px minmax(0,1fr); }
  .draft-fixed-schedule > details > summary > b { grid-column: 2; white-space: normal; }
  .draft-fixed-entry { grid-template-columns: 70px minmax(0,1fr); }
  .draft-fixed-entry > em { grid-column: 2; }
}
.draft-capacity-timeline {
  margin-bottom: 14px;
  overflow: hidden;
  border: 1px solid #cfe0e8;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(20,63,86,.06);
}
.draft-capacity-timeline > header {
  padding: 12px 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
  border-bottom: 1px solid #e1e9ed;
  background: linear-gradient(90deg, #eef9fd, #f8fbfd);
}
.draft-capacity-timeline > header > div:first-child > span { color: #0781a7; font-size: 9px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.draft-capacity-timeline > header h3 { margin: 2px 0; color: #143f56; }
.draft-capacity-timeline > header p { margin: 0; color: var(--muted); font-size: 10px; }
.draft-capacity-timeline > header > div:last-child { display: flex; align-items: center; gap: 7px; color: #3150a3; white-space: nowrap; }
.draft-capacity-timeline > header > div:last-child span { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.draft-capacity-axis { margin: 0 14px 0 244px; padding: 7px 0 5px; display: flex; justify-content: space-between; color: #607783; font-size: 9px; font-weight: 800; }
.draft-capacity-lanes { padding: 0 10px 10px; display: grid; gap: 6px; }
.draft-capacity-lane { min-width: 0; display: grid; grid-template-columns: 225px minmax(260px,1fr); align-items: stretch; border: 1px solid #e0e8ec; border-radius: 9px; background: #fbfcfd; }
.draft-capacity-lane > aside { min-width: 0; padding: 8px; display: grid; grid-template-columns: 32px minmax(0,1fr) auto; align-items: center; gap: 8px; border-right: 1px solid #e0e8ec; }
.draft-capacity-lane .instructor-avatar { width: 32px; height: 32px; display: grid; place-items: center; color: #fff; border-radius: 8px; background: #075f78; font-size: 9px; font-weight: 900; }
.draft-capacity-lane aside > div { min-width: 0; display: grid; }
.draft-capacity-lane aside strong { overflow: hidden; color: #143f56; text-overflow: ellipsis; white-space: nowrap; }
.draft-capacity-lane aside small { color: var(--muted); font-size: 9px; }
.draft-capacity-lane aside em { color: #8a5a00; font-size: 9px; font-style: normal; font-weight: 800; }
.draft-capacity-lane aside > b { color: #188b67; font-size: 9px; white-space: nowrap; }
.draft-capacity-track { min-height: 50px; position: relative; overflow: hidden; background: repeating-linear-gradient(90deg, transparent 0, transparent calc(12.5% - 1px), #e8eef1 calc(12.5% - 1px), #e8eef1 12.5%); }
.draft-capacity-segment { min-width: 26px; height: 32px; padding: 4px 7px; position: absolute; top: 8px; left: var(--segment-left); width: var(--segment-width); display: flex; align-items: center; gap: 5px; overflow: hidden; color: #fff; border-radius: 7px; background: var(--segment-color); box-shadow: 0 2px 7px rgba(22,52,72,.18); }
.draft-capacity-segment b { font-size: 10px; }
.draft-capacity-segment small { overflow: hidden; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.draft-capacity-empty { height: 100%; display: grid; place-items: center; color: #84959e; font-size: 9px; }
.draft-group-live-forecast { margin: 8px; overflow: hidden; border: 1px solid #cce6db; border-left: 4px solid #188b67; border-radius: 8px; background: #f5fbf8; }
.draft-group-live-forecast.warning { border-color: #ecd79d; border-left-color: #d79a15; background: #fffaf0; }
.draft-group-students { padding: 7px 9px; display: grid; gap: 2px; border-bottom: 1px solid rgba(100,130,145,.14); }
.draft-group-students small, .draft-group-forecast-values small { color: #6a7f89; font-size: 8px; font-weight: 850; text-transform: uppercase; }
.draft-group-students strong { color: #173f55; font-size: 10px; line-height: 1.35; }
.draft-group-forecast-values { padding: 7px 9px; display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 7px; }
.draft-group-forecast-values span { min-width: 0; display: grid; gap: 2px; }
.draft-group-forecast-values b { overflow: hidden; color: #173f55; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.draft-group-live-forecast .forecast-note { padding: 0 9px 8px; display: block; color: #43816b; font-size: 8px; }
.draft-group-config-heading { margin-top: 2px; border: 1px solid #d9e5eb; border-radius: 11px 11px 0 0; }
.draft-group-config-heading .table-actions { flex-wrap: wrap; }
.draft-group-config-grid {
  margin-bottom: 14px;
  padding: 10px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(255px, 1fr));
  gap: 10px;
  border: 1px solid #d9e5eb;
  border-top: 0;
  border-radius: 0 0 11px 11px;
  background: #edf3f6;
}
.draft-group-collapsible {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #d8e2e7;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(22,55,71,.05);
}
.draft-group-collapsible.capacity-warning { border-color: #e7c66d; }
.draft-group-collapsible > summary,
.draft-preview-collapsible > summary {
  padding: 9px 10px;
  display: grid;
  grid-template-columns: 10px minmax(72px,.7fr) minmax(100px,.8fr) minmax(180px,1.4fr) auto;
  align-items: center;
  gap: 9px;
  color: #173f55;
  cursor: pointer;
  list-style: none;
  background: #f8fafc;
}
.draft-group-collapsible > summary::-webkit-details-marker,
.draft-preview-collapsible > summary::-webkit-details-marker { display: none; }
.draft-group-collapsible > summary::after,
.draft-preview-collapsible > summary::after { content: "▾"; justify-self: end; color: #607783; font-size: 13px; }
.draft-group-collapsible:not([open]) > summary::after,
.draft-preview-collapsible:not([open]) > summary::after { content: "▸"; }
.draft-group-collapsible > summary .draft-group-dot,
.draft-preview-collapsible > summary .draft-group-dot { height: 28px; }
.draft-group-collapsible > summary span:not(.draft-group-dot),
.draft-preview-collapsible > summary span:not(.draft-group-dot) { color: var(--muted); font-size: 10px; }
.draft-group-collapsible > summary b,
.draft-preview-collapsible > summary b { color: #173f55; }
.draft-group-collapsible > .draft-group-config { border: 0; border-top: 1px solid #e5ecef; border-radius: 0; box-shadow: none; }
.draft-group-config {
  overflow: hidden;
  border: 1px solid #d8e2e7;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(22,55,71,.05);
}
.draft-group-config > header {
  padding: 9px;
  display: grid;
  grid-template-columns: 11px minmax(86px,1fr) 78px auto;
  align-items: end;
  gap: 8px;
  border-bottom: 1px solid #e5ecef;
}
.draft-group-dot { width: 10px; height: 32px; display: inline-block; border-radius: 999px; background: var(--draft-group-color); }
.draft-group-config > header input[type="color"] { min-height: 34px; padding: 3px; }
.draft-group-numbers { padding: 9px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.draft-group-instructors { padding: 0 9px 9px; display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
.draft-group-instructors > strong { grid-column: 1 / -1; color: #526873; font-size: 9px; text-transform: uppercase; }
.draft-group-instructors label { padding: 6px; display: flex; align-items: center; gap: 6px; border: 1px solid #e2e9ed; border-radius: 7px; text-transform: none; }
.draft-group-config > footer { padding: 8px 10px; display: flex; justify-content: flex-end; align-items: baseline; gap: 4px; border-top: 1px solid #e5ecef; background: #f8fafc; }
.draft-group-config > footer strong { color: var(--draft-group-color); font-size: 17px; }
.draft-participant-assignment small { display: block; color: var(--muted); }
.draft-participant-assignment .table-scroll { max-height: 340px; }
.draft-participant-assignment td:first-child strong { color: #2f459f; }
.draft-empty-preview,
.draft-commit-complete {
  min-height: 420px;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 8px;
  text-align: center;
}
.draft-empty-preview .metric-icon,
.draft-commit-complete .metric-icon {
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  color: #fff;
  border-radius: 18px;
  background: linear-gradient(135deg, #2f459f, #08a4df);
  font-size: 28px;
}
.draft-empty-preview p,
.draft-commit-complete p { max-width: 620px; margin: 0 0 8px; color: var(--muted); }
.draft-result-banner {
  margin-bottom: 12px;
  padding: 13px 15px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  border: 1px solid #bee4d5;
  border-left: 5px solid #188b67;
  border-radius: 10px;
  background: #f0faf6;
}
.draft-result-banner.warning { border-color: #ecd79d; border-left-color: #d79a15; background: #fff9ea; }
.draft-result-banner h3 { margin: 5px 0 2px; }
.draft-result-banner p { margin: 0; color: var(--muted); }
.draft-preview-groups { display: grid; grid-template-columns: repeat(auto-fit, minmax(420px,1fr)); gap: 10px; }
.draft-preview-collapsible { overflow: hidden; border: 1px solid #dbe4e9; border-radius: 11px; background: #fff; }
.draft-preview-collapsible > .draft-preview-group { border: 0; border-top: 1px solid #e5ecef; border-radius: 0; }
.draft-preview-group { overflow: hidden; border: 1px solid #dbe4e9; border-radius: 11px; background: #fff; }
.draft-preview-group > header {
  padding: 10px 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid #e5ecef;
}
.draft-preview-group > header > div { display: grid; grid-template-columns: 10px 1fr; gap: 2px 8px; align-items: center; }
.draft-preview-group > header .draft-group-dot { grid-row: 1 / span 2; height: 34px; }
.draft-preview-group > header small { color: var(--muted); }
.draft-preview-range { padding: 10px 14px; display: grid; grid-template-columns: auto 1fr auto 1fr auto; align-items: center; gap: 8px; background: #f8fafc; }
.draft-preview-range span { display: grid; font-size: 10px; }
.draft-preview-range b { color: var(--muted); font-size: 8px; text-transform: uppercase; }
.draft-preview-range i { height: 2px; background: var(--draft-group-color); opacity: .35; }
.draft-preview-group details { padding: 8px 12px; border-top: 1px solid #e4eaee; color: #8f5f00; background: #fff9ea; }
.draft-preview-group details ul { max-height: 150px; overflow: auto; }
.draft-commit-review {
  overflow: hidden;
  border: 1px solid #bfe0d3;
  border-radius: 12px;
  background: #fff;
}
.draft-commit-review.warning { border-color: #ecd79d; }
.draft-commit-review > header { padding: 13px 15px; border-bottom: 1px solid #e1e9ed; background: #f1faf6; }
.draft-commit-review.warning > header { background: #fff9ea; }
.draft-commit-review h3 { margin: 5px 0 2px; }
.draft-commit-review p { margin: 0; color: var(--muted); }
.draft-commit-review > div { display: grid; }
.draft-commit-review article {
  padding: 10px 14px;
  display: grid;
  grid-template-columns: 10px minmax(260px,1fr) minmax(180px,.7fr) auto;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid #e8edf0;
}
.draft-commit-review article .draft-group-dot { height: 36px; }
.draft-commit-review article > div { min-width: 0; display: grid; }
.draft-commit-review article small { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.draft-commit-confirm {
  margin-top: 12px;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid #afc9d5;
  border-radius: 10px;
  cursor: pointer;
  background: #f4f9fb;
}
.draft-commit-confirm > span { display: grid; }
.draft-commit-confirm small { color: var(--muted); }
.draft-step-actions {
  position: sticky;
  bottom: -16px;
  z-index: 4;
  margin: 16px -16px -16px;
  padding: 10px 16px;
  display: flex;
  align-items: center;
  gap: 8px;
  border-top: 1px solid #d8e3e8;
  background: rgba(255,255,255,.96);
  box-shadow: 0 -8px 18px rgba(22,55,71,.06);
  backdrop-filter: blur(8px);
}

@media (max-width: 1000px) {
  .modal.modal-course-draft { width: calc(100vw - 16px); height: calc(100vh - 16px); }
  .course-draft-variantbar { align-items: stretch; flex-wrap: wrap; }
  .course-draft-variantbar label { flex: 1 1 220px; }
  .course-draft-variantbar .spacer { display: none; }
  .draft-save-state { width: 100%; }
  .course-draft-steps button { grid-template-columns: 25px minmax(0,1fr); padding: 7px; }
  .course-draft-steps button b { width: 24px; height: 24px; }
  .draft-step-intro { flex-direction: column; }
  .draft-next-course { width: 100%; }
  .draft-form-grid { grid-template-columns: 1fr 1fr; }
  .draft-form-grid label:first-child { grid-column: 1 / -1; }
  .draft-preview-groups { grid-template-columns: 1fr; }
  .draft-capacity-lane { grid-template-columns: 200px minmax(240px,1fr); }
  .draft-capacity-axis { margin-left: 218px; }
  .draft-group-forecast-values { grid-template-columns: repeat(3, minmax(0,1fr)); }
}

@media (max-width: 660px) {
  .course-draft-header { padding: 11px 12px; }
  .course-draft-header h2 { font-size: 18px; }
  .course-draft-header p { display: none; }
  .course-draft-variantbar { max-height: none; overflow: visible; }
  .course-draft-variantbar .button { flex: 1 1 145px; }
  .course-draft-steps { padding: 7px; gap: 4px; }
  .course-draft-steps button { display: block; text-align: center; }
  .course-draft-steps button b { margin: auto; }
  .course-draft-steps button span { display: none; }
  #course-draft-content { padding: 10px; }
  .draft-form-grid,
  .draft-group-numbers { grid-template-columns: 1fr; }
  .draft-group-config-grid { padding: 7px; grid-template-columns: 1fr; }
  .draft-group-instructors { grid-template-columns: 1fr; }
  .draft-capacity-timeline > header { align-items: flex-start; flex-direction: column; }
  .draft-capacity-axis { display: none; }
  .draft-capacity-lanes { overflow-x: auto; }
  .draft-capacity-lane { min-width: 650px; }
  .draft-group-forecast-values { grid-template-columns: 1fr 1fr; }
  .draft-preview-range { grid-template-columns: 1fr; }
  .draft-preview-range i { width: 2px; height: 14px; margin-left: 7px; }
  .draft-commit-review article { grid-template-columns: 10px minmax(0,1fr); }
  .draft-commit-review article > b,
  .draft-commit-review article > span { grid-column: 2; }
  .draft-step-actions { bottom: -10px; margin: 12px -10px -10px; padding: 9px 10px; flex-wrap: wrap; }
}

/* Qualität & Qualitätsmanagement */
.azav-page { gap: 16px; }
.azav-tabs {
  position: sticky; top: 0; z-index: 18; display: flex; flex-wrap: wrap; gap: 6px;
  padding: 9px; border: 1px solid #d8dfec; border-radius: 14px;
  background: rgba(255,255,255,.96); box-shadow: 0 8px 24px rgba(24,43,84,.08);
}
.azav-tabs :is(button,a) {
  border: 0; border-radius: 10px; padding: 10px 14px; color: #33415c;
  background: #f0f4fa; font-weight: 750; cursor: pointer;
}
.azav-tabs :is(button,a):hover { background: #e4ebf7; }
.azav-tabs :is(button,a).active { color: #fff; background: #2f459f; box-shadow: 0 4px 12px rgba(47,69,159,.24); }
.azav-hero {
  display: flex; align-items: center; justify-content: space-between; gap: 28px; overflow: hidden;
  background: radial-gradient(circle at 92% 12%, rgba(8,164,223,.2), transparent 31%), linear-gradient(135deg,#fff 0%,#f4f7ff 100%);
}
.azav-hero h2 { margin: 10px 0 6px; font-size: clamp(1.35rem,2.4vw,2.05rem); color: #1d2f71; }
.azav-hero p { max-width: 860px; margin: 0; color: #526079; line-height: 1.55; }
.azav-score {
  flex: 0 0 156px; min-height: 126px; display: grid; place-content: center; text-align: center;
  border: 12px solid #dfe7fa; border-top-color: #08a4df; border-right-color: #2f459f;
  border-radius: 50%; background: #fff;
}
.azav-score strong { font-size: 1.8rem; color: #2f459f; }
.azav-score span { max-width: 92px; color: #5c6780; font-size: .74rem; }
.azav-dashboard-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 16px; }
.azav-check-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.azav-check {
  display: grid; grid-template-columns: 30px 1fr; gap: 1px 9px; align-items: center;
  padding: 11px; border: 1px solid #dae1ec; border-radius: 11px; background: #fafbfd;
}
.azav-check > span { grid-row: span 2; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; font-weight: 900; }
.azav-check.ok > span { color: #fff; background: #188b67; }
.azav-check.open > span { color: #815600; background: #ffe4a3; }
.azav-check small { color: #6b7485; }
.azav-warning-list { display: grid; gap: 8px; }
.azav-warning {
  display: grid; grid-template-columns: 30px minmax(0,1fr) auto; align-items: center; gap: 10px;
  padding: 10px; border: 1px solid #f0d7ad; border-left: 4px solid #e2a52b;
  border-radius: 10px; background: #fffaf0;
}
.azav-warning.error { border-color: #f1c4c9; border-left-color: #d94b5b; background: #fff6f7; }
.azav-warning > span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: #fff; background: #e2a52b; font-weight: 900; }
.azav-warning.error > span { background: #d94b5b; }
.azav-warning div { display: grid; gap: 2px; }
.azav-warning small { color: #68738a; }
.azav-legal-note { border-left: 5px solid #08a4df; background: #f3fbff; }
.azav-legal-note p { margin: 5px 0 0; color: #53627a; }
.azav-course-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(280px,1fr)); gap: 12px; }
.azav-course-card {
  display: grid; gap: 12px; padding: 15px; border: 1px solid #dce3ef;
  border-radius: 13px; background: linear-gradient(160deg,#fff,#f6f8fc);
}
.azav-course-card h3 { margin: 7px 0 2px; color: #233a8c; font-size: 1.18rem; }
.azav-course-card p { margin: 0; color: #626d82; }
.azav-course-facts { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; }
.azav-course-facts span { padding: 8px; border-radius: 8px; background: #edf2fa; font-size: .76rem; color: #5b667b; }
.azav-course-facts strong { display: block; color: #22366f; font-size: 1rem; }
.azav-documentation-lists { align-items: start; }
.azav-qm-list { display: grid; gap: 9px; }
.azav-qm-area { border: 1px solid #dce3ef; border-radius: 12px; overflow: clip; background: #fff; }
.azav-qm-area summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 15px; cursor: pointer; background: #f4f7fb; }
.azav-qm-area summary span { display: grid; gap: 3px; }
.azav-qm-area summary strong { color: #253b86; }
.azav-qm-area summary small { color: #6c778d; }
.azav-qm-area summary b { white-space: nowrap; color: #4c5a72; }
.azav-record-list { display: grid; gap: 7px; padding: 10px; }
.azav-record-list article { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px; border: 1px solid #e1e6ef; border-radius: 9px; }
.azav-record-list article > div { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 4px 9px; }
.azav-record-list article small { grid-column: 2; color: #717b8c; }
.azav-add-inside { justify-self: start; }
.azav-certificate-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(250px,1fr)); gap: 10px; }
.azav-certificate { position: relative; display: grid; gap: 8px; padding: 15px; border: 1px solid #dbe3f1; border-top: 5px solid #2f459f; border-radius: 12px; background: #fff; }
.azav-certificate h3 { margin: 0; color: #263c8f; }
.azav-certificate p { margin: 0; color: #5d687c; }
.azav-certificate .button { justify-self: start; }
.azav-document-facts { display: flex; flex-wrap: wrap; gap: 9px; margin: 12px 0; }
.azav-document-facts span { padding: 10px 14px; border-radius: 10px; color: #536079; background: #edf2fa; }
.azav-document-facts strong { margin-right: 4px; color: #2f459f; font-size: 1.25rem; }
.azav-audit-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(145px,1fr)); gap: 9px; }
.azav-audit-grid article { display: grid; place-items: center; gap: 4px; min-height: 88px; padding: 12px; border: 1px solid #dce3ef; border-radius: 11px; background: #f7f9fc; text-align: center; }
.azav-audit-grid strong { color: #2f459f; font-size: 1.4rem; }
.azav-audit-grid span { color: #677287; font-size: .78rem; }
.azav-attendance-editor { max-height: min(56vh,620px); }
.azav-attendance-editor select,.azav-attendance-editor input { min-width: 110px; }
.azav-instructor-checks { display: flex; flex-wrap: wrap; gap: 8px 14px; padding: 10px; border: 1px solid #d9dfeb; border-radius: 9px; background: #fafbfd; }
.azav-migration-hero { border-left: 6px solid #188b67; }
.azav-migration-hero .button { flex: 0 0 auto; }
.azav-migration-metrics {
  display: grid; grid-template-columns: repeat(6,minmax(120px,1fr)); gap: 10px;
}
.azav-migration-metrics .metric { min-width: 0; }
.azav-migration-status {
  display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px;
  border-color: #cfe0d9; background: linear-gradient(135deg,#f7fcfa,#f5f8ff);
}
.azav-migration-status > div {
  display: grid; gap: 4px; padding: 12px; border: 1px solid #dce6e1; border-radius: 10px; background: #fff;
}
.azav-migration-status strong { color: #1d396f; }
.azav-migration-status span { color: #657187; font-size: .85rem; }
.azav-migration-sections { display: grid; gap: 9px; }
.azav-migration-table { padding: 10px; }
.azav-migration-table .table-scroll { max-height: min(52vh,540px); }
.azav-migration-table td small { display: block; margin-top: 3px; color: #6e788c; }
.azav-refresh-dialog { display: grid; gap: 14px; }
.azav-refresh-dialog h2,.azav-refresh-dialog p { margin: 0; }
.azav-refresh-scope { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 9px 12px; align-items: center; padding: 13px; border-radius: 11px; background: #f4f7fb; }
.azav-refresh-dialog li { margin: 8px 0; }
.azav-document-studio-hero {
  display: flex; align-items: center; justify-content: space-between; gap: 22px;
  border-left: 6px solid #08a4df;
  background: radial-gradient(circle at 91% 18%,rgba(8,164,223,.18),transparent 28%),linear-gradient(135deg,#fff,#f4f7ff);
}
.azav-document-studio-hero h2 { margin: 8px 0 5px; color: #1e357f; font-size: clamp(1.35rem,2.2vw,1.9rem); }
.azav-document-studio-hero p { max-width: 850px; margin: 0; color: #56627a; line-height: 1.5; }
.azav-document-studio-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.azav-document-metrics { display: grid; grid-template-columns: repeat(4,minmax(150px,1fr)); gap: 10px; }
.azav-template-library .card-header { align-items: end; }
.azav-template-library .field-inline { min-width: min(360px,100%); }
.azav-template-groups { display: grid; gap: 10px; }
.azav-template-group { border: 1px solid #dbe3ef; border-radius: 13px; overflow: clip; background: #fff; }
.azav-template-group > summary {
  display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 10px;
  padding: 13px 15px; cursor: pointer; list-style: none; background: linear-gradient(135deg,#f6f8fd,#edf3fb);
}
.azav-template-group > summary::-webkit-details-marker { display: none; }
.azav-template-group > summary::after { content: "›"; grid-column: 4; color: #66738a; font-size: 1.35rem; transform: rotate(90deg); transition: transform .16s ease; }
.azav-template-group:not([open]) > summary::after { transform: rotate(0); }
.azav-template-group > summary span:nth-child(2) { display: grid; gap: 2px; }
.azav-template-group > summary strong { color: #203878; }
.azav-template-group > summary small { color: #68748a; }
.azav-template-group > summary b { white-space: nowrap; color: #516079; font-size: .8rem; }
.azav-template-group-icon {
  display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px;
  color: #fff; background: #2f459f; font-size: 1rem; font-weight: 900;
}
.azav-template-group-icon.vbz { background: #0a9fd7; }
.azav-template-card-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(285px,1fr)); gap: 10px; padding: 11px; }
.azav-template-card {
  min-width: 0; display: grid; gap: 13px; padding: 13px;
  border: 1px solid #dce3ef; border-top: 4px solid #2f459f; border-radius: 11px;
  background: linear-gradient(160deg,#fff,#f8faff); box-shadow: 0 4px 12px rgba(30,53,115,.05);
}
.azav-template-card.custom { border-top-color: #08a4df; }
.azav-template-card-head { display: grid; grid-template-columns: 34px minmax(0,1fr); align-items: center; gap: 9px; }
.azav-template-card-head > span {
  display: grid; place-items: center; width: 32px; height: 38px; border: 1px solid #cfd9eb; border-radius: 6px;
  color: #2f459f; background: #fff; font-weight: 900;
}
.azav-template-card-head > div { min-width: 0; display: grid; gap: 3px; }
.azav-template-card-head strong { overflow: hidden; color: #1d2f6c; text-overflow: ellipsis; }
.azav-template-card-head small { color: #6d778a; }
.azav-template-card-facts { display: grid; grid-template-columns: repeat(3,1fr); gap: 5px; }
.azav-template-card-facts span { padding: 7px; border-radius: 8px; color: #687286; background: #eef3fa; font-size: .69rem; text-align: center; }
.azav-template-card-facts b { display: block; margin-bottom: 2px; color: #243a82; font-size: .83rem; }
.azav-template-card-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.azav-archive-panel { padding: 0; overflow: clip; }
.azav-archive-panel > summary { display: flex; justify-content: space-between; gap: 15px; padding: 15px; cursor: pointer; background: #f4f6fa; }
.azav-archive-panel > summary span { color: #697489; }
.azav-archive-content { padding: 15px; }
.modal-azav-document { width: min(1540px,calc(100vw - 24px)); max-width: 1540px; height: min(940px,calc(100vh - 24px)); padding: 0; overflow: hidden; }
.azav-document-create-form { height: 100%; display: grid; grid-template-rows: auto minmax(0,1fr); }
.azav-document-create-title {
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  padding: 14px 18px; border-bottom: 1px solid #d9e0eb; background: #fff;
}
.azav-document-create-title h2 { margin: 0 0 3px; color: #1e347a; }
.azav-document-create-title p { margin: 0; color: #657086; }
.azav-document-create-layout { min-height: 0; display: grid; grid-template-columns: minmax(440px,42%) minmax(0,1fr); background: #eef2f7; }
.azav-document-create-controls { min-height: 0; overflow: auto; padding: 13px; border-right: 1px solid #d3dbe8; background: #fff; }
.azav-document-create-selection { display: grid; gap: 10px; padding-bottom: 13px; border-bottom: 1px solid #dde3ed; }
.azav-source-note { display: grid; grid-template-columns: 30px 1fr; align-items: center; gap: 8px; padding: 10px; border-radius: 10px; color: #285b4b; background: #eef9f5; }
.azav-source-note > span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: #fff; background: #188b67; font-weight: 900; }
.azav-source-note div { display: grid; gap: 2px; }
.azav-source-note small { color: #5e746c; }
.azav-document-field-title { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin: 14px 0 8px; }
.azav-document-field-title h3,.azav-document-field-title p { margin: 0; }
.azav-document-field-title p { color: #68748a; font-size: .78rem; }
.azav-document-field-title > span { padding: 5px 8px; border-radius: 999px; color: #2f459f; background: #edf1ff; font-size: .72rem; font-weight: 800; }
.azav-document-fields { display: grid; gap: 7px; }
.azav-document-field {
  display: grid; grid-template-columns: minmax(0,42%) minmax(0,1fr); align-items: center; gap: 9px;
  padding: 8px; border: 1px solid #dee4ee; border-radius: 9px; background: #fafbfd;
}
.azav-document-field > span { min-width: 0; display: grid; gap: 2px; }
.azav-document-field strong { overflow: hidden; color: #253a7e; font-size: .8rem; text-overflow: ellipsis; }
.azav-document-field small { overflow: hidden; color: #748095; font-size: .66rem; text-overflow: ellipsis; }
.azav-document-field input,.azav-document-field select { width: 100%; min-width: 0; }
.azav-document-original-preview { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto minmax(0,1fr); padding: 12px; }
.azav-document-original-preview .pdf-preview-toolbar { border-radius: 10px 10px 0 0; background: #fff; }
.azav-document-original-preview iframe { width: 100%; height: 100%; border: 1px solid #cfd7e3; border-radius: 0 0 10px 10px; background: #72777d; }

@media (max-width: 1050px) {
  .azav-dashboard-grid,.azav-documentation-lists { grid-template-columns: 1fr; }
  .azav-migration-metrics { grid-template-columns: repeat(3,minmax(120px,1fr)); }
  .azav-document-metrics { grid-template-columns: repeat(2,minmax(145px,1fr)); }
  .azav-document-create-layout { grid-template-columns: minmax(360px,48%) minmax(0,1fr); }
}
@media (max-width: 700px) {
  .azav-hero { align-items: flex-start; }
  .azav-score { display: none; }
  .azav-tabs { position: static; }
  .azav-tabs :is(button,a) { flex: 1 1 145px; }
  .azav-check-grid,.azav-course-facts { grid-template-columns: 1fr; }
  .azav-warning { grid-template-columns: 30px 1fr; }
  .azav-warning .button { grid-column: 2; justify-self: start; }
  .azav-migration-metrics,.azav-migration-status { grid-template-columns: 1fr 1fr; }
  .azav-migration-hero { flex-direction: column; }
  .azav-document-studio-hero,.azav-document-create-title { align-items: stretch; flex-direction: column; }
  .azav-document-studio-actions { justify-content: flex-start; }
  .azav-template-library .card-header { align-items: stretch; }
  .azav-template-card-grid { grid-template-columns: 1fr; }
  .modal-azav-document { overflow: auto; }
  .azav-document-create-form { height: auto; }
  .azav-document-create-layout { grid-template-columns: 1fr; }
  .azav-document-create-controls { overflow: visible; border-right: 0; }
  .azav-document-original-preview { min-height: 620px; }
}
@media (max-width: 480px) {
  .azav-migration-metrics,.azav-migration-status { grid-template-columns: 1fr; }
}

/* Urlaubsplanung 2.33 */
.vacation-page { --vacation-name-width:190px; --vacation-balance-width:88px; --vacation-day-width:31px; }
.vacation-toolbar,.vacation-year-nav,.vacation-legend,.vacation-metrics { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.vacation-year-nav select { min-width:96px; font-weight:800; text-align:center; }
.vacation-window-nav { justify-content:center; gap:6px; padding:7px 10px; }
.vacation-window-nav > strong { min-width:190px; color:#20345c; text-align:center; font-size:.82rem; }
.vacation-window-nav label { display:grid; gap:2px; color:#647188; font-size:.62rem; font-weight:800; text-transform:uppercase; }
.vacation-window-nav select { min-width:110px; }
.vacation-virtual-nav { justify-content:center; margin:0; padding:7px 10px; border-bottom:1px solid #d7e1ee; background:#f6f9fd; }
.vacation-virtual-nav > strong { min-width:130px; color:#20345c; text-align:center; font-size:.78rem; }
.vacation-virtual-nav label { display:flex; align-items:center; gap:6px; margin-left:auto; color:#647188; font-size:.68rem; font-weight:800; text-transform:uppercase; }
.vacation-virtual-nav select { min-width:72px; padding-block:5px; }
.vacation-metrics { display:grid; grid-template-columns:repeat(5,minmax(125px,1fr)); }
.vacation-metrics > span { padding:12px 16px; border:1px solid #d8e1ef; border-radius:12px; background:linear-gradient(135deg,#fff,#edf4ff); color:#526179; }
.vacation-metrics strong { display:block; color:#17233b; font-size:1.35rem; }
.vacation-legend-card { padding:0; overflow:hidden; }
.vacation-legend-card > summary { min-height:48px; padding:10px 14px; display:flex; align-items:center; gap:10px; list-style:none; cursor:pointer; }
.vacation-legend-card > summary::-webkit-details-marker { display:none; }
.vacation-legend-card > summary::before { content:"▸"; color:var(--brand-blue); font-weight:900; }
.vacation-legend-card[open] > summary::before { content:"▾"; }
.vacation-legend-card > summary span { display:flex; gap:4px; overflow:hidden; }
.vacation-legend-card > summary span b { min-width:28px; padding:4px 5px; border-radius:5px; background:var(--vacation-bg); color:var(--vacation-fg); text-align:center; font-size:.65rem; }
.vacation-legend-card > summary small { margin-left:auto; color:var(--muted); }
.vacation-legend-card .card-header { align-items:flex-start; padding:12px 14px 0; border-top:1px solid var(--line); }
.vacation-legend-card .vacation-legend { padding:12px 14px 14px; }
.vacation-legend-chip { --vacation-bg:#2f459f; --vacation-fg:#fff; display:grid; grid-template-columns:auto 1fr; align-items:center; gap:1px 8px; min-width:150px; padding:7px 10px; border:1px solid color-mix(in srgb,var(--vacation-bg) 55%,#d5deeb); border-radius:10px; background:color-mix(in srgb,var(--vacation-bg) 12%,#fff); text-align:left; cursor:pointer; }
.vacation-legend-chip b,.vacation-type-preview b { grid-row:1/span 2; display:grid; place-items:center; min-width:36px; min-height:36px; border-radius:8px; background:var(--vacation-bg); color:var(--vacation-fg); }
.vacation-legend-chip span { color:#17233b; font-weight:750; }
.vacation-legend-chip small { color:#637088; }
.vacation-legend-chip.archived { opacity:.5; filter:grayscale(.4); }
.vacation-tabs { position:sticky; top:0; z-index:15; }
.vacation-timeline-card { padding:0; overflow:hidden; }
.vacation-view-tabs { top:0; z-index:18; gap:6px; overflow-x:auto; flex-wrap:nowrap; scrollbar-width:thin; }
.vacation-view-tabs .settings-tab { min-width:max-content; gap:6px; }
.vacation-view-tabs .settings-tab > span { font-size:1rem; line-height:1; }
.vacation-year-matrix { padding:0; overflow:hidden; }
.vacation-year-matrix > header,.vacation-team-intro,.vacation-team-card > header,.vacation-person-year-head { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 16px; }
.vacation-year-matrix > header { border-bottom:1px solid #d7e1ee; background:linear-gradient(135deg,#fff,#eef5ff); }
.vacation-year-matrix h2,.vacation-team-intro h2,.vacation-team-card h2,.vacation-person-year-head h2 { margin:0 0 3px; color:#172b50; }
.vacation-year-matrix p,.vacation-team-intro p,.vacation-team-card p,.vacation-person-year-head p { margin:0; color:#637088; }
.vacation-year-matrix > header > span { padding:6px 10px; border-radius:999px; background:#dfeaff; color:#244784; font-size:.72rem; font-weight:850; }
.vacation-year-scroll { overflow:auto; max-height:calc(100vh - 390px); }
.vacation-year-head,.vacation-year-person-row { display:grid; grid-template-columns:minmax(180px,1.5fr) repeat(12,minmax(70px,1fr)) 64px; min-width:1100px; }
.vacation-year-head { position:sticky; top:0; z-index:6; background:#e9f0f9; }
.vacation-year-head > b { display:grid; place-items:center; min-height:34px; padding:5px; border-right:1px solid #d0dae7; border-bottom:1px solid #c3d0e1; color:#40506b; font-size:.68rem; text-transform:uppercase; }
.vacation-year-head > b:first-child { position:sticky; left:0; z-index:7; justify-items:start; padding-left:14px; background:#e9f0f9; }
.vacation-year-person-row { border-left:5px solid var(--category-color,#78849a); }
.vacation-year-person-row:hover { background:#f6f9fe; }
.vacation-year-person { position:sticky; left:0; z-index:4; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:4px; min-height:52px; padding:5px 7px; border-right:1px solid #d6dfeb; border-bottom:1px solid #e0e7f0; background:#fff; }
.vacation-year-person > button:first-child { min-width:0; padding:4px 6px; border:0; background:transparent; text-align:left; cursor:pointer; }
.vacation-year-person strong,.vacation-year-person small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.vacation-year-person strong { color:#183a76; }
.vacation-year-person small { color:#748198; font-size:.64rem; }
.vacation-year-month-cell { min-width:0; min-height:52px; padding:4px; display:flex; align-content:center; justify-content:center; gap:3px; flex-wrap:wrap; border:0; border-right:1px solid #e2e7ef; border-bottom:1px solid #e2e7ef; background:#fff; cursor:pointer; }
.vacation-year-month-cell:hover { background:#edf5ff; outline:2px solid #159ed1; outline-offset:-2px; }
.vacation-year-month-cell > span { display:grid; grid-template-columns:auto auto; align-items:center; overflow:hidden; border-radius:5px; background:var(--vacation-bg); color:var(--vacation-fg); }
.vacation-year-month-cell > span b { padding:3px 4px; font-size:.59rem; }
.vacation-year-month-cell > span small { padding:3px 4px; background:rgba(255,255,255,.22); font-size:.55rem; }
.vacation-year-month-cell em { color:#9aa5b5; font-size:.62rem; font-style:normal; }
.vacation-year-balance { display:grid; place-items:center; align-content:center; border-bottom:1px solid #e2e7ef; background:#f7f9fc; color:#173c7e; }
.vacation-year-balance small { color:#7b8799; font-size:.55rem; text-transform:uppercase; }
.vacation-team-intro { border:1px solid #cfe0f3; border-radius:12px; background:linear-gradient(135deg,#f8fbff,#eaf4ff); }
.vacation-team-list { display:grid; gap:12px; }
.vacation-team-card { padding:0; overflow:hidden; border-top:5px solid var(--category-color,#78849a); }
.vacation-team-card > header { border-bottom:1px solid #dce4ef; }
.vacation-team-card > header > span { color:#324c75; font-weight:850; }
.vacation-team-months { display:grid; grid-template-columns:repeat(6,minmax(150px,1fr)); gap:8px; padding:12px; }
.vacation-team-month { padding:9px; border:1px solid #dce4ee; border-radius:9px; background:#fff; }
.vacation-team-month header { display:flex; align-items:center; justify-content:space-between; gap:6px; }
.vacation-team-month header strong { color:#243b65; font-size:.72rem; }
.vacation-team-month header b { color:#287346; font-size:.66rem; }
.vacation-team-month.warning header b { color:#9b6800; }
.vacation-team-month.danger header b { color:#b3283e; }
.vacation-team-month > div { height:7px; margin:8px 0; overflow:hidden; border-radius:999px; background:#edf1f6; }
.vacation-team-month > div i { display:block; height:100%; border-radius:inherit; background:#45ac70; }
.vacation-team-month.warning > div i { background:#efae31; }
.vacation-team-month.danger > div i { background:#db5367; }
.vacation-team-month p { display:grid; gap:2px; font-size:.61rem; }
.vacation-person-year-head { border-left:6px solid var(--brand-blue); background:linear-gradient(135deg,#fff,#edf5ff); }
.vacation-person-year-head label { display:flex; align-items:center; gap:8px; margin-bottom:8px; color:#5b6880; font-size:.66rem; font-weight:850; text-transform:uppercase; }
.vacation-person-year-head select { min-width:280px; text-transform:none; }
.vacation-person-metrics { display:grid; grid-template-columns:repeat(6,minmax(115px,1fr)); gap:8px; }
.vacation-person-metrics > span { padding:11px 12px; border:1px solid #d8e2ee; border-radius:10px; background:#fff; color:#67738a; font-size:.67rem; font-weight:750; }
.vacation-person-metrics strong { display:block; color:#183765; font-size:1.25rem; }
/* Shared colors keep holiday context distinct from amber leave requests. */
.vacation-page { --vacation-holiday-bg:#eee8ff; --vacation-holiday-fg:#56318a; --vacation-holiday-border:#9975c9; --vacation-school-bg:#d8edf2; --vacation-school-fg:#13566a; --vacation-school-border:#6c9fab; --vacation-school-pattern:var(--vacation-school-bg); }
.vacation-school-holiday-note { display:flex; align-items:center; gap:12px; padding:10px 14px; border:1px solid var(--vacation-school-border); border-radius:10px; background:var(--vacation-school-pattern); }
.vacation-school-holiday-note > span { display:grid; place-items:center; width:34px; height:34px; border-radius:8px; background:var(--vacation-school-bg); color:var(--vacation-school-fg); font-weight:900; }
.vacation-school-holiday-note p { margin:2px 0 0; color:var(--vacation-school-fg); font-size:.7rem; }
.vacation-school-holiday-note a { margin-left:auto; color:#234e91; font-size:.7rem; font-weight:850; }
.vacation-person-year-grid { display:grid; grid-template-columns:repeat(3,minmax(260px,1fr)); gap:12px; }
.vacation-person-month { overflow:hidden; border:1px solid #d7e1ee; border-radius:11px; background:#fff; box-shadow:0 4px 14px rgba(37,58,91,.05); }
.vacation-person-month > header { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 10px; border-bottom:1px solid #dfe6ef; background:#f5f8fc; }
.vacation-person-month h3 { margin:0; color:#203c6d; text-transform:capitalize; }
.vacation-person-month header small { color:#7a8597; font-size:.61rem; }
.vacation-person-weekdays,.vacation-person-days { display:grid; grid-template-columns:repeat(7,1fr); }
.vacation-person-weekdays b { padding:5px 2px; color:#7a8597; text-align:center; font-size:.57rem; }
.vacation-person-weekdays :is(.vacation-saturday,.vacation-sunday) { color:#304f75; background:#e1eaf6; font-weight:900; }
.vacation-person-week-number { grid-column:1 / -1; min-height:19px; padding:3px 6px; border-top:2px solid #9fb4cd; background:#f0f4f9; color:#4c6380; font-size:9px; line-height:1.3; }
.vacation-person-week-number b { font-weight:800; }
.vacation-person-day { position:relative; min-height:42px; padding:4px; border:0; border-top:1px solid #edf0f5; border-right:1px solid #edf0f5; background:#fff; color:#34435d; text-align:left; cursor:pointer; }
.vacation-person-day b,.vacation-person-day small { display:block; }
.vacation-person-day b { font-size:.68rem; }
.vacation-person-day small { margin-top:2px; font-size:.56rem; font-weight:900; }
.vacation-person-day.empty { cursor:default; background:#f7f8fa; }
.vacation-person-day.weekend { background:#e1eaf6; }
.vacation-person-day:is(.vacation-saturday,.vacation-sunday) > b { font-weight:900; }

.vacation-page :is(.vacation-person-day,.vacation-cell,.vacation-day-head).holiday:not(.filled) { background:var(--vacation-holiday-bg); color:var(--vacation-holiday-fg); }
.vacation-page :is(.vacation-person-day,.vacation-cell,.vacation-day-head).school-holiday:not(.filled):not(.holiday):not(.weekend):not(.vacation-request-pending):not(.vacation-request-rejected) { background:var(--vacation-school-bg); color:var(--vacation-school-fg); }
.vacation-person-day.filled { background:var(--vacation-bg); color:var(--vacation-fg); }
.vacation-cell.school-holiday::after { content:"SF"; position:absolute; top:1px; right:1px; padding:1px; border:1px solid var(--vacation-school-border); border-radius:3px; background:var(--vacation-school-bg); color:var(--vacation-school-fg); font-size:clamp(6px,calc(var(--vacation-day-width,24px) * .36),9px); line-height:1; font-weight:900; pointer-events:none; }
.vacation-person-day:hover { outline:2px solid #159ed1; outline-offset:-2px; z-index:2; }
.vacation-person-day.selected { outline:3px solid #153e9f; outline-offset:-3px; }
.vacation-school-marker { color:var(--vacation-school-fg); font-size:.48rem; font-weight:900; }
.vacation-scroll { overflow:auto; max-height:calc(100vh - 330px); background:#fff; }
/* Leave room for the measured fixed controls, even after the page itself has
   reached its scroll limit. The calendar retains its own inner scrolling. */
.vacation-page > .vacation-timeline-card > .vacation-scroll { max-height:max(0px,calc(100dvh - var(--vacation-sticky-bottom,300px) - 36px)); min-height:0; }
.vacation-category { min-width:max-content; border-bottom:2px solid #bac9dd; }
.vacation-category > summary { position:sticky; left:0; z-index:10; box-sizing:border-box; display:flex; align-items:center; gap:8px; width:calc(var(--vacation-name-width) + var(--vacation-balance-width)); min-height:38px; padding:8px 12px; border-right:1px solid #c8d4e4; border-left:5px solid var(--category-color,#2f459f); background:#e9f0f9; color:#1d3562; cursor:pointer; }
.vacation-category > summary strong { flex:1; }
.vacation-category > summary span { color:#6d7890; font-size:.75rem; }
.vacation-grid { display:grid; grid-template-columns:var(--vacation-name-width) var(--vacation-balance-width) repeat(var(--vacation-days),var(--vacation-day-width)); min-width:max-content; }
.vacation-month-row,.vacation-week-row,.vacation-day-row { position:sticky; top:0; z-index:8; }
.vacation-week-row { top:30px; }
.vacation-day-row { top:48px; }
.vacation-week-row > .vacation-person-spacer,.vacation-week-row > .vacation-balance-spacer { height:18px; font-size:9px; }
.vacation-week { display:grid; place-items:center; height:18px; min-width:0; overflow:hidden; border-right:2px solid #9fb4cd; border-bottom:1px solid #d4deea; background:#f0f4f9; color:#4c6380; font-size:9px; line-height:1; font-weight:800; white-space:nowrap; }
.vacation-page :is(.vacation-day-head,.vacation-cell,.vacation-person-day).vacation-week-start:not(.vacation-request-pending):not(.vacation-request-rejected):not(.vacation-request-cancellation) { border-left:2px solid #94abc7; }
.vacation-page .vacation-day-head:is(.vacation-saturday,.vacation-sunday):not(.holiday) { background:#dde7f4; }
.vacation-page .vacation-day-head:is(.vacation-saturday,.vacation-sunday) :is(b,small) { font-weight:900; }
.vacation-person-spacer,.vacation-balance-spacer,.vacation-person-name,.vacation-balance { position:sticky; z-index:7; border:0; border-right:1px solid #d9e1ec; border-bottom:1px solid #e1e7f0; background:#fff; }
.vacation-person-spacer,.vacation-person-name { left:0; }
.vacation-balance-spacer,.vacation-balance { left:var(--vacation-name-width); }
.vacation-person-spacer,.vacation-balance-spacer { z-index:12; display:grid; place-items:center; background:#f5f8fc; color:#66738a; font-size:.7rem; font-weight:800; }
.vacation-month { display:grid; grid-column:auto; place-items:center; height:30px; border-right:1px solid #c6d2e2; border-bottom:1px solid #c6d2e2; background:#eaf0f8; color:#263a62; font-size:.74rem; font-weight:800; text-transform:uppercase; }
.vacation-day-head { display:grid; place-items:center; align-content:center; height:42px; border-right:1px solid #dce3ec; border-bottom:1px solid #cbd6e4; background:#f7f9fc; }
.vacation-day-head b { font-size:.72rem; }
.vacation-day-head small { color:#78849a; font-size:.58rem; }
.vacation-day-head i { max-width:calc(var(--vacation-day-width) - 3px); overflow:hidden; color:#a1253c; text-overflow:ellipsis; white-space:nowrap; font-size:.43rem; font-style:normal; font-weight:900; line-height:1; }
.vacation-day-head.weekend:not(.holiday),.vacation-cell.weekend:not(.holiday) { background:#e1eaf6; }
.vacation-day-head.holiday i { color:var(--vacation-holiday-fg); }
.vacation-day-head.school-holiday:not(.holiday) i { box-sizing:border-box; padding:1px; border:1px solid var(--vacation-school-border); border-radius:2px; background:var(--vacation-school-bg); color:var(--vacation-school-fg); font-size:clamp(6px,calc(var(--vacation-day-width,24px) * .36),9px); line-height:1; }
.vacation-person-name,.vacation-balance { min-height:35px; padding:4px 8px; text-align:left; cursor:pointer; }
.vacation-person-row:nth-of-type(12n + 1) { --vacation-row-bg:#f1f6ff; --vacation-row-accent:#5b8def; }
.vacation-person-row:nth-of-type(12n + 2) { --vacation-row-bg:#effaf5; --vacation-row-accent:#38a879; }
.vacation-person-row:nth-of-type(12n + 3) { --vacation-row-bg:#fff6e8; --vacation-row-accent:#e59a28; }
.vacation-person-row:nth-of-type(12n + 4) { --vacation-row-bg:#fff0f3; --vacation-row-accent:#dc6078; }
.vacation-person-row:nth-of-type(12n + 5) { --vacation-row-bg:#f5f0ff; --vacation-row-accent:#8c68d8; }
.vacation-person-row:nth-of-type(12n + 6) { --vacation-row-bg:#edf9fb; --vacation-row-accent:#35a4b9; }
.vacation-person-row:nth-of-type(12n + 7) { --vacation-row-bg:#f8f7e9; --vacation-row-accent:#9a972d; }
.vacation-person-row:nth-of-type(12n + 8) { --vacation-row-bg:#fff1e9; --vacation-row-accent:#dd7843; }
.vacation-person-row:nth-of-type(12n + 9) { --vacation-row-bg:#eef5f2; --vacation-row-accent:#4e9176; }
.vacation-person-row:nth-of-type(12n + 10) { --vacation-row-bg:#f2f3ff; --vacation-row-accent:#6672d9; }
.vacation-person-row:nth-of-type(12n + 11) { --vacation-row-bg:#fff2fa; --vacation-row-accent:#c65f9f; }
.vacation-person-row:nth-of-type(12n + 12) { --vacation-row-bg:#eff8ed; --vacation-row-accent:#65a957; }
.vacation-person-row .vacation-person-name,
.vacation-person-row .vacation-balance {
  background:var(--vacation-row-bg,#fff);
}
.vacation-person-row .vacation-person-name {
  box-shadow:inset 5px 0 0 var(--vacation-row-accent,#9aa8bc);
}
.vacation-person-row .vacation-cell:not(.filled):not(.weekend):not(.holiday):not(.school-holiday):not(.vacation-request-pending):not(.vacation-request-rejected) {
  background:color-mix(in srgb,var(--vacation-row-bg,#fff) 82%,#fff);
}
.vacation-person-row .vacation-cell.weekend:not(.filled):not(.holiday):not(.vacation-request-pending):not(.vacation-request-rejected) {
  background:#e2eaf4;
}

.vacation-person-row:hover .vacation-balance,
.vacation-person-row:hover .vacation-cell:not(.filled) {
  box-shadow:inset 0 2px 0 var(--vacation-row-accent,#9aa8bc),inset 0 -2px 0 var(--vacation-row-accent,#9aa8bc);
}
.vacation-person-row:hover .vacation-person-name {
  box-shadow:inset 5px 0 0 var(--vacation-row-accent,#9aa8bc),inset 0 2px 0 var(--vacation-row-accent,#9aa8bc),inset 0 -2px 0 var(--vacation-row-accent,#9aa8bc);
}

.entity-history-dialog { display:grid; gap:18px; min-width:min(680px,calc(100vw - 40px)); }
.entity-history-dialog > header { padding:18px; border:1px solid #c8d9ee; border-radius:14px; background:linear-gradient(135deg,#f5f9ff,#eaf3ff); }
.entity-history-dialog > header h2 { margin:4px 0 8px; color:#182c50; }
.entity-history-dialog > header p { margin:0; color:#53637b; line-height:1.5; }
.entity-history-facts { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px; }
.entity-history-facts > span { display:grid; gap:3px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.entity-history-facts small { color:var(--muted); font-weight:800; text-transform:uppercase; }
.entity-history-list { display:grid; gap:8px; max-height:340px; overflow:auto; }
.entity-history-item { display:grid; grid-template-columns:10px 1fr; gap:8px; padding:7px 10px; border:1px solid #d9e2ee; border-radius:8px; background:#fff; }
.entity-history-item .audit-dot { width:8px; height:8px; margin-top:6px; border-radius:50%; background:var(--brand-blue); box-shadow:0 0 0 3px #e4edff; }
.entity-history-item > div { display:grid; gap:2px; }
.entity-history-item strong { color:#173e89; font-size:.8rem; }
.entity-history-item small { color:var(--muted); }
.entity-history-item > div > div { display:flex; gap:6px 14px; flex-wrap:wrap; margin-top:4px; color:#58677e; font-size:.75rem; }
.entity-history-item .entity-history-meta { display:flex; gap:9px; flex-wrap:wrap; margin:0; }
.entity-history-meta span { display:inline; padding:0; color:#52637c; font-size:.7rem; font-weight:700; }
.entity-history-meta b { margin-right:3px; color:#72829a; font-size:.64rem; letter-spacing:.03em; text-transform:uppercase; }
.entity-history-item .entity-history-details { margin-top:1px; color:#52637c; font-size:.7rem; }
.entity-history-table-wrap { max-height:360px; overflow:auto; border:1px solid #d9e2ee; border-radius:8px; }
.entity-history-table { min-width:760px; margin:0; border:0; font-size:.84rem; }
.entity-history-table th { position:sticky; top:0; background:#eaf1fb; color:#52637c; font-size:.66rem; text-transform:uppercase; letter-spacing:.04em; z-index:1; }
.entity-history-table td { vertical-align:middle; padding:7px 10px; }
.entity-history-table td:first-child { min-width:155px; white-space:nowrap; color:#334d77; font-weight:800; font-variant-numeric:tabular-nums; }
.entity-history-table td:nth-child(2) { min-width:145px; font-weight:900; color:#173e89; white-space:nowrap; }
.entity-history-table td:nth-child(3) { min-width:78px; color:#52637c; white-space:nowrap; }
.entity-history-table td:last-child { width:100%; }
.entity-history-table td:last-child strong { display:block; color:#142f69; font-size:.92rem; line-height:1.25; }
.entity-history-table td:last-child small { display:block; margin-top:2px; color:#52637c; font-size:.76rem; }
.entity-history-item .entity-history-appointment { display:grid; gap:5px; padding:8px 10px; border-radius:8px; background:#f4f8ff; color:#344768; line-height:1.45; }
.entity-history-item .entity-history-appointment span { overflow-wrap:anywhere; }
.vacation-person-name strong,.vacation-person-name small,.vacation-balance strong,.vacation-balance small { display:block; }
.vacation-person-name strong { overflow:hidden; color:#19356c; text-overflow:ellipsis; white-space:nowrap; }
.vacation-person-name small,.vacation-balance small { color:#7a8598; font-size:.63rem; }
.vacation-balance { text-align:center; }
.vacation-cell { --vacation-bg:transparent; --vacation-fg:#17233b; min-height:35px; padding:0; border:0; border-right:1px solid #e1e6ee; border-bottom:1px solid #e1e6ee; background:transparent; color:#17233b; font-size:.61rem; font-weight:900; cursor:pointer; }
.vacation-cell:hover { outline:2px solid #08a4df; outline-offset:-2px; }
.vacation-cell.filled { background:var(--vacation-bg); color:var(--vacation-fg); }
.vacation-cell.selected {
  position:relative;
  z-index:3;
  outline:3px solid #153e9f;
  outline-offset:-3px;
  box-shadow:inset 0 0 0 1px #fff,0 0 0 1px rgba(21,62,159,.18);
}
.vacation-cell.selected::after {
  content:"✓";
  position:absolute;
  right:1px;
  bottom:0;
  display:grid;
  place-items:center;
  width:12px;
  height:12px;
  border-radius:50%;
  background:#153e9f;
  color:#fff;
  font-size:.52rem;
  line-height:1;
}
.vacation-holiday-marker { display:grid; place-items:center; width:100%; height:100%; color:var(--vacation-holiday-fg); font-size:.53rem; font-weight:900; }
.vacation-code-dot { --vacation-bg:#2f459f; display:inline-grid; place-items:center; min-width:34px; min-height:28px; padding:0 5px; border-radius:7px; background:var(--vacation-bg); color:#fff; font-weight:900; }
.vacation-type-preview { --vacation-bg:#2f459f; --vacation-fg:#fff; display:grid; grid-template-columns:auto 1fr; align-items:center; gap:10px; margin:0 0 16px; padding:12px; border-radius:12px; background:color-mix(in srgb,var(--vacation-bg) 12%,#fff); color:#17233b; font-weight:800; }
.vacation-palette { display:flex; gap:5px; flex-wrap:wrap; margin-top:6px; }
.vacation-palette button { width:25px; height:25px; border:2px solid #fff; border-radius:6px; box-shadow:0 0 0 1px #c8d2e1; cursor:pointer; }
.vacation-search-field { min-width:180px; }
.vacation-people-picker { position:relative; z-index:20; }
.vacation-people-picker > summary { min-height:36px; padding:7px 10px; list-style:none; border:1px solid var(--line); border-radius:7px; background:#fff; color:var(--brand-blue); cursor:pointer; font-size:.72rem; font-weight:800; }
.vacation-people-picker > div { width:310px; max-height:360px; padding:8px; position:absolute; top:calc(100% + 4px); overflow:auto; display:grid; gap:3px; border:1px solid var(--line); border-radius:8px; background:#fff; box-shadow:0 12px 30px rgba(24,32,51,.18); }
.vacation-people-picker label { padding:6px; display:grid; grid-template-columns:auto 1fr auto; gap:7px; align-items:center; border-radius:6px; }
.vacation-people-picker label:hover { background:#f2f6fb; }
.vacation-people-picker label small { color:var(--muted); font-size:.62rem; }
.vacation-selected-context { display:flex; align-items:center; gap:9px; min-height:40px; padding:8px 12px; border:1px solid #bed5f4; border-radius:9px; background:#f2f7ff; color:#183865; }
.vacation-selected-context > span { color:var(--muted); font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.vacation-selected-context > strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.82rem; }
.vacation-selected-context > .link-button { margin-left:auto; flex:0 0 auto; }
.vacation-zoom { display:flex; align-items:center; gap:4px; color:var(--muted); font-size:.68rem; font-weight:800; }
.vacation-zoom button { width:28px; height:28px; padding:0; border:1px solid var(--line); border-radius:6px; color:var(--brand-blue); background:#fff; cursor:pointer; font-weight:900; }
.vacation-zoom input { width:90px; }
.vacation-multi-actions { display:flex; align-items:center; gap:6px; flex-wrap:wrap; padding:4px; border:1px solid #d8e2f0; border-radius:10px; background:#f4f7fc; }
.vacation-multi-actions .button { min-height:34px; }
.vacation-bulk-people { display:flex; flex-wrap:wrap; gap:6px; margin:-4px 0 14px; }
.vacation-bulk-people span { padding:5px 8px; border-radius:999px; background:#edf3fc; color:#294b89; font-size:.7rem; font-weight:800; }
.vacation-entry-types { min-width:0; margin:0; padding:0; border:0; }
.vacation-entry-types > legend { margin-bottom:7px; color:#49566d; font-size:.72rem; font-weight:800; }
.vacation-entry-types > div { max-height:260px; overflow:auto; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; padding:2px; }
.vacation-entry-type-choice { --vacation-bg:#2f459f; --vacation-fg:#fff; position:relative; min-width:0; cursor:pointer; }
.vacation-entry-type-choice > input { position:absolute; opacity:0; pointer-events:none; }
.vacation-entry-type-choice > span { min-height:58px; display:grid; grid-template-columns:44px minmax(0,1fr); grid-template-rows:auto auto; align-items:center; gap:1px 8px; padding:7px; border:2px solid color-mix(in srgb,var(--vacation-bg) 38%,#d7e0ed); border-radius:10px; background:color-mix(in srgb,var(--vacation-bg) 10%,#fff); }
.vacation-entry-type-choice b { grid-row:1 / 3; min-height:40px; display:grid; place-items:center; border-radius:7px; color:var(--vacation-fg); background:var(--vacation-bg); }
.vacation-entry-type-choice strong { overflow:hidden; color:#17233b; text-overflow:ellipsis; white-space:nowrap; font-size:.73rem; }
.vacation-entry-type-choice small { color:#65728a; font-size:.61rem; }
.vacation-entry-type-choice input:checked + span { border-color:var(--vacation-bg); box-shadow:0 0 0 3px color-mix(in srgb,var(--vacation-bg) 18%,transparent); }
.vacation-list-layout { display:grid; gap:12px; }
.vacation-capture-card { display:grid; grid-template-columns:minmax(240px,1.2fr) minmax(300px,1fr) auto; align-items:center; gap:18px; background:linear-gradient(135deg,#fff,#f0f6ff); }
.vacation-capture-card > div:first-child,.vacation-entry-list-card > .card-header > div { display:flex; align-items:flex-start; gap:10px; }
.vacation-capture-card h2,.vacation-entry-list-card h2 { margin:0 0 3px; }
.vacation-capture-card p,.vacation-entry-list-card p { margin:0; color:var(--muted); }
.vacation-step-number { width:30px; height:30px; display:grid; place-items:center; flex:0 0 auto; border-radius:50%; color:#fff; background:var(--brand-blue); font-weight:900; }
.vacation-capture-flow { display:flex; align-items:center; justify-content:center; gap:7px; }
.vacation-capture-flow span { display:flex; align-items:center; gap:5px; color:#40506b; font-size:.7rem; font-weight:800; white-space:nowrap; }
.vacation-capture-flow b { width:20px; height:20px; display:grid; place-items:center; border-radius:50%; color:var(--brand-blue); background:#e0e9fb; font-size:.63rem; }
.vacation-capture-flow i { color:#8b98ac; font-style:normal; }
.vacation-entry-months { display:grid; gap:7px; }
.vacation-entry-month { overflow:hidden; border:1px solid #d8e1ed; border-radius:10px; background:#fff; }
.vacation-entry-month > summary { min-height:45px; padding:8px 12px; display:flex; align-items:center; gap:12px; list-style:none; color:#203965; background:#f5f8fc; cursor:pointer; }
.vacation-entry-month > summary::-webkit-details-marker { display:none; }
.vacation-entry-month > summary::before { content:"▸"; font-weight:900; }
.vacation-entry-month[open] > summary::before { content:"▾"; }
.vacation-entry-month > summary span { display:grid; gap:1px; }
.vacation-entry-month > summary small { color:var(--muted); font-size:.65rem; }
.vacation-entry-month > summary b { margin-left:auto; color:#53617a; font-size:.69rem; }
.vacation-entry-month .data-table { margin:0; }
.vacation-calendar-layout { display:grid; gap:12px; }
.vacation-holiday-card .card-header { align-items:flex-start; }
.holiday-selected-states,.holiday-state-badges { display:flex; flex-wrap:wrap; gap:5px; }
.holiday-selected-states > span { display:grid; grid-template-columns:auto auto; align-items:center; gap:5px; padding:5px 8px; border:1px solid #f1b5bf; border-radius:9px; color:#a1253c; background:#fff0f2; font-size:.67rem; font-weight:900; }
.holiday-selected-states small { color:#7c5260; font-size:.58rem; font-weight:700; }
.holiday-state-badges span { min-width:27px; padding:4px 6px; border-radius:6px; color:#fff; background:#b4233c; text-align:center; font-size:.62rem; font-weight:900; }
.holiday-calendar-date { display:grid; gap:1px; }
.holiday-calendar-date small { color:var(--muted); font-size:.62rem; }
.vacation-custom-calendar-card { display:grid; gap:12px; }
.vacation-tabs .settings-tab b { min-width:22px; height:22px; display:inline-grid; place-items:center; margin-left:5px; border-radius:999px; background:#e7edf9; color:#294386; font-size:.66rem; }
.vacation-tabs .settings-tab.active b { background:#fff; color:var(--brand-blue); }
.vacation-requests-card { overflow:hidden; }
.vacation-requests-card .card-header { align-items:flex-start; background:linear-gradient(135deg,#fff,#f2f6ff); }
.request-count-badge { min-width:76px; padding:8px 12px; border-radius:999px; color:#7f5110; background:#fff1c5; text-align:center; font-size:.72rem; font-weight:900; }
.vacation-request-table td { vertical-align:middle; }
.vacation-request-table td > small { display:block; margin-top:3px; color:var(--muted); font-size:.65rem; }
.vacation-request-type { display:inline-grid; place-items:center; min-width:32px; min-height:28px; margin-right:6px; border-radius:7px; color:#17233b; background:var(--request-color,#f4b400); font-size:.68rem; font-weight:900; }
.vacation-calendar-capture { border:1px solid #d4deeb; border-radius:10px; background:#f7f9fc; }
.vacation-calendar-capture > summary { padding:10px 12px; color:var(--brand-blue); cursor:pointer; font-weight:850; }
.vacation-calendar-capture > form { padding:0 12px 12px; }
.status-explanation { padding:10px; display:grid; gap:3px; border-radius:8px; background:#f2f6fb; }
.status-explanation span { color:var(--muted); font-size:.72rem; }
.deployment-security-note { min-width:240px; max-width:430px; padding:9px 11px; display:grid; gap:2px; border:1px solid #cbd8e8; border-radius:9px; background:#f5f8fc; }
.deployment-security-note strong { color:#243b68; font-size:.72rem; }
.deployment-security-note span { color:#647189; font-size:.65rem; line-height:1.35; }
.deployment-security-note.local,.deployment-security-note.secure { border-color:#b8dfcf; background:#edf8f3; }
.deployment-security-note.local strong,.deployment-security-note.secure strong { color:#146c43; }
.deployment-security-note.warning { border-color:#efc8a6; background:#fff6eb; }
.deployment-security-note.warning strong { color:#9b5314; }
[data-permission-area-panel][hidden] { display:none !important; }
@media (max-width:900px) {
  .vacation-metrics { grid-template-columns:repeat(2,minmax(130px,1fr)); }
  .vacation-page { --vacation-name-width:155px; --vacation-balance-width:72px; }
  .vacation-capture-card { grid-template-columns:1fr; }
  .vacation-capture-flow { justify-content:flex-start; flex-wrap:wrap; }
  .vacation-entry-types > div { grid-template-columns:1fr; }
}
/* Veröffentlichung und gemeinsamer Mehrbenutzerbetrieb */
.release-center {
  display: grid;
  gap: 16px;
}
.release-center[hidden] { display: none; }
.release-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 18px 20px;
  color: #fff;
  background: linear-gradient(135deg, #073e53 0%, #07546d 58%, #2f459f 100%);
  border: 0;
}
.release-hero h2 { margin: 4px 0 8px; color: #fff; }
.release-hero p { margin: 0; max-width: 900px; color: rgba(255,255,255,.82); }
.release-hero .eyebrow { color: #6dd8f4; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; font-size: 11px; }
.release-flow {
  display: grid;
  grid-template-columns: minmax(180px,1fr) auto minmax(220px,1.2fr) auto minmax(180px,1fr);
  align-items: stretch;
  gap: 10px;
}
.release-flow article { position: relative; display: grid; align-content: start; gap: 5px; min-height: 132px; padding: 16px 16px 16px 58px; text-align: left; }
.release-flow article > small { color: #64748b; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.release-flow article > strong { color: #10203b; }
.release-flow article > p { margin: 0; color: #667085; }
.release-step {
  position: absolute;
  left: 16px;
  top: 18px;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #2f459f;
  font-weight: 900;
}
.release-arrow { align-self: center; color: #2f459f; font-size: 28px; font-weight: 900; }
.release-layout { align-items: stretch; }
.release-data-status {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin-top: 16px;
  padding: 12px;
  border: 1px solid #dbe5ef;
  border-radius: 10px;
  background: #f8fafc;
}
.release-data-status div { min-width: 0; display: grid; gap: 3px; }
.release-data-status small { color: #667085; overflow-wrap: anywhere; }
.release-data-direction {
  padding: 12px;
  border: 1px solid #f0bd78;
  border-radius: 10px;
  background: #fff8ec;
}
.release-data-direction span { display: grid; gap: 3px; }
.release-data-direction small { color: #7d5b2a; line-height: 1.35; }
.release-refresh-development {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 12px;
  margin-top: 10px;
  padding: 12px;
  border: 1px solid #cbd8e8;
  border-radius: 10px;
  background: #f4f7fb;
}
.release-refresh-development > div { display: grid; gap: 3px; }
.release-refresh-development span { color: #667085; font-size: 12px; line-height: 1.4; }
.status-dot { width: 11px; height: 11px; margin-top: 4px; border-radius: 50%; flex: 0 0 auto; background: #e4a11b; box-shadow: 0 0 0 4px rgba(228,161,27,.14); }
.status-dot.ok { background: #188b67; box-shadow: 0 0 0 4px rgba(24,139,103,.14); }
.release-check-card { display: flex; flex-direction: column; }
.release-check-results { display: grid; gap: 8px; flex: 1; }
.release-result-summary { display: grid; gap: 3px; padding: 12px; border-radius: 9px; background: #ecf8f3; color: #146c43; }
.release-result-summary.danger { background: #fff0f1; color: #b42334; }
.release-result-summary span { font-size: 12px; }
.release-check {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 9px 10px;
  border: 1px solid #dbe5ef;
  border-radius: 8px;
}
.release-check > span { width: 23px; height: 23px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; color: #fff; background: #188b67; font-weight: 900; }
.release-check.danger > span { background: #d94b5b; }
.release-check div { display: grid; gap: 2px; }
.release-check small { color: #667085; overflow-wrap: anywhere; }
.release-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.release-publish-control { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; min-width: 0; }
.release-publish-control .hint { max-width: 440px; line-height: 1.35; }
.release-publish-control .button:disabled { opacity: .72; cursor: not-allowed; }
.release-progress { display: grid; gap: 7px; padding: 12px; border: 1px solid #b7cbed; border-radius: 10px; background: #f4f8ff; }
.release-progress-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.release-progress-heading strong { color: #163f80; }
.release-progress-heading span, .release-progress p { margin: 0; color: #556987; font-size: 12px; }
.release-progress-track { height: 10px; overflow: hidden; border-radius: 999px; background: #dce8f8; box-shadow: inset 0 1px 2px rgb(23 67 130 / 16%); }
.release-progress-track span { width: 0; height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg, #1468c8, #18a5d4); transition: width .7s ease; }
.release-progress.ok { border-color: #a9dcc9; background: #effaf5; }
.release-progress.ok .release-progress-track span { background: #1b9b70; }
.release-progress.danger { border-color: #efbcc4; background: #fff4f5; }
.release-progress.danger .release-progress-track span { background: #cd4555; }
.colleague-start-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.colleague-start-grid article { display: grid; gap: 5px; padding: 14px; border-radius: 10px; background: #f3f7fb; border: 1px solid #dbe5ef; }
.colleague-start-grid span { color: #596579; }
.release-history { display: grid; gap: 8px; }
.release-run-timings { margin: 0 12px 12px; padding: 10px 12px; border-radius: 8px; background: var(--ki-surface, #f4f8ff); min-width: 0; font-size: 14px; line-height: 1.5; }
.release-run-timings dl { display: grid; gap: 5px; margin: 0; }
.release-run-timings dl > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; min-width: 0; }
.release-run-timings dt { min-width: 0; overflow-wrap: anywhere; }
.release-run-timings dd { margin: 0; font-weight: 700; white-space: nowrap; }
.release-run-timings > details > summary { display: block; padding: 8px 0; font-size: 14px; }
.release-run-timings h4 { margin: 10px 0 5px; font-size: 14px; }
.release-history-item .release-run-timings p { padding: 6px 0; font-size: 14px; }
.release-history-item { border: 1px solid #dbe5ef; border-radius: 9px; background: #fff; }
.release-history-item summary { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; padding: 10px 12px; cursor: pointer; }
.release-history-item time { color: #667085; font-size: 12px; }
.release-history-item p { margin: 0; padding: 0 12px 12px; color: #667085; overflow-wrap: anywhere; }
.release-history-help { margin:0 12px 12px; padding:10px; display:grid; gap:6px; border-left:4px solid #2f63bd; border-radius:8px; background:#eef5ff; }
.release-history-help ol { margin:0; padding-left:20px; display:grid; gap:5px; }
.release-history-help span,.release-history-help li { color:#4d5d73; font-size:12px; line-height:1.4; overflow-wrap:anywhere; }
.release-confirm-summary { display: grid; gap: 8px; margin: 12px 0; }
.release-confirm-summary div { display: grid; gap: 2px; padding: 9px 10px; border-radius: 8px; background: #f3f7fb; }
.release-confirm-summary span { color: #667085; font-size: 12px; }
.release-confirm-summary strong { overflow-wrap: anywhere; }
.release-error-assistant { display:grid; gap:14px; min-width:0; }
.release-error-heading { display:flex; align-items:flex-start; gap:11px; padding:13px; border:1px solid #efb5bd; border-radius:10px; background:#fff1f3; }
.release-error-heading>span { width:28px; height:28px; display:grid; place-items:center; flex:0 0 auto; border-radius:50%; background:#c9364a; color:#fff; font-weight:900; }
.release-error-heading div { display:grid; gap:4px; min-width:0; }
.release-error-heading strong { color:#9f2032; font-size:16px; }
.release-error-heading p { margin:0; color:#713643; line-height:1.45; overflow-wrap:anywhere; }
.release-error-assistant>ol,.release-check-help ol { margin:0; padding-left:24px; display:grid; gap:8px; line-height:1.45; }
.release-error-assistant details { border:1px solid #dbe5ef; border-radius:9px; overflow:hidden; }
.release-error-assistant details summary,.release-check-help summary { padding:9px 11px; cursor:pointer; font-weight:800; }
.release-error-assistant pre { margin:0; padding:11px; max-height:180px; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; background:#f6f8fb; }
.release-manual-settings { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:9px 12px; padding:12px; border:1px solid #cbd8e8; border-radius:10px; background:#f5f8fc; }
.release-manual-settings>strong { grid-column:1/-1; }
.release-manual-settings label:not(.check-row) { display:grid; gap:5px; }
.release-manual-settings .check-row { align-self:end; }
.release-error-actions { display:flex; flex-wrap:wrap; gap:8px; }
.release-check-help { margin-top:5px; }
.release-check-help summary { padding:3px 0; color:#174f96; }
.release-check-help ol { padding:7px 0 2px 20px; color:#4d5d73; font-size:12px; }
@media (max-width: 1050px) {
  .release-flow { grid-template-columns: 1fr; }
  .release-arrow { transform: rotate(90deg); justify-self: center; line-height: 18px; }
  .colleague-start-grid { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .release-hero { flex-direction: column; }
  .release-history-item summary { grid-template-columns: 1fr; }
  .release-refresh-development { grid-template-columns: 1fr; }
  .release-manual-settings { grid-template-columns:1fr; }
  .permission-area-tabs { grid-template-columns: 1fr; }
  .rights-explainer { grid-template-columns: 1fr; }
  .rights-explainer > b { justify-self: center; transform: rotate(90deg); }
  .central-personnel-categories { grid-template-columns: 1fr; }
  .rights-help-flow { grid-template-columns: 1fr; }
  .rights-help-flow > b { justify-self: center; transform: rotate(90deg); }
  .rights-help-examples { grid-template-columns: 1fr; }
  .permission-category-toolbar { align-items: stretch; flex-direction: column; }
  .permission-category-toolbar > div { width: 100%; }
  .permission-category-toolbar .button { flex: 1 1 auto; }
  .permission-module button { grid-template-columns: 20px minmax(0,1fr) auto; }
  .permission-module-role-summary { grid-column: 2 / -1; justify-content: flex-start; }
}

/* Persönliche Dokumentenzentrale für Fahrschüler */
.student-document-center {
  display: grid;
  gap: 14px;
  min-height: min(720px, calc(100vh - 74px));
}
.student-document-center-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 2px 2px 4px;
}
.student-document-center-head h2 { margin: 3px 0 5px; }
.student-document-center-head p { margin: 0; color: #667085; }
.student-document-center-head .eyebrow {
  color: #2f459f;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.student-document-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  position: sticky;
  top: 0;
  z-index: 3;
  padding: 10px 0;
  background: #fff;
}
.student-document-tabs {
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  border: 1px solid #d8e2ed;
  border-radius: 10px;
  background: #f3f7fb;
}
.student-document-tabs button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 38px;
  padding: 7px 12px;
  border: 0;
  border-radius: 7px;
  color: #475467;
  background: transparent;
  font-weight: 800;
  cursor: pointer;
}
.student-document-tabs button.active {
  color: #fff;
  background: #2f459f;
  box-shadow: 0 2px 6px rgba(47,69,159,.2);
}
.student-document-tabs button span {
  min-width: 22px;
  padding: 2px 6px;
  border-radius: 999px;
  color: inherit;
  background: rgba(255,255,255,.22);
  text-align: center;
  font-size: 11px;
}
.student-document-search {
  display: flex;
  align-items: center;
  gap: 8px;
  width: min(360px, 40vw);
  min-height: 42px;
  padding: 0 12px;
  border: 1px solid #cbd8e5;
  border-radius: 9px;
  background: #fff;
}
.student-document-search span { color: #2f459f; font-size: 20px; }
.student-document-search input {
  width: 100%;
  border: 0;
  outline: 0;
  background: transparent;
}
.student-document-catalog {
  display: grid;
  align-content: start;
  gap: 9px;
  max-height: min(55vh, 590px);
  overflow: auto;
  padding-right: 5px;
}
.student-document-category {
  border: 1px solid #d8e2ed;
  border-radius: 10px;
  overflow: clip;
  background: #fff;
}
.student-document-category > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 11px 14px;
  cursor: pointer;
  list-style: none;
  background: #f5f8fb;
}
.student-document-category > summary::-webkit-details-marker { display: none; }
.student-document-category > summary span { display: grid; gap: 2px; }
.student-document-category > summary strong { color: #10203b; }
.student-document-category > summary small { color: #667085; }
.student-document-category > summary b {
  color: #2f459f;
  transition: transform .18s ease;
}
.student-document-category[open] > summary b { transform: rotate(180deg); }
.student-document-category-list { display: grid; }
.student-document-row {
  display: grid;
  grid-template-columns: 22px 32px minmax(180px,1fr) auto 34px;
  align-items: center;
  gap: 10px;
  min-height: 58px;
  padding: 8px 12px;
  border-top: 1px solid #e7edf4;
  cursor: pointer;
}
.student-document-row:hover { background: #f8faff; }
.student-document-row.selected {
  background: #eef2ff;
  box-shadow: inset 4px 0 #2f459f;
}
.student-document-row input { width: 17px; height: 17px; accent-color: #2f459f; }
.student-document-icon {
  display: grid;
  place-items: center;
  width: 29px;
  height: 29px;
  border-radius: 7px;
  color: #2f459f;
  background: #e9edff;
  font-weight: 900;
}
.student-document-copy { display: grid; gap: 3px; min-width: 0; }
.student-document-copy strong,
.student-document-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.student-document-copy small { color: #667085; }
.document-status-badge {
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 900;
  white-space: nowrap;
}
.document-status-badge.official { color: #174b39; background: #dff4ea; }
.document-status-badge.required { color: #7a4b00; background: #fff1cc; }
.document-status-badge.operational { color: #475467; background: #eef2f6; }
.student-document-badges { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.document-review-badge { padding: 4px 8px; border-radius: 999px; font-size: 10px; font-weight: 900; white-space: nowrap; }
.document-review-badge.verified { color: #174b39; background: #dff4ea; }
.document-review-badge.pending_review { color: #7a4b00; background: #fff1cc; }
.document-review-badge.withdrawn { color: #942431; background: #ffe0e3; }
.document-favorite-button {
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 7px;
  color: #667085;
  background: transparent;
  font-size: 21px;
  cursor: pointer;
}
.document-favorite-button:hover,
.document-favorite-button.active { color: #c98900; background: #fff5d6; }
.student-document-empty {
  display: grid;
  justify-items: center;
  gap: 8px;
  padding: 38px 18px;
  border: 1px dashed #cbd8e5;
  border-radius: 10px;
  color: #667085;
  background: #f8fafc;
  text-align: center;
}
.student-document-empty strong { color: #10203b; font-size: 16px; }
.student-document-message {
  padding: 10px 12px;
  border: 1px solid #9bcdb9;
  border-radius: 9px;
  color: #175c43;
  background: #edf9f4;
  font-weight: 750;
}
.student-document-message.working {
  border-color: #b8c6ef;
  color: #2f459f;
  background: #f0f3ff;
}
.student-document-message.error {
  border-color: #f0a8af;
  color: #9d2633;
  background: #fff1f2;
}
.student-document-file-section {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid #d8e2ed;
  border-radius: 10px;
  background: #f8fafc;
}
.student-document-file-section h3,
.student-document-file-section p { margin: 0; }
.student-document-file-section p { color: #667085; }
.saved-student-document-list { display: grid; gap: 7px; }
.saved-student-document-list article {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 10px 12px;
  border: 1px solid #d8e2ed;
  border-radius: 9px;
  background: #fff;
}
.saved-student-document-list article > div:first-child {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.saved-student-document-list article strong,
.saved-student-document-list article span,
.saved-student-document-list article small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.saved-student-document-list article span,
.saved-student-document-list article small { color: #667085; }
.document-file-state {
  width: max-content;
  padding: 3px 7px;
  border-radius: 999px;
  font-size: 7px;
  font-weight: 900;
  letter-spacing: .035em;
  text-transform: uppercase;
}
.document-file-state.draft { color: #8a4b00 !important; background: #fff1cc; }
.document-file-state.final { color: #12613f !important; background: #dff4ea; }
.button.success { color: #fff; border-color: #188b67; background: #188b67; }
.official-document-finalization { display: grid; gap: 14px; }
.official-signature-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.official-signature-grid.signatures-locked { opacity: .65; }
.official-signature-grid.signatures-locked canvas { cursor: not-allowed; background: repeating-linear-gradient(135deg, #f7f9fb, #f7f9fb 9px, #eef2f6 9px, #eef2f6 18px); }
.official-signature-preview { display: grid; gap: 8px; padding: 10px; border: 1px solid #9bcdb9; border-radius: 10px; background: #f3fbf7; }
.official-signature-preview[hidden] { display: none; }
.official-signature-preview .pdf-preview-toolbar > div { display: grid; gap: 2px; }
.official-signature-preview .pdf-preview-toolbar small { color: var(--muted); overflow-wrap: anywhere; }
.official-signature-preview .document-pdf-frame { width: 100%; height: min(58vh, 620px); background: #fff; }
.official-final-confirm { padding: 12px; border: 1px solid #bad9cd; border-radius: 10px; background: #effaf5; }
.official-document-finalization .performance-signature-editor canvas { height: 135px; }
.student-document-center.preview-active .student-document-toolbar,
.student-document-center.preview-active .student-document-catalog,
.student-document-center.preview-active .legal-document-note,
.student-document-center.preview-active .student-document-file-section {
  display: none;
}
.student-document-center.preview-active #student-document-preview {
  display: grid;
  gap: 8px;
}
.student-document-center.preview-active .document-pdf-frame {
  width: min(1040px, 86vw);
  height: min(720px, 68vh);
}
@media (max-width: 760px) {
  .student-document-toolbar { align-items: stretch; flex-direction: column; }
  .student-document-search { width: 100%; }
  .student-document-row { grid-template-columns: 20px 30px minmax(0,1fr) 34px; }
  .student-document-row .student-document-badges { grid-column: 3 / 4; justify-self: start; }
  .saved-student-document-list article { align-items: stretch; flex-direction: column; }
  .saved-student-document-list .table-actions { width: 100%; }
  .saved-student-document-list .table-actions > * { flex: 1 1 auto; }
  .official-signature-grid { grid-template-columns: 1fr; }
}
.operations-page {
  --operations-blue: #2f459f;
  --operations-sky: #08a4df;
  --operations-green: #188b67;
  display: grid;
  gap: 14px;
}

html[data-direct-task-alert="urgent"] { --direct-task-alert-color: #d82f49; }
html[data-direct-task-alert="high"] { --direct-task-alert-color: #e09516; }
html[data-direct-task-alert="normal"] { --direct-task-alert-color: #3156a3; }
html[data-direct-task-alert="low"] { --direct-task-alert-color: #2c8a62; }
html[data-direct-task-alert]::after {
  content: "";
  position: fixed;
  inset: 3px;
  z-index: 2147483646;
  pointer-events: none;
  border: 6px solid var(--direct-task-alert-color);
  border-radius: 12px;
  box-shadow: inset 0 0 18px color-mix(in srgb, var(--direct-task-alert-color) 75%, transparent), 0 0 18px var(--direct-task-alert-color);
  animation: direct-task-screen-alert .9s steps(1, end) infinite;
}
@keyframes direct-task-screen-alert {
  0%, 44% { opacity: .12; }
  45%, 100% { opacity: 1; }
}

.operations-hero {
  display: flex;
  align-items: center;
  gap: 22px;
  justify-content: space-between;
  padding: 22px 24px;
  border: 1px solid #dce4f1;
  border-radius: 18px;
  background:
    radial-gradient(circle at 92% 20%, rgba(8, 164, 223, .13), transparent 28%),
    linear-gradient(135deg, #fff, #f5f8ff);
  box-shadow: 0 8px 28px rgba(28, 49, 91, .07);
}

.operations-hero h2,
.operations-hero p {
  margin: 0;
}

.operations-hero h2 {
  margin-top: 4px;
  color: #16233d;
  font-size: clamp(1.35rem, 2vw, 2rem);
}

.operations-hero p {
  margin-top: 6px;
  color: #667188;
}

.operations-kicker {
  color: var(--operations-sky);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.operations-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.operation-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(145px, 1fr));
  gap: 10px;
}

.operation-metric {
  display: grid;
  gap: 2px;
  min-height: 78px;
  padding: 15px 17px;
  border: 1px solid #dde4ef;
  border-left: 5px solid var(--operations-blue);
  border-radius: 13px;
  background: #fff;
}

.operation-metric strong {
  color: #15233d;
  font-size: 1.45rem;
}

.operation-metric span {
  color: #697389;
  font-size: .78rem;
  font-weight: 750;
}

.operation-metric.ok { border-left-color: #188b67; }
.operation-metric.warning { border-left-color: #e2a52b; }
.operation-metric.danger { border-left-color: #d94b5b; }

.operations-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 10px 12px;
  border: 1px solid #dfe5ef;
  border-radius: 14px;
  background: #fff;
}

.operations-tabs {
  display: flex;
  flex-wrap: wrap;
}

.operations-period {
  display: flex;
  align-items: center;
  gap: 7px;
}

.operations-period strong {
  min-width: 190px;
  text-align: center;
  color: #26334d;
  font-size: .82rem;
}

.operations-table-scroll {
  overflow: auto;
  border: 1px solid #dce3ef;
  border-radius: 14px;
  background: #fff;
}

.office-shift-grid {
  width: max(100%, 1550px);
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
}

.office-shift-grid th,
.office-shift-grid td {
  min-width: 95px;
  height: 78px;
  padding: 7px;
  border-right: 1px solid #e7ebf2;
  border-bottom: 1px solid #e7ebf2;
  vertical-align: top;
}

.office-shift-grid thead th {
  position: sticky;
  top: 0;
  z-index: 3;
  height: auto;
  background: #f7f9fd;
  text-align: center;
}

.office-shift-grid thead th:first-child,
.office-shift-grid tbody th {
  position: sticky;
  left: 0;
  z-index: 2;
  width: 185px;
  min-width: 185px;
  background: #f8faff;
  text-align: left;
}

.office-shift-grid thead th:first-child {
  z-index: 4;
}

.office-shift-grid thead span,
.office-shift-grid thead strong {
  display: block;
}

.office-shift-grid .weekend {
  background: #f3f4f7;
  color: #8a91a0;
}

.office-shift-grid td.today {
  box-shadow: inset 0 0 0 2px #08a4df;
}

.office-shift-grid tbody th {
  vertical-align: middle;
}

.operation-avatar {
  display: inline-grid;
  width: 30px;
  height: 30px;
  margin-right: 5px;
  place-items: center;
  border-radius: 10px;
  background: #e8ecfb;
  color: #2f459f;
  font-size: .72rem;
  font-weight: 900;
}

.office-shift-chip,
.office-shift-add {
  width: 100%;
  border: 0;
  cursor: pointer;
}

.office-shift-chip {
  display: grid;
  gap: 1px;
  margin-bottom: 4px;
  padding: 7px;
  border-radius: 9px;
  background: #e5f5fc;
  color: #07526f;
  text-align: left;
}

.office-shift-chip.confirmed {
  background: #e0f3eb;
  color: #12654c;
}

.office-shift-chip span {
  font-size: .68rem;
}

.office-shift-add {
  min-height: 28px;
  border: 1px dashed #cbd4e3;
  border-radius: 8px;
  background: transparent;
  color: #69758a;
  opacity: .55;
}

.office-shift-add:hover {
  border-color: #08a4df;
  color: #087ca6;
  opacity: 1;
}

.office-task-board {
  display: grid;
  grid-template-columns: repeat(4, minmax(220px, 1fr));
  gap: 12px;
  overflow-x: auto;
}

.office-task-column {
  min-width: 220px;
  padding: 10px;
  border: 1px solid #dfe5ef;
  border-radius: 14px;
  background: #f6f8fc;
}

.office-task-column > header {
  display: flex;
  align-items: center;
  gap: 8px;
  justify-content: space-between;
  padding: 4px 4px 10px;
  color: #22304a;
}
.office-task-column > header > button[data-toggle-task-section] { display:flex; align-items:center; gap:7px; flex:1 1 auto; min-width:0; padding:0; border:0; background:transparent; color:inherit; text-align:left; font:inherit; cursor:pointer; }
.office-task-column > header > button[data-toggle-task-section] strong { overflow-wrap:anywhere; }
.office-task-column > header > .icon-button { flex:0 0 30px; width:30px; height:30px; min-height:30px; padding:0; }
.office-task-column.is-collapsed { padding-bottom:8px; }
.office-task-column.is-collapsed > header { padding-bottom:4px; }

.office-task-column > header span {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 50%;
  background: #e3e8f3;
  font-size: .72rem;
  font-weight: 900;
}

.office-task-column > div {
  display: grid;
  gap: 8px;
}

.office-task-card {
  display: grid;
  gap: 4px;
  padding: 12px;
  border: 1px solid #dfe4ed;
  border-left: 4px solid #8490a7;
  border-radius: 10px;
  background: #fff;
  color: #1f2b42;
  cursor: pointer;
  text-align: left;
}

.office-task-card.priority-high { border-left-color: #e2a52b; }
.office-task-card.is-external-assignment { background: #f3f7ff; outline: 1px solid #b8caf0; }
.office-task-assignment-origin { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; padding: 7px 10px; margin: 2px 0 8px; border-radius: 7px; background: #e5edff; color: #244b91; font-size: 11px; line-height: 1.4; }
.office-task-assignment-origin strong { font-weight: 700; }
.office-task-assignment-origin > span:last-child { color: #405676; }
.office-task-card.direct-task-unread.priority-urgent { --task-card-alert-color: #d82f49; }
.office-task-card.direct-task-unread.priority-high { --task-card-alert-color: #e09516; }
.office-task-card.direct-task-unread.priority-normal { --task-card-alert-color: #3156a3; }
.office-task-card.direct-task-unread.priority-low { --task-card-alert-color: #2c8a62; }
.office-task-card.direct-task-unread {
  position: relative;
  border-color: var(--task-card-alert-color);
  outline: 3px solid var(--task-card-alert-color);
  outline-offset: 2px;
  animation: direct-task-card-alert .9s steps(1, end) infinite;
}
@keyframes direct-task-card-alert {
  0%, 44% {
    outline-color: transparent;
    box-shadow: 0 0 0 transparent;
    background: #fff;
  }
  45%, 100% {
    outline-color: var(--task-card-alert-color);
    box-shadow: 0 0 18px color-mix(in srgb, var(--task-card-alert-color) 70%, transparent);
    background: color-mix(in srgb, var(--task-card-alert-color) 8%, white);
  }
}
.office-employee-avatar { border: 3px solid var(--employee-color, #3156a3); background: #fff; color: #22344d; }
.office-shift-grid tbody th > small { display: block; padding-top: 5px; font-size: 11px; font-weight: 500; }
.office-shift-chip { border-left: 5px solid var(--employee-color, #3156a3); background: color-mix(in srgb, var(--employee-color, #3156a3) 12%, white); }
.office-shift-chip.is-standard { border-top-style: dashed; border-bottom-style: dashed; }
.office-absence { display: block; padding: 6px; margin-bottom: 6px; border-radius: 6px; background: #fff0d1; color: #624c1b; font-size: 11px; }
.office-task-filters { display: flex; align-items: end; flex-wrap: wrap; gap: 14px; padding: 14px; border: 1px solid #dfe5ef; border-radius: 12px; background: #fff; }
.office-task-filters > label { display: grid; gap: 5px; flex: 1 1 230px; min-width: 0; font-size: 12px; font-weight: 700; }
.office-task-filters input, .office-task-filters select { width: 100%; min-width: 0; min-height: 38px; padding: 8px 10px; border: 1px solid #c3d3e8; border-radius: 9px; background: #fff; color: #22344d; font: inherit; }
.office-task-filters > small { flex: 1 1 180px; color: #63758a; padding-bottom: 8px; }
.office-task-section-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:end; }
.office-task-board { align-items: start; gap: 16px; padding: 4px 0 12px; }
.operations-page .office-task-board { grid-template-columns:repeat(var(--office-task-column-count,4),minmax(250px,290px)); }
.office-task-column { padding: 14px; }
.office-task-column.is-drop-target { outline: 3px solid #3156a3; outline-offset: -3px; background: #e8efff; }
.office-task-card { min-width: 0; gap: 10px; padding: 14px; box-shadow: 0 2px 7px #2639530b; cursor: default; }
.office-task-card.is-dragging { opacity: .45; }
.office-task-card-head { display:grid; grid-template-columns:minmax(0,1fr) max-content; gap:8px; align-items:start; min-width:0; }
.office-task-card-head .office-task-assignees-primary { grid-column:1/-1; display:flex; align-items:center; gap:5px; margin-top:0; }
.office-task-assignees-primary > small { flex:0 0 auto; color:#60718a; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.office-task-assignees-primary > span { padding:3px 7px; background:#eef4ff; border-color:#c9d8ee; font-weight:700; }
.office-task-card-toggle { display:grid; place-items:center; width:32px; min-width:32px; height:32px; min-height:32px; padding:0; border:1px solid #ccd8e8; border-radius:8px; background:#f4f7fb; color:#29449c; font:inherit; font-weight:900; cursor:pointer; }
.office-task-card-toggle:hover { background:#e8efff; border-color:#9db4d5; }
.office-task-card-toggle:focus-visible { outline:3px solid rgb(49 86 163 / 25%); outline-offset:2px; }
.office-task-card-body { display:grid; gap:10px; min-width:0; }
.office-task-card-body[hidden] { display:none; }
.office-task-card.is-collapsed { gap:0; padding-top:11px; padding-bottom:11px; }
.office-task-card.is-collapsed .office-task-card-head { row-gap:7px; }
.office-task-card.is-collapsed .office-task-open { gap:4px; }
.office-task-card.is-collapsed .office-task-open strong { font-size:14px; }
.office-task-open { display: grid; gap: 8px; width: 100%; min-width: 0; padding: 0; border: 0; box-shadow: none; background: transparent; color: #20344e; text-align: left; cursor: pointer; }
.office-task-open strong { font-size: 15px; line-height: 1.35; overflow-wrap: anywhere; }
.office-task-open > span { font-size: 11px; color: #60718a; overflow-wrap: anywhere; }
.office-task-tags, .office-task-assignees { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.office-task-tag { padding: 4px 8px; border-radius: 6px; font-size: 11px; font-weight: 700; overflow-wrap: anywhere; background: #dfeaff; color: #224d8a; }
.office-task-tag.tag-1 { background: #d9f1e2; color: #226346; }.office-task-tag.tag-2 { background: #ffedc6; color: #7e5313; }.office-task-tag.tag-3 { background: #f0dffc; color: #68418c; }.office-task-tag.tag-4 { background: #ffe0e7; color: #9a354d; }
.office-task-assignees > span { padding: 4px 7px; border: 1px solid #d8e2ee; border-radius: 12px; background: #f6f9fe; font-size: 11px; overflow-wrap: anywhere; }
.office-task-card .office-task-creator { border-top: 1px solid #e6edf5; padding-top: 8px; font-size: 11px; color: #536982; overflow-wrap: anywhere; }
.office-task-moves { display: flex; flex-wrap: wrap; gap: 6px; }.office-task-moves .button { flex: 1 1 90px; min-height: 34px; padding: 5px 8px; font-size: 11px; white-space: normal; }
.office-column-add { width: 100%; min-height: 38px; margin-top: 4px; }
.office-task-fields { min-width: 0; padding: 0; border: 0; margin: 0; }
.office-assignee-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; max-height: 190px; overflow-y: auto; padding: 10px; border: 1px solid #d4e0ef; border-radius: 10px; }
.office-assignee-options > label { display: flex; gap: 8px; align-items: center; min-width: 0; padding: 8px; border-radius: 7px; background: #f2f7fe; font-size: 12px; }
.office-assignee-options input[type="checkbox"] { width: 17px; height: 17px; flex: 0 0 17px; }
.office-assignee-options span { overflow-wrap: anywhere; }
.office-assignee-groups { display: grid; gap: 12px; max-height: 290px; overflow-y: auto; min-width: 0; padding: 2px; }
.office-assignee-group { min-width: 0; padding: 10px; border: 1px solid #d4e0ef; border-left: 4px solid var(--personnel-color, #78849a); border-radius: 10px; background: #fff; }
.office-assignee-group h3 { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 8px; font-size: 13px; overflow-wrap: anywhere; }
.office-assignee-group h3 small { color: #63758a; }
.office-assignee-group .office-assignee-options { max-height: none; overflow: visible; border: 0; padding: 0; }
.office-task-visibility { display: grid; gap: 12px; min-width: 0; margin: 0; padding: 14px; border: 1px solid #c3d3e8; border-radius: 12px; background: #f7faff; }
.office-task-visibility legend { padding: 0 5px; font-weight: 700; }
.office-visibility-options, .office-audience-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; min-width: 0; }
.office-visibility-options > label, .office-audience-options > label { display: flex; align-items: center; gap: 9px; min-width: 0; margin: 0; padding: 10px; border: 1px solid #d4e0ef; border-radius: 9px; background: #fff; font-size: 13px; line-height: 1.4; cursor: pointer; }
.office-visibility-options > label:has(input:checked), .office-audience-options > label:has(input:checked) { border-color: #3156a3; background: #e8efff; }
.office-task-visibility input { flex: 0 0 18px; width: 18px; height: 18px; margin: 0; }
.office-task-visibility span, .office-task-audience { overflow-wrap: anywhere; }
.office-task-visibility small { color: #52657b; line-height: 1.5; }
.office-audience-options[hidden] { display: none; }
.office-task-version-notice { padding: 12px; border: 1px solid #e0b659; border-radius: 9px; color: #694c0e; background: #fff8e4; line-height: 1.5; }
.office-board-toolbar { display: flex; align-items: end; flex-wrap: wrap; gap: 14px; padding: 14px; border: 1px solid #c3d3e8; border-radius: 12px; background: #f5f9ff; }
.office-board-toolbar > label { display: grid; gap: 6px; min-width: 0; flex: 1 1 220px; font-weight: 700; }
.office-board-toolbar select { width: 100%; min-width: 0; min-height: 40px; border: 1px solid #c3d3e8; border-radius: 9px; padding: 8px; background: #fff; color: #22344d; font: inherit; }
.office-board-toolbar > div { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; min-width: 0; }
.office-board-toolbar > small { flex: 1 1 100%; color: #52657b; }
.operations-page .office-board-toolbar { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; padding: 0; border: 0; border-radius: 0; background: transparent; min-width: 0; }
.office-board-toolbar > .office-board-tabs { display:flex; flex-wrap:nowrap; width:100%; overflow-x:auto; gap:0; align-items:stretch; border-bottom:2px solid #c3d3e8; padding:4px 3px 0; scroll-behavior:smooth; }
.office-board-toolbar > .office-board-actions { justify-content:flex-end; padding:0 3px; }
.office-board-toolbar > small { padding:0 3px; }
.operations-page .office-board-tab { appearance:none; position:relative; flex:0 0 auto; display:inline-flex; align-items:center; gap:8px; min-width:100px; max-width:min(320px,90%); min-height:48px; padding:12px 20px; border:0; border-top:4px solid var(--board-color); border-radius:9px 9px 0 0; background:color-mix(in srgb,var(--board-color) 9%,white); color:#102a43; box-shadow:none; text-transform:none; font:inherit; font-size:14px; font-weight:800; cursor:pointer; transition:background .15s ease,color .15s ease; }
.operations-page .office-board-tab > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.operations-page .office-board-tab > small { font-size: 10px; font-weight: 600; }
.operations-page .office-board-tab > i { display:grid; place-items:center; width:18px; height:18px; border-radius:50%; background:var(--board-ink); color:var(--board-color); font-size:11px; font-style:normal; font-weight:900; }
.operations-page .office-board-tab.is-active { background:var(--board-color); color:var(--board-ink); box-shadow:inset 0 -4px var(--board-ink); }
.operations-page .office-board-tab.has-unread:not(.is-active) { box-shadow:inset 0 -3px var(--board-color); }
@keyframes office-board-assigned-alert { 0%,100% { outline-color:transparent; box-shadow:0 0 0 0 color-mix(in srgb,var(--board-color) 0%,transparent); } 50% { outline-color:var(--board-color); box-shadow:0 0 0 5px color-mix(in srgb,var(--board-color) 22%,transparent); } }
.operations-page .office-board-tab.has-direct-unread:not(.is-active),.task-board-assigned-alert { outline:2px solid transparent; animation:office-board-assigned-alert 1.35s ease-in-out infinite; }
.operations-page .office-board-tab:focus-visible { outline:3px solid #e6ad21; outline-offset:-3px; }
.office-board-color-field > div { display: flex; align-items: center; gap: 12px; }
#office-board-form .office-board-color-field input[type="color"] { width: 72px; height: 42px; min-height: 42px; padding: 4px; cursor: pointer; }
.office-board-color-field [data-board-color-value] { font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; }
.office-task-workspace { display:grid; gap:16px; min-width:0; }
.office-board-collapsed { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:54px; padding:14px 18px; border:1px solid #cfdaea; border-radius:12px; background:#f7faff; }
.office-board-collapsed strong { font-size:17px; }.office-board-collapsed span { color:#5d7087; font-size:12px; }
.office-task-workspace .office-task-board { animation:office-board-enter .16s ease-out; }
@keyframes office-board-enter { from { opacity:.6; transform:translateY(3px); } to { opacity:1; transform:translateY(0); } }
@media(prefers-reduced-motion:reduce) { .office-task-workspace .office-task-board { animation:none; }.office-board-toolbar > .office-board-tabs { scroll-behavior:auto; } }
.office-task-card { cursor:pointer; }
.office-task-card:focus-visible { outline:3px solid #d5a62b; outline-offset:3px; }
.office-card-description { margin:0; line-height:1.5; font-size:13px; white-space:pre-wrap; overflow-wrap:anywhere; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.office-card-checklist { display:grid; gap:7px; min-width:0; font-size:12px; }
.office-card-checklist progress { width:100%; height:7px; accent-color:#258367; }
.office-card-checklist > span { display:flex; gap:7px; margin:0; line-height:1.4; overflow-wrap:anywhere; }
.office-card-checklist .is-done { color:#57776e; text-decoration:line-through; }
.office-task-checklist,.office-card-preview,.office-task-destination { margin:0; padding:14px; border:1px solid #cbd9e6; border-radius:12px; min-width:0; background:#f7faff; }
.office-task-destination { margin-bottom:18px; }
.office-task-checklist legend,.office-card-preview legend,.office-task-destination legend { font-size:14px; font-weight:800; padding:0 5px; }
.office-checklist-row { display:grid; grid-template-columns:22px minmax(0,1fr) 40px; gap:9px; align-items:center; margin-bottom:9px; min-width:0; }
.office-checklist-row input[type="text"] { width:100%; min-width:0; padding:10px; min-height:40px; border:1px solid #cbd9e6; border-radius:8px; }
.office-checklist-row input[type="checkbox"],.office-card-preview input,.office-task-destination input { width:18px; height:18px; margin:0; flex:0 0 18px; }
.office-card-preview > div,.office-task-destination > div { display:flex; flex-wrap:wrap; gap:9px; margin-bottom:9px; }
.office-card-preview label,.office-task-destination label { display:flex; align-items:center; gap:9px; padding:10px; margin:0; border:1px solid #cbd9e6; border-radius:9px; background:#fff; font-size:13px; min-width:0; }
.office-task-destination label { border-left:5px solid var(--board-color,#3156a3); }
.office-task-destination label:has(input:checked),.office-card-preview label:has(input:checked) { background:#e8f1ff; outline:2px solid #3156a3; }
.office-task-destination label span { overflow-wrap:anywhere; }
.office-task-checklist small,.office-card-preview small,.office-task-destination small { display:block; margin-top:8px; font-size:12px; line-height:1.5; color:#52657b; }
[data-board-move-warning]:empty { display:none; }
[data-board-move-warning] { padding:10px; color:#7a4e12; background:#fff4d8; border-radius:8px; }
.office-board-members { display: grid; gap: 10px; max-height: 420px; overflow: auto; min-width: 0; padding: 2px; }
.office-board-member { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 12px; align-items: center; padding: 9px 4px; border-top: 1px solid #e5edf6; }
.office-board-member strong { min-width: 0; overflow-wrap: anywhere; font-size: 13px; }
.office-board-member > label { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 12px; white-space: nowrap; }
.office-board-member input { width: 18px; height: 18px; margin: 0; }
.office-task-board-label { padding: 10px; border-radius: 8px; background: #edf4ff; color: #25467a; font-weight: 700; }
.office-board-color-inputs { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px!important; width:100%; }
.office-board-color-inputs label { display:grid; grid-template-columns:1fr 46px auto; align-items:center; gap:8px; padding:8px 10px; border:1px solid #cfdaea; border-radius:9px; background:#fff; font-size:12px; font-weight:800; }
.office-board-color-inputs input { width:42px; height:34px; padding:2px; }.office-board-color-inputs span { font-family:monospace; font-size:11px; }
.office-board-palette { display:flex; flex-wrap:wrap; gap:7px; margin-top:9px; }
.office-board-palette button { width:38px; height:32px; border:1px solid #b9c8db; border-radius:7px; background:var(--palette-bg); color:var(--palette-ink); font-weight:900; cursor:pointer; }
.office-board-color-preview { margin-top:9px; padding:11px 14px; border-radius:9px; background:var(--preview-bg); color:var(--preview-ink); font-weight:900; }
.office-task-collaboration { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; margin:18px 0 4px; }
.office-task-comments,.office-task-attachments { min-width:0; padding:14px; border:1px solid #cfdaea; border-radius:12px; background:#f8fbff; }
.office-task-comment-list,.office-task-attachment-list { display:grid; gap:8px; max-height:260px; overflow:auto; margin:10px 0; }
.office-task-comment-list article { padding:10px; border:1px solid #d8e3ef; border-radius:9px; background:#fff; }
.office-task-comment-list article>div { display:flex; justify-content:space-between; gap:8px; }.office-task-comment-list time,.office-task-comment-list p { color:#53677f; font-size:12px; }.office-task-comment-list p { margin:6px 0 0; color:#20344e; line-height:1.45; overflow-wrap:anywhere; }
.office-task-comment-compose { display:grid; gap:8px; }.office-task-comment-compose textarea { width:100%; resize:vertical; }
.office-task-attachments .card-header label.button { position:relative; overflow:hidden; cursor:pointer; }.office-task-attachments input[type=file] { position:absolute; inset:0; opacity:0; cursor:pointer; }
.office-task-attachment-list article { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:9px; padding:9px; border:1px solid #d8e3ef; border-radius:9px; background:#fff; }
.office-task-attachment-list a { font-weight:800; overflow-wrap:anywhere; }.office-task-attachment-list small { display:block; color:#60738a; margin-top:3px; }
.course-member-exam-date,[data-person-exam-date] { font-variant-numeric:tabular-nums; letter-spacing:.02em; }
@media(max-width:760px){.office-task-collaboration{grid-template-columns:1fr}.office-board-color-inputs{grid-template-columns:1fr!important}}
@media(prefers-reduced-motion:reduce){.operations-page .office-board-tab.has-direct-unread:not(.is-active),.task-board-assigned-alert{animation:none;outline-color:var(--board-color)}}
.course-member-exam-date { width: 142px; min-width: 132px; padding: 7px 8px; font-size: 12px; }
.compact-action-menu { position: relative; display: inline-block; }
.compact-action-menu > summary { list-style: none; cursor: pointer; padding: 6px 9px; font-size: 12px; white-space: nowrap; }
.compact-action-menu > summary::-webkit-details-marker { display: none; }
.compact-action-menu > div { position: absolute; z-index: 20; right: 0; top: calc(100% + 4px); display: grid; gap: 5px; min-width: 158px; padding: 7px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); box-shadow: 0 8px 24px rgba(25, 43, 78, .18); }
.compact-action-menu > div .button { width: 100%; justify-content: flex-start; padding: 6px 8px; font-size: 12px; }
.office-shift-series-options { min-width: 0; margin: 0; padding: 14px; border: 1px solid #c3d3e8; border-radius: 10px; background: #f5f9ff; }
.office-shift-series-options[hidden] { display: none; }
#office-shift-form .office-visibility-options > label { display: flex; align-items: center; justify-content: flex-start; gap: 10px; }
#office-shift-form .office-visibility-options input[type="radio"] { flex: 0 0 18px; width: 18px; height: 18px; min-height: 18px; margin: 0; padding: 0; }
#office-shift-form .office-visibility-options > label > span { text-transform: none; white-space: nowrap; font-size: 14px; line-height: 1.4; }
.office-shift-series-options legend { padding: 0 5px; font-weight: 700; }
.office-shift-series-options label.check-row { display: flex; align-items: center; gap: 10px; text-transform: none; font-size: 14px; line-height: 1.4; }
.office-shift-series-options label.check-row input[type="checkbox"] { flex: 0 0 18px; width: 18px; height: 18px; min-height: 18px; margin: 0; padding: 0; }
.office-shift-series-options .form-grid > label:not(.check-row) { display: grid; min-width: 0; gap: 6px; }
.office-series-weekdays { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
.office-series-weekdays > label { display: flex; align-items: center; gap: 6px; margin: 0; padding: 8px 10px; border: 1px solid #c3d3e8; border-radius: 8px; background: #fff; }
.office-series-weekdays > label:has(input:checked) { background: #e8efff; border-color: #3156a3; }
.office-series-weekdays input { width: 17px; height: 17px; margin: 0; }
@media(max-width:600px) { .office-board-member { grid-template-columns: repeat(2,minmax(0,1fr)); }.office-board-member strong { grid-column: 1/-1; } }
@media(max-width:600px) { .office-visibility-options, .office-audience-options { grid-template-columns: minmax(0,1fr); } }
.office-plan-options { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; padding: 14px 0; }
.office-plan-options > label:last-child { display: flex; align-items: center; gap: 10px; }
.office-plan-options input[type="color"] { width: 64px; height: 40px; }
.office-plan-days { display: grid; gap: 8px; }
.office-plan-day { display: grid; grid-template-columns: minmax(120px,1fr) repeat(3,minmax(95px,.75fr)) minmax(120px,1.3fr); gap: 12px; padding: 12px; border: 1px solid #d8e3ef; border-radius: 10px; background: #f6f9fe; }
.office-plan-day > label { display: grid; gap: 5px; min-width: 0; font-size: 12px; font-weight: 700; }
.office-plan-day > label:first-child { display: flex; align-items: center; gap: 8px; }
.office-plan-day input { min-width: 0; width: 100%; }.office-plan-day input[type="checkbox"] { width: 17px; height: 17px; }
.office-plan-day input:not([type="checkbox"]) { min-height: 38px; padding: 8px; border: 1px solid #c3d3e8; border-radius: 9px; background: #fff; color: #22344d; font: inherit; }
.office-plan-day-net { grid-column: 1/-1; color: #46647e; font-size: 12px; font-weight: 700; }
.office-shift-net-preview { margin: 0; color: #46647e; font-size: 12px; font-weight: 700; }
.office-standard-week-day.is-restore { border-color: #d5a52a; background: #fff9e8; }
.office-plan-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: flex-end; padding: 12px 0; }
.office-plan-actions [role="status"] { font-size: 12px; }
@media(max-width: 1100px) { .operations-page .office-task-board { grid-template-columns: repeat(2,minmax(0,1fr)); overflow: visible; }.office-task-column { min-width: 0; } }
@media(max-width: 600px) { .operations-page .office-task-board { grid-template-columns: minmax(0,1fr); }.office-assignee-options { grid-template-columns: minmax(0,1fr); }.office-plan-day { grid-template-columns: repeat(2,minmax(0,1fr)); }.office-plan-day > label:first-child, .office-plan-day > .office-plan-workplace, .office-plan-day-net { grid-column: 1/-1; } }
.office-task-card.priority-urgent { border-left-color: #d94b5b; }
.office-task-card > span,
.office-task-card small,
.office-task-card time {
  color: #778197;
  font-size: .7rem;
}

.operation-empty {
  padding: 30px;
  border: 1px dashed #cfd7e5;
  border-radius: 12px;
  color: #748096;
  text-align: center;
}

.operation-empty.compact {
  padding: 15px;
  font-size: .75rem;
}

.operation-link-panel,
.operation-placeholder {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 25px;
  border: 1px solid #dfe5ef;
  border-radius: 14px;
  background: #fff;
}

.operation-link-panel h3,
.operation-link-panel p,
.operation-placeholder h3,
.operation-placeholder p {
  margin: 0;
}

.operation-link-panel p,
.operation-placeholder p {
  margin-top: 5px;
  color: #6e788d;
}

.operation-placeholder > span {
  display: grid;
  min-width: 74px;
  height: 74px;
  place-items: center;
  border-radius: 20px;
  background: #eeeafd;
  color: #6f52aa;
  font-size: 1.35rem;
  font-weight: 900;
}

.lecturer-track-tiles {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.lecturer-track-tiles > button {
  display: grid;
  min-width: 0;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  min-height: 78px;
  padding: 12px;
  border: 1px solid color-mix(in srgb, var(--track-color) 26%, #dce3ef);
  border-radius: 14px;
  background: color-mix(in srgb, var(--track-color) 6%, #fff);
  color: #1d2a43;
  cursor: pointer;
  text-align: left;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.lecturer-track-tiles > button:hover {
  transform: translateY(-2px);
  border-color: var(--track-color);
}

.lecturer-track-tiles > button.active {
  border-color: var(--track-color);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--track-color) 20%, transparent);
}

.lecturer-track-tiles > button > span {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 12px;
  background: var(--track-color);
  color: #fff;
  font-size: 1.45rem;
}

.lecturer-track-tiles > button > div {
  min-width: 0;
}

.lecturer-track-tiles strong,
.lecturer-track-tiles small {
  display: block;
  overflow-wrap: anywhere;
  hyphens: auto;
}

.lecturer-track-tiles strong {
  line-height: 1.15;
}

.lecturer-track-tiles small {
  margin-top: 4px;
  color: #778197;
  font-size: .67rem;
}

.operation-metric.clickable {
  width: 100%;
  border: 1px solid #dce3ef;
  text-align: left;
  cursor: pointer;
}

.operation-metric.clickable:hover {
  border-color: #3156a3;
  box-shadow: 0 4px 14px rgb(49 86 163 / 12%);
}

.lecturer-planning-controls {
  position: relative;
  z-index: 8;
  display: grid;
  grid-template-columns: minmax(235px, .9fr) minmax(195px, .7fr) minmax(390px, 1.5fr) auto;
  gap: 10px;
  align-items: end;
  padding: 12px;
  border: 1px solid #dfe5ef;
  border-radius: 14px;
  background: #fff;
}

.lecturer-course-multiselect {
  position: relative;
}

.lecturer-course-multiselect > summary {
  display: grid;
  grid-template-columns: 30px 1fr auto;
  gap: 8px;
  align-items: center;
  min-height: 48px;
  padding: 8px 11px;
  border: 1px solid #cfd7e5;
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
  list-style: none;
}

.lecturer-course-multiselect > summary::-webkit-details-marker {
  display: none;
}

.lecturer-course-multiselect > summary > span {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 8px;
  background: #eef2fb;
  color: #3156a3;
}

.lecturer-course-multiselect > summary strong,
.lecturer-course-multiselect > summary small {
  display: block;
}

.lecturer-course-multiselect > summary small {
  color: #778197;
  font-size: .65rem;
}

.lecturer-course-multiselect[open] > div {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 25;
  display: grid;
  width: min(440px, 86vw);
  max-height: 330px;
  padding: 8px;
  overflow: auto;
  border: 1px solid #cad4e4;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 18px 45px rgb(28 41 67 / 22%);
}

.lecturer-course-multiselect label {
  display: grid;
  grid-template-columns: auto 8px 1fr;
  gap: 9px;
  align-items: center;
  padding: 9px;
  border-radius: 8px;
  cursor: pointer;
}

.lecturer-course-multiselect label:hover {
  background: #f4f7fc;
}

.lecturer-course-multiselect label i {
  width: 7px;
  height: 34px;
  border-radius: 5px;
  background: var(--course-color);
}

.lecturer-course-multiselect label strong,
.lecturer-course-multiselect label small {
  display: block;
}

.lecturer-course-multiselect label small {
  color: #748096;
  font-size: .65rem;
}

.lecturer-status-filter,
.lecturer-range-control label {
  display: grid;
  gap: 4px;
  color: #69758a;
  font-size: .64rem;
  font-weight: 800;
  text-transform: uppercase;
}

.lecturer-status-filter select,
.lecturer-range-control select,
.lecturer-range-control input {
  min-height: 42px;
  border: 1px solid #cfd7e5;
  border-radius: 9px;
  background: #fff;
  color: #1d2a43;
  font: inherit;
  font-size: .75rem;
  font-weight: 700;
  text-transform: none;
}

.lecturer-range-control {
  display: grid;
  grid-template-columns: auto auto minmax(150px, 1fr) minmax(118px, .7fr) auto;
  gap: 7px;
  align-items: end;
}

.lecturer-selected-courses {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 2px 2px 4px;
}

.lecturer-selected-courses > button {
  display: grid;
  grid-template-columns: 7px max-content;
  gap: 8px;
  align-items: center;
  min-width: 125px;
  padding: 7px 10px;
  border: 1px solid #dce3ef;
  border-radius: 10px;
  background: #fff;
  color: #1d2a43;
  cursor: pointer;
  text-align: left;
}

.lecturer-selected-courses > button.active {
  border-color: var(--course-color);
  background: color-mix(in srgb, var(--course-color) 8%, #fff);
  box-shadow: inset 0 0 0 1px var(--course-color);
}

.lecturer-selected-courses i {
  width: 7px;
  height: 32px;
  border-radius: 5px;
  background: var(--course-color);
}

.lecturer-selected-courses strong,
.lecturer-selected-courses small {
  display: block;
}

.lecturer-selected-courses small {
  color: #748096;
  font-size: .62rem;
}

.lecturer-conflict-panel {
  border: 1px solid #dfe5ef;
  border-radius: 12px;
  background: #fff;
}

.lecturer-conflict-panel.ok {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 9px;
  align-items: center;
  padding: 10px 13px;
  border-color: #bce6d5;
  background: #f2fcf8;
  color: #12694f;
}

.lecturer-conflict-panel > span,
.lecturer-conflict-panel > summary > span {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 50%;
  background: #188b67;
  color: #fff;
  font-weight: 900;
}

.lecturer-conflict-panel strong,
.lecturer-conflict-panel small {
  display: block;
}

.lecturer-conflict-panel small {
  margin-top: 2px;
  font-size: .67rem;
}

.lecturer-conflict-panel.danger {
  border-color: #efb9bf;
  background: #fff7f8;
}

.lecturer-conflict-panel > summary {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 9px;
  align-items: center;
  padding: 10px 13px;
  cursor: pointer;
  list-style: none;
  color: #9c2735;
}

.lecturer-conflict-panel > summary > span {
  background: #d63d4d;
}

.lecturer-conflict-list {
  display: grid;
  gap: 6px;
  padding: 0 10px 10px;
}

.lecturer-conflict-list > button {
  display: grid;
  grid-template-columns: minmax(150px, .7fr) minmax(240px, 1.5fr) auto;
  gap: 10px;
  align-items: center;
  padding: 9px 11px;
  border: 1px solid #f0c7cc;
  border-radius: 9px;
  background: #fff;
  color: #6f2530;
  cursor: pointer;
  text-align: left;
}

.lecturer-conflict-list b {
  color: #bf2f40;
  font-size: .68rem;
}

.lecturer-planning-layout {
  display: grid;
  grid-template-columns: minmax(360px, var(--lecturer-panel-width, 410px)) 18px minmax(520px, 1fr);
  gap: 0;
  align-items: stretch;
  height: clamp(620px, calc(100vh - 170px), 820px);
}

.lecturer-planning-layout > .lecturer-subjects,
.ki-interface .lecturer-planning-layout > .lecturer-subjects {
  position: static;
  display: flex;
  min-width: 0;
  min-height: 0;
  flex-direction: column;
  container-name: lecturer-panel;
  container-type: inline-size;
  height: 100%;
  max-height: 100%;
  overflow-x: hidden;
  overflow-y: scroll;
  overscroll-behavior: contain;
  scrollbar-color: #7d93b4 #edf2f7;
  scrollbar-gutter: stable;
  border-top: 6px solid var(--course-color);
}

.lecturer-planning-layout > .lecturer-subjects::-webkit-scrollbar,
.ki-interface .lecturer-planning-layout > .lecturer-subjects::-webkit-scrollbar {
  width: 12px;
}

.lecturer-planning-layout > .lecturer-subjects::-webkit-scrollbar-track,
.ki-interface .lecturer-planning-layout > .lecturer-subjects::-webkit-scrollbar-track {
  border-left: 1px solid #d8e0eb;
  background: #edf2f7;
}

.lecturer-planning-layout > .lecturer-subjects::-webkit-scrollbar-thumb,
.ki-interface .lecturer-planning-layout > .lecturer-subjects::-webkit-scrollbar-thumb {
  border: 3px solid #edf2f7;
  border-radius: 999px;
  background: #7d93b4;
}

.lecturer-planning-resizer {
  position: sticky;
  top: 92px;
  z-index: 5;
  display: grid;
  width: 18px;
  height: 100%;
  place-items: center;
  cursor: col-resize;
  touch-action: none;
}

.lecturer-planning-resizer::before {
  width: 4px;
  height: 100%;
  border-radius: 5px;
  background: #d5deea;
  content: "";
  transition: width .15s ease, background .15s ease, box-shadow .15s ease;
}

.lecturer-planning-resizer > span {
  position: absolute;
  display: grid;
  width: 24px;
  height: 36px;
  place-items: center;
  border: 1px solid #c7d2e2;
  border-radius: 8px;
  background: #fff;
  color: #3156a3;
  font-size: .82rem;
  font-weight: 900;
  box-shadow: 0 3px 10px rgb(35 56 88 / 12%);
}

.lecturer-planning-resizer:hover::before,
.lecturer-planning-resizer:focus-visible::before,
.lecturer-planning-resizer.active::before {
  width: 6px;
  background: #2f60bd;
  box-shadow: 0 0 0 4px rgb(47 96 189 / 12%);
}

.lecturer-planning-resizer:focus-visible {
  outline: none;
}

body.lecturer-layout-resizing {
  cursor: col-resize;
  user-select: none;
}

.lecturer-subjects > .card-header {
  position: sticky;
  top: 0;
  z-index: 4;
  flex: 0 0 auto;
  background: color-mix(in srgb, var(--course-color) 8%, #fff);
}

.lecturer-subjects > .card-header h3 {
  color: var(--course-color);
}

.lecturer-calendar {
  min-width: 0;
}

.lecturer-view-switch {
  align-self: end;
  min-height: 42px;
  white-space: nowrap;
}

.lecturer-week-matrix {
  display: flex;
  min-width: 0;
  min-height: 0;
  flex-direction: column;
  height: 100%;
  max-height: 100%;
  overflow: hidden;
}

.lecturer-week-matrix > .card-header {
  flex: 0 0 auto;
}

.lecturer-matrix-legend {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.lecturer-matrix-legend span,
.lecturer-print-courses span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 7px;
  border: 1px solid #dfe5ef;
  border-radius: 999px;
  color: #536077;
  background: #f8fafc;
  font-size: .65rem;
  font-weight: 800;
}

.lecturer-week-matrix-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  max-height: none;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.lecturer-week-horizontal {
  min-width: max(930px, calc(92px + (var(--lecturer-days, 6) * 178px)));
}

.lecturer-week-horizontal-head,
.lecturer-week-horizontal-row {
  display: grid;
  grid-template-columns: var(--lecturer-week-columns);
}

.lecturer-week-horizontal-head {
  position: sticky;
  top: 0;
  z-index: 8;
  border-top: 1px solid #dfe5ef;
  border-bottom: 2px solid #c7d2e2;
  background: #eef3f8;
}

.lecturer-week-horizontal-head > div {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 8px 9px;
  border-right: 1px solid #d5deea;
  text-align: center;
}

.lecturer-week-horizontal-head > div > span {
  color: #69758a;
  font-size: .64rem;
  font-weight: 900;
  text-transform: uppercase;
}

.lecturer-week-horizontal-head > div > strong { color: #253652; font-size: .74rem; }
.lecturer-week-horizontal-head > div > small { color: #9a6413; font-size: .58rem; }
.lecturer-week-horizontal-head > .today { background: #e1ecff; box-shadow: inset 0 4px #3156a3; }
.lecturer-week-horizontal-head > .holiday { background: #fff4cf; }

.lecturer-week-horizontal-head .lecturer-week-corner {
  position: sticky;
  left: 0;
  z-index: 9;
  align-content: center;
  background: #e8eef6;
  color: #31435f;
  font-size: .68rem;
  font-weight: 900;
  text-align: left;
}

.lecturer-week-horizontal-row {
  border-bottom: 1px solid #dce3ed;
}

.lecturer-week-time {
  position: sticky;
  left: 0;
  z-index: 5;
  display: grid;
  gap: 3px;
  align-content: center;
  min-height: 104px;
  padding: 8px 9px;
  border-right: 2px solid #cbd5e2;
  background: #f5f8fb;
}

.lecturer-week-time strong { color: #253652; font-size: .72rem; }
.lecturer-week-time span { color: #647188; font-size: .62rem; }
.lecturer-week-time b { color: #3156a3; font-size: .6rem; }

.lecturer-week-day-cell {
  display: grid;
  gap: 3px;
  min-width: 0;
  min-height: 104px;
  padding: 5px;
  border-right: 1px solid #e0e6ef;
  background: #fff;
}

.lecturer-week-day-cell.holiday {
  align-content: center;
  background: repeating-linear-gradient(-45deg, #fff9e8, #fff9e8 8px, #fff4d2 8px, #fff4d2 16px);
}

.lecturer-week-holiday { display: grid; gap: 3px; padding: 9px; color: #8b5d12; text-align: center; }
.lecturer-week-holiday strong { font-size: .7rem; }
.lecturer-week-holiday span { font-size: .6rem; }

.lecturer-week-course-lane {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 4px;
  align-items: center;
  min-width: 0;
  padding: 4px;
  border: 1px solid color-mix(in srgb, var(--course-color) 22%, #e1e7ef);
  border-radius: 6px;
  background: color-mix(in srgb, var(--course-color) 5%, #fff);
}

.lecturer-week-course-label {
  display: flex;
  gap: 4px;
  align-items: center;
  min-width: 0;
  color: var(--course-color);
  font-variant-numeric: tabular-nums;
  font-weight: 900;
}

.lecturer-week-course-label i { width: 4px; height: 26px; flex: 0 0 auto; border-radius: 4px; background: var(--course-color); }
.lecturer-week-course-label strong { overflow: hidden; font-size: .6rem; text-overflow: ellipsis; white-space: nowrap; }
.lecturer-week-course-entries { display: grid; grid-template-columns: minmax(0, 1fr) 24px; gap: 4px; min-width: 0; }
.lecturer-week-course-entries.lecturer-unit-grid { grid-template-columns: minmax(0, 1fr) 24px; align-items: stretch; }
.lecturer-unit-grid > .lecturer-unit-drop { grid-column: 1; }
.lecturer-unit-grid > .lecturer-matrix-add { grid-column: 2; grid-row: 1 / span 2; }
.lecturer-unit-drop { min-width: 0; min-height: 42px; padding: 2px; display: grid; align-content: stretch; border: 1px dashed #cbd6e5; border-radius: 7px; background: rgba(255,255,255,.68); transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.lecturer-unit-drop > span { place-self: center; color: #9aa7ba; font-size: .57rem; font-weight: 800; }
.lecturer-empty-unit { width: 100%; min-height: 34px; padding: 4px 7px; display: flex; align-items: center; justify-content: space-between; gap: 6px; border: 0; border-radius: 5px; color: #6f7d92; background: transparent; cursor: pointer; text-align: left; }
.lecturer-empty-unit:hover, .lecturer-empty-unit:focus-visible { color: #234b9a; background: #edf4ff; outline: 2px solid color-mix(in srgb, var(--course-color) 45%, transparent); }
.lecturer-empty-unit strong { font-size: .62rem; }
.lecturer-empty-unit small { overflow: hidden; font-size: .53rem; text-overflow: ellipsis; white-space: nowrap; }
.lecturer-unit-drop.drag-over { border-color: var(--brand-cyan); background: #eaf8fd; box-shadow: inset 0 0 0 2px rgba(8,164,223,.16); }
.lecturer-unit-drop.drag-blocked { border-color: #e6b1b8; background: #fff2f3; cursor: not-allowed; }
.lecturer-matrix-unit { min-width: 0; min-height: 36px; padding: 3px; display: grid; grid-template-columns: minmax(0,1fr) 16px; gap: 2px; align-items: center; border: 1px solid color-mix(in srgb, var(--course-color) 55%, #cfd9e7); border-left: 4px solid var(--course-color); border-radius: 6px; background: #fff; cursor: grab; }
.lecturer-matrix-unit.dragging { opacity: .45; cursor: grabbing; }
.lecturer-unit-drag { color: #8190a7; font-size: .68rem; }
.lecturer-unit-copy { min-width: 0; display: grid; }
.lecturer-unit-copy strong, .lecturer-unit-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lecturer-unit-copy strong { color: #17243c; font-size: .6rem; }
.lecturer-unit-copy small { color: #637087; font-size: .52rem; }
.lecturer-unit-delete { width: 16px; height: 18px; padding: 0; border: 1px solid #e3aab2; border-radius: 5px; color: #b52d41; background: #fff5f6; font-weight: 900; cursor: pointer; }
.lecturer-unit-delete:hover { color: #fff; background: #c6384b; }
.lecturer-week-course-entries .lecturer-matrix-add { min-height: 38px; padding: 0; font-size: .9rem; font-weight: 900; }

.lecturer-week-extras-row .lecturer-week-time,
.lecturer-week-extras-row .lecturer-week-day-cell { min-height: 58px; }

.lecturer-week-matrix-grid {
  min-width: 910px;
}

.lecturer-week-matrix-head,
.lecturer-matrix-course {
  display: grid;
  grid-template-columns: minmax(115px, .8fr) repeat(4, minmax(130px, 1fr)) minmax(130px, 1fr);
}

.lecturer-week-matrix-head {
  position: sticky;
  top: 0;
  z-index: 5;
  border-top: 1px solid #dfe5ef;
  border-bottom: 1px solid #ccd5e3;
  background: #eef3f8;
}

.lecturer-week-matrix-head > div {
  display: grid;
  gap: 2px;
  padding: 8px 9px;
  border-right: 1px solid #d5deea;
}

.lecturer-week-matrix-head strong { font-size: .7rem; }
.lecturer-week-matrix-head span { color: #69758a; font-size: .62rem; }

.lecturer-matrix-day > header {
  position: sticky;
  left: 0;
  z-index: 2;
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 6px 10px;
  border-bottom: 1px solid #dce3ed;
  background: #f5f8fb;
}

.lecturer-matrix-day > header strong { color: #263751; font-size: .72rem; text-transform: capitalize; }
.lecturer-matrix-day > header span { color: #9a6413; font-size: .67rem; font-weight: 800; }
.lecturer-matrix-day.holiday > header { background: #fff5d8; }

.lecturer-matrix-course > div {
  position: relative;
  min-height: 72px;
  padding: 6px;
  border-right: 1px solid #e0e6ef;
  border-bottom: 1px solid #e0e6ef;
  background: #fff;
}

.lecturer-matrix-course > div:first-child {
  display: grid;
  grid-template-columns: 7px 1fr;
  gap: 3px 7px;
  align-content: center;
  background: color-mix(in srgb, var(--course-color) 7%, #fff);
}

.lecturer-matrix-course > div:first-child i { grid-row: 1 / 3; width: 7px; border-radius: 8px; background: var(--course-color); }
.lecturer-matrix-course > div:first-child strong { color: var(--course-color); font-size: .76rem; }
.lecturer-matrix-course > div:first-child span { color: #6d778a; font-size: .62rem; }

.lecturer-matrix-cell {
  display: grid;
  gap: 4px;
  align-content: start;
}

.lecturer-matrix-assignment {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: 1px 6px;
  align-items: center;
  width: 100%;
  min-height: 38px;
  padding: 5px 7px;
  text-align: left;
  color: #24344d;
  border: 1px solid color-mix(in srgb, var(--course-color) 30%, #dce3ed);
  border-left: 4px solid var(--course-color);
  border-radius: 7px;
  background: color-mix(in srgb, var(--course-color) 6%, #fff);
  cursor: pointer;
}

.lecturer-matrix-assignment strong { overflow: hidden; font-size: .64rem; line-height: 1.05; text-overflow: ellipsis; white-space: nowrap; }
.lecturer-matrix-assignment span,
.lecturer-matrix-assignment small { overflow: hidden; color: #68758a; font-size: .54rem; line-height: 1.05; text-overflow: ellipsis; white-space: nowrap; }
.lecturer-matrix-assignment span { grid-column: 1 / -1; }
.lecturer-matrix-assignment small { grid-column: 2; grid-row: 1; color: #3156a3; font-weight: 900; }
.lecturer-matrix-assignment.conflict { border-color: #d83d4e; box-shadow: 0 0 0 2px rgb(216 61 78 / 13%); }
.lecturer-matrix-unit > .lecturer-unit-drag,
.lecturer-matrix-unit > .lecturer-unit-copy { grid-column: auto; grid-row: auto; }
.lecturer-matrix-unit .lecturer-unit-copy strong,
.lecturer-matrix-unit .lecturer-unit-copy small { grid-column: auto; grid-row: auto; }

.lecturer-matrix-add {
  min-height: 25px;
  color: #718096;
  border: 1px dashed #c8d1df;
  border-radius: 7px;
  background: #fafcff;
  cursor: pointer;
}

.lecturer-matrix-add:hover { color: #fff; border-color: #3156a3; background: #3156a3; }

.modal:has(.lecturer-print-modal) {
  width: min(760px, calc(100vw - 28px));
  overflow-x: hidden;
}

.lecturer-print-modal {
  display: grid;
  gap: 16px;
  min-width: 0;
  max-width: 100%;
}

.lecturer-print-modal .operation-inline-info {
  display: grid;
  gap: 4px;
  padding: 11px 12px;
  border: 1px solid #cfe3f2;
  border-radius: 10px;
  background: #f2f9fd;
}

.lecturer-print-modal .operation-inline-info strong,
.lecturer-print-modal .operation-inline-info span {
  display: block;
  min-width: 0;
}

.lecturer-print-modal .modal-actions {
  flex-wrap: wrap;
}
.lecturer-print-courses { display: flex; gap: 6px; flex-wrap: wrap; }
.lecturer-print-courses i { width: 8px; height: 8px; border-radius: 50%; background: var(--course-color); }

.lecturer-course-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 260px));
  gap: 10px;
}

.lecturer-course-card {
  position: relative;
  display: grid;
  gap: 4px;
  padding: 14px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--course-color) 32%, #dce3ef);
  border-top: 7px solid var(--course-color);
  border-radius: 14px;
  background: color-mix(in srgb, var(--course-color) 7%, #fff);
  color: #1d2a43;
  cursor: pointer;
  text-align: left;
}

.lecturer-course-card.selected {
  border-color: var(--course-color);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--course-color) 20%, transparent);
}

.lecturer-course-card > span {
  color: var(--course-color);
  font-size: .7rem;
  font-weight: 900;
}

.lecturer-course-card > strong {
  font-size: 1.15rem;
}

.lecturer-course-card > small,
.lecturer-course-card > em {
  color: #788196;
  font-size: .68rem;
  font-style: normal;
}

.lecturer-course-card > div {
  height: 6px;
  overflow: hidden;
  border-radius: 6px;
  background: #e9edf5;
}

.lecturer-course-card > div i {
  display: block;
  height: 100%;
  background: var(--course-color);
}

.lecturer-course-card > em {
  color: #9f6d0f;
}

.lecturer-course-card > em.ok {
  color: #188b67;
}

.lecturer-timeline {
  overflow: auto;
  border: 1px solid #dce3ef;
  border-radius: 14px;
  background: #fff;
}

.lecturer-timeline-head,
.lecturer-timeline-row {
  display: grid;
  grid-template-columns: 96px repeat(var(--lecturer-days, 7), minmax(105px, 1fr));
  min-width: var(--lecturer-min-width, 831px);
}

.lecturer-timeline-head > div,
.lecturer-timeline-row > div {
  min-height: 62px;
  padding: 7px;
  border-right: 1px solid #e5eaf2;
  border-bottom: 1px solid #e5eaf2;
}

.lecturer-timeline-head > div {
  min-height: auto;
  background: #f6f8fc;
  text-align: center;
}

.lecturer-timeline-head span,
.lecturer-timeline-head strong,
.lecturer-timeline-row > div:first-child span,
.lecturer-timeline-row > div:first-child strong {
  display: block;
}

.lecturer-timeline-head .today {
  background: #e6f6fc;
  color: #087ca6;
}

.lecturer-timeline-row > div:first-child {
  position: sticky;
  left: 0;
  z-index: 2;
  border-left: 5px solid var(--course-color);
  background: color-mix(in srgb, var(--course-color) 9%, #fff);
  color: color-mix(in srgb, var(--course-color) 82%, #18233a);
}

.lecturer-day {
  display: grid;
  align-content: start;
  gap: 4px;
}

.lecturer-day.weekend {
  background: #f5f6f8;
}

.lecturer-block {
  position: relative;
  display: grid;
  gap: 1px;
  padding: 6px;
  border: 0;
  border-left: 4px solid var(--course-color);
  border-radius: 7px;
  background: color-mix(in srgb, var(--course-color) 16%, #fff);
  color: color-mix(in srgb, var(--course-color) 72%, #17233b);
  cursor: pointer;
  text-align: left;
}

.lecturer-block span {
  overflow: hidden;
  font-size: .63rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lecturer-block b {
  font-size: .62rem;
}

.lecturer-block.conflict {
  outline: 2px solid #d63d4d;
  outline-offset: -1px;
  background: #fff0f2;
  color: #8f2130;
}

.lecturer-block.conflict::after {
  position: absolute;
  top: -5px;
  right: -5px;
  display: grid;
  width: 18px;
  height: 18px;
  place-items: center;
  border-radius: 50%;
  background: #d63d4d;
  color: #fff;
  content: "!";
  font-size: .68rem;
  font-weight: 900;
}

.lecturer-block.conflict-jump {
  animation: lecturer-conflict-pulse .55s ease-in-out 4;
}

@keyframes lecturer-conflict-pulse {
  50% { box-shadow: 0 0 0 7px rgb(214 61 77 / 26%); transform: translateY(-2px); }
}

.lecturer-add {
  min-height: 27px;
  border: 1px dashed #cbd3e1;
  border-radius: 7px;
  background: transparent;
  color: #6d778c;
  cursor: pointer;
}

.operations-split {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(280px, .8fr);
  gap: 12px;
}

.lecturer-module-groups {
  flex: 0 0 auto;
  min-height: 0;
  overflow: visible;
  display: grid;
  gap: 5px;
  align-content: start;
}

.lecturer-module-group {
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--module-color) 28%, #dce3ef);
  border-radius: 10px;
  background: #fff;
}

.lecturer-module-group > summary {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 6px 8px;
  background: color-mix(in srgb, var(--module-color) 13%, #fff);
  cursor: pointer;
  list-style: none;
}

.lecturer-module-group > summary::-webkit-details-marker {
  display: none;
}

.lecturer-module-group > summary > span {
  display: grid;
  width: max-content;
  min-height: 30px;
  padding: 0 8px;
  place-items: center;
  border-radius: 7px;
  background: var(--module-color);
  color: #fff;
  font-weight: 900;
  white-space: nowrap;
}

.lecturer-module-group > summary > div {
  min-width: 0;
}

.lecturer-module-group > summary > div strong {
  line-height: 1.2;
  white-space: normal;
}

.lecturer-module-group > summary div strong,
.lecturer-module-group > summary div small {
  display: block;
}

.lecturer-module-group > summary div small,
.lecturer-module-group > summary > b {
  color: #647089;
  font-size: .7rem;
}

.lecturer-module-group .lecturer-subject-grid {
  padding: 10px;
}

.lecturer-subcategory-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 3px;
  padding: 5px 7px 7px;
  align-items: stretch;
}

.lecturer-subcategory {
  --section-color: var(--module-color);
  min-width: 0;
  padding: 4px;
  border: 1px solid #e2e7ef;
  border-radius: 7px;
  background: #fff;
}

.lecturer-subcategory[open] {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 5px;
  align-items: stretch;
}

.lecturer-subcategory[data-section="V"] { --section-color: #315fa8; }
.lecturer-subcategory[data-section="R"] { --section-color: #4d83bb; }
.lecturer-subcategory[data-section="T"] { --section-color: #6a70ad; }
.lecturer-subcategory[data-section="UAW"] { --section-color: #ce9417; }
.lecturer-subcategory[data-section="E"] { --section-color: #dfad3b; }
.lecturer-subcategory[data-section="B"] { --section-color: #a97918; }
.lecturer-subcategory[data-section="F"] { --section-color: #2f8a58; }
.lecturer-subcategory[data-section="G"] { --section-color: #5b984e; }

.lecturer-subcategory > summary {
  position: relative;
  display: flex;
  gap: 3px;
  align-items: flex-start;
  justify-content: center;
  min-width: 0;
  margin: 0;
  padding: 3px 5px;
  flex-direction: column;
  color: #526078;
  font-size: .66rem;
  cursor: pointer;
  list-style: none;
}

.lecturer-subcategory > summary::-webkit-details-marker {
  display: none;
}

.lecturer-subcategory > summary strong {
  min-width: 34px;
  padding: 2px 5px;
  border-radius: 5px;
  background: color-mix(in srgb, var(--section-color) 15%, #fff);
  color: var(--section-color);
  text-align: center;
}

.lecturer-subcategory > summary span {
  width: 100%;
  overflow: visible;
  display: block;
  line-height: 1.15;
  text-overflow: clip;
  white-space: normal;
}

.lecturer-subcategory > summary i {
  position: absolute;
  opacity: 0;
  font-style: normal;
  font-weight: 900;
  transition: transform .15s ease;
}

.lecturer-subcategory:not([open]) > summary {
  margin-bottom: 0;
}

.lecturer-subcategory:not([open]) > summary i {
  transform: rotate(-90deg);
}

.lecturer-subject-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 7px;
}

.lecturer-subject-grid.compact {
  grid-template-columns: repeat(auto-fill, minmax(62px, 76px));
  gap: 5px;
  align-content: start;
  padding: 0;
}

.lecturer-subcategory[data-section="F"] .lecturer-subject-grid.compact {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 4px;
}

.lecturer-subcategory[data-section="G"] .lecturer-subject-grid.compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
}

.lecturer-subcategory[data-section="F"] .lecturer-subject-grid.compact > button,
.lecturer-subcategory[data-section="G"] .lecturer-subject-grid.compact > button {
  min-height: 32px;
  padding: 3px 4px;
}

.lecturer-subcategory[data-section="R"] .lecturer-subject-grid.compact,
.lecturer-subcategory[data-section="T"] .lecturer-subject-grid.compact,
.lecturer-subcategory[data-section="E"] .lecturer-subject-grid.compact,
.lecturer-subcategory[data-section="B"] .lecturer-subject-grid.compact {
  grid-template-columns: repeat(auto-fill, minmax(62px, 76px));
}

.lecturer-subject-grid > button {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2px 8px;
  padding: 10px;
  border: 1px solid #e1e6ef;
  border-left: 4px solid var(--module-color, #dca52e);
  border-radius: 9px;
  background: #fff;
  color: #1d2a43;
  cursor: pointer;
  text-align: left;
}

.lecturer-subject-grid > button:hover {
  background: color-mix(in srgb, var(--module-color, #dca52e) 8%, #fff);
}

.lecturer-subject-grid > button.exact { box-shadow: inset 0 0 0 1px #188b67; }
.lecturer-subject-grid > button.over { box-shadow: inset 0 0 0 1px #d94b5b; }
.lecturer-subject-grid > button > span {
  grid-row: 1 / span 2;
  color: var(--module-color, #2f459f);
  font-weight: 900;
}
.lecturer-subject-grid > button strong {
  overflow: hidden;
  font-size: .72rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lecturer-subject-grid > button b {
  color: #69758a;
  font-size: .67rem;
}

.lecturer-subject-grid.compact > button {
  grid-template-columns: 1fr;
  min-height: 36px;
  min-width: 0;
  overflow: hidden;
  padding: 4px 5px;
  border-radius: 7px;
  border-left-color: var(--section-color, var(--module-color));
  text-align: center;
}

.lecturer-subject-grid.compact > button > strong {
  color: var(--section-color, var(--module-color));
  font-size: .78rem;
}

.lecturer-subject-grid.compact > button > b {
  font-size: .7rem;
}

.lecturer-subject-ue {
  display: inline-flex;
  gap: 3px;
  align-items: baseline;
  justify-content: center;
  width: 100%;
  min-width: 0;
  padding: 2px 4px;
  border-radius: 5px;
  background: #e9eef7;
  color: #20375f !important;
  font-variant-numeric: tabular-nums;
  font-weight: 900;
  line-height: 1;
}

.lecturer-subject-ue i {
  opacity: .58;
  font-size: .68rem;
  font-style: normal;
}

.lecturer-subject-grid.compact > button.exact .lecturer-subject-ue {
  background: #dff5eb;
  color: #12694f !important;
}

.lecturer-subject-grid.compact > button.over .lecturer-subject-ue {
  background: #ffe6e9;
  color: #a82436 !important;
}

.lecturer-module-tooltip {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 8px);
  z-index: 35;
  width: max-content;
  max-width: 240px;
  padding: 7px 9px;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 5px);
  border-radius: 8px;
  background: #16223a;
  color: #fff;
  font-size: .68rem;
  line-height: 1.3;
  text-align: left;
  white-space: normal;
}

.lecturer-subject-grid.compact > button:hover .lecturer-module-tooltip,
.lecturer-subject-grid.compact > button:focus-visible .lecturer-module-tooltip {
  animation: lecturer-tooltip-show .01s linear 2s forwards;
}

@keyframes lecturer-tooltip-show {
  to { opacity: 1; transform: translate(-50%, 0); }
}

@container lecturer-panel (max-width: 460px) {
  .lecturer-subcategory-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lecturer-subcategory[data-section="V"],
  .lecturer-subcategory[data-section="UAW"],
  .lecturer-subcategory[data-section="F"],
  .lecturer-subcategory[data-section="G"] {
    grid-column: 1 / -1;
  }

  .lecturer-module-group > summary {
    grid-template-columns: max-content minmax(0, 1fr);
  }

  .lecturer-module-group > summary > b {
    grid-column: 2;
  }

  .lecturer-subjects > .card-header {
    align-items: stretch;
    flex-direction: column;
  }

  .lecturer-subjects > .card-header .card-actions {
    justify-content: flex-start;
  }
}

.lecturer-framework-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}

.lecturer-framework-editor {
  position: relative;
  display: grid;
  gap: 8px;
  box-sizing: border-box;
  width: 100%;
  max-width: 1360px;
  border-top: 6px solid var(--course-color);
}

.lecturer-framework-editor > .card-header {
  padding: 9px 12px;
  background: color-mix(in srgb, var(--course-color) 8%, #fff);
}

.lecturer-framework-editor > .card-header {
  padding-right: 290px;
}

.lecturer-framework-editor > .card-header h2 {
  color: var(--course-color);
}

.lecturer-framework-editor > .card-header p {
  display: none;
}

.modal:has(.lecturer-framework-editor) > .lecturer-framework-editor > .modal-actions {
  position: absolute;
  top: 7px;
  right: 10px;
  bottom: auto;
  left: auto;
  z-index: 2;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.modal:has(.lecturer-framework-editor) {
  box-sizing: border-box;
  width: calc(100vw - 18px);
  max-width: 1400px;
  max-height: calc(100vh - 18px);
  overflow: hidden;
}

.lecturer-framework-notice {
  display: grid;
  gap: 2px;
  padding: 10px 12px;
  border: 1px solid #bfd9ee;
  border-radius: 10px;
  background: #eef8ff;
  color: #214b6b;
}

.lecturer-framework-notice span {
  font-size: .74rem;
}

.lecturer-framework-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}

.lecturer-framework-tabs > button {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 8px;
  align-items: center;
  min-width: 0;
  padding: 5px 8px;
  border: 1px solid color-mix(in srgb, var(--module-color) 30%, #dce3ef);
  border-radius: 10px;
  background: color-mix(in srgb, var(--module-color) 6%, #fff);
  color: #293750;
  cursor: pointer;
  text-align: left;
}

.lecturer-framework-tabs > button span {
  padding: 5px 7px;
  border-radius: 7px;
  background: var(--module-color);
  color: #fff;
  font-size: .7rem;
  font-weight: 900;
}

.lecturer-framework-tabs > button strong {
  overflow: hidden;
  font-size: .76rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lecturer-framework-tabs > button small {
  color: #6c778b;
  font-size: .65rem;
}

.lecturer-framework-tabs > button.active {
  border-color: var(--module-color);
  background: color-mix(in srgb, var(--module-color) 14%, #fff);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--module-color) 14%, transparent);
}

.lecturer-framework-groups {
  display: grid;
  gap: 9px;
  overflow: visible;
}

.lecturer-framework-group:not([open]) {
  display: none;
}

.lecturer-framework-group {
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--module-color) 28%, #dce3ef);
  border-radius: 12px;
  background: #fff;
}

.lecturer-framework-group > summary {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 10px;
  align-items: center;
  padding: 6px 9px;
  list-style: none;
  background: color-mix(in srgb, var(--module-color) 10%, #fff);
}

.lecturer-framework-group > summary::-webkit-details-marker {
  display: none;
}

.lecturer-framework-group > summary label {
  display: flex;
  gap: 7px;
  align-items: center;
  cursor: pointer;
}

.lecturer-framework-group > summary label span {
  min-width: 76px;
  padding: 6px 8px;
  border-radius: 8px;
  background: var(--module-color);
  color: #fff;
  font-size: .72rem;
  font-weight: 900;
  text-align: center;
}

.lecturer-framework-group > summary div strong,
.lecturer-framework-group > summary div small {
  display: inline;
}

.lecturer-framework-group > summary div small {
  margin-left: 8px;
}

.lecturer-framework-group > summary div small {
  color: #6c778b;
  font-size: .7rem;
}

.lecturer-framework-group > summary button,
.lecturer-framework-row-actions button {
  min-height: 31px;
  border: 1px solid #cbd4e3;
  border-radius: 7px;
  background: #fff;
  color: #28427d;
  cursor: pointer;
  font-weight: 800;
}

.lecturer-framework-group.disabled > .lecturer-framework-rows {
  display: none;
}

.lecturer-framework-group.disabled {
  opacity: .64;
}

.lecturer-framework-rows {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
  min-width: 0;
  padding: 5px;
}

.lecturer-framework-row {
  display: grid;
  grid-template-columns: 18px 76px 50px minmax(92px, 1fr) 54px 76px;
  gap: 4px;
  align-items: end;
  min-width: 0;
  padding: 4px;
  border: 1px solid #e1e6ef;
  border-radius: 9px;
  background: #fbfcfe;
}

.lecturer-framework-row label {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.lecturer-framework-row label > span {
  color: #6c778b;
  font-size: .61rem;
  font-weight: 800;
  text-transform: uppercase;
}

.lecturer-framework-row input,
.lecturer-framework-row select,
.lecturer-framework-row textarea {
  width: 100%;
  min-height: 32px;
  padding: 4px 6px;
  border: 1px solid #cbd4e3;
  border-radius: 7px;
  background: #fff;
  color: #1d2a43;
  font: inherit;
}

.lecturer-framework-row .title {
  grid-column: auto;
  grid-row: auto;
}

.lecturer-framework-row textarea {
  min-height: 32px;
  overflow: hidden;
  resize: none;
  line-height: 1.2;
  white-space: normal;
  overflow-wrap: anywhere;
}

.lecturer-framework-drag {
  align-self: center;
  color: #9ba5b6;
  cursor: grab;
  text-align: center;
}

.lecturer-framework-row-actions {
  display: flex;
  gap: 2px;
}

.lecturer-framework-row-actions button {
  width: 24px;
  padding: 0;
}

.lecturer-framework-row-actions button.danger {
  color: #bd2f42;
}

@media (max-width: 900px) {
  .modal:has(.lecturer-framework-editor) {
    overflow: auto;
  }

  .lecturer-framework-editor > .card-header {
    padding-right: 12px;
  }

  .modal:has(.lecturer-framework-editor) > .lecturer-framework-editor > .modal-actions {
    position: static;
  }

  .lecturer-framework-rows {
    grid-template-columns: 1fr;
  }

  .lecturer-framework-row {
    grid-template-columns: 25px minmax(92px, .8fr) minmax(72px, .6fr) 76px auto;
  }

  .lecturer-framework-row .title {
    grid-column: 2 / -1;
    grid-row: 2;
  }
}

@media (max-width: 620px) {
  .lecturer-framework-row {
    grid-template-columns: 22px 1fr 1fr;
  }

  .lecturer-framework-row .target,
  .lecturer-framework-row-actions {
    grid-row: 2;
  }

  .lecturer-framework-row .title {
    grid-column: 1 / -1;
    grid-row: 3;
  }
}

.lecturer-bkf-catalog {
  display: grid;
  gap: 12px;
}

.lecturer-bkf-catalog > section > h4 {
  margin: 0 0 7px;
  color: #536178;
  font-size: .72rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.lecturer-bkf-catalog > section > div {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 8px;
}

.lecturer-bkf-catalog article {
  display: grid;
  grid-template-columns: 42px 1fr auto;
  gap: 9px;
  align-items: center;
  padding: 10px;
  border: 1px solid #cfe4e8;
  border-radius: 10px;
  background: #f4fbfc;
}

.lecturer-bkf-catalog article > span {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 10px;
  background: #168a9b;
  color: #fff;
  font-size: 1.1rem;
}

.lecturer-bkf-catalog article strong,
.lecturer-bkf-catalog article b,
.lecturer-bkf-catalog article small {
  display: block;
}

.lecturer-bkf-catalog article strong {
  color: #168a9b;
  font-size: .67rem;
}

.lecturer-bkf-catalog article b {
  font-size: .75rem;
}

.lecturer-bkf-catalog article small {
  margin-top: 2px;
  color: #748096;
  font-size: .62rem;
}

.lecturer-bkf-catalog article em {
  color: #168a9b;
  font-size: .72rem;
  font-style: normal;
  font-weight: 900;
}

.lecturer-directory {
  max-height: 520px;
  overflow: auto;
}

.lecturer-directory > article {
  display: grid;
  grid-template-columns: 42px 1fr auto;
  gap: 9px;
  align-items: center;
  padding: 9px 0;
  border-bottom: 1px solid #e7eaf1;
}

.lecturer-directory > article > span {
  display: grid;
  width: 38px;
  height: 34px;
  place-items: center;
  border-radius: 9px;
  background: #eeeafd;
  color: #63489a;
  font-weight: 900;
}

.lecturer-directory article div strong,
.lecturer-directory article div small {
  display: block;
}

.lecturer-directory article div small {
  color: #7a8497;
  font-size: .65rem;
}

.lecturer-directory article > b {
  color: #188b67;
  font-size: .66rem;
}

.lecturer-directory article.unlinked > b {
  color: #a06d0d;
}

.lecturer-rooms-modal {
  display: grid;
  gap: 12px;
  width: min(820px, calc(100vw - 32px));
}

.lecturer-room-create {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  gap: 9px;
  align-items: end;
  padding: 11px;
  border: 1px solid #c9d9ef;
  border-radius: 11px;
  background: #f4f8ff;
}

.lecturer-room-list {
  display: grid;
  gap: 7px;
}

.lecturer-room-list > form {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) 86px 110px auto auto;
  gap: 7px;
  align-items: center;
  padding: 8px;
  border: 1px solid #dce3ef;
  border-radius: 10px;
  background: #fff;
}

.lecturer-room-list > form.archived {
  opacity: .66;
  background: #f4f5f8;
}

.lecturer-room-list input,
.lecturer-room-list select {
  min-width: 0;
  min-height: 38px;
  padding: 0 9px;
  border: 1px solid #cfd7e6;
  border-radius: 8px;
  background: #fff;
}

.lecturer-quick-planner {
  display: grid;
  gap: 14px;
}

@container (max-width: 620px) {
  .modal:not(.modal-pdf-designer) > form.lecturer-quick-planner > .modal-actions {
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
  }
}

.lecturer-planner-heading {
  display: grid;
  grid-template-columns: 1fr minmax(190px, 240px);
  gap: 16px;
  align-items: end;
  padding: 14px 16px;
  border-left: 8px solid var(--course-color);
  border-radius: 12px;
  background: color-mix(in srgb, var(--course-color) 9%, #f7f9fd);
}

.lecturer-planner-heading h2,
.lecturer-planner-heading p {
  margin: 2px 0;
}

.lecturer-planner-heading > div > span {
  color: var(--course-color);
  font-size: .7rem;
  font-weight: 900;
}

.lecturer-planner-heading > label {
  display: grid;
  gap: 4px;
  color: #5c6880;
  font-size: .7rem;
  font-weight: 800;
}

.lecturer-planner-heading input {
  min-height: 42px;
  border: 1px solid #cfd7e6;
  border-radius: 9px;
  background: #fff;
  padding: 0 10px;
}

.operation-inline-warning {
  padding: 10px 12px;
  border: 1px solid #e7ba52;
  border-radius: 9px;
  background: #fff7df;
  color: #78570b;
  font-size: .76rem;
  font-weight: 700;
}

.lecturer-planner-steps {
  display: grid;
  grid-template-columns: minmax(220px, .9fr) minmax(300px, 1.35fr) minmax(190px, .7fr);
  gap: 10px;
  min-height: 390px;
}

.lecturer-choice-panel {
  min-width: 0;
  margin: 0;
  padding: 11px;
  border: 1px solid #dce3ef;
  border-radius: 12px;
  background: #f9fbfe;
}

.lecturer-choice-panel > legend {
  padding: 0 7px 0 0;
  color: #1d2a43;
  font-size: .82rem;
  font-weight: 900;
}

.lecturer-choice-panel > legend span {
  display: inline-grid;
  width: 25px;
  height: 25px;
  margin-right: 5px;
  place-items: center;
  border-radius: 50%;
  background: #233d8f;
  color: #fff;
}

.lecturer-picker-search {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 7px;
  align-items: center;
  margin-bottom: 8px;
  padding: 0 9px;
  border: 1px solid #cfd7e6;
  border-radius: 9px;
  background: #fff;
}

.lecturer-picker-search input {
  min-width: 0;
  min-height: 38px;
  border: 0;
  outline: 0;
}

.lecturer-picker-list,
.lecturer-module-picker {
  display: grid;
  gap: 6px;
  max-height: 340px;
  overflow: auto;
}

.lecturer-person-choice {
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 1px 8px;
  align-items: center;
  padding: 7px;
  border: 1px solid #dce3ef;
  border-radius: 9px;
  background: #fff;
  cursor: pointer;
}

.lecturer-person-choice:has(input:checked) {
  border-color: #2f459f;
  background: #eef2ff;
  box-shadow: inset 0 0 0 1px #2f459f;
}

.lecturer-person-choice input,
.lecturer-module-picker label input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.lecturer-person-choice > span {
  display: grid;
  grid-row: 1 / span 2;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 9px;
  background: #e8edfb;
  color: #27408e;
  font-size: .7rem;
  font-weight: 900;
}

.lecturer-person-choice strong {
  overflow: hidden;
  font-size: .75rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lecturer-person-choice small {
  color: #6f7a90;
  font-size: .62rem;
}

.lecturer-module-picker section {
  display: grid;
  gap: 5px;
  padding: 7px;
  border: 1px solid color-mix(in srgb, var(--module-color) 28%, #dce3ef);
  border-radius: 10px;
  background: color-mix(in srgb, var(--module-color) 7%, #fff);
}

.lecturer-module-picker h4 {
  margin: 0 0 2px;
  color: var(--module-color);
  font-size: .76rem;
}

.lecturer-module-picker h4 small {
  margin-left: 4px;
  color: #6d778c;
  font-size: .6rem;
  font-weight: 600;
}

.lecturer-module-picker label {
  display: grid;
  grid-template-columns: 52px 1fr auto;
  gap: 7px;
  align-items: center;
  padding: 7px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
}

.lecturer-module-picker label:has(input:checked) {
  border-color: var(--module-color);
  box-shadow: inset 4px 0 var(--module-color);
}

.lecturer-module-picker label > span {
  color: var(--module-color);
  font-size: .7rem;
  font-weight: 900;
}

.lecturer-module-picker label > strong {
  overflow: hidden;
  font-size: .68rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lecturer-module-picker label > small {
  color: #69758a;
  font-size: .62rem;
}

.lecturer-ue-panel > p {
  margin: 0 0 10px;
  color: #6d778c;
  font-size: .68rem;
}

.lecturer-ue-buttons {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
}

.lecturer-ue-buttons button {
  min-height: 38px;
  border: 1px solid #cfd7e6;
  border-radius: 8px;
  background: #fff;
  color: #243a84;
  font-weight: 900;
  cursor: pointer;
}

.lecturer-ue-buttons button.active {
  border-color: #2f459f;
  background: #2f459f;
  color: #fff;
}

.lecturer-ue-custom {
  display: grid;
  gap: 4px;
  margin-top: 12px;
  color: #5e6a81;
  font-size: .68rem;
  font-weight: 800;
}

.lecturer-ue-custom input {
  min-height: 40px;
  border: 1px solid #cfd7e6;
  border-radius: 8px;
  padding: 0 9px;
}

.lecturer-ue-result {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0 7px;
  align-items: center;
  margin-top: 14px;
  padding: 12px;
  border-radius: 10px;
  background: #edf2ff;
  color: #243a84;
}

.lecturer-ue-result strong {
  grid-row: 1 / span 2;
  font-size: 1.8rem;
}

.lecturer-ue-result span {
  font-weight: 900;
}

.lecturer-ue-result small {
  color: #68758d;
}

.lecturer-advanced {
  border: 1px solid #dce3ef;
  border-radius: 10px;
  background: #fff;
}

.lecturer-advanced > summary {
  padding: 11px 13px;
  color: #33466e;
  cursor: pointer;
  font-size: .75rem;
  font-weight: 800;
}

.lecturer-advanced > .form-grid {
  padding: 0 13px 13px;
}

@media (max-width: 850px) {
  .lecturer-planner-steps {
    grid-template-columns: 1fr;
  }

  .lecturer-picker-list,
  .lecturer-module-picker {
    max-height: 250px;
  }

  .lecturer-room-list > form {
    grid-template-columns: 1fr 86px 110px;
  }
}

@media (max-width: 620px) {
  .lecturer-planner-heading {
    grid-template-columns: 1fr;
  }

  .lecturer-subcategory-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lecturer-subcategory-list > .lecturer-subcategory:first-child {
    grid-column: 1 / -1;
  }

  .lecturer-module-group > summary {
    grid-template-columns: 74px 1fr;
  }

  .lecturer-module-group > summary > b {
    display: none;
  }

  .lecturer-room-create,
  .lecturer-room-list > form {
    grid-template-columns: 1fr;
  }
}

.fleet-category-list {
  display: grid;
  gap: 10px;
}

.fleet-category {
  border: 1px solid #dce3ef;
  border-radius: 14px;
  background: #fff;
}

.fleet-category > summary {
  display: grid;
  grid-template-columns: 38px 1fr auto;
  gap: 8px;
  align-items: center;
  padding: 13px 16px;
  cursor: pointer;
}

.fleet-category > summary > span {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 10px;
  background: #e7f5fb;
  color: #087ca6;
  font-size: 1.15rem;
}

.fleet-category > summary > b {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 50%;
  background: #eef1f6;
}

.fleet-vehicle-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
  gap: 9px;
  padding: 0 12px 12px;
}

.fleet-vehicle-card {
  display: grid;
  grid-template-columns: 50px 1fr auto;
  gap: 9px;
  align-items: center;
  padding: 12px;
  border: 1px solid #e0e5ed;
  border-radius: 12px;
  background: #fff;
}

.fleet-vehicle-card.attention { border-color: #e7c66c; }
.fleet-vehicle-card.grounded { border-color: #ed9ba5; background: #fff7f8; }
.fleet-vehicle-symbol {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 13px;
  background: #eef1fb;
  color: #2f459f;
  font-size: 1.3rem;
}
.fleet-vehicle-card div strong,
.fleet-vehicle-card div span,
.fleet-vehicle-card div small {
  display: block;
}
.fleet-vehicle-card div span,
.fleet-vehicle-card div small {
  color: #748095;
  font-size: .67rem;
}
.fleet-vehicle-card > b {
  color: #188b67;
  font-size: .68rem;
}
.fleet-vehicle-card.grounded > b { color: #c43d4e; }
.fleet-vehicle-card .button {
  grid-column: 2 / -1;
  justify-self: start;
}

.fleet-issue-list,
.fleet-service-list {
  display: grid;
  gap: 7px;
}

.fleet-issue-row,
.fleet-service-row {
  display: grid;
  gap: 12px;
  align-items: center;
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #dfe4ed;
  border-radius: 11px;
  background: #fff;
  color: #1d2940;
  cursor: pointer;
  text-align: left;
}

.fleet-issue-row {
  grid-template-columns: 95px 1fr 140px 80px;
  border-left: 5px solid #8490a7;
}
.fleet-issue-row.severity-high { border-left-color: #e2a52b; }
.fleet-issue-row.severity-critical { border-left-color: #d94b5b; }
.fleet-issue-row span strong,
.fleet-issue-row span small,
.fleet-service-row span strong,
.fleet-service-row span small {
  display: block;
}
.fleet-issue-row small,
.fleet-service-row small {
  color: #778196;
  font-size: .68rem;
}
.fleet-issue-row i {
  color: #188b67;
  font-size: .68rem;
  font-style: normal;
  font-weight: 800;
}
.fleet-issue-row.severity-critical i { color: #c23c4d; }
.fleet-severity {
  font-size: .69rem;
  font-weight: 900;
}
.fleet-service-row {
  grid-template-columns: 100px 1fr 120px;
}

.lecturer-course-manager,
.lecturer-course-members {
  display: grid;
  gap: 16px;
  width: min(820px, 92vw);
}

.lecturer-course-manager-list,
.lecturer-course-member-list {
  display: grid;
  gap: 8px;
}

.lecturer-course-manager-list article {
  display: grid;
  grid-template-columns: 8px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border: 1px solid #dce3ee;
  border-radius: 12px;
  background: #fff;
}

.lecturer-course-manager-list article > i {
  width: 8px;
  height: 44px;
  border-radius: 999px;
  background: var(--course-color);
}

.lecturer-course-manager-list article strong,
.lecturer-course-manager-list article span,
.lecturer-course-manager-list article small,
.lecturer-course-member-list article span,
.lecturer-course-member-list article small {
  display: block;
}

.lecturer-course-manager-list article small,
.lecturer-course-member-list article small {
  color: #6f7b91;
  font-size: .76rem;
}

.lecturer-course-member-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lecturer-course-member-list article {
  padding: 11px 12px;
  border: 1px solid #dce3ee;
  border-radius: 10px;
  background: #f8fafc;
}

@media (max-width: 1050px) {
  .operation-metrics { grid-template-columns: repeat(2, minmax(140px, 1fr)); }
  .operations-split { grid-template-columns: 1fr; }
  .office-task-board { grid-template-columns: repeat(var(--office-task-column-count,4), minmax(250px, 290px)); }
  .lecturer-track-tiles { grid-template-columns: repeat(2, minmax(170px, 1fr)); }
  .lecturer-planning-controls { grid-template-columns: 1fr 1fr; }
  .lecturer-range-control { grid-column: 1 / -1; }
  .lecturer-planning-layout { grid-template-columns: 1fr; height: auto; }
  .lecturer-planning-layout > .lecturer-subjects,
  .lecturer-planning-layout > .lecturer-week-matrix,
  .lecturer-planning-layout > .lecturer-calendar { position: static; height: min(720px, calc(100vh - 120px)); min-height: 560px; }
  .lecturer-planning-resizer { display: none; }
}

@media (max-width: 720px) {
  .operations-hero,
  .operation-link-panel,
  .operation-placeholder { align-items: stretch; flex-direction: column; }
  .operation-metrics { grid-template-columns: 1fr 1fr; }
  .operations-toolbar { align-items: stretch; }
  .operations-period { justify-content: space-between; width: 100%; }
  .operations-period strong { min-width: 0; }
  .fleet-issue-row,
  .fleet-service-row { grid-template-columns: 1fr; gap: 5px; }
  .fleet-vehicle-grid { grid-template-columns: 1fr; }
  .lecturer-track-tiles { grid-template-columns: 1fr; }
  .lecturer-planning-controls { grid-template-columns: 1fr; }
  .lecturer-range-control { grid-template-columns: auto auto 1fr auto; }
  .lecturer-range-control label:first-of-type { grid-column: 1 / -1; }
  .lecturer-conflict-list > button { grid-template-columns: 1fr; }
  .lecturer-course-member-list { grid-template-columns: 1fr; }
}
.modal-action-progress {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 16px;
  padding: 11px 14px;
  border: 1px solid #b9d8ee;
  border-radius: 10px;
  background: #eef8ff;
  color: #123f65;
  font-weight: 800;
}

.modal-action-progress span {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  border: 2px solid #9cc7e4;
  border-top-color: #174c75;
  border-radius: 50%;
  animation: modal-action-spin 0.7s linear infinite;
}

.category-delete-confirmation {
  display: grid;
  gap: 3px;
  margin-top: 16px;
  padding: 12px 14px;
  border: 1px solid #f0a2a7;
  border-radius: 10px;
  background: #fff2f3;
  color: #8c2028;
}

.category-delete-confirmation span {
  color: #6c3338;
  font-size: 0.9rem;
}

form[aria-busy="true"] {
  cursor: progress;
}

@keyframes modal-action-spin {
  to { transform: rotate(360deg); }
}

.lecturer-measure-hint {
  min-height: 0;
}

.lecturer-measure-rule {
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border: 1px solid #b9ddeb;
  border-radius: 10px;
  background: #eef9fd;
  color: #18374b;
}

.lecturer-measure-rule strong {
  color: #0a4667;
}

.lecturer-measure-rule small {
  line-height: 1.45;
}

.lecturer-measure-rule a,
.lecturer-legal-note a {
  color: #1744a0;
  font-weight: 800;
}

.modal:has(.lecturer-attendance-modal) {
  width: min(96vw, 1500px);
  max-width: min(96vw, 1500px);
  height: min(94vh, 980px);
  max-height: 94vh;
  overflow: hidden;
}

.lecturer-attendance-modal {
  display: grid;
  grid-template-rows: auto auto auto auto minmax(0, 1fr) auto;
  gap: 12px;
  min-height: 0;
  height: 100%;
}

.lecturer-attendance-heading {
  align-items: end;
  gap: 18px;
}

.lecturer-attendance-heading .eyebrow {
  display: block;
  margin-bottom: 4px;
  color: #176d91;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.lecturer-attendance-day {
  display: flex;
  align-items: end;
  gap: 7px;
}

.lecturer-attendance-day label {
  display: grid;
  gap: 4px;
  color: #526579;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
}

.lecturer-attendance-day input {
  min-height: 38px;
}

.lecturer-attendance-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 9px;
}

.lecturer-attendance-metrics article {
  display: grid;
  gap: 2px;
  padding: 10px 12px;
  border: 1px solid #d7e1ec;
  border-radius: 10px;
  background: #f8fbfe;
}

.lecturer-attendance-metrics span,
.lecturer-attendance-metrics small {
  color: #607185;
  font-size: 0.73rem;
}

.lecturer-attendance-metrics strong {
  color: #17283d;
  font-size: 1.25rem;
}

.lecturer-legal-note,
.lecturer-interruption-list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
  padding: 9px 12px;
  border-radius: 9px;
  background: #f0f6ff;
  color: #324d70;
  font-size: 0.82rem;
}

.lecturer-interruption-list {
  border: 1px solid #ead89c;
  background: #fff9e7;
  color: #6e5512;
}

.lecturer-interruption-list span {
  padding: 3px 8px;
  border-radius: 999px;
  background: #fff;
}

.lecturer-legacy-attendance-note {
  margin: 10px 0;
  padding: 9px 12px;
  border: 1px solid #9ac9e3;
  border-radius: 10px;
  background: #edf8ff;
  color: #174863;
  font-size: 12px;
  font-weight: 700;
}

.lecturer-attendance-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.lecturer-attendance-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.lecturer-attendance-legend span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 7px;
  border: 1px solid #dbe3ec;
  border-radius: 999px;
  background: #fff;
  color: #526579;
  font-size: 0.7rem;
}

.lecturer-attendance-legend b {
  display: inline-grid;
  min-width: 19px;
  min-height: 19px;
  place-items: center;
  border-radius: 50%;
  background: #e9eef5;
  color: #20344e;
}

.lecturer-attendance-table-wrap {
  min-height: 0;
  border: 1px solid #d8e1ec;
  border-radius: 10px;
}

.lecturer-attendance-table {
  width: max-content;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.lecturer-attendance-table th,
.lecturer-attendance-table td {
  padding: 5px;
  text-align: center;
  vertical-align: middle;
}

.lecturer-attendance-table thead th {
  position: sticky;
  z-index: 2;
  top: 0;
  min-width: 56px;
  background: #edf3f9;
}

.lecturer-attendance-table thead th strong,
.lecturer-attendance-table thead th small {
  display: block;
}

.lecturer-attendance-table .participant {
  position: sticky;
  z-index: 3;
  left: 0;
  width: 260px;
  min-width: 260px;
  max-width: 260px;
  text-align: left;
  background: #fff;
  box-shadow: 1px 0 #d8e1ec;
}

.lecturer-attendance-table thead .participant {
  z-index: 4;
  background: #edf3f9;
}

.lecturer-attendance-table tbody .participant strong,
.lecturer-attendance-table tbody .participant small {
  display: block;
}

.lecturer-attendance-table tbody .participant small {
  margin-top: 2px;
  color: #66778a;
  font-size: 0.72rem;
}

.attendance-tolerance {
  display: inline-block;
  margin-top: 5px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #eaf6ef;
  color: #176f48;
  font-size: 0.68rem;
  font-weight: 800;
}

.attendance-tolerance.warning {
  background: #fff2c9;
  color: #795a00;
}

.attendance-tolerance.danger {
  background: #ffe5e7;
  color: #a6212d;
}

.attendance-unit {
  width: 50px;
  min-width: 50px;
  height: 34px;
  padding: 0 2px;
  border: 1px solid #ccd7e4;
  border-radius: 7px;
  color: #25364a;
  font-size: 0.72rem;
  font-weight: 900;
}

.attendance-unit.status-present { border-color: #63bd86; background: #dff5e8; color: #12623b; }
.attendance-unit.status-sick { border-color: #e4ae40; background: #fff2c9; color: #725300; }
.attendance-unit.status-excused { border-color: #6da8dc; background: #e6f2fd; color: #175786; }
.attendance-unit.status-unexcused { border-color: #e46670; background: #ffe4e6; color: #98222d; }
.attendance-unit.status-vacation { border-color: #8a77d0; background: #eee9ff; color: #4e3898; }
.attendance-unit.status-internship { border-color: #31a8a3; background: #dcf6f4; color: #0c6662; }
.attendance-unit.status-other { border-color: #97a3b2; background: #edf0f4; color: #435162; }

@media (max-width: 900px) {
  .lecturer-attendance-heading,
  .lecturer-attendance-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .lecturer-attendance-metrics {
    grid-template-columns: repeat(2, minmax(140px, 1fr));
  }

  .lecturer-attendance-table .participant {
    width: 210px;
    min-width: 210px;
    max-width: 210px;
  }
}
.navigation-loading {
  min-height: 150px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  color: var(--text, #16213a);
}

.navigation-loading div {
  display: grid;
  gap: 4px;
}

.navigation-loading small {
  color: var(--muted, #667085);
}

.navigation-loading-spinner {
  width: 28px;
  height: 28px;
  border: 3px solid rgba(42, 72, 158, 0.18);
  border-top-color: var(--primary, #2a489e);
  border-radius: 50%;
  animation: navigation-loading-spin 0.75s linear infinite;
}

@keyframes navigation-loading-spin {
  to { transform: rotate(360deg); }
}

@media (max-width: 1280px) {
  .vacation-team-months { grid-template-columns:repeat(4,minmax(145px,1fr)); }
  .vacation-person-year-grid { grid-template-columns:repeat(2,minmax(260px,1fr)); }
  .vacation-person-metrics { grid-template-columns:repeat(3,minmax(120px,1fr)); }
}

@media (max-width: 760px) {
  .vacation-year-matrix > header,.vacation-team-intro,.vacation-team-card > header,.vacation-person-year-head,.vacation-school-holiday-note { align-items:stretch; flex-direction:column; }
  .vacation-team-months,.vacation-person-year-grid { grid-template-columns:1fr; }
  .vacation-person-metrics { grid-template-columns:repeat(2,minmax(110px,1fr)); }
  .vacation-person-year-head select { width:100%; min-width:0; }
  .vacation-school-holiday-note a { margin-left:0; }
}
/* Konsolidierter Stand: Die verbesserte Arbeitszentrale bleibt die einzige
   sichtbare Warteschlange, während die übrige Oberfläche das V2-Design nutzt. */
#content.ki-dashboard-enhanced > .page-section {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Moderne, durchgängige Arbeitsoberfläche */
.ki-interface .card {
  border-color: #d7e1ec;
  border-radius: 15px;
  box-shadow: 0 8px 28px rgba(21, 43, 72, .055), 0 1px 2px rgba(21, 43, 72, .04);
}
.ki-interface .field-inline label {
  margin-bottom: 6px;
  color: #53677d;
  font-size: 9px;
  letter-spacing: .085em;
}
.ki-interface .field-inline select,
.ki-interface .field-inline input {
  min-height: 42px;
  padding: 9px 12px;
  border-color: #c8d5e3;
  border-radius: 11px;
  background-color: #fff;
  box-shadow: 0 1px 2px rgba(25, 53, 82, .035);
  transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}
.ki-interface .field-inline select:hover,
.ki-interface .field-inline input:hover { border-color: #91a9c1; }
.ki-interface .field-inline select:focus,
.ki-interface .field-inline input:focus {
  border-color: #2c68b7;
  box-shadow: 0 0 0 4px rgba(44, 104, 183, .12);
}

/* Kursplaner: fortlaufende Timeline statt künstlichem Wochenfenster */
.planner-page { gap: 12px; }
.planner-command-bar {
  position: sticky;
  top: calc(var(--ki-topbar, 72px) + var(--ki-contextbar, 44px));
  z-index: 53;
  margin: 0;
  padding: 14px;
  align-items: flex-end;
  gap: 10px;
  border: 1px solid #d5e1ee;
  border-radius: 16px;
  background:
    radial-gradient(circle at 90% 0, rgba(52, 126, 201, .09), transparent 34%),
    linear-gradient(135deg, rgba(255,255,255,.98), rgba(246,249,253,.98));
  box-shadow: 0 8px 26px rgba(25, 55, 88, .065);
}
.planner-command-bar > .spacer { min-width: 0; }
.planner-course-field { flex: 1 1 250px; min-width: 230px; }
.planner-range-field { flex: 0 1 125px; min-width: 112px; }
.planner-date-navigation {
  flex: 0 1 430px;
  min-width: 360px;
  padding: 4px;
  display: grid;
  grid-template-columns: auto minmax(150px, 1fr) auto;
  gap: 5px;
  align-items: end;
  border: 1px solid #d9e3ed;
  border-radius: 13px;
  background: rgba(255,255,255,.78);
}
.planner-date-navigation .field-inline { min-width: 0; }
.planner-date-navigation .field-inline label { padding-left: 4px; }
.planner-date-navigation .field-inline input { border-color: transparent; background: #f7faff; box-shadow: none; }
.planner-navigation-button {
  min-height: 42px;
  padding: 5px 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 0;
  border-radius: 10px;
  color: #284b72;
  background: transparent;
  font-weight: 800;
  transition: color .16s ease, background-color .16s ease, transform .16s ease;
}
.planner-navigation-button span { font-size: 25px; font-weight: 400; line-height: 1; }
.planner-navigation-button small { white-space: nowrap; font-size: 9px; }
.planner-navigation-button:hover,
.planner-navigation-button:focus-visible { color: #fff; background: #2856ad; }
.planner-navigation-button:active { transform: scale(.98); }
.planner-today-button { min-height: 42px; color: #234f86; border-color: #b9cade; background: #f8fbff; }
.planner-today-button span { font-size: 16px; }
.planner-continuous-status {
  flex: 1 1 220px;
  min-width: 210px;
  min-height: 52px;
  padding: 7px 11px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2px 10px;
  align-content: center;
  border: 1px solid #cce4db;
  border-radius: 12px;
  color: #315b4b;
  background: linear-gradient(135deg, #f3fbf7, #edf8f4);
}
.planner-continuous-status > span { display: inline-flex; align-items: center; gap: 6px; font-size: 9px; font-weight: 900; letter-spacing: .055em; text-transform: uppercase; }
.planner-continuous-status > span i { width: 7px; height: 7px; border-radius: 50%; background: #16815d; box-shadow: 0 0 0 4px rgba(22,129,93,.12); }
.planner-continuous-status strong { justify-self: end; color: #183e31; font-size: 11px; }
.planner-continuous-status small { grid-column: 1 / -1; color: #5b786d; font-size: 9px; }
.planner-timeline-card { overflow: hidden; border-radius: 16px; }
.planner-timeline-card .planner-compact-legend {
  min-height: 42px;
  padding: 8px 12px;
  border-bottom: 1px solid #dce5ee;
  background: linear-gradient(180deg, #fff, #f8fafc);
}
.timeline-global {
  max-height: calc(100vh - 290px);
  min-height: 430px;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  scroll-behavior: smooth;
  background: #f7f9fc;
}
.timeline-global:focus-visible { outline: 3px solid rgba(8,164,223,.35); outline-offset: -3px; }
.timeline-global::-webkit-scrollbar { width: 12px; height: 12px; }
.timeline-global::-webkit-scrollbar-track { background: #e9eef4; }
.timeline-global::-webkit-scrollbar-thumb { border: 3px solid #e9eef4; border-radius: 999px; background: #8ea4bc; }
.timeline-global::-webkit-scrollbar-thumb:hover { background: #5f7d9e; }
.timeline-v2 .timeline-week-band { color: #345675; background: #edf3f8; }
.timeline-v2 .timeline-day-header { background: rgba(255,255,255,.96); }

@media (max-width: 1260px) {
  .planner-course-field { flex-basis: 220px; }
  .planner-date-navigation { flex-basis: 390px; }
  .planner-continuous-status { flex-basis: 100%; order: 5; }
}
@media (max-width: 760px) {
  .planner-command-bar { align-items: stretch; }
  .planner-course-field,
  .planner-range-field,
  .planner-date-navigation,
  .planner-continuous-status { width: 100%; min-width: 0; flex-basis: 100%; }
  .planner-date-navigation { grid-template-columns: 46px minmax(0, 1fr) 46px; }
  .planner-navigation-button { padding: 5px; }
  .planner-navigation-button small { display: none; }
  .planner-today-button { flex: 1 1 100%; }
  .planner-continuous-status { order: initial; }
  .timeline-global { max-height: calc(100vh - 250px); min-height: 360px; }
}

/* Kursplaner: kompakter Arbeitskopf und gemeinsame Fixierübersicht */
.planner-page { padding-top: 0; gap: 8px; }
.planner-command-bar {
  padding: 8px 10px;
  gap: 6px;
  border-radius: 12px;
  box-shadow: 0 5px 18px rgba(25, 55, 88, .055);
}
.planner-command-bar .field-inline label {
  margin-bottom: 2px;
  font-size: 8px;
  letter-spacing: .04em;
}
.planner-command-bar .field-inline select,
.planner-command-bar .field-inline input,
.planner-command-bar > .button,
.planner-command-bar .planner-more-actions > summary {
  min-height: 36px;
  height: 36px;
  padding-top: 6px;
  padding-bottom: 6px;
  border-radius: 9px;
}
.planner-course-field { flex: 0 1 180px; min-width: 165px; }
.planner-course-field { position: relative; }
.planner-course-field > details > summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; height: 38px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 9px; background: #fff; cursor: pointer; list-style: none; white-space: nowrap; overflow: hidden; }
.planner-course-field > details > summary::-webkit-details-marker { display: none; }
.planner-course-field > details > summary::after { content: "⌄"; flex: none; }
.planner-course-menu { position: absolute; top: 100%; left: 0; z-index: 70; width: max(260px, 100%); max-width: min(360px, 90vw); max-height: min(380px, 60vh); overflow-y: auto; display: grid; gap: 3px; padding: 8px; border: 1px solid var(--line); border-radius: 9px; background: #fff; box-shadow: 0 12px 30px #122a4530; }
.planner-course-menu > .button { justify-self: stretch; }
.planner-command-bar .planner-course-field .planner-course-option { display: flex; align-items: center; gap: 9px; min-height: 36px; padding: 7px 8px; border-radius: 6px; cursor: pointer; color: var(--text); font-size: 13px; font-weight: 500; text-transform: none; letter-spacing: normal; }
.planner-course-field .planner-course-option input[type="checkbox"] { width: 16px; min-width: 16px; height: 16px; min-height: 16px; margin: 0; flex: 0 0 16px; }
.planner-course-option:hover, .planner-course-option:focus-within { background: #edf4fb; }
.planner-course-option input { flex: none; }
.planner-range-field { flex: 0 1 92px; min-width: 88px; }
.planner-date-navigation {
  flex: 0 1 270px;
  min-width: 250px;
  padding: 2px;
  grid-template-columns: auto minmax(130px, 1fr) auto;
  gap: 2px;
  border-radius: 10px;
}
.planner-navigation-button {
  min-height: 34px;
  height: 34px;
  padding: 3px 7px;
  gap: 4px;
  border-radius: 8px;
}
.planner-navigation-button span { font-size: 20px; }
.planner-navigation-button small { display: none; }
.planner-today-button { min-height: 36px; height: 36px; padding: 6px 10px; }
.planner-continuous-status {
  display: none;
  flex: 1 1 235px;
  min-width: 220px;
  min-height: 36px;
  height: 36px;
  padding: 5px 9px;
  grid-template-columns: auto 1fr;
  gap: 1px 8px;
  border-radius: 9px;
}
.planner-continuous-status > span { font-size: 8px; }
.planner-continuous-status strong { font-size: 9px; }
.planner-continuous-status small { display: none; }
.planner-timeline-card .planner-compact-legend {
  min-height: 32px;
  padding: 5px 9px;
}
.planner-visible-range-chip { margin-right: 2px; }
.planner-visible-range-chip b { margin-right: 3px; }
.timeline-v2 .timeline-week-row th { height: 22px; }
.timeline-v2 .timeline-week-row th[rowspan="2"] { height: 58px; }
.timeline-v2 .timeline-day-row th { top: 22px; height: 36px; }
.timeline-v2 .timeline-day-header {
  height: 36px !important;
  padding: 2px 4px !important;
  line-height: 1.05;
  white-space: nowrap;
}
.timeline-v2 .timeline-day-header strong { display: inline; margin-right: 3px; }
.timeline-v2 .timeline-day-header .holiday-name { display: none; }

.planner-participant-instructor {
  width: fit-content;
  max-width: 100%;
  padding: 2px 6px;
  overflow: hidden;
  border-radius: 999px;
  color: #fff;
  background: #235ca8;
  font-size: 8px;
  font-weight: 850;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.planner-participant-requirements {
  margin-top: 3px;
  padding-bottom: 1px;
  display: flex;
  align-items: center;
  gap: 3px;
  overflow-x: auto;
  scrollbar-width: thin;
}
.planner-participant-requirement {
  min-width: max-content;
  padding: 2px 5px 2px 3px;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  border: 1px solid #d9e1e9;
  border-radius: 6px;
  color: #40566c;
  background: #f8fafc;
  font-size: 8px;
}
.planner-participant-requirement i { width: 4px; height: 14px; border-radius: 99px; background: var(--lesson-color); }
.planner-participant-requirement b { color: #1e456c; }
.planner-participant-requirement em {
  padding: 1px 3px;
  border-radius: 4px;
  color: #3f5670;
  background: #e9eff5;
  font-size: 7px;
  font-style: normal;
  font-weight: 800;
}
.planner-participant-requirement strong { font-size: 8px; }
.planner-participant-requirement.missing { color: #972738; border-color: #efbcc4; background: #fff3f4; }
.planner-participant-requirement.complete { color: #126346; border-color: #b9dfce; background: #effaf5; }
.planner-participant-requirement.excess { color: #83530b; border-color: #ecd3a1; background: #fff8e8; }
.planner-participant-profile-open { color: #7a6a48; font-size: 8px; font-style: italic; }

/* Kompakte Teilnehmerleiste ohne interne Scrollleisten: Kopf oben, Planwerte darunter. */
.planner-timeline-card .sticky-participant-v2 { padding: 1px 3px !important; }
.planner-timeline-card .planner-participant-compact-row {
  min-width: 0;
  min-height: 52px;
  display: grid;
  grid-template-columns: minmax(96px, .78fr) minmax(0, 1.22fr);
  grid-template-areas:
    "participant participant"
    "exam exam"
    "totals requirements";
  align-items: center;
  gap: 1px 4px;
  overflow: visible;
}
.planner-timeline-card .planner-participant-heading {
  grid-area: participant;
  display: flex;
  align-items: center;
  gap: 2px;
  min-width: 0;
  min-height: 22px;
  white-space: normal;
}
.planner-timeline-card .planner-participant-heading .person-link {
  flex: 0 0 auto;
  min-width: 0;
  min-height: 18px;
  padding: 0;
  overflow: visible;
  white-space: normal;
}
.planner-timeline-card .planner-participant-heading .person-link strong { font-size: 10px; line-height: 1.05; }
.planner-timeline-card .planner-participant-heading > small {
  flex: 1 1 auto;
  min-width: 22px;
  overflow: hidden;
  font-size: 7px;
  text-overflow: ellipsis;
}
.planner-timeline-card .planner-participant-instructor {
  flex: 0 1 auto;
  max-width: 72px;
  padding: 1px 4px;
  font-size: 6px;
}
.planner-timeline-card .planner-participant-planning-line {
  display: contents;
  margin: 0;
}
.planner-timeline-card .sticky-participant-v2 .planner-total-minutes {
  grid-area: totals;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr;
  align-self: stretch;
  gap: 1px;
}
.planner-timeline-card .sticky-participant-v2 .planner-total-minutes > span {
  min-height: 10px;
  padding: 0 2px;
  display: inline-flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 2px;
  border-radius: 5px;
  color: #39536d;
  background: #eef3f8;
  font-size: 7px;
  line-height: 1.1;
}
.planner-timeline-card .sticky-participant-v2 .planner-total-minutes > span:first-child { color: #145d3a; background: #e9f7ef; }
.planner-timeline-card .sticky-participant-v2 .planner-total-minutes b { display: inline; color: inherit; font-size: 8px; }
.planner-timeline-card .sticky-participant-v2 .planner-total-minutes small { font-size: 6px; font-weight: 750; }
.planner-timeline-card .planner-participant-requirements {
  grid-area: requirements;
  margin: 0;
  min-width: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(42px, 100%), 1fr));
  gap: 1px;
  overflow: visible;
  scrollbar-width: auto;
}
.planner-timeline-card .planner-participant-requirement {
  min-width: 0;
  min-height: 24px;
  padding: 2px 4px 2px 2px;
  display: inline-grid;
  grid-template-columns: 3px minmax(30px, auto);
  grid-template-rows: 9px 9px;
  column-gap: 3px;
  row-gap: 0;
  border-radius: 5px;
  line-height: 1;
  cursor: help;
}
.planner-timeline-card .planner-participant-requirement i { grid-row: 1 / 3; width: 3px; height: 18px; align-self: center; }
.planner-timeline-card .planner-participant-requirement b {
  align-self: end;
  color: #1e456c;
  font-size: 8px;
  line-height: 1;
}
.planner-timeline-card .planner-participant-requirement strong {
  align-self: start;
  color: #40566c;
  font-size: 7px;
  line-height: 1;
}
.planner-timeline-card .planner-exam-target {
  margin-top: 2px;
  padding: 2px 3px;
  display: flex;
  align-items: center;
  gap: 3px;
}
.planner-timeline-card .planner-exam-target > label:first-child {
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  gap: 4px;
}
.planner-timeline-card .planner-exam-target input[type="date"] {
  width: 112px;
  min-height: 23px;
  height: 23px;
  padding: 1px 4px;
  font-size: 9px;
}
.planner-timeline-card .planner-exam-priority { flex: 0 0 auto; font-size: 8px; }
.planner-timeline-card .planner-exam-target-inline {
  grid-area: exam;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 1px 2px;
  align-self: start;
  justify-self: stretch;
  gap: 2px;
  border-color: #dce5ee;
  border-radius: 6px;
  background: #f8fafc;
  box-shadow: none;
}
.planner-timeline-card .planner-exam-target-inline > label:first-child { flex: 0 0 auto; gap: 2px; font-size: 7px; }
.planner-timeline-card .planner-exam-target-inline input[type="date"] {
  width: min(88px, 100%);
  min-height: 20px;
  height: 20px;
  padding: 0 2px;
  font-size: 8px;
}
.planner-timeline-card .planner-exam-target-inline .planner-exam-priority { gap: 2px; font-size: 7px; }
.planner-timeline-card .planner-exam-target-inline .planner-exam-priority input { width: 13px; height: 13px; }
.planner-timeline-card .planner-exam-readonly { margin-left: auto; color: #52677e; font-size: 7px; }


/* Dauerhafte Quellenlegende je Gruppe: Terminplaner blau, Kursplanung grün. */
.planner-timeline-card .planner-source-legend-row > td {
  height: 20px;
  min-height: 20px;
  padding: 2px 4px !important;
  border-bottom: 1px solid #cbd8e5;
  background: #f7fafc;
}
.planner-timeline-card .planner-source-legend-title,
.planner-timeline-card .planner-day-source-legend {
  font-size: 8px;
  line-height: 1;
  white-space: nowrap;
}
.planner-timeline-card .planner-source-legend-title {
  position: sticky;
  left: 0;
  z-index: 14;
  color: #496178;
  background: #edf3f8 !important;
}
.planner-timeline-card .planner-source-legend-title span,
.planner-timeline-card .source-appointment,
.planner-timeline-card .planner-key-appointment { color: #175f9c; }
.planner-timeline-card .planner-source-legend-title strong,
.planner-timeline-card .source-course,
.planner-timeline-card .planner-key-course { color: #14704d; }
.planner-timeline-card .planner-key-appointment { border-color: #bed7eb; background: #eef6fc; }
.planner-timeline-card .planner-key-course { border-color: #b9dccd; background: #eff9f4; }
.planner-timeline-card .planner-key-arrow { color: #7890a5; font-size: 10px; font-weight: 900; }
.planner-timeline-card .planner-day-source-legend > div {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 3px;
  text-align: center;
}
.planner-timeline-card .planner-day-source-legend span {
  overflow: hidden;
  font-weight: 800;
  text-overflow: ellipsis;
}
.planner-timeline-card .planner-day-source-legend i,
.planner-timeline-card .planner-source-legend-title i { color: #7890a5; font-style: normal; }

/* Ein Tag besteht aus Terminplaner + Kursplaner; die kräftige linke Linie trennt den nächsten Tag. */
.planner-timeline-card .timeline-v2 .timeline-day-header,
.planner-timeline-card .timeline-v2 .group-limit-cell,
.planner-timeline-card .timeline-v2 .planner-day-source-legend,
.planner-timeline-card .timeline-v2 .planner-external-cell {
  border-left: 3px solid #8fa5b9 !important;
}
.planner-timeline-card .timeline-v2 .timeline-day-header.today { border-left-color: #168aa6 !important; }
.planner-timeline-card .timeline-v2 .timeline-week-band + .timeline-week-band { border-left: 3px solid #6f879e !important; }

@media (max-width: 1260px) {
  .planner-course-field { flex-basis: 170px; }
  .planner-date-navigation { flex-basis: 250px; min-width: 230px; }
  .planner-navigation-button small { display: none; }
  .planner-command-bar > .button,
  .planner-command-bar .planner-more-actions { order: 6; }
}
@media (max-width: 760px) {
  .planner-page { padding-top: 0; }
  .planner-command-bar { padding: 7px; }
  .planner-command-bar .planner-continuous-status { display: grid; }
  .planner-continuous-status { height: auto; min-height: 36px; }
  .planner-participant-requirements { max-width: 100%; }
}

/* Zentrale Fehlererfassung: kompakt, verständlich und mit Details bei Bedarf. */
.system-error-center { display: grid; gap: 14px; }
.system-error-hero { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.system-error-hero h2 { margin: 3px 0 5px; }
.system-error-hero p { margin: 0; max-width: 850px; color: var(--muted); }
.system-error-summary { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 10px; }
.system-error-summary article { display: grid; gap: 2px; padding: 14px 16px; border: 1px solid #c9d8e5; border-radius: 13px; background: #fff; box-shadow: 0 5px 18px rgba(33, 63, 91, .06); }
.system-error-summary article::before { content: ""; width: 28px; height: 4px; border-radius: 999px; background: #2d67bd; }
.system-error-summary article.danger::before { background: #bd3346; }
.system-error-summary article.ok::before { background: #18855c; }
.system-error-summary article span { color: #52687a; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.system-error-summary article strong { color: #17334c; font-size: 24px; line-height: 1.15; }
.system-error-summary article small { color: #667d90; }
.system-error-toolbar { display: grid; grid-template-columns: 180px 210px minmax(260px, 1fr) auto; align-items: end; gap: 10px; padding: 12px 14px; }
.system-error-toolbar label { display: grid; gap: 4px; }
.system-error-toolbar label > span { color: #536a7e; font-size: 10px; font-weight: 900; text-transform: uppercase; }
.system-error-toolbar > span { align-self: center; color: #60778b; font-weight: 700; }
.system-error-list { display: grid; gap: 9px; }
.system-error-item { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 11px; align-items: start; padding: 13px; border: 1px solid #cdd9e4; border-left: 4px solid #c03749; border-radius: 12px; background: #fff; }
.system-error-item.severity-warning { border-left-color: #c88616; }
.system-error-item.severity-info { border-left-color: #2e78b8; }
.system-error-item.status-resolved { border-left-color: #18855c; background: #fbfefd; }
.system-error-item.status-ignored { border-left-color: #8797a4; background: #fafcfd; }
.system-error-marker { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; color: #fff; background: #bd3346; font-size: 18px; font-weight: 900; }
.severity-warning .system-error-marker { background: #b5760d; }
.severity-info .system-error-marker { background: #2e78b8; }
.status-resolved .system-error-marker { background: #18855c; }
.status-ignored .system-error-marker { background: #8797a4; }
.system-error-content { min-width: 0; }
.system-error-heading { display: flex; justify-content: space-between; gap: 12px; }
.system-error-heading > div:first-child { display: grid; gap: 2px; }
.system-error-heading > div:first-child span { color: #61768a; font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: .04em; }
.system-error-heading strong { color: #17334c; font-size: 14px; }
.system-error-meta { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.system-error-meta b { color: #6a5260; font-size: 11px; }
.system-error-content > p { margin: 7px 0; color: #304b62; overflow-wrap: anywhere; }
.system-error-foot { display: flex; flex-wrap: wrap; gap: 6px 14px; color: #73879a; font-size: 10px; }
.system-error-content details { margin-top: 8px; border-top: 1px solid #e0e8ef; padding-top: 7px; }
.system-error-content details summary { cursor: pointer; color: #245a8a; font-weight: 800; }
.system-error-content pre { max-height: 260px; margin: 8px 0 0; padding: 10px; overflow: auto; border-radius: 8px; background: #132b3e; color: #e9f4fc; white-space: pre-wrap; overflow-wrap: anywhere; font: 11px/1.45 Consolas, monospace; }
.system-error-resolution { margin-top: 8px; padding: 7px 9px; border-radius: 7px; background: #e9f7f0; color: #176848; }
.system-error-actions { display: flex; flex-direction: column; gap: 6px; min-width: 132px; }

@media (max-width: 1000px) {
  .system-error-summary { grid-template-columns: repeat(2, minmax(140px, 1fr)); }
  .system-error-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .system-error-search { grid-column: 1 / -1; }
  .system-error-item { grid-template-columns: 30px minmax(0, 1fr); }
  .system-error-actions { grid-column: 2; flex-direction: row; flex-wrap: wrap; }
}
@media (max-width: 620px) {
  .system-error-hero { align-items: flex-start; flex-direction: column; }
  .system-error-summary, .system-error-toolbar { grid-template-columns: 1fr; }
  .system-error-search { grid-column: auto; }
  .system-error-heading { flex-direction: column; }
  .system-error-meta { white-space: normal; }
}

/* Zeiterfassung: Abschluss- und Exportaktionen bleiben kompakt zusammen. */
.time-header-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}
.time-tabs {
  flex-wrap: wrap;
  overflow: visible;
}
@media (max-width: 760px) {
  .time-header-actions { justify-content: flex-start; width: 100%; }
  .time-tabs { flex-wrap: nowrap; overflow-x: auto; }
}
/* Digitale Dokument-Signaturen: additive Einstellungs- und Abschlussansicht. */
.document-signatures-settings{display:grid;gap:14px;min-width:0}.document-signature-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;min-width:0;padding:22px;background:linear-gradient(135deg,#f5fbff,#eaf6f3)}.document-signature-hero h2,.document-signature-hero p{margin:4px 0}.document-signature-security{display:grid;gap:8px;min-width:230px}.document-signature-security span{padding:9px 12px;border:1px solid #bcd9d1;border-radius:9px;background:#fff;color:#145d4d;font-weight:800}.document-signature-legal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-width:0}.document-signature-legal-grid .card{min-width:0;padding:18px}.document-signature-legal-grid h3{margin:10px 0 5px}.document-signature-profile-list{display:grid;gap:10px;min-width:0}.document-signature-profile{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,280px) auto;gap:16px;align-items:center;min-width:0;padding:14px;border:1px solid var(--line);border-radius:11px;background:#fff}.document-signature-profile>div:first-child{display:grid;gap:4px;min-width:0}.document-signature-profile strong,.document-signature-profile span,.document-signature-profile small{overflow-wrap:anywhere}.document-signature-sealed-preview{display:grid;grid-template-columns:auto 1fr;gap:2px 9px;align-items:center;min-height:70px;padding:10px 13px;border:1px solid #bcd9d1;border-radius:8px;background:#f2faf7;color:#145d4d}.document-signature-sealed-preview strong{grid-row:1/3;font-size:22px}.document-signature-sealed-preview small{grid-column:2;color:#49677a}.document-signature-profile.pending .document-signature-sealed-preview{opacity:.65}.document-signature-dialog{width:min(920px,calc(100vw - 24px));max-height:calc(100vh - 24px);padding:0;border:0;border-radius:15px;overflow:auto}.document-signature-dialog::backdrop{background:rgba(9,27,43,.58)}.document-signature-form{display:grid;gap:15px;padding:22px;min-width:0}.document-signature-dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.document-signature-dialog-head h2{margin:3px 0}.document-signature-capture{display:grid;gap:9px;min-width:0;padding:14px;border:1px solid #cbd8e3;border-radius:11px;background:#f8fafc}.document-signature-capture h3,.document-signature-capture p{margin:0}.document-signature-capture canvas{display:block;width:100%;height:210px;border:1px dashed #7f94a8;border-radius:8px;background:#fff;touch-action:none;cursor:crosshair}.official-signature-profile-field{display:grid;gap:5px;margin:9px 0 11px}.official-signature-profile-field select{width:100%;min-width:0}.performance-signature-editor.sealed-profile-selected canvas,.performance-signature-editor.sealed-profile-selected [data-clear-official-signature]{opacity:.32;pointer-events:none}.performance-signature-editor.sealed-profile-selected canvas{background:repeating-linear-gradient(135deg,#f5f8fa,#f5f8fa 12px,#edf3f6 12px,#edf3f6 24px)}@media(max-width:900px){.document-signature-hero,.document-signature-profile{grid-template-columns:1fr}.document-signature-security{min-width:0}.document-signature-sealed-preview{max-width:320px}.document-signature-legal-grid{grid-template-columns:1fr}}@media(max-width:520px){.document-signature-form{padding:14px}.document-signature-dialog-head{align-items:stretch;flex-direction:column}.document-signature-capture canvas{height:150px}}

.document-signatures-settings[hidden]{display:none!important}
.lecturer-module-settings { display:grid; gap:10px; }
.lecturer-module-settings details { border:1px solid #ccd8ea; border-radius:12px; background:#f8fbff; }
.lecturer-module-settings summary { display:flex; justify-content:space-between; gap:12px; padding:12px; cursor:pointer; }
.lecturer-module-settings details > div { display:flex; flex-wrap:wrap; gap:7px; padding:0 12px 12px; }
.lecturer-module-settings details > div label { display:flex; align-items:center; gap:5px; padding:6px 9px; border:1px solid #c7d5e9; border-radius:8px; background:white; }
.lecturer-settings-card { margin-top:16px; }
.lecturer-setting-leaders { display:grid; gap:8px; }
.lecturer-person-choice.module-not-allowed { opacity:.38; filter:grayscale(1); }
.lecturer-person-choice.module-not-allowed small::after { content:" · Modul nicht freigegeben"; color:#b5283d; }
.template-filename-preview { display:block; margin-top:8px; padding:10px 12px; border:1px solid #b9cce6; border-radius:9px; background:#eef5ff; color:#17365f; font-weight:700; overflow-wrap:anywhere; }
.email-rich-toolbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px;border:1px solid #cbd7e5;border-bottom:0;border-radius:10px 10px 0 0;background:#f4f7fb}.email-rich-toolbar select,.email-rich-toolbar button,.email-rich-toolbar label{min-height:34px;padding:5px 9px;border:1px solid #bfccdc;border-radius:7px;background:#fff;color:#182033}.email-rich-toolbar input[type=color]{width:36px;height:34px;padding:3px;border:1px solid #bfccdc;border-radius:7px;background:#fff}.email-rich-editor{min-height:280px;max-height:48vh;overflow:auto;padding:16px;border:1px solid #cbd7e5;border-radius:0 0 10px 10px;background:#fff;color:#182033;line-height:1.45;outline:none}.email-rich-editor:focus{border-color:#2d63b8;box-shadow:0 0 0 3px rgba(45,99,184,.12)}.email-rich-editor img,.email-preview-body img{max-width:100%;height:auto}
.email-rich-toolbar [data-email-font-size]{width:86px;min-height:34px;padding:5px 8px;border:1px solid #bfccdc;border-radius:7px;background:#fff;color:#182033}
.email-rich-toolbar .email-font-step{width:30px;min-width:30px;padding:4px;display:grid;place-items:center;font-size:18px;font-weight:900}
.email-rich-editor [data-email-selection-marker]{display:none!important;width:0!important;height:0!important;overflow:hidden!important}
.email-rich-editor::highlight(email-editor-selection){color:inherit;background:#b9d8ff;text-decoration:underline;text-decoration-color:#2f63bd;text-decoration-thickness:2px}
.email-rich-toolbar.email-pdf-format-toolbar{margin-top:8px;padding:7px;display:grid;gap:6px;border:1px solid #b8c8db;border-bottom:1px solid #b8c8db;border-radius:8px;background:linear-gradient(#fff,#eef3f8);box-shadow:0 5px 16px rgba(31,56,92,.12)}.email-pdf-format-toolbar select,.email-pdf-format-toolbar button,.email-pdf-format-toolbar label{min-height:30px;padding:4px 7px;border:1px solid #c6d1df;border-radius:5px;background:#fff;color:#17243b}.email-pdf-format-toolbar [data-email-format="fontName"]{width:148px}.email-pdf-format-toolbar [data-email-font-size]{width:72px;min-height:30px}.email-pdf-format-toolbar [data-email-line-spacing]{width:72px}.email-pdf-format-toolbar label:has([data-email-image]){width:auto;display:flex;grid-template-columns:none;white-space:nowrap}
.email-pdf-format-toolbar .pdf-word-font-group,.email-pdf-format-toolbar .pdf-word-paragraph-group{min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:5px}.email-pdf-format-toolbar .pdf-word-font-group>label{width:auto;min-width:52px;display:inline-flex;align-items:center;justify-content:center;gap:4px;grid-template-columns:none;padding:3px 5px}.email-pdf-format-toolbar .pdf-word-font-group>label>span{flex:0 0 auto}.email-pdf-format-toolbar .pdf-word-font-group input[type="color"]{width:28px;min-width:28px;height:24px;padding:1px;position:static;inset:auto;transform:none}.email-pdf-format-toolbar .pdf-word-ribbon-head{min-width:0}

/* Seven-day office planning: scroll and sizing stay inside this component. */
.office-week-layout { display:grid; grid-template-columns:300px minmax(0,1fr); gap:16px; min-width:0; align-items:start; }
.office-week-controls { flex-wrap:wrap; min-width:0; }
.office-week-controls label { display:grid; gap:3px; font-size:11px; }
.office-week-controls input { min-width:0; max-width:160px; min-height:36px; padding:7px 9px; border:1px solid #cbd9e6; border-radius:9px; background:#fff; color:#224663; font-size:12px; }
.office-week-roster { min-width:0; max-height:min(78vh,900px); overflow:auto; border:1px solid #d6e2ee; border-radius:16px; background:#f4f8fc; padding:12px; }
.office-week-roster > header { margin-bottom:14px; }
.office-week-roster h2 { margin:0; font-size:17px; }
.office-week-roster > header p { margin:5px 0 0; font-size:11px; line-height:1.5; color:#57708a; }
.office-week-roster-group + .office-week-roster-group { margin-top:16px; }
.office-week-roster-group h3 { display:flex; justify-content:space-between; gap:8px; margin:0 2px 7px; font-size:12px; color:#34546e; overflow-wrap:anywhere; }
.office-week-roster-group h3 span { font-size:11px; color:#64809a; }
.office-week-person { width:100%; min-width:0; display:block; margin:0 0 8px; padding:12px 10px; border:1px solid #cbd9e6; border-left:5px solid var(--employee-color,#3156a3); border-radius:12px; background:white; color:#153651; text-align:left; box-shadow:none; font-family:inherit; }
.office-week-person.is-selected { outline:3px solid #dfb62f; outline-offset:-2px; background:#fffdf3; }
.office-week-person-name { display:grid; gap:3px; }
.office-week-person-name b { font-size:13px; line-height:1.4; overflow-wrap:anywhere; }
.office-week-person-name small { font-size:10px; color:#638099; }
.office-week-person-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:2px; margin-top:10px; }
.office-week-person-days > span { position:relative; min-width:0; display:grid; gap:4px; padding:5px 1px; background:#f0f5fa; border-radius:5px; text-align:center; }
.office-week-person-days small { font-size:9px; color:#587189; }
.office-week-person-days b { font-size:10px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.office-week-person-total { display:flex; justify-content:space-between; gap:8px; margin-top:10px; font-size:10px; line-height:1.4; }
.office-week-person-total b { font-size:12px; font-variant-numeric:tabular-nums; }
.office-week-absence-dot { position:absolute; width:5px; height:5px; border-radius:50%; background:#bb3656; top:2px; right:2px; }
.office-week-calendar { min-width:0; border:1px solid #d6e2ee; border-radius:16px; background:#fff; overflow:hidden; }
.office-week-calendar-toolbar { display:flex; justify-content:space-between; gap:12px; padding:14px; align-items:center; flex-wrap:wrap; }
.office-week-calendar-toolbar > div { min-width:0; flex:1 1 180px; display:grid; gap:4px; }
.office-week-calendar-toolbar strong { font-size:14px; overflow-wrap:anywhere; }
.office-week-calendar-toolbar small { font-size:11px; color:#59748d; line-height:1.45; }
.office-week-calendar-toolbar label { display:grid; gap:4px; max-width:100%; font-size:11px; }
.office-week-calendar-toolbar select { max-width:100%; width:180px; min-height:38px; border:1px solid #cbd9e6; border-radius:9px; padding:7px; color:#224663; background:white; font-size:12px; }
.office-week-scroll { max-width:100%; max-height:min(74vh,820px); overflow:auto; overscroll-behavior:contain; border-top:1px solid #d6e2ee; }
.office-week-grid { display:grid; grid-template-rows:auto var(--office-week-height); width:100%; position:relative; isolation:isolate; }
.office-week-corner { position:sticky; top:0; left:0; z-index:30; display:flex; align-items:center; justify-content:center; background:#eaf1f8; border-right:1px solid #cad9e8; border-bottom:1px solid #cad9e8; font-size:10px; font-weight:800; }
.office-week-day-head { position:sticky; top:0; z-index:20; display:grid; align-content:start; gap:3px; padding:12px 8px; background:#f0f5fa; border-right:1px solid #cad9e8; border-bottom:1px solid #cad9e8; min-width:0; }
.office-week-day-head strong { font-size:12px; }
.office-week-day-head span { font-size:12px; color:#56708a; }
.office-week-day-head small { font-size:10px; line-height:1.3; overflow-wrap:anywhere; }
.office-week-day-head.is-today { background:#e3f4fe; box-shadow:inset 0 3px #219bd3; }
.office-week-absence { color:#a6354e; }
.office-week-axis { grid-column:1; grid-row:2; position:sticky; left:0; z-index:10; height:var(--office-week-height); background:#f7faff; border-right:1px solid #cad9e8; }
.office-week-axis span { position:absolute; left:0; width:100%; padding:3px 5px; font-size:10px; font-weight:750; color:#59728a; text-align:center; transform:translateY(-1px); }
.office-week-day { grid-row:2; position:relative; min-width:0; height:var(--office-week-height); border-right:1px solid #d8e3ee; background:#fff; }
.office-week-slot { position:absolute; left:0; width:100%; margin:0; padding:0; border:0; border-top:1px dashed #e5edf5; border-radius:0; background:transparent; box-shadow:none; opacity:1; }
.office-week-slot.is-hour { border-top:1px solid #cfddeb; }
.office-week-slot:disabled { opacity:1; background:transparent; cursor:default; }
.office-week-slot:not(:disabled):hover { background:#eaf6ff; }
.office-week-slot:focus-visible { outline:3px solid #e2b42c; outline-offset:-3px; }
.office-week-shift { position:absolute; z-index:3; display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start; gap:5px; margin:0; padding:9px; border:1px solid var(--employee-color,#3156a3); border-left:5px solid var(--employee-color,#3156a3); border-radius:9px; background:#eef5fb; background:color-mix(in srgb,var(--employee-color,#3156a3) 14%,white); color:#163b57; text-align:left; box-shadow:0 2px 4px #173b5712; }
.office-week-shift b { font-size:12px; line-height:1.35; font-weight:800; overflow-wrap:anywhere; }
.office-week-shift span { font-size:11px; line-height:1.35; overflow-wrap:anywhere; }
.office-week-shift strong { font-size:12px; line-height:1.3; font-variant-numeric:tabular-nums; white-space:nowrap; }
.office-week-shift small { font-size:10px; line-height:1.3; }
.office-week-shift.is-selected { outline:3px solid #dfb62f; outline-offset:-2px; }
.office-week-shift.is-standard { border-style:dashed; }
.office-week-shift:disabled { opacity:1; color:#163b57; filter:none; cursor:default; }
.office-week-person:focus-visible,.office-week-shift:focus-visible { outline:3px solid #dfb62f; outline-offset:2px; }
@media (max-width:720px) {
 .office-week-layout { grid-template-columns:minmax(0,1fr); gap:12px; }
 .office-week-roster { max-height:380px; }
 .office-week-scroll { max-height:620px; }
 .office-week-calendar-toolbar { padding:12px; }
 .office-week-controls strong { flex:1 1 100%; font-size:12px; }
}

/* Scoped to the explicit substitution section; existing planner fields retain their layout. */
.lecturer-quick-planner .lecturer-substitution { padding:12px; }
.lecturer-quick-planner .lecturer-substitution p { font-size:13px; line-height:1.5; overflow-wrap:anywhere; }

.planner-foreign-course-entry { min-width: 0; padding: 3px 4px; display: block; overflow: hidden; border-left: 3px solid #b36b12; border-radius: 3px; background: #fff6df; box-shadow: 0 0 0 1px rgba(179,107,18,.25); }
.planner-foreign-course-entry b, .planner-foreign-course-entry small { max-width: 100%; display: block; overflow: hidden; font-size: 9px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.planner-foreign-course-entry b { color: #774300; font-weight: 850; }
.planner-foreign-course-entry small { color: #8b5913; }

/* Direkte Aufgabenzuweisungen müssen unabhängig von Ansicht und
   Bewegungseinstellung sichtbar blinken, bis die Aufgabe geöffnet wurde. */
@media (prefers-reduced-motion: reduce) {
  html[data-direct-task-alert]::after {
    animation-duration: .9s !important;
    animation-iteration-count: infinite !important;
  }
  .office-task-card.direct-task-unread {
    animation-duration: .9s !important;
    animation-iteration-count: infinite !important;
  }
}

/* Personal board presentation preserves existing tabs and task controls. */
.operations-page .office-board-tab .office-board-drag-handle { flex:0 0 auto; min-width:18px; padding:2px; cursor:grab; touch-action:none; user-select:none; opacity:.7; }
.operations-page .office-board-tab.is-reordering { opacity:.65; outline:2px dashed #3156A3; outline-offset:-2px; cursor:grabbing; }
.office-board-personal-hint { line-height:1.5; }
#office-personal-board-form input[type="color"] { width:72px; height:42px; padding:4px; cursor:pointer; }

/* Keep personally chosen text readable on its exact board background, including inactive tabs. */
.operations-page .office-board-tab.has-personal-ink:not(.is-active) { background:var(--board-color); color:var(--board-ink); }
#office-personal-board-form .office-board-color-inputs { display:flex; flex-wrap:wrap; gap:16px; align-items:center; }
#office-personal-board-form .office-board-color-inputs > label { display:flex; align-items:center; flex-wrap:wrap; gap:8px; min-width:0; }
#office-personal-board-form [data-personal-color-suggest] { margin-top:10px; }

/* Persisted personal column arrangement; task cards retain their own drag operation. */
.office-task-column > header > .office-column-grip { flex:0 0 26px; border:0; background:transparent; color:inherit; cursor:grab; font-size:19px; touch-action:pan-y; }
.office-task-column > header.column-drop-target { outline:2px dashed #3156a3; outline-offset:4px; }
.office-task-column > .office-column-order-controls { display:flex; justify-content:flex-end; gap:4px; margin:3px 0 7px; }
.office-column-order-controls button { border:1px solid #c7cfdd; border-radius:6px; background:var(--surface,#fff); color:inherit; min-width:32px; min-height:30px; cursor:pointer; }
.office-column-order-controls button:disabled { opacity:.35; cursor:default; }
.vacation-request-legend { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:10px 0; }
.vacation-request-legend > span,.vacation-request-summary { display:inline-flex; border-radius:5px; padding:4px 7px; font-size:12px; }
.vacation-request-legend > small { flex-basis:100%; color:var(--muted,#526077); }
.vacation-request-legend .vacation-request-approved { border:2px solid var(--vacation-bg,#188b67); background:var(--vacation-bg,#e9f8ef); color:var(--vacation-fg,#145b45); }
.vacation-request-legend .vacation-legend-holiday { border:2px solid var(--vacation-holiday-border); background:var(--vacation-holiday-bg); color:var(--vacation-holiday-fg); }
.vacation-request-legend .vacation-legend-school { border:2px solid var(--vacation-school-border); background:var(--vacation-school-pattern); color:var(--vacation-school-fg); }
.vacation-page .vacation-request-pending { border:2px dashed #946600; }
.vacation-page .vacation-request-rejected { border:2px dashed #c32f3b; }
.vacation-page .vacation-request-cancellation { border:2px solid #188b67; box-shadow:inset 0 -4px 0 #d28b00; }
.vacation-page .vacation-request-pending:not(.filled) { background:#fff6d7; color:#684700; }
.vacation-page .vacation-request-rejected:not(.filled) { background:#fff0f1; color:#a11d2b; }
.vacation-page .vacation-request-summary { margin:3px; font-size:10px; white-space:normal; }

/* Own annual leave: shared employee-year layout with independent range selection. */
.vacation-own-calendar { margin:20px 0 26px; }
.vacation-own-calendar .vacation-person-day { user-select:none; touch-action:none; min-height:46px; }
.vacation-own-calendar .vacation-person-day:focus-visible { z-index:3; outline:3px solid #153e9f; outline-offset:-3px; }
.vacation-day-markers { position:absolute; top:3px; right:3px; display:flex; gap:2px; }
.vacation-day-markers i { font-style:normal; font-size:8px; line-height:1.2; font-weight:800; padding:1px 2px; border:1px solid; border-radius:2px; }
.vacation-day-markers .vacation-marker-holiday { border-color:var(--vacation-holiday-border); background:var(--vacation-holiday-bg); color:var(--vacation-holiday-fg); }
.vacation-day-markers .vacation-marker-school { border-color:var(--vacation-school-border); background:var(--vacation-school-pattern); color:var(--vacation-school-fg); font-weight:900; }
.vacation-own-selection { min-height:24px; color:var(--muted,#526077); }
.vacation-own-request-detail .card { padding:16px; margin-bottom:12px; }

/* Management and own calendar share workday-only range selection. */
[data-vacation-range-calendar] [data-vacation-cell] { user-select:none; touch-action:none; }
.vacation-workday-hint { margin:12px 0; line-height:1.5; }

/* Shared compact controls for own and management vacation calendars. */
.vacation-year-stepper { display:inline-flex; align-items:center; border:1px solid var(--line,#d6e1ec); border-radius:12px; background:var(--surface,#fff); padding:3px; box-shadow:0 2px 5px #173c5e08; }
.vacation-year-stepper > .button { min-width:36px; min-height:36px; padding:4px 10px; border:0; box-shadow:none; background:transparent; font-size:22px; }
.vacation-year-field { display:flex; align-items:center; gap:9px; margin:0; padding:0 8px; font-size:12px; color:var(--muted,#526077); }
.vacation-year-nav .vacation-year-field select { appearance:auto; min-width:84px; min-height:36px; border:0; background:transparent; color:var(--text,#153951); font-family:inherit; font-size:16px; font-weight:800; line-height:1.2; border-radius:7px; padding:5px 8px; cursor:pointer; }
.vacation-year-nav :is(button,select):focus-visible,.vacation-unified-legend > summary:focus-visible { outline:2px solid var(--brand-blue,#2c59a8); outline-offset:3px; }
.vacation-unified-legend > summary { flex-wrap:wrap; gap:8px 12px; min-height:48px; padding:10px 14px; }
.vacation-unified-legend > summary > strong { font-size:13px; white-space:nowrap; }
.vacation-unified-legend > summary .vacation-legend-chips { display:inline-flex; flex-wrap:wrap; align-items:center; gap:4px; overflow:visible; margin:0; }
.vacation-unified-legend > summary .vacation-request-legend { margin-left:auto; }
.vacation-type-chip { display:inline-flex; align-items:center; justify-content:center; min-width:28px; min-height:26px; padding:4px 6px; border-radius:5px; background:var(--vacation-bg); color:var(--vacation-fg); font-size:10px; font-weight:800; }
.vacation-page .vacation-status-chip { display:inline-flex; align-items:center; justify-content:center; min-height:26px; padding:3px 7px; border-radius:5px; font-size:11px; font-weight:700; line-height:1.25; white-space:nowrap; }
.vacation-page .vacation-status-chip.vacation-request-approved { border:2px solid var(--vacation-bg,#f4b400); background:var(--vacation-bg,#f4b400); color:var(--vacation-fg,#4b3600); }
.vacation-page .vacation-status-chip.vacation-request-cancellation { border:2px dashed #8c6300; background:var(--vacation-bg,#f4b400); color:var(--vacation-fg,#4b3600); }
.vacation-page .vacation-status-chip.vacation-request-cancelled { border:2px solid #c8d1db; background:#f2f4f7; color:#596677; }
.vacation-page .vacation-unified-legend .vacation-status-chip.vacation-legend-holiday { border:2px solid var(--vacation-holiday-border); background:var(--vacation-holiday-bg); color:var(--vacation-holiday-fg); }
.vacation-page .vacation-unified-legend .vacation-status-chip.vacation-legend-school { border:2px solid var(--vacation-school-border); background:var(--vacation-school-pattern); color:var(--vacation-school-fg); }
.vacation-legend-explanation { border-top:1px solid var(--line,#d6e1ec); padding:12px 14px 0; color:var(--muted,#526077); font-size:12px; line-height:1.55; }
.vacation-legend-explanation p { margin:0 0 8px; }
.vacation-legend-description { display:flex; flex-wrap:wrap; gap:8px 16px; padding:8px 14px 14px; font-size:12px; }
.vacation-legend-description > span { display:inline-flex; align-items:center; gap:6px; }
@media(max-width:760px) { .vacation-unified-legend > summary .vacation-request-legend { flex-basis:100%; margin-left:0; } .vacation-year-nav { gap:6px; } .vacation-year-field > span { font-size:11px; } }

/* Weekend cues stay distinct from employee/theme tints and school holidays.
   Filled entries and request outlines retain their own meaning and colors. */
.vacation-page .vacation-person-row .vacation-cell.weekend:not(.filled):not(.holiday):not(.vacation-request-pending):not(.vacation-request-rejected),
.vacation-page .vacation-person-day.weekend:not(.filled):not(.holiday):not(.vacation-request-pending):not(.vacation-request-rejected) {
  background: #e2eaf4;
}

.vacation-page :is(.vacation-day-head, .vacation-person-day, .vacation-cell).vacation-saturday:not(.vacation-request-pending):not(.vacation-request-rejected):not(.vacation-request-cancellation) {
  border-inline-start: 2px solid #90a6bf;
}

.vacation-page .vacation-day-head.weekend :is(b, small),
.vacation-page .vacation-person-day.weekend > b {
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.vacation-page .vacation-cell.weekend {
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Focused task detail layout: full-width discussion, optional assignment editor. */
#office-task-form > .card-header{align-items:flex-start;gap:12px;flex-wrap:wrap}
#office-task-form > .card-header > div{flex:1;min-width:220px}
.office-task-assignment-summary{margin:0 0 12px;color:var(--muted,#53647a);overflow-wrap:anywhere}
.office-task-access{padding:14px;border:1px solid var(--line,#d6dfec);border-radius:12px;background:var(--surface,#f8fbff)}
.office-task-access[hidden]{display:none}
.office-task-access>.form-field+.form-field{margin-top:16px}
.office-task-collaboration{grid-template-columns:minmax(0,1fr)}
.office-task-comments{padding:16px;display:grid;gap:14px}
.office-task-comments>.card-header{gap:12px;align-items:flex-start;flex-wrap:wrap;margin:0}
.office-task-upload-button{position:relative;overflow:hidden;cursor:pointer;white-space:nowrap;margin-left:auto}
.office-task-upload-button input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.office-task-comments>.office-task-attachments{padding:0;border:0;background:transparent}
.office-task-comments>.office-task-attachments[hidden]{display:none}
.office-task-comment-compose{width:100%;min-width:0}
.office-task-comment-compose>button{justify-self:end}
.office-task-workflow{border-top:1px solid var(--line,#d6dfec);margin-top:18px}

.office-task-extra-options,.office-task-move-options{padding:10px 12px;border:1px solid var(--line,#d6dfec);border-radius:10px;grid-column:1 / -1}
.office-task-extra-options>summary,.office-task-move-options>summary{cursor:pointer;font-weight:600}
.office-task-extra-options>.form-grid,.office-task-move-options>.office-task-destination{margin-top:14px}

.office-task-comment-compose textarea{font:inherit;padding:12px;min-height:110px;border:1px solid var(--line,#cfdaea);border-radius:10px;background:var(--surface,#fff);color:inherit;box-sizing:border-box}
.office-task-comments>.card-header>span{align-self:center;border-radius:999px;padding:3px 9px;background:#e8eef8;color:#38527a;font-weight:600}

/* Priority notice belongs to the card, including its compact presentation. */
.office-task-card .task-attention-panel{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin:10px 0;padding:12px 10px;border:1px solid var(--task-card-alert-color,#3156a3);border-radius:10px;background:color-mix(in srgb,var(--task-card-alert-color,#3156a3) 12%,white);color:#172944;text-align:center;cursor:pointer;animation:task-notice-pulse 2s ease-in-out infinite;}
.task-attention-panel>span:nth-child(2){display:grid;gap:3px;min-width:0}.task-attention-panel strong{font-size:13px;line-height:1.35}.task-attention-panel small{font-size:11px;color:#314258}.task-attention-panel>span:first-child{font-size:22px}.task-attention-panel:focus-visible{outline:3px solid #152f63;outline-offset:3px}
@keyframes task-notice-pulse{50%{background:color-mix(in srgb,var(--task-card-alert-color,#3156a3) 26%,white);box-shadow:0 0 0 2px color-mix(in srgb,var(--task-card-alert-color,#3156a3) 30%,transparent)}}

.app-feature-settings{min-width:0}
.app-matrix-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:12px 0}
.app-matrix-toolbar label{display:grid;gap:5px;flex:1 1 230px;min-width:0}
.app-matrix-toolbar input,.app-matrix-toolbar select{width:100%;min-width:0}
.app-matrix-guidance{font-size:12px;line-height:1.5}
.app-permission-matrix{min-width:var(--app-matrix-min-width,860px);table-layout:fixed}
.app-permission-matrix .app-permission-profile-column{width:112px}
.app-permission-matrix .permission-profile-head{display:inline-block;padding:0 9px;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.app-permission-matrix .switch{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}
.app-permission-matrix .switch input{margin:0}
.app-permission-matrix .permission-module button{grid-template-columns:20px minmax(0,1fr) auto}
.ki-interface .app-permission-matrix .permission-module.open:hover td{background:var(--brand-blue);color:#fff}
.app-permission-matrix .permission-module-role-summary{justify-content:center;gap:0}
.app-permission-matrix .permission-module-role-summary span{padding:3px 5px;font-size:9px}
.app-permission-matrix tr[hidden]{display:none!important}
.app-matrix-lock-reason{display:block;font-size:10px;line-height:1.35;color:var(--muted,#60738a)}
.app-matrix-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin:18px 0}
.app-matrix-actions p{flex:1;font-size:12px;min-width:220px}

/* Keep the entire lane available while a task is dragged, including collapsed lanes. */
.office-task-board.is-task-dragging { align-items:stretch; min-height: min(65vh,650px); }
.office-task-board.is-task-dragging > .office-task-column { align-self:stretch; min-height:320px; transition:background-color .1s ease; }
.office-task-board.is-task-dragging .office-task-column.is-drop-target { box-shadow:inset 0 0 0 3px #3156a3; }

.app-matrix-inherit {display:block;margin:5px auto 0;padding:4px 6px;min-height:30px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--muted);font-size:10px;cursor:pointer;}
.app-matrix-inherit.inherited {color:var(--brand-ink,#3156a3);background:var(--cyan-soft,#edf5ff);}
.app-permission-matrix .permission-feature-info [data-app-all]{align-self:flex-start;margin-top:4px;font-size:11px;min-height:32px;}

.additional-role-users{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;margin:16px 0}.additional-role-users .check-row{border:1px solid #dce5f0;border-radius:10px;padding:10px;min-height:58px}.additional-role-users input{width:20px;height:20px}
.additional-role-panel>summary,.additional-role-group>summary{cursor:pointer;display:flex;align-items:center;gap:10px;list-style:none}.additional-role-panel>summary::-webkit-details-marker,.additional-role-group>summary::-webkit-details-marker{display:none}.additional-role-panel>summary:before,.additional-role-group>summary:before{content:'\25B8';color:#285ca4;flex:none}.additional-role-panel[open]>summary:before,.additional-role-group[open]>summary:before{content:'\25BE'}.additional-role-panel>summary:focus-visible,.additional-role-group>summary:focus-visible{outline:3px solid #285ca4;outline-offset:-3px;border-radius:8px}.additional-role-summary h2{margin:0;flex:1;min-width:0}.additional-role-count{margin-left:auto;white-space:nowrap;font-size:12px;color:#49627e;background:#edf3fa;border:1px solid #dce5f0;border-radius:20px;padding:4px 9px}.additional-role-body{padding:0 14px 14px}.additional-role-description{margin:12px 0;color:#49627e;font-size:12px}.additional-role-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0}.additional-role-tools>span{flex:1;min-width:200px;font-weight:600}.additional-role-group{border:1px solid #dce5f0;border-radius:10px;margin:8px 0;overflow:hidden}.additional-role-group>summary{padding:12px;background:#f2f6fb}.additional-role-panel .additional-role-users{grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:12px}.additional-role-panel .additional-role-users .check-row{margin:0;align-items:center;min-width:0}.additional-role-panel .additional-role-users input{flex:none}.additional-role-panel .additional-role-users span{min-width:0;overflow-wrap:anywhere}.additional-role-panel .additional-role-users small{display:block;font-size:11px;color:#49627e}@media(max-width:1000px){.additional-role-panel .additional-role-users{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.additional-role-summary{flex-wrap:wrap}.additional-role-summary h2{flex-basis:calc(100% - 30px)}.additional-role-summary>.additional-role-count{margin-left:22px}.additional-role-panel .additional-role-users{grid-template-columns:minmax(0,1fr);padding:8px}.additional-role-body{padding:0 10px 12px}.additional-role-tools>span{flex-basis:100%}.additional-role-group>summary{padding:10px;gap:6px}.additional-role-count{font-size:11px;padding:4px 7px}}

/* Keep profile names and the active permission category visible in both matrices. */
.permission-table-wrap { position:relative; overscroll-behavior:contain; }
.permission-table thead { position:sticky; top:var(--permission-sticky-top,0px); z-index:5; background:#f5f8fb; box-shadow:0 1px 0 #cdd7e1; }
.permission-table thead th { background:#f5f8fb; }
.permission-table .permission-module td { position:sticky; top:calc(var(--permission-sticky-top,0px) + var(--permission-header-height,48px)); z-index:4; }
.permission-table .permission-module:not(.open) td { background:#edf4f8; }
.permission-table .permission-module.open td { background:var(--brand-blue); }
.app-invitation-package{display:grid;gap:8px;padding:16px;margin:12px 0;border:1px solid #c8daee;border-radius:14px;background:#f3f8fe;color:#173958}.app-invitation-package>div,.app-invitation-selection-tools{display:flex;flex-wrap:wrap;gap:8px}.app-invitation-package small{color:#4c647d}.app-invitation-filters{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:12px;margin:14px 0}.app-invitation-filters label{display:grid;gap:6px;min-width:0;font-weight:600}.app-invitation-filters input,.app-invitation-filters select{width:100%;min-width:0;min-height:44px}.app-invitation-users{display:grid;gap:8px;max-height:38vh;overflow:auto;padding:4px;margin:12px 0;overscroll-behavior:contain}.app-invitation-person{display:grid;grid-template-columns:28px minmax(0,1fr) minmax(180px,.8fr);gap:12px;align-items:center;min-height:64px;padding:12px;border:1px solid #d6e1ef;border-radius:12px;background:#fff;cursor:pointer}.app-invitation-person:has(input:checked){border-color:#2a5fb0;background:#edf5ff}.app-invitation-person input{width:22px;height:22px;accent-color:#2a5fb0}.app-invitation-person>span{display:grid;gap:4px;min-width:0;overflow-wrap:anywhere}.app-invitation-person small{color:#536a80;font-size:.82rem}.app-invitation-person.unavailable{background:#f5f6f8;cursor:default}.app-invitation-history{font-size:.88rem}.app-invitation-history b{color:#214f83}.app-invitation-person .app-invitation-access-note{color:#93521c}.app-invitation-resend{padding:12px;border:1px solid #e4d4b4;border-radius:12px;background:#fffaf0;align-items:center}.app-invitation-resend input{width:22px;height:22px;flex-shrink:0}.app-invitation-dev-note{font-size:.85rem;color:#5b6e83;max-width:260px}.app-invitation-results{display:grid;gap:10px;max-height:50vh;overflow:auto}.app-invitation-results article{display:grid;gap:6px;padding:12px;border:1px solid #d6e1ef;border-radius:12px;overflow-wrap:anywhere}.app-invitation-results small{color:#536a80}.app-invitation-results .status-pill{justify-self:start}@media(max-width:640px){.app-invitation-filters{grid-template-columns:1fr}.app-invitation-person{grid-template-columns:28px minmax(0,1fr)}.app-invitation-history{grid-column:2}.app-invitation-selection-tools .button{flex:1 1 160px}.app-invitation-package .button{flex:1 1 160px}.app-invitation-users{max-height:36vh}.app-invitation-resend{gap:10px}}

html[data-direct-task-alert] #main-nav [data-page="tasks"]{--task-tab-color:var(--direct-task-alert-color);outline:2px solid transparent;animation:task-navigation-attention 1.1s ease-in-out infinite}html[data-direct-task-alert] #main-nav [data-page="tasks"]:after{content:"!";display:inline-grid;place-items:center;min-width:22px;height:22px;margin-left:auto;border-radius:50%;background:var(--task-tab-color);color:#fff;font-weight:800;flex-shrink:0}@keyframes task-navigation-attention{0%,100%{outline-color:transparent;box-shadow:none}50%{outline-color:var(--task-tab-color);box-shadow:0 0 0 4px color-mix(in srgb,var(--task-tab-color) 25%,transparent)}}@media(prefers-reduced-motion:reduce){html[data-direct-task-alert] #main-nav [data-page="tasks"]{animation:task-navigation-attention 2s ease-in-out infinite;animation-duration:2s!important;animation-iteration-count:infinite!important;outline-color:var(--task-tab-color)}}

/* Pending decisions and unread fleet messages retain the current navigation layout. */
#main-nav .nav-item.nav-alert-active{position:relative;outline:2px solid transparent;outline-offset:-2px;animation:nav-alert-attention 1.8s ease-in-out infinite}
#main-nav .nav-item>.nav-alert-count{display:inline-grid;place-items:center;flex-shrink:0;min-width:22px;height:22px;padding:0 5px;margin-left:auto;border-radius:999px;background:#ffd88a;color:#392600;font-size:12px;font-weight:800;line-height:1;box-sizing:border-box}
.ki-sidebar-collapsed #main-nav .nav-item>.nav-alert-count{position:absolute;top:2px;left:2px;min-width:18px;height:18px;padding:0 3px;margin:0;font-size:10px}
@keyframes nav-alert-attention{0%,100%{outline-color:transparent;box-shadow:none}50%{outline-color:#edb34c;box-shadow:inset 0 0 0 1px #edb34c}}
@media(max-width:1150px){#main-nav .nav-item>.nav-alert-count{position:absolute;top:2px;left:2px;min-width:18px;height:18px;padding:0 3px;margin:0;font-size:10px}}
@media(prefers-reduced-motion:reduce){#main-nav .nav-item.nav-alert-active{animation:none!important;outline-color:#edb34c}}

/* Central employee category choices preserve each original checkbox. */
.personnel-choice-group{min-inline-size:0;width:100%;grid-column:1/-1;margin:8px 0;padding:12px;border:1px solid var(--line,#d7e2ee);border-radius:12px;box-sizing:border-box}
.personnel-choice-group>legend{max-width:100%;padding:0 8px;font-size:15px;font-weight:750;overflow-wrap:anywhere}
.personnel-choice-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:8px;min-width:0}
.personnel-choice-options>label{min-width:0;overflow-wrap:anywhere}
.draft-instructor-grid .personnel-choice-options{grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr))}

/* Curated release notices: readable choices in their own categories. */
.release-note-selection-panel{border:1px solid var(--border,#d7e2ef);border-radius:14px;padding:18px;margin:18px 0;background:var(--panel,#fff);font-size:16px;line-height:1.5}
.release-note-selection-category{margin:18px 0;border:1px solid var(--border,#d7e2ef);border-radius:12px;overflow:hidden}
.release-note-selection-category h3{margin:0;padding:12px 16px;background:var(--surface-soft,#edf3fb);font-size:18px}
.release-note-selection-row{display:flex;align-items:flex-start;gap:14px;padding:16px;min-height:64px;border-top:1px solid var(--border,#d7e2ef);cursor:pointer}
.release-note-selection-row input{width:24px;height:24px;flex:0 0 24px;margin:3px 0;accent-color:var(--primary,#2457ae)}
.release-note-selection-row>span{display:flex;flex-direction:column;gap:6px;min-width:0;overflow-wrap:anywhere}
.release-note-selection-row strong{font-size:17px}.release-note-selection-row small{font-size:14px;font-weight:650;color:var(--muted,#50637e)}
.release-note-selection-row summary{padding:10px 0;min-height:44px}.release-note-selection-row ol{padding-left:24px}
.release-note-selection-actions,.release-note-selection-summary{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.release-note-selection-actions .button{min-height:48px;white-space:normal;text-align:center}
@media(max-width:600px){.release-note-selection-panel{padding:12px}.release-note-selection-row{padding:14px 10px}.release-note-selection-actions .button{width:100%}}

#release-note-selection{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}#release-note-selection>p,#release-note-selection>.release-note-selection-summary,#release-note-selection>.release-note-selection-actions{grid-column:1/-1}.release-note-selection-category{margin:0;align-self:start}
@media(max-width:850px){#release-note-selection{grid-template-columns:minmax(0,1fr)}}

.office-task-pending-files{display:grid;gap:8px;min-width:0;margin:10px 0}.office-task-pending-files article{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:10px}.office-task-pending-files span{overflow-wrap:anywhere}.office-task-pending-files button{min-width:44px;min-height:44px}.office-task-template-preview{overflow-wrap:anywhere;line-height:1.5}.office-task-start-template select{min-height:42px;max-width:100%}

/* One vertical page scroll; wide data tables keep their horizontal navigation. */
.settings-page-shell { height:auto !important; min-height:0; grid-template-rows:auto auto; overflow:visible; }
.settings-page-shell > .settings-panel:not([hidden]) { height:auto; max-height:none; overflow:visible; overscroll-behavior:auto; }
.settings-page-shell > .settings-tabs { position:sticky; top:var(--topbar-height,82px); }
#content :is(.permission-table-wrap,.app-feature-table-wrap) { max-height:none; overflow-x:auto; overflow-y:visible; overscroll-behavior-x:contain; overscroll-behavior-y:auto; }
.modal :is(.bulk-access-users,.password-reset-request-list,.app-invitation-users,.app-invitation-results,.bulk-user-rights-list) { max-height:none; overflow:visible; overscroll-behavior:auto; }
.modal :is(.permission-table-wrap,.app-feature-table-wrap,.table-scroll) { max-height:none; overflow-x:auto; overflow-y:visible; overscroll-behavior-x:contain; overscroll-behavior-y:auto; }
.app-personal-deny { display:block; max-width:100%; margin-top:6px; color:var(--muted,#536a80); font-size:12px; line-height:1.45; white-space:normal; overflow-wrap:anywhere; }

/* Authenticated task attachment preview; one discussion scroll area remains. */
.office-task-file-preview{display:grid;gap:12px;min-width:0;padding:16px;border:1px solid var(--line,#cad8eb);border-radius:12px;background:var(--surface,#fff);box-shadow:0 4px 16px #17385a0a;scroll-margin-block:16px}
.office-task-file-preview[hidden]{display:none}
.office-task-file-preview:focus{outline:2px solid var(--accent,#315aa8);outline-offset:3px}
.office-task-file-preview>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.office-task-file-preview>header>div:first-child{display:grid;gap:4px;min-width:0;flex:1 1 220px}
.office-task-file-preview strong{overflow-wrap:anywhere;color:var(--text,#18334e)}
.office-task-file-preview small,.office-task-file-preview>p{color:var(--muted,#53677f);font-size:12px;line-height:1.5;margin:0}
.office-task-preview-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.office-task-preview-actions>.button{min-height:40px}
.office-task-preview-content{min-width:0;width:100%;border-radius:8px;overflow:hidden;background:#eef3f8;text-align:center}
.office-task-preview-content:empty{display:none}
.office-task-preview-content>img{display:block;max-width:100%;max-height:min(58vh,680px);width:auto;height:auto;margin:auto;object-fit:contain}
.office-task-collaboration .office-task-comment-list{max-height:none;overflow:visible;margin:0}
.office-task-collaboration .office-task-attachment-list{max-height:none;overflow:visible;min-width:0}
.office-task-collaboration .office-task-comment-list article>.office-task-attachment-list{display:grid}
.office-task-attachment-list article{display:flex;align-items:center;gap:8px;min-width:0}
.office-task-attachment-list article>div{display:grid;gap:4px;flex:1;min-width:0}
.office-task-attachment-list [data-open-task-attachment]{white-space:normal;text-align:left;overflow-wrap:anywhere;max-width:100%}
.office-task-attachment-list article>.icon-button{flex:none;min-width:36px;min-height:36px}
@media(max-width:700px){.office-task-file-preview{padding:12px}.office-task-preview-actions{width:100%}.office-task-preview-actions>.button{flex:1}.office-task-comment-list article>div:first-child{flex-wrap:wrap}.office-task-comment-list time{white-space:nowrap}}

.permission-rights-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.permission-rights-tabs .button{min-height:42px;flex:1 1 180px;white-space:normal}
.permission-rights-tabs .button.active{background:#2852a5;color:white}
.app-policy-extra-actions{margin:12px 0;border:1px solid #c8d8e8;border-radius:10px;padding:10px}
.app-policy-extra-actions>summary{cursor:pointer;font-weight:700;min-height:32px}
.app-permission-matrix-wrap{max-height:none!important;overflow-y:visible!important}
.app-permission-matrix[data-rights-mode="individual"]{min-width:0;width:100%}
.app-permission-matrix[data-rights-mode="individual"] [data-app-choice]{width:100%;max-width:220px;min-height:40px;white-space:normal}
.individual-right-effective{display:block;margin-top:6px;font-size:12px;line-height:1.5;color:#244268}
.software-rights-personnel-toolbar{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}
.software-rights-personnel-toolbar>label{display:grid;gap:6px;flex:1 1 200px;font-weight:700;font-size:13px}
.software-rights-personnel-toolbar input,.software-rights-personnel-toolbar select{min-width:0;width:100%;min-height:42px}
.software-rights-personnel-toolbar>.software-rights-archived{display:flex;align-items:center;flex:0 1 210px}
.software-rights-archived input{width:18px;min-height:18px}
.software-rights-personnel-group h3{font-size:14px;margin:18px 0 8px}
.software-rights-person{display:flex;align-items:center;justify-content:space-between;text-align:left;gap:12px;min-height:54px;width:100%;padding:10px 14px;margin:6px 0;border:1px solid #cad9eb;border-radius:10px;background:#fff;color:#17385f}
.software-rights-person>span:first-child{display:grid;gap:4px;min-width:0}.software-rights-person strong,.software-rights-person small{overflow-wrap:anywhere}
.software-rights-person>span:last-child{font-size:12px;flex-shrink:0}.software-rights-person:disabled{opacity:.6;cursor:default}
.software-individual-rights-table select{min-height:40px;max-width:220px;width:100%}
.software-single-rights p{line-height:1.6}
@media(max-width:700px){.permission-rights-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.permission-rights-tabs .button{min-width:0;flex:none}.app-permission-matrix-toolbar>label{width:100%;min-width:0}.software-rights-personnel-toolbar>label{flex-basis:100%}.software-rights-person{align-items:flex-start}.software-rights-person>span:last-child{max-width:110px;white-space:normal}}

.app-effective-right{display:block;margin:6px 0;font-size:12px;line-height:1.5;color:#244268}

/* Billing: archive visibility is its own control, outside select fields. */
.billing-filters{flex-wrap:wrap;align-items:flex-end;gap:12px;min-width:0}
.billing-filters>.field-inline{flex:1 1 230px;min-width:0;max-width:420px}
.billing-filters>.field-inline select{width:100%;min-width:0;min-height:44px}
.billing-filters>.billing-archive-filter{display:inline-flex;flex:0 1 auto;align-items:center;gap:10px;min-width:0;min-height:44px;box-sizing:border-box;padding:10px 12px;margin:0;border:1px solid #b8cbe1;border-radius:10px;background:#fff;color:#224568;font-size:13px;font-weight:700;line-height:1.4;text-transform:none;letter-spacing:normal;cursor:pointer}
.billing-filters>.billing-archive-filter input[type="checkbox"]{width:20px;height:20px;min-width:20px;min-height:20px;flex:0 0 20px;padding:0;margin:0;accent-color:#2858a4}
.billing-filters>.billing-archive-filter span{min-width:0;overflow-wrap:anywhere}
.billing-filters>.billing-archive-filter:focus-within{outline:3px solid #7bb9ef;outline-offset:2px}
.billing-filters>.billing-archive-filter:has(input:checked){background:#edf4ff;border-color:#3a67ad}
@media(max-width:600px){.billing-filters>.field-inline{flex-basis:100%;max-width:none}.billing-filters>.billing-archive-filter{width:100%;flex-basis:100%}.billing-filters>.spacer{display:none}.billing-filters>.participant-meta{flex-basis:100%;overflow-wrap:anywhere}}

.billing-workspace .card{overflow:visible}
.billing-edit-table{display:grid;gap:18px;padding:0 18px 18px;min-width:0}
.billing-course-section{min-width:0;border:1px solid #cfdbeb;border-radius:12px;background:white;box-shadow:0 2px 6px #15325607}
.billing-course-section>summary{display:flex;align-items:center;gap:12px;list-style:none;cursor:pointer;padding:15px 18px;background:#eef4fc;border-radius:12px;color:#1b3e65}
.billing-course-section[open]>summary{border-radius:12px 12px 0 0;border-bottom:1px solid #d5e2f0}
.billing-course-section summary::-webkit-details-marker,.billing-person summary::-webkit-details-marker{display:none}
.billing-chevron{font-size:24px;line-height:1;flex:0 0 15px;transform:rotate(0);transition:transform .15s}
.billing-course-section[open]>summary>.billing-chevron,.billing-person[open]>summary>.billing-chevron{transform:rotate(90deg)}
.billing-course-title{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
.billing-course-title strong{font-size:15px}
.billing-course-title small{font-size:11px;color:#61738b}
.billing-course-count{display:inline-flex;align-items:center;white-space:nowrap;padding:6px 10px;border:1px solid #edcf92;background:#fff7e7;color:#885812;border-radius:20px;font-size:12px;font-weight:700}
.billing-course-total{font-size:12px;color:#536b83;white-space:nowrap}
.billing-course-people{padding:0 16px}
.billing-person{min-width:0;border-bottom:1px solid #e1e9f3}
.billing-person:last-child{border-bottom:0}
.billing-person>summary{display:flex;align-items:center;gap:12px;padding:13px 0;list-style:none;cursor:pointer;min-height:66px;box-sizing:border-box;color:#243e5c}
.billing-person>summary>strong{font-size:14px;min-width:0;overflow-wrap:anywhere;flex:1}
.billing-person-exam-passed:not(.billing-person-aborted)>summary>strong,.billing-person-exam-passed:not(.billing-person-aborted)>summary>strong>.record-name-link{color:var(--success)}
.billing-person-aborted>summary>strong,.billing-person-aborted>summary>strong>.record-name-link{color:var(--danger)}
.billing-abort-badge{margin-inline-start:6px;vertical-align:middle}
.billing-person-meta{font-size:11px;color:#61738b;white-space:nowrap}
.billing-person .status-pill{font-size:11px}
.billing-check-count{color:#906009;font-size:11px;white-space:nowrap}
.billing-note-button{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;height:42px;padding:0;border:1px solid #c5d5e9;border-radius:11px;background:white;color:#56718f;cursor:pointer}
.billing-note-button:hover,.billing-note-button.has-notes{color:#245bc1;background:#edf4ff;border-color:#aec8ef}
.billing-note-dot{position:absolute;width:7px;height:7px;border:2px solid #fff;border-radius:50%;top:6px;right:6px;background:#2a66ca}
.billing-person-body{padding:0 0 16px 27px}
.billing-person-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.billing-person-tools .button{font-size:11px;min-height:34px}
.billing-workflow{padding:16px;background:#f8fafd;border:1px solid #d7e2ef;border-radius:10px;min-width:0;scroll-margin-top:100px}
.billing-workflow+.billing-workflow{margin-top:12px}
.billing-workflow-heading{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:13px}
.billing-workflow-heading h4{font-size:12px;margin:0;color:#345879}
.billing-workflow-fields{display:grid;grid-template-columns:minmax(145px,1fr) minmax(190px,1.15fr) minmax(190px,1.2fr);gap:14px}
.billing-workflow-fields>div{min-width:0}
.billing-workflow-fields label,.billing-filters .field-inline>label{display:block;margin:0 0 7px;color:#516a86;font-size:11px;font-weight:700;letter-spacing:.03em}
.billing-edit-table input[type="text"],.billing-note-dialog input[data-billing-note-order],.billing-note-dialog textarea{width:100%;max-width:100%;min-width:0;box-sizing:border-box;min-height:44px;border:1px solid #bdcee3;border-radius:10px;padding:10px 12px;background:white;color:#1b3c60;font:inherit;font-size:13px;box-shadow:0 1px 2px #122e4d04}
.billing-picker{position:relative;min-width:0;width:100%}
.billing-picker-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;border:1px solid #bdcee3;border-radius:10px;padding:10px 12px;background:white;color:#234364;font:inherit;font-size:13px;text-align:left;cursor:pointer;box-shadow:0 1px 2px #122e4d04}
.billing-picker-trigger:hover,.billing-picker-trigger[aria-expanded="true"]{border-color:#6b98d7;background:#f9fbff}
.billing-picker-trigger:disabled{background:#edf2f8;color:#647c96;cursor:default}
.billing-picker-arrow{font-size:17px;color:#5f7fa3;line-height:1}
.billing-picker-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:130;min-width:100%;width:max-content;max-width:min(420px,85vw);max-height:280px;overflow:auto;background:white;padding:6px;box-sizing:border-box;border:1px solid #ccd9e9;border-radius:12px;box-shadow:0 12px 32px #18375926}
.billing-picker-menu[hidden]{display:none}
.billing-picker-menu>[role="option"]{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:42px;padding:10px 12px;border:0;border-radius:8px;background:transparent;color:#264563;font:inherit;font-size:13px;text-align:left;cursor:pointer}
.billing-picker-menu>[role="option"]:hover,.billing-picker-menu>[role="option"]:focus{outline:none;background:#edf4ff;color:#245ab0}
.billing-picker-menu>[aria-selected="true"]{font-weight:700;background:#edf4ff;color:#245ab0}
.billing-picker-check{visibility:hidden;font-weight:700;color:#2a65c5}
.billing-picker-menu>[aria-selected="true"] .billing-picker-check{visibility:visible}
.billing-note-button:focus-visible,.billing-picker-trigger:focus-visible,.billing-edit-table input:focus-visible,.billing-course-section>summary:focus-visible,.billing-person>summary:focus-visible,.billing-note-dialog input[data-billing-note-order]:focus-visible,.billing-note-dialog textarea:focus-visible{outline:3px solid #90b7ef;outline-offset:2px}
.billing-row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:12px}
.billing-row-actions .button{min-height:40px;font-size:12px;white-space:normal}
.billing-row-state{display:block;flex-basis:100%;font-size:11px;line-height:1.5;color:#267448;overflow-wrap:anywhere}
.billing-row-state.is-error{color:#ab243b}
.billing-origin-details{margin-top:10px;padding-top:8px;border-top:1px solid #e0e8f2}
.billing-origin-details summary{cursor:pointer;min-height:36px;align-content:center;font-weight:600;font-size:12px;color:#536b83}
.billing-origin-details ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:10px}
.billing-origin-details li{padding:10px;border:1px solid #e0e8f2;border-radius:8px;font-size:12px;overflow-wrap:anywhere;background:white}
.billing-origin-details li>div:first-child{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.billing-origin-details li input[type="checkbox"]{width:20px;height:20px;margin:0}
.billing-origin-details li p,.billing-extra-summary{white-space:pre-wrap;line-height:1.5;margin:8px 0;font-size:12px;color:#516984}
.modal:has(.billing-note-dialog){width:min(860px,94vw);max-width:94vw;max-height:90vh;overflow:auto}
.billing-note-dialog-header{display:flex;align-items:flex-start;gap:14px;margin-bottom:20px}
.billing-note-symbol{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:#edf4ff;border-radius:12px;color:#2c65c4;flex:0 0 44px}
.billing-note-dialog-header h2{margin:0;font-size:20px}
.billing-note-dialog-header p{color:#61738b;font-size:12px;line-height:1.6;margin:6px 0 0}
.billing-note-form{padding:18px;background:#f8fafd;border:1px solid #d8e3f0;border-radius:12px;margin-bottom:14px}
.billing-note-form h3{font-size:13px;color:#345879;margin:0 0 14px}
.billing-note-form>label{display:block;font-size:12px;font-weight:700;color:#365776;margin-bottom:7px}
.billing-note-dialog input[data-billing-note-order]{display:block;margin-bottom:14px}
.billing-note-dialog textarea{resize:vertical;min-height:130px;line-height:1.6}
.billing-checklist{min-width:0;margin:16px 0 0;padding:12px 14px;border:1px solid #d0deec;border-radius:10px;background:white}
.billing-checklist legend{color:#294d73;font-size:12px;font-weight:700;padding:0 5px}
.billing-checklist>p{color:#536b83;font-size:11px;margin:0 0 8px;line-height:1.6}
.billing-check-item{display:flex!important;align-items:flex-start;gap:10px;min-height:40px;box-sizing:border-box;padding:9px 0;margin:0!important;text-transform:none!important;letter-spacing:normal!important;font-size:12px!important;line-height:1.5;font-weight:500!important;color:#234263!important;cursor:pointer;overflow-wrap:anywhere}
.billing-check-item+label{border-top:1px solid #e0e8f2}
.billing-check-item input[type="checkbox"]{width:20px;height:20px;min-width:20px;min-height:20px;flex:0 0 20px;accent-color:#2858a4;padding:0;margin:0}
.billing-check-item span{min-width:0}
.billing-check-item small{display:block;color:#9c4a00}
.billing-check-item .billing-check-detail,.billing-check-item .billing-check-record{color:#536b83;font-weight:400}
.billing-check-item:focus-within{outline:2px solid #7bb9ef;outline-offset:2px;border-radius:4px}
.billing-previous-notes{margin-top:12px;padding:10px 12px;background:#fff9e8;border-left:3px solid #d69a1b;border-radius:5px;color:#635020;font-size:12px}
.billing-previous-notes summary{cursor:pointer;font-weight:700}
.billing-previous-note{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.6;margin:8px 0 0}
.billing-note-form [data-note-state]{font-size:12px;line-height:1.5;color:#345879}
@media(max-width:1100px){.billing-workflow-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.billing-order-field{grid-column:1/-1}.billing-person-meta{display:none}}
@media(max-width:700px){.billing-edit-table{padding:0 10px 12px;gap:12px}.billing-course-section>summary{padding:13px 12px;flex-wrap:wrap;gap:8px}.billing-course-title{flex-basis:calc(100% - 30px)}.billing-course-count{margin-left:23px}.billing-course-people{padding:0 10px}.billing-person>summary{flex-wrap:wrap;gap:8px}.billing-person>summary>strong{flex-basis:calc(100% - 84px)}.billing-person>summary>.status-pill{margin-left:23px}.billing-note-button{margin-left:auto;order:3}.billing-person-body{padding-left:0}.billing-workflow{padding:12px}.billing-workflow-fields{grid-template-columns:minmax(0,1fr);gap:12px}.billing-order-field{grid-column:auto}.billing-picker-trigger,.billing-edit-table input[type="text"],.billing-note-dialog input[data-billing-note-order],.billing-note-dialog textarea{font-size:16px}.billing-row-actions .button{flex:1 1 120px}.billing-origin-details summary{min-height:44px}.billing-note-dialog-header h2{font-size:17px}.billing-note-form{padding:12px}.billing-note-symbol{display:none}}
@media(prefers-reduced-motion:reduce){.billing-chevron{transition:none}}



.billing-course-navigation{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;background:#f5f8fc;color:#49627d;font-size:12px}.billing-existing-invoices{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:16px;border-top:1px solid #d9e3ef}.billing-existing-invoices>strong{font-size:12px;color:#49627d;margin-right:8px}

/* Billing occasions and automatic persistence */
.billing-recommendation-metric{padding:0!important;overflow:hidden}.billing-recommendation-metric>button{border:0;background:transparent;color:inherit;width:100%;height:100%;display:flex;align-items:center;gap:14px;text-align:left;padding:18px;cursor:pointer}.billing-recommendation-metric>button:hover{background:#eef5ff}.billing-recommendation-metric small{display:block;font-size:10px;line-height:1.5;color:#55708f;margin-top:4px}.billing-recommendation-metric>button:focus-visible{outline:3px solid #6198e0;outline-offset:-4px}
.billing-occasion-ledger{border:1px solid #cbdbee;border-radius:12px;padding:16px;background:#f5f9fe;margin:0 0 16px;min-width:0}.billing-ledger-heading{display:flex;gap:12px;justify-content:space-between;align-items:center}.billing-ledger-heading h4{margin:0;font-size:13px;color:#2a4d74}.billing-ledger-heading>span{font-size:11px;color:#61738b;white-space:nowrap}.billing-occasion-ledger>.participant-meta{font-size:11px;line-height:1.6;margin:10px 0 14px}.billing-occasion-row{background:white;border:1px solid #d9e4f0;border-radius:10px;padding:14px;margin-top:10px;min-width:0}.billing-occasion-select{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}.billing-occasion-select>input{width:20px;height:20px;min-width:20px;min-height:20px;accent-color:#2c63bc;margin:0}.billing-occasion-select>label{flex:1;color:#294867;font-size:12px;line-height:1.7;font-weight:700;cursor:pointer;min-width:120px}.billing-occasion-fields{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;margin:12px 0 0 30px}.billing-occasion-fields>label{display:grid;gap:6px;font-size:11px;font-weight:600;color:#536d89}.billing-occasion-fields input{min-width:0!important;max-width:210px;min-height:40px;border:1px solid #bdcee3;border-radius:9px;background:white;padding:8px 10px;font:inherit;font-size:13px;color:#234263;box-sizing:border-box}.billing-quantity{display:flex;align-items:center;gap:8px}.billing-quantity input{width:105px!important}.billing-quantity>span{font-weight:500}.billing-source-changed{flex:1 1 240px;font-size:11px;line-height:1.6;color:#855b16;padding:8px 12px;background:#fff7e5;border-radius:8px;margin:0}.billing-occasion-history{margin:8px 0 0 30px;font-size:11px;color:#536d89}.billing-occasion-history summary{cursor:pointer;min-height:30px;align-content:center}.billing-occasion-history p{margin:4px 0}.billing-occasion-add{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.billing-occasion-add .button{font-size:11px;min-height:40px}.billing-auto-comparison{flex-basis:100%;max-height:240px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;padding:.6rem;border:1px solid var(--border);border-radius:.6rem;background:var(--surface-soft,#f6f8fc)}
.billing-auto-comparison p{margin:.3rem 0 .7rem}
.billing-auto-state{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 0;font-size:11px;color:#31764f;line-height:1.6}.billing-auto-state .button{font-size:11px;min-height:34px}.billing-auto-state.is-error{color:#a52a37;background:#fff2f3;border:1px solid #efc6cc;padding:9px;border-radius:8px}.billing-auto-state[data-phase="pending"],.billing-auto-state[data-phase="saving"]{color:#4f6d90}.billing-auto-state[data-phase="saving"] [data-auto-message]:before{content:'';display:inline-block;vertical-align:middle;width:10px;height:10px;margin-right:6px;border:2px solid #b8cce8;border-right-color:#3165b0;border-radius:50%;animation:billing-save-spin .8s linear infinite}.billing-auto-state [hidden]{display:none!important}.billing-occasion-row>[data-remove-empty-occasion]{font-size:11px;margin-top:8px}.billing-occasion-row.is-historical{background:#f8fafc}.billing-interim-recommendation{font-size:10px!important;color:#365fa2!important;background:#eaf2ff!important}.billing-interim-recommendation[hidden]{display:none!important}[data-note-close-state]{font-size:12px;color:#8b4328;line-height:1.6}
@keyframes billing-save-spin{to{transform:rotate(360deg)}}
@media(max-width:700px){.billing-occasion-ledger{padding:12px}.billing-ledger-heading{align-items:flex-start;flex-wrap:wrap}.billing-occasion-row{padding:12px}.billing-occasion-fields{margin-left:0;gap:12px}.billing-occasion-fields>label{flex:1 1 150px}.billing-occasion-fields input{font-size:16px;max-width:100%;width:100%}.billing-quantity input{width:100%!important}.billing-occasion-history{margin-left:0}.billing-occasion-add .button{flex:1 1 160px}.billing-auto-state .button{flex:1 1 160px}.billing-auto-state [data-auto-message]{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.billing-auto-state[data-phase="saving"] [data-auto-message]:before{animation:none}}

/* Compact billing overview: each occasion and its workflow appear together once. */
.billing-workspace{gap:12px}#content .billing-workspace>.metrics{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}#content .billing-workspace>.metrics>.metric{min-height:66px;padding:10px 12px;gap:9px}#content .billing-workspace>.metrics .metric-icon{width:28px;height:28px;min-width:28px;font-size:15px}#content .billing-workspace>.metrics strong{font-size:21px;line-height:1.15}#content .billing-workspace>.metrics span{font-size:11px;line-height:1.35}#content .billing-workspace>.metrics .billing-recommendation-metric>button{padding:10px 12px;gap:9px}.billing-recommendation-metric small{font-size:10px;line-height:1.3;margin-top:2px}.billing-workspace>.billing-filters{padding:8px 0;gap:10px}.billing-filters .field-inline>label{margin-bottom:4px}.billing-filters .billing-picker-trigger{min-height:34px;padding:7px 10px}.billing-workspace>.card>.card-header{padding:12px 16px}.billing-workspace .card-header p{margin:4px 0 0;font-size:11px}.billing-edit-table{gap:8px;padding:0 12px 12px}.billing-course-section>summary{padding:9px 12px;gap:9px;min-height:46px}.billing-course-title{gap:1px}.billing-course-title strong{font-size:14px}.billing-course-count{padding:4px 8px;font-size:11px}.billing-course-people{padding:0 12px}.billing-person>summary{padding:7px 0;min-height:44px;gap:9px}.billing-person>summary>strong{font-size:13px}.billing-note-button{width:32px;height:32px;flex-basis:32px;border-radius:8px}.billing-note-dot{top:3px;right:3px}.billing-person-body{padding:0 0 10px 22px}.billing-person-tools{gap:10px;margin-bottom:7px}.billing-person-tools .button{min-height:28px;padding:5px 9px}.billing-person-tools .participant-meta{font-size:10px}.billing-occasion-ledger{padding:9px 10px;border-radius:9px;margin-bottom:8px}.billing-ledger-heading h4{font-size:12px}.billing-occasion-ledger>.participant-meta{font-size:10px;line-height:1.35;margin:5px 0 7px}.billing-occasion-row{display:grid;grid-template-columns:minmax(180px,1.25fr) 140px minmax(440px,2.4fr);column-gap:10px;row-gap:2px;padding:8px 9px;border-radius:7px;margin-top:6px;align-items:start}.billing-occasion-select{grid-column:1;grid-row:1;gap:7px;align-items:center;flex-wrap:nowrap;min-height:28px}.billing-occasion-select>input{width:18px;height:18px;min-width:18px;min-height:18px}.billing-occasion-select>label{font-size:11px;line-height:1.4;min-width:0}.billing-occasion-fields{grid-column:2;grid-row:1 / span 2;display:grid;gap:5px;margin:0}.billing-occasion-fields>label{gap:3px;font-size:10px}.billing-occasion-fields input{min-height:32px;padding:5px 7px;font-size:12px;width:100%;max-width:100%}.billing-quantity{gap:4px}.billing-quantity input{width:85px!important}.billing-source-changed{font-size:10px;line-height:1.4;padding:5px 7px}.billing-occasion-history{grid-column:1;grid-row:2;margin:0 0 0 25px;font-size:10px}.billing-occasion-history summary{min-height:23px}.billing-occasion-row>.billing-auto-state{grid-column:1 / span 2;grid-row:3;margin:0 0 0 25px;font-size:10px;line-height:1.4}.billing-occasion-row>.participant-meta{grid-column:1 / span 2;font-size:10px}.billing-occasion-row>[data-remove-empty-occasion]{grid-column:1 / span 2;margin:0;font-size:10px;min-height:26px;justify-self:start}.billing-workflow{padding:9px 10px;border-radius:8px}.billing-workflow+.billing-workflow{margin-top:7px}.billing-workflow-heading{gap:7px;margin-bottom:6px}.billing-workflow-heading h4{font-size:12px}.billing-workflow-fields{grid-template-columns:minmax(125px,1fr) minmax(155px,1.2fr) minmax(115px,1fr);gap:8px}.billing-workflow-fields label{font-size:10px;margin-bottom:3px}.billing-workflow-fields .billing-picker-trigger,.billing-workflow-fields input[type="text"]{min-height:32px;padding:6px 8px;font-size:12px;border-radius:7px}.billing-workflow-fields p{margin:6px 0;font-size:11px}.billing-workflow .billing-auto-state{margin:4px 0 0;font-size:10px;line-height:1.4}.billing-workflow-inline{grid-column:3;grid-row:1 / span 4;padding:0 0 0 10px;border:0;border-left:1px solid #e0e8f2;border-radius:0;background:transparent;scroll-margin-top:100px}.billing-workflow-heading[hidden]{display:none}.billing-final-hint{margin:0 0 4px;color:#277047;font-size:10px}.billing-origin-details{margin-top:4px;padding-top:3px}.billing-origin-details summary{min-height:24px;font-size:10px}.billing-occasion-add{gap:6px;margin-top:7px}.billing-occasion-add .button{min-height:29px;padding:5px 9px;font-size:10px}.billing-extra-summary{margin:5px 0;font-size:10px}.billing-existing-invoices{padding:8px 0;gap:6px}.billing-existing-invoices .button{min-height:30px;font-size:11px}.billing-auto-state.is-error{padding:6px}.billing-auto-state .button{min-height:30px}.billing-auto-comparison{font-size:11px}.modal:has(.billing-note-dialog){width:min(760px,94vw)}.billing-note-dialog-header{margin-bottom:12px;gap:10px}.billing-note-dialog-header h2{font-size:18px}.billing-note-dialog-header p{margin-top:3px}.billing-note-form{display:grid;grid-template-columns:minmax(130px,180px) minmax(0,1fr);column-gap:12px;row-gap:4px;padding:10px 12px;margin-bottom:8px}.billing-note-form h3{grid-column:1/-1;margin:0 0 4px}.billing-note-form>label{font-size:11px;margin:0}.billing-note-form>label[for^="billing-dialog-order-"]{grid-column:1;grid-row:2}.billing-note-form>input[data-billing-note-order]{grid-column:1;grid-row:3;align-self:start;min-height:34px;margin:0;padding:7px 9px;border-radius:7px}.billing-note-form>label[for^="billing-dialog-note-"]{grid-column:2;grid-row:2}.billing-note-form>textarea{grid-column:2;grid-row:3;min-height:72px;padding:7px 9px;border-radius:7px}.billing-note-form>.billing-previous-notes,.billing-note-form>.billing-checklist,.billing-note-form>.billing-auto-state{grid-column:1/-1}.billing-checklist{margin-top:7px;padding:7px 10px}.billing-check-item{min-height:30px;padding:5px 0;font-size:11px!important}.billing-note-dialog .modal-actions{margin-top:8px}
@media(max-width:1200px){.billing-occasion-row{grid-template-columns:minmax(160px,1fr) 130px}.billing-workflow-inline{grid-column:1/-1;grid-row:auto;border-left:0;border-top:1px solid #e0e8f2;padding:6px 0 0;margin-top:3px}.billing-occasion-row>.billing-auto-state{grid-column:2;grid-row:3;margin:0}.billing-workflow-fields{grid-template-columns:minmax(125px,1fr) minmax(155px,1.2fr) minmax(115px,1fr)}#content .billing-workspace>.metrics{grid-template-columns:repeat(5,minmax(0,1fr))}#content .billing-workspace>.metrics .metric-icon{display:none}}
@media(max-width:850px){#content .billing-workspace>.metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.billing-workflow-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.billing-order-field{grid-column:1/-1}.billing-workflow-inline .billing-order-field{grid-column:1/-1}.billing-note-form{column-gap:9px}}
@media(max-width:600px){#content .billing-workspace>.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}#content .billing-workspace>.metrics>.metric{min-height:58px;padding:8px}#content .billing-workspace>.metrics .billing-recommendation-metric>button{padding:8px}#content .billing-workspace>.metrics strong{font-size:19px}.billing-person-body{padding-left:0}.billing-person>summary>strong{flex-basis:calc(100% - 65px)}.billing-person>summary>.status-pill{margin-left:20px}.billing-person-tools .participant-meta{display:none}.billing-occasion-ledger{padding:8px}.billing-ledger-heading{gap:4px}.billing-occasion-row{grid-template-columns:minmax(0,1fr) 125px;gap:3px 7px;padding:7px}.billing-occasion-fields input,.billing-workflow-fields .billing-picker-trigger,.billing-workflow-fields input[type="text"],.billing-note-form input[data-billing-note-order],.billing-note-form textarea{font-size:16px;min-height:36px}.billing-occasion-history{margin-left:0}.billing-occasion-row>.billing-auto-state{grid-column:1/-1;grid-row:auto}.billing-workflow-fields{grid-template-columns:minmax(0,1fr)}.billing-workflow-inline .billing-order-field{grid-column:auto}.billing-occasion-add .button{flex:1 1 125px;min-height:34px}.billing-note-form{display:block;padding:9px}.billing-note-form>label{margin:6px 0 3px}.billing-note-form>input[data-billing-note-order]{margin-bottom:7px}.billing-note-form>textarea{min-height:78px}.billing-note-dialog-header{margin-bottom:8px}.billing-note-dialog .modal-actions .button{min-height:36px}}

.billing-abort-courses{display:grid;gap:8px;margin-top:12px}.billing-abort-courses>.button{display:flex;align-items:flex-start;flex-direction:column;gap:4px;text-align:left;padding:10px 12px}.billing-abort-courses>.button>span{font-size:12px;color:#526e8e}.billing-person-tools>[data-billing-abort]{color:#9a3142;border-color:#e5bfc6}

/* Linked exam entries retain independent numbered rows and one shared workflow. */
.has-departure-check>.billing-occasion-select{display:block;min-width:0}
.billing-occasion-primary,.billing-departure-select{display:flex;align-items:flex-start;gap:7px}
.billing-occasion-number{display:inline-flex;align-items:center;justify-content:center;flex:0 0 22px;min-width:22px;min-height:22px;border-radius:6px;background:var(--brand-cyan-soft);color:var(--brand-blue-dark);font-size:11px;font-weight:800;font-variant-numeric:tabular-nums}
.billing-occasion-select>.billing-occasion-label{flex:1;min-width:120px;color:#294867;font-size:11px;line-height:1.4;font-weight:700}
.billing-occasion-primary>.billing-occasion-label,.billing-departure-select>.billing-occasion-label{min-width:0;color:#294867;font-size:11px;line-height:1.4;font-weight:700}
.billing-departure-check{margin-top:9px;padding-top:7px;border-top:1px solid #e0e8f2}
.billing-departure-check>.billing-auto-state{margin:3px 0 0 25px;font-size:10px;line-height:1.4}
.billing-departure-check .billing-auto-state:empty{display:none}
@media(max-width:600px){.billing-departure-check{margin-top:8px}}

.billing-participant-search{display:flex;align-items:end;gap:12px;padding:0}.billing-participant-search>.field-inline{flex:1;min-width:0}.billing-participant-search label{display:block;margin-bottom:4px;font-size:12px;font-weight:700;color:var(--ink,#243b58)}.billing-search-control{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 11px;border:1px solid #c5d4e8;border-radius:10px;background:var(--white,#fff)}.billing-search-control:focus-within{border-color:#3b63b2;box-shadow:0 0 0 3px #dce8ff}.billing-search-control>span{font-size:22px;color:#617695}.billing-search-control input[type="search"]{flex:1;min-width:0;width:100%;border:0;box-shadow:none;outline:none;background:transparent;padding:9px 0;font:inherit;font-size:13px}.billing-search-control>.button{padding:2px 7px;min-height:28px;border:0;background:#eef3fa;font-size:19px;line-height:1}.billing-participant-search>p{margin:0 0 10px;color:var(--muted,#65768b);font-size:12px;white-space:nowrap}.billing-search-empty{padding:14px;margin:0}.billing-workspace [data-billing-course][hidden],.billing-workspace [data-billing-person][hidden]{display:none!important}@media(max-width:650px){.billing-participant-search{align-items:stretch;flex-direction:column;gap:5px}.billing-participant-search>p{margin:0;font-size:11px;white-space:normal}}

/* Quiet task creation age, shared by compact cards and the open task. */
.office-task-age{display:inline-block;width:max-content;max-width:100%;box-sizing:border-box;white-space:nowrap;color:#63758a;font-size:11px;font-weight:400;line-height:1.4;font-variant-numeric:tabular-nums;text-align:right;border:1px solid #d7e0ec;border-radius:5px;background:#f2f5fa;padding:2px 6px;cursor:default}
.office-task-age--green{color:#225d3c;border-color:#87b99b;background:#e8f5ed}
.office-task-age--yellow{color:#725500;border-color:#c9a34b;background:#fff4cb}
.office-task-age--red{color:#951b25;border-color:#b52d35;background:#ffe0e0;font-weight:700}
.office-task-card-corner{display:flex;flex-direction:column;align-items:flex-end;gap:3px;min-width:0}
#office-task-form>.office-task-dialog-header>div:first-child{min-width:0;flex:1 1 180px}
#office-task-form>.office-task-dialog-header>.office-task-dialog-corner{flex:0 0 auto;min-width:0;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.office-task-dialog-corner:empty{display:none!important}

/* Later-added access/help buttons keep the quiet creation age above their row. */
#office-task-form>.office-task-dialog-header:has(.office-task-age){position:relative;padding-top:32px}
#office-task-form>.office-task-dialog-header>.office-task-dialog-corner>time.office-task-age{position:absolute;top:6px;right:15px}

/* One shared table geometry for profile titles, navigation choices and grants. */
.software-permission-matrix{width:100%;min-width:calc(360px + var(--software-profile-count,4)*140px);table-layout:fixed;border-collapse:separate;border-spacing:0}
.software-permission-matrix .permission-function-column{width:auto}
.software-permission-matrix .permission-profile-column{width:140px}
.software-permission-matrix th:not(:first-child),.software-permission-matrix td:not(:first-child){width:140px;max-width:140px;text-align:center;box-sizing:border-box;overflow-wrap:anywhere;white-space:normal}
.software-permission-matrix .permission-profile-head{display:block;padding:6px;white-space:normal;overflow-wrap:anywhere}
.software-permission-matrix .permission-profile-cell{vertical-align:top;padding-top:16px}
.software-permission-matrix .permission-profile-cell .switch{display:flex;align-items:center;justify-content:center;min-height:28px;margin:0 auto}
.software-permission-matrix .permission-profile-cell .switch input{margin:0;width:20px;height:20px}
.software-permission-matrix .permission-profile-cell [data-permission-lock-reason]{margin-top:6px;font-size:11px;line-height:1.4}
.software-permission-matrix .permission-module button,.software-individual-rights-table .permission-module button{grid-template-columns:20px minmax(0,1fr);gap:6px;align-items:start;min-width:0}
.software-permission-matrix .permission-module button small,.software-individual-rights-table .permission-module button small{grid-column:2;white-space:normal;text-transform:none;font-size:11px}
.permission-table .permission-module-summary{vertical-align:top;padding:10px 8px!important}
.permission-module-count{display:block;min-height:28px;padding-top:3px;font-size:11px;font-weight:700;line-height:1.4}
.permission-navigation-group>th,.permission-navigation-group>td{padding:12px 9px;border-top:12px solid var(--surface,#fff);background:#dce9f6;color:#153b68;vertical-align:top}
.permission-navigation-group>th{text-align:left}.permission-navigation-group strong{display:block;font-size:15px;line-height:1.4}.permission-navigation-group small{display:block;font-size:11px;line-height:1.4;font-weight:500}
.rights-navigation-choice{display:grid;gap:4px;margin:5px 0 0;min-width:0;font-size:10px;font-weight:600;text-align:center}
.rights-navigation-choice select{width:100%;max-width:100%;min-width:0;min-height:36px;padding:6px 4px;font-size:12px;color:#18314a;background:#fff;border:1px solid #b6c9dd;border-radius:7px;box-sizing:border-box}
.permission-module.open .rights-navigation-choice{color:#fff}.permission-module.open .rights-navigation-choice select{color:#18314a}
.rights-shared-note{display:block!important;padding:0 12px 10px!important;white-space:normal!important;font-size:11px!important;line-height:1.45!important;font-weight:500!important;overflow-wrap:anywhere}
.rights-shared-note>span{display:block}.permission-feature-info .rights-shared-note{padding:4px 0 0!important;color:#475c77}
.rights-navigation-protected{display:block;font-size:11px;line-height:1.4;white-space:normal}
.software-individual-rights-table{width:100%;min-width:690px;table-layout:fixed}
.software-individual-rights-table .permission-function-column{width:53%}.software-individual-rights-table .permission-inherited-column{width:21%}.software-individual-rights-table .permission-individual-column{width:26%}
.software-individual-rights-table th:not(:first-child),.software-individual-rights-table td:not(:first-child){width:auto;text-align:center;vertical-align:top;white-space:normal;overflow-wrap:anywhere}
.software-individual-rights-table [data-user-permission]{width:100%;max-width:100%;min-width:0;min-height:40px;box-sizing:border-box}
.software-individual-rights-table .individual-right-effective{display:block;margin-top:6px;font-size:11px;line-height:1.4}
.own-settings-page{display:grid;gap:20px;min-width:0}.own-settings-page>section{min-width:0}.own-settings-page p{line-height:1.5}.own-theme-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin:18px 0 8px}.own-theme-custom{padding:14px;border:1px solid var(--line);border-radius:10px;margin-top:14px}.own-theme-custom>label{display:grid;gap:6px;margin:12px 0;max-width:480px}.own-theme-custom input{max-width:100%;box-sizing:border-box}.own-theme-custom summary{cursor:pointer;font-weight:700}.own-theme-custom .ui-theme-color-grid{margin:14px 0}.own-views-guidance{border-top:1px solid var(--line);padding-top:16px}
@media(max-width:700px){.software-permission-matrix{min-width:calc(280px + var(--software-profile-count,4)*130px)}.software-permission-matrix .permission-profile-column{width:130px}.software-permission-matrix th:not(:first-child),.software-permission-matrix td:not(:first-child){width:130px;max-width:130px}.software-individual-rights-table{min-width:640px}.own-theme-actions .button{flex:1 1 160px}}

/* Settings remain nested beneath their actual navigation entry in rights. */
.permission-table .permission-settings-subsection>td:first-child{border-left:4px solid #8aaed8;padding-left:24px}.permission-table .permission-settings-subsection>td:first-child strong{font-size:13px}.permission-table .permission-settings-subsection:not(.open)>td{background:#f0f5fb}.settings-tabs [data-settings-target][hidden]{display:none!important}

/* Open rights sections keep their dark background when the shared table hover rule applies. */
.ki-interface .data-table.permission-table:is(.software-permission-matrix,.software-individual-rights-table) .permission-module.open:is(:hover,:focus-within)>td{background:var(--brand-blue);color:#fff}

/* Navigation keeps the existing button appearance while allowing browser link actions. */
a.button[href]{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}a.nav-item[href],.azav-tabs>a[href],a.vbz3-metric-button[href]{text-decoration:none}a.vbz3-metric-button[href]{color:inherit}.azav-tabs>a[href]{display:inline-flex;align-items:center;justify-content:center}

.work-center-summary a[href],.operations-page a.office-board-tab{text-decoration:none}
.permission-preview-trigger{display:inline-flex;align-items:center;gap:4px;width:max-content;margin-top:6px;padding:3px 7px;border:1px solid #c6d6e8;border-radius:6px;background:#f4f8fd;color:#285ca4;font-size:11px;font-weight:700;cursor:pointer}.permission-preview-trigger:hover,.permission-preview-trigger:focus-visible{background:#e8f1fe;outline:2px solid #5185c3;outline-offset:1px}.permission-preview{position:fixed;z-index:22000;width:min(520px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow:auto;padding:16px;border:1px solid #a9c2df;border-radius:14px;background:#fff;color:#1d3551;box-shadow:0 16px 48px #142d4f40;font-family:inherit;font-size:13px;text-align:left}.permission-preview-heading{display:flex;align-items:flex-start;gap:12px;padding-bottom:10px;border-bottom:1px solid #e0e8f2}.permission-preview-heading>div{flex:1;min-width:0}.permission-preview-heading small{color:#54728f;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.permission-preview-heading h3{margin:4px 0 0;font-size:16px;line-height:1.3}.permission-preview-close{display:grid;place-items:center;flex:none;width:30px;height:30px;border:1px solid #cfdaea;border-radius:8px;background:#f7f9fc;color:#2f4b68;font-size:22px;line-height:1}.permission-preview-close:focus-visible{outline:3px solid #285ca4;outline-offset:2px}.permission-preview-description{margin:12px 0;font-size:13px;line-height:1.5;white-space:normal}.permission-preview-demo{display:grid;grid-template-columns:1fr 1fr;gap:10px}.permission-preview-demo.is-self-service{grid-template-columns:1fr}.permission-preview-state{min-width:0;padding:9px;border:1px solid #dae2ec;border-radius:10px;background:#f5f7fa}.permission-preview-state.is-allowed{border-color:#a3d5c1;background:#edf8f3}.permission-preview-state-label{display:block;margin-bottom:7px;font-size:11px;color:#5d6f83}.permission-preview-state.is-allowed .permission-preview-state-label{color:#146d4a}.permission-preview-screen{display:flex;min-height:168px;overflow:hidden;border:1px solid #d7e0ec;border-radius:7px;background:#fff}.permission-preview-menu{display:flex;flex-direction:column;gap:8px;flex:0 0 23px;padding:12px 5px;background:#244e88}.permission-preview-menu i{display:block;height:5px;border-radius:2px;background:#c0d5f3}.permission-preview-area{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-width:0;flex:1;padding:10px 8px}.permission-preview-mini-title{display:block;max-width:100%;font-size:9px;font-weight:800;line-height:1.3;white-space:normal;overflow-wrap:anywhere}.permission-preview-line{display:block;width:85%;height:5px;border-radius:2px;background:#dbe5ef}.permission-preview-line.short{width:60%}.permission-preview-demo-action{display:block;max-width:100%;margin-top:4px;padding:5px 6px;border:1px solid #9db4d2;border-radius:5px;background:#e9f1fd;color:#27548b;font-size:9px;font-weight:800;line-height:1.2;white-space:normal}.permission-preview-state.is-denied .permission-preview-demo-action{border-color:#dadfe5;background:#eef0f3;color:#8491a0}.permission-preview-cursor{position:absolute;top:105px;left:70%;font-size:25px;line-height:1;color:#173d6b;text-shadow:1px 1px #fff;animation:permission-preview-pointer 3.4s ease-in-out infinite;pointer-events:none}.permission-preview-demo-result{display:block;max-width:100%;margin-top:auto;padding-top:7px;font-size:9px;font-weight:800;line-height:1.3;white-space:normal;color:#a53a48}.permission-preview-state.is-allowed .permission-preview-demo-result{color:#10704b}.permission-preview-demo-note{margin:8px 0 10px;color:#60748c;font-size:10px;line-height:1.4}.permission-preview-scope{margin:8px 0;padding:8px;border-left:3px solid #8facd1;background:#f3f7fc;font-size:11px;line-height:1.45;white-space:normal}.permission-preview-code{display:block;overflow-wrap:anywhere;color:#6c7e91;font-family:monospace;font-size:10px}@keyframes permission-preview-pointer{0%,15%{transform:translate(0,12px);opacity:0}30%{opacity:1}50%,65%{transform:translate(-25px,-28px);opacity:1}70%{transform:translate(-25px,-26px) scale(.85)}85%,100%{transform:translate(-25px,-28px);opacity:0}}@keyframes permission-preview-result{0%,52%{opacity:.3}62%,90%{opacity:1}100%{opacity:.3}}@media(prefers-reduced-motion:reduce){.permission-preview-cursor{animation:none;display:none}.permission-preview-demo-result{animation:none;opacity:1}}@media(max-width:420px){.permission-preview{padding:12px}.permission-preview-heading h3{font-size:14px}.permission-preview-demo{gap:6px}.permission-preview-state{padding:6px}.permission-preview-menu{flex-basis:18px;padding-inline:4px}.permission-preview-area{padding:8px 6px}.permission-preview-screen{min-height:180px}}

.permission-preview-demo-symbol{position:absolute;top:45px;right:10px;font-size:26px;line-height:1;color:#a53a48;opacity:.8}.is-allowed .permission-preview-demo-symbol{color:#10704b;animation:permission-preview-reveal 3.4s ease-in-out infinite}.permission-preview-demo[data-scenario="edit"] .is-allowed .permission-preview-demo-symbol{animation-name:permission-preview-edit}.permission-preview-demo[data-scenario="remove"] .is-allowed .permission-preview-demo-symbol{animation-name:permission-preview-remove}.permission-preview-demo[data-scenario="archive"] .is-allowed .permission-preview-demo-symbol{animation-name:permission-preview-archive}.permission-preview-demo[data-scenario="send"] .is-allowed .permission-preview-demo-symbol{animation-name:permission-preview-send}.permission-preview-demo[data-scenario="document"] .is-allowed .permission-preview-demo-symbol{animation-name:permission-preview-document}.permission-preview-demo[data-scenario="import"] .is-allowed .permission-preview-demo-symbol{animation-name:permission-preview-import}@keyframes permission-preview-reveal{0%,48%{opacity:0;transform:scale(.8)}65%,90%{opacity:1;transform:scale(1)}100%{opacity:0}}@keyframes permission-preview-edit{0%,45%{transform:translate(0,0) rotate(0)}55%,65%{transform:translate(-12px,4px) rotate(-20deg)}75%,100%{transform:translate(0,0) rotate(0)}}@keyframes permission-preview-remove{0%,52%{opacity:1;transform:scale(1)}70%,95%{opacity:0;transform:scale(.3)}100%{opacity:1;transform:scale(1)}}@keyframes permission-preview-archive{0%,52%{transform:translate(0,0);opacity:1}75%,95%{transform:translate(-25px,35px) scale(.5);opacity:.2}100%{transform:translate(0,0);opacity:1}}@keyframes permission-preview-send{0%,52%{transform:translateX(0);opacity:1}75%,95%{transform:translateX(50px);opacity:0}100%{transform:translateX(0);opacity:1}}@keyframes permission-preview-document{0%,45%{transform:scaleY(.15);opacity:.2}65%,95%{transform:scaleY(1);opacity:1}100%{transform:scaleY(.15);opacity:.2}}@keyframes permission-preview-import{0%,45%{transform:translateY(-18px);opacity:0}65%,95%{transform:translateY(8px);opacity:1}100%{transform:translateY(-18px);opacity:0}}@media(prefers-reduced-motion:reduce){.permission-preview .permission-preview-demo-symbol{animation:none;opacity:1}}


/* One native select foundation, including filters outside .form-field.
   Native values, form submission, optgroups and keyboard control are preserved. */
body select {
  box-sizing: border-box;
  max-width: 100%;
  min-height: 36px;
  padding: 8px 11px;
  border: 1px solid var(--line, #dfe4ec);
  border-radius: 9px;
  color: var(--ink, #182033);
  background-color: var(--surface, var(--white, #fff));
  font: inherit;
  line-height: 1.3;
  transition: border-color .12s ease, box-shadow .12s ease;
}
body select:not([multiple]):is(:not([size]), [size="1"]) {
  -webkit-appearance: none;
  appearance: none;
  padding-inline-end: 32px;
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: calc(100% - 17px) 50%, calc(100% - 12px) 50%;
  background-size: 5px 5px;
  background-repeat: no-repeat;
  cursor: pointer;
}
body select:not([multiple]):is(:not([size]), [size="1"]):dir(rtl) {
  background-position: 12px 50%, 17px 50%;
}
body select:hover:not(:disabled) { border-color: var(--brand-cyan, #08a4df); }
body select:focus-visible {
  outline: 2px solid var(--brand-cyan, #08a4df);
  outline-offset: 2px;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-cyan, #08a4df) 16%, transparent);
}
body select:disabled { cursor: not-allowed; }

/* Progressive enhancement: modern popup in supporting browsers, styled native
   fallback elsewhere. Keep listboxes and multiple selections on their native path. */
@supports (appearance: base-select) {
  body select:not([multiple]):is(:not([size]), [size="1"]),
  body select:not([multiple]):is(:not([size]), [size="1"])::picker(select) {
    appearance: base-select;
  }
  body select:not([multiple]):is(:not([size]), [size="1"]) {
    background-image: none;
    padding-inline-end: 11px;
  }
  body select:not([multiple]):is(:not([size]), [size="1"])::picker-icon {
    margin-inline-start: 12px;
    color: var(--muted, #6b7280);
    transition: rotate .12s ease;
  }
  body select:not([multiple]):is(:not([size]), [size="1"]):open::picker-icon { rotate: 180deg; }
  body select:not([multiple]):is(:not([size]), [size="1"])::picker(select) {
    max-height: min(360px, 60dvh);
    max-width: calc(100vw - 24px);
    overflow: auto;
    padding: 5px;
    border: 1px solid var(--line, #dfe4ec);
    border-radius: 11px;
    color: var(--ink, #182033);
    background: var(--surface, var(--white, #fff));
    box-shadow: 0 12px 30px color-mix(in srgb, var(--ink, #182033) 18%, transparent);
  }
  body select:not([multiple]):is(:not([size]), [size="1"]) option {
    min-height: 34px;
    padding: 8px 10px;
    gap: 8px;
    border-radius: 7px;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  body select:not([multiple]):is(:not([size]), [size="1"]) option:is(:hover, :focus-visible, :checked) {
    color: var(--ink, #182033);
    background: color-mix(in srgb, var(--brand-cyan, #08a4df) 13%, var(--surface, var(--white, #fff)));
  }
  body select:not([multiple]):is(:not([size]), [size="1"]) option:checked { font-weight: 700; }
}
@media (pointer: coarse) {
  body select { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  body select, body select::picker-icon { transition: none; }
}
@media (forced-colors: active) {
  body select:not([multiple]):is(:not([size]), [size="1"]) { appearance: auto; background-image: none; border-color: ButtonText; }
  body select:focus-visible { outline-color: Highlight; box-shadow: none; }
}

/* Pending decisions are immediately visible, processed requests stay together. */
.vacation-request-filters { align-items: end; gap: 12px; }
.vacation-request-filters > .form-field { width: min(240px, 100%); min-width: 140px; margin: 0; }
.vacation-request-filters > .form-field > span { color: var(--muted); font-size: 11px; font-weight: 700; }
.vacation-request-sections { display: grid; gap: 12px; padding: 0 12px 12px; }
.vacation-request-section { min-width: 0; border: 1px solid var(--line); border-radius: 12px; background: var(--surface, var(--white, #fff)); overflow: hidden; }
.vacation-request-section > summary { display: flex; align-items: center; gap: 12px; padding: 13px 14px; cursor: pointer; list-style: none; background: var(--surface-soft, var(--canvas)); }
.vacation-request-section > summary::-webkit-details-marker { display: none; }
.vacation-request-section > summary::before { content: "›"; color: var(--brand-blue); font-size: 21px; font-weight: 800; }
.vacation-request-section[open] > summary::before { rotate: 90deg; }
.vacation-request-section > summary > span { display: grid; gap: 3px; flex: 1; min-width: 0; }
.vacation-request-section > summary strong { color: var(--ink); font-size: 13px; }
.vacation-request-section > summary small { color: var(--muted); font-size: 11px; font-weight: 400; }
.vacation-request-section > summary > b { min-width: 30px; padding: 5px 9px; border-radius: 999px; color: var(--ink); background: var(--surface, var(--white, #fff)); text-align: center; font-size: 12px; }
.vacation-request-section-pending > summary { border-inline-start: 4px solid var(--brand-cyan); }
.vacation-request-section-cancellations > summary { border-inline-start: 4px solid var(--warning); }
.vacation-request-section > summary:focus-visible,
.vacation-employee-request-group > summary:focus-visible { outline: 2px solid var(--brand-cyan); outline-offset: -3px; }
.vacation-employee-request-groups { display: grid; gap: 10px; padding: 10px; }
.vacation-employee-request-group { min-width: 0; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.vacation-employee-request-group > summary { display: flex; align-items: center; gap: 12px; padding: 11px 12px; cursor: pointer; background: var(--surface-soft, var(--canvas)); }
.vacation-employee-request-group > summary > span:first-child { display: grid; gap: 3px; flex: 1; min-width: 0; }
.vacation-employee-request-group > summary small { color: var(--muted); font-size: 11px; }
.vacation-group-count { padding: 5px 8px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: var(--surface, var(--white, #fff)); font-size: 11px; white-space: nowrap; }
.vacation-request-section .data-table { margin: 0; }
.vacation-request-section .empty-state { margin: 0; padding: 18px; }
@media (max-width: 600px) {
  .vacation-request-filters > .form-field { width: 100%; min-width: 0; }
  .vacation-request-sections { padding-inline: 8px; }
  .vacation-request-section > summary { gap: 8px; padding: 11px 10px; }
  .vacation-employee-request-groups { padding: 7px; }
  .vacation-employee-request-group > summary { flex-wrap: wrap; gap: 7px; padding: 10px; }
}

/* Personal pin view stays switchable while the selection controls are folded. */
.appointment-pin-heading > .appointment-pin-title { display:flex; flex-wrap:wrap; align-items:center; gap:5px 10px; min-width:0; }
.appointment-pin-title > small { flex-basis:100%; }
.appointment-pin-view-switch { display:inline-flex; align-items:center; gap:2px; padding:2px; border:1px solid var(--line); border-radius:8px; background:var(--surface, #fff); }
.appointment-pin-view-switch button { min-height:27px; padding:4px 9px; border:0; border-radius:6px; font:inherit; font-size:10px; font-weight:800; color:var(--muted); background:transparent; cursor:pointer; }
.appointment-pin-view-switch button.active { color:#fff; background:var(--brand-blue); }
.appointment-pin-view-switch button:focus-visible { outline:2px solid var(--brand-blue); outline-offset:2px; }
.appointment-pin-controls { grid-template-columns:minmax(130px,.65fr) minmax(230px,1.05fr) minmax(105px,.48fr) auto; }
.appointment-pin-collapsed-summary .appointment-matrix-wrap { min-width:0; width:100%; }
@media (max-width:699px) {
  .appointment-pin-controls { grid-template-columns:minmax(0,1fr); }
  .appointment-pin-title { gap:4px 6px; }
  .appointment-pin-view-switch button { padding:4px 7px; }
}

/* Compact pinned matrices: display values once; full editing matrix is unchanged. */
.appointment-matrix-compact .appointment-matrix-cell { display:flex; align-items:center; justify-content:center; min-height:38px; padding:5px 6px 5px 11px; }
.appointment-matrix-compact .appointment-matrix-cell > .appointment-matrix-pair { display:flex; align-items:center; justify-content:center; gap:4px; white-space:nowrap; font-size:11px; font-variant-numeric:tabular-nums; }
.appointment-matrix-compact .appointment-matrix-pair b { overflow:visible; font-size:11px; text-overflow:clip; }
.appointment-matrix-transposed { width:100%; table-layout:fixed; border-collapse:separate; border-spacing:1px; background:#dfe6ee; }
.appointment-matrix-transposed th, .appointment-matrix-transposed td { padding:0; background:#fff; }
.appointment-matrix-transposed thead th { position:sticky; top:0; z-index:4; height:116px; }
.appointment-matrix-transposed .appointment-transposed-corner { left:0; z-index:6; padding:7px; color:#fff; background:var(--brand-blue-dark); font-size:10px; }
.appointment-matrix-transposed .appointment-transposed-pupil { position:sticky; min-width:0; }
.appointment-transposed-pupil .appointment-transposed-name { position:absolute; left:50%; top:50%; width:98px; max-width:98px; height:20px; padding:2px 3px; transform:translate(-50%,-50%) rotate(90deg); white-space:nowrap; text-align:left; font-size:11px; line-height:16px; }
.appointment-transposed-name > strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.appointment-transposed-pupil .appointment-unpin { position:absolute; right:3px; top:3px; z-index:2; width:22px; height:22px; transform:none; }
.appointment-matrix-transposed .appointment-transposed-type { position:sticky; left:0; z-index:3; padding:4px 4px 4px 10px; background:#f2f6fa; color:#314056; font-size:10px; text-align:left; }
.appointment-transposed-type > i { position:absolute; left:3px; top:7px; bottom:7px; width:4px; border-radius:3px; background:var(--lesson-color); }
.appointment-matrix-transposed td > .appointment-matrix-cell { min-height:30px; padding:3px 4px 3px 7px; }
.appointment-matrix-transposed .appointment-matrix-cell > .appointment-matrix-pair { gap:2px; font-size:10px; }
.appointment-matrix-transposed .appointment-matrix-pair b { font-size:10px; }

/* Reclaim only the closed left matrix summary padding; keep its own scroll boundary. */
.appointment-calendar-workspace.is-side .appointment-pin-collapsed-summary > .appointment-matrix-wrap.appointment-matrix-compact { width:calc(100% + 18px); max-width:none; margin-inline:-9px; }

/* Superadmin emergency program return; current Live data are retained. */
.release-emergency-return { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.7fr); align-items:center; gap:16px; padding:18px 20px; border:1px solid #efb0b9; background:#fff8f8; }
.release-emergency-return h2 { margin:4px 0 8px; }
.release-emergency-return p { margin:0; line-height:1.45; }
.release-emergency-return small { display:block; margin-top:6px; color:#57657a; line-height:1.4; }
.release-emergency-actions { display:grid; justify-items:start; gap:8px; min-width:0; }
.release-emergency-actions p { font-size:12px; overflow-wrap:anywhere; }
@media (max-width:700px) { .release-emergency-return { grid-template-columns:minmax(0,1fr); } .release-emergency-actions .button { max-width:100%; white-space:normal; } }
