:root {
  color-scheme: light;
  --blue: #1565a8;
  --blue-dark: #0d4777;
  --blue-soft: #e8f2fa;
  --green: #247b4d;
  --red: #b42318;
  --yellow: #a15c00;
  --yellow-soft: #fff3cd;
  --line: #cad7e2;
  --text: #17212b;
  --muted: #657586;
  --surface: #fff;
  --background: #f3f6f8;
  font-family: Inter, "Segoe UI", Arial, sans-serif;
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--background); color: var(--text); }
a { color: var(--blue); }
h1 { margin: 0 0 1rem; font-size: clamp(1.55rem, 3vw, 2.2rem); }
h2 { margin-top: 0; font-size: 1.2rem; }
h3 { margin: 0 0 .45rem; }
p { line-height: 1.45; }

.topbar { min-height: 58px; background: var(--blue-dark); color: white; display: flex; align-items: center; justify-content: space-between; padding: .65rem max(1rem, calc((100% - 1320px)/2)); }
.brand { color: white; text-decoration: none; font-weight: 700; letter-spacing: .01em; }
.topbar-actions { display: flex; align-items: center; justify-content: flex-end; gap: .75rem; }
.topbar-actions form { margin: 0; }
.user-label { font-size: .92rem; }
.user-label-compact { display: none; }
.page { max-width: 1320px; margin: 0 auto; padding: 1.2rem; }
.link-button { border: 0; color: white; background: transparent; text-decoration: underline; cursor: pointer; }

.notice { max-width: 1320px; margin: .8rem auto 0; padding: .8rem 1rem; border-radius: 8px; }
.notice.success { background: #dcfce7; color: #166534; }
.notice.error { background: #fee2e2; color: #991b1b; }
.form-notice { max-width: none; margin: 0 0 1rem; }
.muted { color: var(--muted); }
[hidden] { display: none !important; }

.admin-nav { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1.25rem; }
.admin-nav a { padding: .6rem .8rem; background: white; border: 1px solid var(--line); border-radius: 7px; text-decoration: none; }
.panel, .action-panel { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 1rem; margin-bottom: 1rem; box-shadow: 0 2px 8px rgba(20, 40, 60, .05); }
.test-panel { border-left: 5px solid #e2a527; }
.info-panel { border-left: 5px solid var(--blue); }
.two-column { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.metric { background: white; border: 1px solid var(--line); border-radius: 9px; padding: 1rem; display: flex; flex-direction: column; }
.metric strong { font-size: 1.8rem; color: var(--blue-dark); }
.metric span { color: var(--muted); }
.metric.warning { border-color: #e2a527; }

.stack { display: grid; gap: .8rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.full-width { grid-column: 1 / -1; }
.narrow-panel { max-width: 760px; }
.form-actions { grid-column: 1 / -1; display: flex; gap: .7rem; align-items: center; }
.button-link { display: inline-block; padding: .55rem .75rem; border: 1px solid #8ca0b3; border-radius: 6px; background: #f7f9fa; text-decoration: none; white-space: nowrap; }
.check-label { display: flex; flex-direction: row; align-items: center; gap: .45rem; }
.check-label input { width: auto; }
.target-map-form { min-width: 430px; display: grid; grid-template-columns: 105px 1fr auto auto; gap: .4rem; align-items: center; }
.target-actions { display: grid; gap: .45rem; }
.target-actions form { margin: 0; }
.profile-permissions { padding: 1rem 0; border-top: 1px solid var(--line); }
.profile-permissions:first-of-type { border-top: 0; }
.permission-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; margin: .8rem 0; }
.permission-item { border: 1px solid var(--line); border-radius: 7px; padding: .65rem; background: #f8fafb; }
label { display: grid; gap: .35rem; font-weight: 600; }
input, select, button { font: inherit; }
input, select { width: 100%; padding: .7rem; border: 1px solid #9badbc; border-radius: 6px; background: white; }
.field-error { color: var(--red); }
.field-error input, .field-error select { border: 2px solid var(--red); background: #fff7f7; }
button { border: 1px solid #8ca0b3; border-radius: 6px; background: #f7f9fa; padding: .65rem .9rem; cursor: pointer; font-weight: 600; }
button:hover { filter: brightness(.96); }
.primary { background: var(--blue); border-color: var(--blue); color: white; }
.danger { background: var(--red); border-color: var(--red); color: white; }
.warning-button, .pause-button { background: #e8a317; border-color: #c98909; color: #221500; }
.inline-form { display: flex; gap: .4rem; min-width: 270px; }
.inline-form input { min-width: 145px; }

.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; border-bottom: 1px solid var(--line); padding: .65rem; vertical-align: top; }
th { color: var(--blue-dark); background: #eff5f9; white-space: nowrap; }
.inactive-row { color: #7a8791; }
.test-row { background: #fff9e8; }
.badge { display: inline-block; border-radius: 999px; padding: .2rem .55rem; background: #e7edf2; font-size: .82rem; white-space: nowrap; }
.badge.active { background: #dcfce7; color: #166534; }
.badge.inactive { background: #f1f2f3; color: #6b7280; }
.badge.test { background: var(--yellow-soft); color: #7a4900; }

.login-card { width: min(440px, 100%); margin: 7vh auto; background: white; border: 1px solid var(--line); border-radius: 12px; padding: clamp(1.2rem, 4vw, 2rem); box-shadow: 0 8px 35px rgba(25, 55, 80, .1); }
.terminal-card { width: min(560px, 100%); }
.touch-button { min-height: 56px; font-size: 1.05rem; }

.terminal-page { max-width: 720px; padding-top: .9rem; }
.eyebrow { color: var(--muted); text-transform: uppercase; font-size: .75rem; letter-spacing: .08em; }
.current-booking { width: 100%; min-width: 0; display: flex; flex-direction: column; justify-content: center; padding: 1rem 1.05rem; margin-bottom: .75rem; border-radius: 10px; color: white; background: #16834b; border: 1px solid #0e6b3b; box-shadow: 0 4px 12px rgba(13, 92, 52, .2); }
.current-booking strong { margin: .12rem 0 .18rem; font-size: 1.28rem; color: white; }
.booking-activity { margin: .1rem 0; font-size: 1rem; font-weight: 700; }
.current-booking small { margin-top: .25rem; color: rgba(255, 255, 255, .94); }
.booking-form { display: grid; gap: 1rem; }
.target-picker { display: grid; gap: .5rem; }
.target-picker input[type="search"] { min-height: 50px; font-size: 1.05rem; border-width: 2px; }
.target-picker select { min-height: 215px; font-size: 1rem; }
.target-picker option { padding: .55rem .4rem; }
.target-result-heading { display: flex; justify-content: space-between; gap: 1rem; font-weight: 600; }
.target-picker-summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .65rem .75rem; border: 1px solid var(--line); border-radius: 7px; background: var(--blue-soft); }
.target-picker-summary div { display: grid; gap: .15rem; }
.target-picker-summary button { padding: .45rem .7rem; }
.target-result-list { display: grid; gap: .35rem; margin-top: .35rem; }
.target-result-item { width: 100%; min-height: 46px; display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; gap: .7rem; padding: .55rem .7rem; text-align: left; line-height: 1.25; white-space: normal; background: #f8fafb; cursor: pointer; }
.target-result-label { min-width: 0; overflow-wrap: anywhere; }
.target-result-item:hover, .target-result-item:focus { border-color: var(--blue); background: var(--blue-soft); }
.target-no-results { margin: 0; padding: .65rem .75rem; border: 1px solid var(--line); border-radius: 7px; color: var(--muted); background: #f8fafb; }
fieldset { border: 0; padding: 0; margin: 0; }
legend { font-weight: 700; margin-bottom: .5rem; }
.activity-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; }
.activity-choice { position: relative; }
.activity-choice input { position: absolute; opacity: 0; pointer-events: none; }
.activity-choice span { min-height: 74px; padding: .65rem; display: flex; flex-direction: column; justify-content: center; background: #f5f8fa; border: 2px solid var(--line); border-radius: 8px; cursor: pointer; }
.activity-choice input:checked + span { border-color: var(--blue); background: var(--blue-soft); }
.activity-choice b { color: var(--blue-dark); font-size: 1.05rem; }
.current-booking.pause-active { border-color: #b76d00; background: #d98300; box-shadow: 0 4px 12px rgba(151, 87, 0, .22); }
.terminal-command-bar { display: grid; grid-template-columns: 2fr 1fr; gap: .65rem; margin-bottom: 1rem; }
.terminal-command-bar.three-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.terminal-command-bar.pause-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.terminal-command-bar form, .terminal-command-bar button { width: 100%; }
.terminal-command-bar button { min-height: 66px; padding: .6rem; border-radius: 10px; font-size: 1.08rem; box-shadow: 0 3px 9px rgba(25, 45, 65, .13); }
.switch-button { background: var(--blue); border-color: var(--blue); color: white; }
.section-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: .8rem; }
.section-heading h2 { margin: .1rem 0 0; }
.switch-panel { scroll-margin-top: .75rem; }
.booking-submit { min-height: 62px; }
.terminal-idle-screen { display: grid; gap: .8rem; }
.idle-start-button { width: 100%; min-height: 92px; border-radius: 12px; font-size: 1.3rem; box-shadow: 0 4px 12px rgba(13, 71, 119, .2); }
.terminal-correction-entry { padding: .25rem 0 1rem; text-align: center; }
.terminal-correction-entry .button-link { color: var(--muted); background: transparent; }
.correction-page-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; }
.correction-page-heading h1 { margin: 0; font-size: 1.45rem; }
.correction-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin-bottom: 1rem; }
.correction-choice-card { min-height: 145px; display: flex; flex-direction: column; justify-content: center; gap: .35rem; padding: 1rem; border-radius: 12px; color: white; background: var(--blue); border: 1px solid #0f558e; box-shadow: 0 4px 12px rgba(13, 71, 119, .2); text-align: center; text-decoration: none; }
.correction-choice-card.wrong { background: #d98300; border-color: #b76d00; }
.correction-choice-card strong { font-size: 1.25rem; }
.correction-choice-card span { color: rgba(255, 255, 255, .92); }
.request-status-panel h2 { margin-bottom: .7rem; }
.request-status-list { display: grid; gap: .45rem; }
.request-status-row { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .65rem 0; border-top: 1px solid var(--line); }
.request-status-row:first-child { border-top: 0; }
.request-status-row div { display: grid; gap: .15rem; }
.request-status-row small { color: var(--muted); }
.badge.request-open { background: var(--yellow-soft); color: #754700; }
.badge.request-approved { background: #dcfce7; color: #166534; }
.badge.request-rejected { background: #fee2e2; color: #991b1b; }
.correction-form { gap: .75rem; }
.time-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
.request-period-grid { display: grid; grid-template-columns: minmax(145px, 1.35fr) repeat(2, minmax(88px, .75fr)); gap: .55rem; }
.field-label { display: flex; align-items: baseline; justify-content: space-between; gap: .35rem; }
.field-label small { color: var(--muted); font-size: .7rem; font-weight: 500; white-space: nowrap; }
.request-final-step { display: grid; gap: .75rem; }
.wrong-booking-list { display: grid; gap: .5rem; max-height: 42vh; overflow-y: auto; }
.wrong-booking-choice { position: relative; }
.wrong-booking-choice input { position: absolute; opacity: 0; pointer-events: none; }
.wrong-booking-choice span { display: grid; gap: .18rem; padding: .7rem; border: 2px solid var(--line); border-radius: 9px; background: #f7f9fa; cursor: pointer; }
.wrong-booking-choice input:checked + span { border-color: var(--blue); background: var(--blue-soft); }
.wrong-booking-choice b { color: var(--blue-dark); font-size: .85rem; }
.wrong-booking-choice strong { font-size: 1.05rem; }
.wrong-booking-choice small { color: var(--muted); }
.wrong-request-details { display: grid; gap: .75rem; padding-top: .75rem; border-top: 1px solid var(--line); }
.request-admin-list { display: grid; gap: 1rem; margin-bottom: 1rem; }
.request-admin-card { margin: 0; }
.request-admin-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.request-admin-heading h2 { margin: .1rem 0 0; }
.request-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin: .8rem 0; }
.request-comparison.single { grid-template-columns: 1fr; }
.request-comparison > div { display: grid; gap: .3rem; padding: .8rem; border: 1px solid var(--line); border-radius: 8px; background: #f8fafb; }
.request-comparison small { color: var(--muted); }
.request-decision-form { display: grid; grid-template-columns: minmax(220px, 1fr) auto; gap: .7rem; align-items: end; padding-top: .8rem; border-top: 1px solid var(--line); }
.request-decision-buttons { display: flex; gap: .5rem; }
.day-notice { display: flex; gap: .7rem; flex-wrap: wrap; padding: .75rem 1rem; margin-bottom: 1rem; border-radius: 8px; border-left: 5px solid var(--yellow); background: var(--yellow-soft); }
.badge.holiday { background: #fff0c2; color: #754700; margin-top: .35rem; align-self: flex-start; }
.compact-terminal-panel { padding: .85rem; }
.compact-booking-panel { max-width: 920px; }
.compact-form { gap: .65rem; }
.compact-form input, .compact-form select { padding: .55rem .65rem; }
.compact-form .target-picker input[type="search"] { min-height: 42px; }
.compact-form .target-picker select { min-height: 145px; }
.regime-suggestion { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; }
.booking-list-table { width: 100%; table-layout: auto; font-size: .82rem; font-weight: 400; }
.booking-list-table th, .booking-list-table td { padding: .34rem .42rem; vertical-align: middle; font-size: inherit; font-weight: 400; }
.booking-list-table thead th, .booking-section-row th { font-weight: 400; }
.booking-list-table .booking-date,
.booking-list-table .booking-datetime,
.booking-list-table .booking-minutes,
.booking-list-table .booking-source { white-space: nowrap; }
.booking-list-table .booking-employee { max-width: 170px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.booking-list-table .booking-target { max-width: 105px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.booking-list-table .booking-activity { width: 105px; max-width: 105px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 400; }
.booking-list-table .booking-actions { width: 70px; min-width: 70px; white-space: nowrap; position: relative; overflow: visible; }
.booking-action-row { display: flex; align-items: center; justify-content: flex-end; gap: .3rem; white-space: nowrap; }
.booking-edit-action { background: var(--blue-soft); border-color: #9abbd6; color: var(--blue-dark); }
.icon-action { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; min-width: 30px; padding: 0 !important; border-radius: 6px; font-size: 1.15rem !important; line-height: 1; text-decoration: none; }
.compact-action-form { display: inline-flex; align-items: center; margin: 0; position: relative; }
.action-popover { position: absolute; right: 0; top: calc(100% + 5px); z-index: 30; display: flex; align-items: center; gap: .3rem; padding: .35rem; border: 1px solid var(--line); border-radius: 7px; background: white; box-shadow: 0 5px 18px rgba(0,0,0,.16); }
.action-popover[hidden] { display: none; }
.action-popover input { width: 170px; min-width: 0; padding: .38rem .48rem; font-size: .78rem; }
.secondary-action { color: var(--muted); background: #f7f9fa; border-color: #b8c5cf; }
.secondary-action:hover { color: var(--red); border-color: #d79b96; background: #fff7f7; }
.confirm-action { font-size: 1rem !important; }
.booking-list-table .booking-source { width: 88px; max-width: 88px; overflow: hidden; text-overflow: ellipsis; }
.booking-list-table .booking-datetime { min-width: 72px; }
.booking-list-table td:nth-child(6), .booking-list-table th:nth-child(6) { padding-left: .85rem; }
.booking-review-inline { display: inline-flex; align-items: center; gap: .35rem; max-width: 190px; white-space: nowrap; }
.booking-review-detail { display: inline; max-width: 135px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: inherit; }
.tooltip-wrap { position: relative; cursor: help; }
.tooltip-wrap:hover::after { content: attr(data-tooltip); position: absolute; left: 0; top: calc(100% + 5px); z-index: 80; width: max-content; max-width: 280px; padding: .42rem .55rem; border: 1px solid var(--line); border-radius: 6px; background: #fff; color: inherit; box-shadow: 0 4px 14px rgba(0,0,0,.16); white-space: normal; overflow-wrap: anywhere; line-height: 1.3; font-size: .78rem; font-weight: 400; }
.booking-list-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding: .75rem; margin-bottom: .8rem; border: 1px solid var(--line); border-radius: 8px; background: #f8fafb; }
.booking-list-summary { display: flex; gap: .55rem; flex-wrap: wrap; }
.booking-list-summary > div { display: grid; grid-template-columns: auto auto; column-gap: .45rem; align-items: baseline; min-width: 150px; padding: .45rem .65rem; border: 1px solid var(--line); border-radius: 7px; background: white; }
.booking-list-summary span { color: var(--muted); font-size: .75rem; }
.booking-list-summary strong { color: var(--blue-dark); font-size: 1.2rem; }
.booking-list-summary small { grid-column: 1 / -1; color: var(--muted); font-size: .7rem; }
.booking-list-summary .warning { border-color: #e2a527; background: var(--yellow-soft); }
.booking-list-summary .warning strong { color: var(--yellow); }
.booking-filter-form { display: flex; align-items: end; gap: .45rem; flex-wrap: wrap; min-width: min(100%, 360px); }
.booking-filter-form label { min-width: min(100%, 250px); font-size: .8rem; }
.booking-filter-form select { padding: .45rem .55rem; font-size: .85rem; }
.booking-filter-form button, .booking-filter-form .button-link { padding: .45rem .65rem; font-size: .82rem; }
.booking-section-row th { padding: .45rem .5rem; color: var(--blue-dark); background: var(--blue-soft); border-top: 2px solid #a9c8e2; text-align: left; }
.booking-section-row.secondary th { color: var(--muted); background: #f4f6f8; border-top-color: var(--line); }
.cancelled-row { background: #fff0f0; color: #7e3131; text-decoration: line-through; }
.cancelled-row .booking-actions, .cancelled-row .badge { text-decoration: none; }
.badge.cancelled { background: #fee2e2; color: #991b1b; }
.order-fieldset { border-top: 1px solid var(--line); padding-top: .8rem; }
.order-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; }
.order-grid input[type="number"], .order-input input[type="number"] { max-width: 110px; }
.order-input { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: .55rem; font-size: .85rem; color: var(--muted); }
.date-range { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; }
.fieldset-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: .6rem; }
.fieldset-heading legend { margin: 0; }
.employee-selection { border-top: 1px solid var(--line); padding-top: .8rem; }
.employee-check-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; }
.preview-summary { display: flex; flex-wrap: wrap; gap: .7rem; margin-bottom: .8rem; }
.preview-summary span { padding: .65rem .8rem; border: 1px solid var(--line); border-radius: 7px; background: #f8fafb; }
.conflict-row { background: #fff7e5; }
.batch-confirm { margin-top: 1rem; }
.danger-zone { border-left: 5px solid var(--red); }
.rule-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.rule { border: 1px solid var(--line); border-radius: 8px; padding: .9rem; background: #f8fafb; }
.rule p { margin: .3rem 0; }

@media (max-width: 850px) {
  .two-column, .metrics, .rule-list { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .activity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .permission-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .current-booking { min-width: 100%; }
  .order-grid, .employee-check-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .page { padding: .65rem; }
  .topbar { padding: .55rem .8rem; gap: .5rem; }
  .topbar-actions { gap: .5rem; min-width: 0; }
  .user-label { max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .84rem; }
  .user-label-full { display: none; }
  .user-label-compact { display: inline; }
  .terminal-page { padding-top: .65rem; }
  .terminal-idle-screen { min-height: calc(100dvh - 58px - 1.3rem); align-content: center; }
  .idle-start-button { min-height: 126px; font-size: 1.45rem; }
  .terminal-state-screen { height: calc(100dvh - 58px - 1.3rem); display: grid; grid-template-rows: minmax(105px, 1.15fr) minmax(0, 3fr); gap: .55rem; }
  .terminal-state-screen .current-booking { height: 100%; margin: 0; padding: 1rem; border-radius: 12px; }
  .terminal-state-screen .current-booking strong { font-size: clamp(1.3rem, 6vw, 1.75rem); }
  .terminal-command-bar, .terminal-command-bar.three-actions { height: 100%; grid-template-columns: 1fr; grid-template-rows: repeat(3, minmax(0, 1fr)); gap: .55rem; margin: 0; }
  .terminal-command-bar.pause-actions { grid-template-columns: 1fr; grid-template-rows: repeat(3, minmax(0, 1fr)); }
  .terminal-command-bar form { height: 100%; }
  .terminal-command-bar button { height: 100%; min-height: 0; border-radius: 12px; font-size: clamp(1.15rem, 5vw, 1.4rem); }
  .compact-terminal-panel, .switch-panel { margin: 0; padding: .65rem; }
  .correction-choice-grid { grid-template-columns: 1fr; }
  .correction-choice-card { min-height: 112px; }
  .wrong-booking-list { max-height: 36vh; }
  .booking-form { gap: .6rem; }
  .target-picker input[type="search"] { min-height: 44px; font-size: 1rem; }
  .target-picker select { min-height: min(35dvh, 205px); }
  .target-picker-summary { padding: .5rem .6rem; }
  .target-picker-summary strong { font-size: .9rem; line-height: 1.15; }
  .compact-target-picker input[type="search"] { min-height: 42px; }
  .target-result-item { min-height: 42px; padding: .48rem .55rem; }
  .request-period-grid { grid-template-columns: minmax(125px, 1.35fr) repeat(2, minmax(78px, .75fr)); gap: .4rem; }
  .request-period-grid input { padding: .62rem .48rem; }
  .activity-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .35rem; }
  .activity-choice span { height: 56px; min-height: 0; overflow: hidden; overflow-wrap: anywhere; align-items: center; padding: .3rem .2rem; text-align: center; font-size: .74rem; line-height: 1.05; }
  .activity-choice b { font-size: .82rem; }
  legend { margin-bottom: .35rem; }
  .booking-submit { min-height: 54px; }
  .request-comparison, .request-decision-form { grid-template-columns: 1fr; }
  .request-decision-buttons button { flex: 1; min-height: 52px; }
  .date-range, .order-grid, .employee-check-grid { grid-template-columns: 1fr; }
  .permission-grid { grid-template-columns: 1fr; }
}

@media (min-width: 601px) and (max-height: 720px) {
}

@media (min-width: 601px) and (max-width: 900px) {
}

@media (max-width: 760px) {
}

@media (max-width: 480px) {
  th, td { padding: .5rem; }
}

@media (max-width: 340px) {
  .request-period-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .request-period-grid label:first-child { grid-column: 1 / -1; }
}

/* Eindeutige Stornierungszuordnung: eigene Zeile direkt unter der gewählten Buchung. */
.booking-cancel-active > td { background: #fff4d8 !important; box-shadow: inset 0 1px 0 #e2bd67, inset 0 -1px 0 #e2bd67; }
.booking-cancel-row[hidden] { display: none; }
.booking-cancel-row td { padding: .42rem .5rem !important; background: #fffaf0; border-bottom: 1px solid #e2bd67; }
.booking-cancel-form { display: flex; align-items: center; gap: .55rem; margin: 0; }
.booking-cancel-label { flex: 0 1 auto; white-space: nowrap; font-size: .82rem; font-weight: 400; }
.booking-cancel-form input { flex: 1 1 220px; min-width: 160px; max-width: 360px; padding: .42rem .5rem; font-size: .82rem; }

/* Inline-Korrektur: gleiches Bedienmuster wie Stornieren. */
.booking-edit-active > td { background: #eef6fc !important; box-shadow: inset 0 1px 0 #9abbd6, inset 0 -1px 0 #9abbd6; }
.booking-edit-row[hidden] { display: none; }
.booking-edit-row td { padding: .55rem .65rem !important; background: #f7fbfe; border-bottom: 1px solid #9abbd6; }
.booking-inline-edit-content .booking-edit-fragment { max-width: none; margin: 0; padding: 0; border: 0; box-shadow: none; }
.booking-inline-edit-content .form-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .45rem .6rem; }
.booking-inline-edit-content .target-result-list { max-height: 180px; overflow-y: auto; }
.booking-inline-edit-content .form-actions { align-items: center; gap: .55rem; }
.danger-text-action { padding: .42rem .72rem; border: 1px solid #c97b7b; border-radius: 6px; background: #fff3f3; color: #8b2525; font: inherit; cursor: pointer; }
.neutral-text-action { padding: .42rem .72rem; }
.booking-list-table .booking-source { width: 70px; max-width: 70px; }
.booking-list-table .booking-activity { width: 90px; max-width: 90px; }

/* Kompakte Inline-Korrektur: Original ist die markierte Tabellenzeile darüber. */
.booking-inline-compact { padding: 0; }
.booking-inline-title { margin: 0 0 .45rem; font-size: .84rem; font-weight: 400; }
.booking-inline-form { display: flex; align-items: end; gap: .55rem; flex-wrap: wrap; margin: 0; }
.booking-inline-form > label { margin: 0; min-width: 105px; font-size: .78rem; font-weight: 400; }
.booking-inline-form > label select, .booking-inline-form > label input { margin-top: .18rem; padding: .4rem .45rem; font-size: .82rem; }
.booking-inline-form > label:nth-of-type(1) { min-width: 135px; }
.booking-inline-form > label:nth-of-type(2) { min-width: 135px; }
.booking-inline-form > label:nth-of-type(4), .booking-inline-form > label:nth-of-type(5) { width: 88px; min-width: 88px; }
.booking-inline-form .target-picker { flex: 1 1 300px; min-width: 260px; }
.booking-inline-form .target-picker-summary { min-height: 34px; }
.booking-inline-form .form-actions { display: flex; gap: .45rem; margin: 0; align-items: center; }

/* 0.5.3 Inline-Korrektur Feinschliff: Felder oben bündig, Auftragssuche als kompakte Dropdown-Liste. */
.booking-inline-form { align-items: flex-start; flex-wrap: nowrap; }
.booking-inline-form > label { align-self: flex-start; }
.booking-inline-form .form-actions { align-self: flex-start; padding-top: 1.18rem; white-space: nowrap; }
.booking-inline-form .target-picker { align-self: flex-start; position: relative; }
.booking-inline-form .target-picker-summary { min-height: 34px; padding: .35rem .55rem; }
.booking-inline-form .target-picker-summary button { padding: .35rem .6rem; }
.booking-inline-form [data-target-editor] { position: relative; }
.booking-inline-form [data-target-editor] > label { margin: 0; font-size: .78rem; font-weight: 400; }
.booking-inline-form .target-picker input[type="search"] { min-height: 34px; height: 34px; margin-top: .18rem; padding: .4rem .45rem; border-width: 1px; font-size: .82rem; }
.booking-inline-form .target-result-heading { display: none !important; }
.booking-inline-edit-content .target-result-list {
  position: absolute;
  z-index: 30;
  left: 0;
  right: 0;
  top: calc(100% + 2px);
  display: block;
  max-height: 190px;
  margin: 0;
  overflow-y: auto;
  border: 1px solid #9abbd6;
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 5px 12px rgba(10,35,55,.14);
}
.booking-inline-edit-content .target-result-list[hidden] { display: none; }
.booking-inline-edit-content .target-result-item {
  display: block;
  width: 100%;
  min-height: 0;
  padding: .34rem .5rem;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: #fff;
  font-size: .82rem;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.booking-inline-edit-content .target-result-item:last-child { border-bottom: 0; }
.booking-inline-edit-content .target-result-item:hover,
.booking-inline-edit-content .target-result-item:focus { background: var(--blue-soft); }

/* 0.5.3 Inline-Korrektur: Projekt/Auftrag optisch wie die übrigen Eingabefelder. */
.booking-inline-form .target-picker {
  flex: 0 0 205px;
  min-width: 205px;
  max-width: 205px;
}
.booking-inline-form .target-picker-summary {
  box-sizing: border-box;
  height: 34px;
  min-height: 34px;
  padding: 0 .4rem 0 .45rem;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  gap: .35rem;
}
.booking-inline-form .target-picker-summary > div {
  display: block;
  min-width: 0;
  flex: 1 1 auto;
}
.booking-inline-form .target-picker-summary .eyebrow {
  display: none;
}
.booking-inline-form .target-picker-summary [data-target-summary-text] {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: .82rem;
  font-weight: 400;
  line-height: 32px;
}
.booking-inline-form .target-picker-summary button {
  flex: 0 0 auto;
  height: 26px;
  min-height: 26px;
  padding: 0 .45rem;
  font-size: .78rem;
  line-height: 1;
}

/* Buchungsseite: kompakter Kopf und manuelle Inline-Buchung */
.booking-toolbar-simple{display:flex;align-items:flex-end;gap:18px;justify-content:space-between}
.booking-filter-grid{display:grid;grid-template-columns:120px 120px 180px minmax(220px,1fr) 150px 130px auto;gap:10px;align-items:end;flex:1}
.booking-filter-grid label,.manual-booking-grid label{margin:0;font-weight:400}
.booking-filter-grid input,.booking-filter-grid select,.manual-booking-grid input,.manual-booking-grid select{width:100%;box-sizing:border-box;font-weight:400}
.booking-filter-actions{display:flex;gap:8px;align-items:end}
.manual-booking-toggle{margin:10px 0}
.manual-booking-panel{padding:12px 14px;margin:8px 0 14px}
.manual-booking-grid{display:grid;grid-template-columns:130px 190px minmax(220px,1fr) 160px 95px 95px auto;gap:10px;align-items:end}
.manual-target-picker{position:relative;min-width:0}
.manual-target-picker select{position:absolute;z-index:30;left:0;right:0;top:100%;max-height:190px;background:#fff}
.manual-booking-actions{display:flex;gap:8px;align-items:end;white-space:nowrap}
@media(max-width:1100px){.booking-filter-grid,.manual-booking-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}.booking-toolbar-simple{display:block}.booking-list-summary{margin-top:10px}}

/* Buchungen: kompakter, einheitlicher Seitenkopf */
.booking-toolbar-simple{align-items:end;gap:10px}
.booking-filter-grid{grid-template-columns:120px 120px 180px minmax(210px,1fr) 150px 120px auto;gap:8px}
.booking-filter-grid label{font-size:.75rem;line-height:1.15}
.booking-filter-grid input,.booking-filter-grid select{height:36px;padding:.38rem .5rem;font-size:.78rem}
.booking-filter-form button,.booking-filter-form .button-link{height:36px;box-sizing:border-box;display:inline-flex;align-items:center;padding:.38rem .62rem;font-size:.78rem}
.booking-filter-actions{gap:6px}
.booking-list-summary{flex:0 0 auto;align-self:end}
.booking-list-summary > div{display:flex;align-items:center;justify-content:center;min-width:145px;height:36px;box-sizing:border-box;padding:.38rem .65rem;border-radius:7px}
.booking-list-summary strong{font-size:.82rem;font-weight:400;white-space:nowrap;color:var(--text)}
.booking-list-summary .warning strong{color:var(--text)}
.manual-booking-toggle .primary{font-size:.82rem;padding:.48rem .7rem}
.manual-booking-grid{font-size:.78rem}
.manual-booking-grid label{font-size:.75rem}
.manual-booking-grid input,.manual-booking-grid select{height:36px;padding:.38rem .5rem;font-size:.78rem}
.manual-booking-actions button{height:36px;font-size:.78rem}

/* Buchungen: einheitliche Eingabezeilen, Kalenderhilfe und Abstand zum Zähler */
.booking-toolbar-simple{gap:16px}
.booking-list-summary{margin-left:4px}
.manual-booking-grid{grid-template-columns:130px 190px minmax(220px,1fr) 160px 95px 95px auto;align-items:end}
.manual-booking-grid>label,.manual-booking-grid>.target-picker{min-width:0}
.manual-booking-grid input,.manual-booking-grid select,.manual-booking-actions button,.manual-booking-actions .button-link{height:36px;box-sizing:border-box;font-size:.78rem;font-weight:400}
.manual-target-picker>label{display:block}
.manual-target-picker>label>input{height:36px}
.manual-target-picker select{font-size:.78rem;font-weight:400}
.date-entry{position:relative;display:block;width:100%}
.date-entry>input[data-date-text]{padding-right:34px!important}
.date-picker-button{position:absolute;right:3px;bottom:3px;width:30px!important;height:30px!important;min-width:30px!important;padding:0!important;border:0!important;background:transparent!important;color:#315b7a!important;font-size:0!important;cursor:pointer}
.date-picker-button::before{content:"";display:block;width:14px;height:14px;margin:auto;border:1.5px solid currentColor;border-radius:2px;box-sizing:border-box;background:linear-gradient(currentColor,currentColor) 2px 3px/8px 1px no-repeat}
.date-picker-button::after{content:"";position:absolute;left:9px;top:7px;width:10px;height:3px;border-left:1.5px solid currentColor;border-right:1.5px solid currentColor;box-sizing:border-box}
.native-date-picker{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;right:0;bottom:0}


/* 0.5.3 Buchungen: sichtbarer optischer Feinschliff Seitenkopf + manuelle Buchung */
.booking-toolbar-simple {
  gap: 22px;
}
.booking-filter-grid {
  grid-template-columns: 120px 120px 180px minmax(210px, 1fr) 150px 120px auto;
  gap: 9px;
}
.booking-filter-actions {
  gap: 8px;
  padding-right: 6px;
}
.booking-list-summary {
  margin-left: 10px;
}
.booking-list-summary > div {
  min-width: 150px;
}

.manual-booking-panel {
  padding: 10px 14px;
}
.manual-booking-grid {
  grid-template-columns: 130px 190px minmax(250px, 1fr) 165px 95px 95px auto;
  gap: 10px;
  align-items: end;
}
.manual-booking-grid > label,
.manual-booking-grid > .target-picker {
  display: block;
  margin: 0;
  font-size: .75rem;
  font-weight: 400;
  line-height: 1.15;
}
.manual-booking-grid input,
.manual-booking-grid select,
.manual-booking-grid .target-picker-summary,
.manual-booking-actions button,
.manual-booking-actions .button-link {
  height: 36px;
  min-height: 36px;
  box-sizing: border-box;
  border-radius: 6px;
  font-size: .78rem;
  font-weight: 400;
}
.manual-booking-grid input,
.manual-booking-grid select {
  padding: .38rem .5rem;
}
.manual-booking-actions {
  display: flex;
  align-items: end;
  gap: 8px;
  padding-top: 0;
}
.manual-booking-actions button,
.manual-booking-actions .button-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .38rem .68rem;
  white-space: nowrap;
}
.manual-target-picker {
  position: relative;
  min-width: 0;
}
.manual-target-picker [data-target-editor] {
  position: relative;
}
.manual-target-picker [data-target-editor] > label {
  display: block;
  margin: 0;
  font-size: .75rem;
  font-weight: 400;
  line-height: 1.15;
}
.manual-target-picker input[type="search"] {
  width: 100%;
  height: 36px;
  min-height: 36px;
  margin-top: 0;
  padding: .38rem .5rem;
  font-size: .78rem;
  font-weight: 400;
}
.manual-target-picker .target-picker-summary {
  width: 100%;
  display: flex;
  align-items: center;
  gap: .35rem;
  padding: 0 .35rem 0 .5rem;
  border: 1px solid var(--line);
  background: #fff;
}
.manual-target-picker .target-picker-summary > div {
  min-width: 0;
  flex: 1 1 auto;
}
.manual-target-picker .target-picker-summary strong {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: .78rem;
  font-weight: 400;
}
.manual-target-picker .target-picker-summary button {
  height: 28px;
  min-height: 28px;
  padding: 0 .5rem;
  font-size: .75rem;
}
.manual-target-results {
  position: absolute;
  z-index: 40;
  left: 0;
  right: 0;
  top: calc(100% + 2px);
  max-height: 185px;
  overflow-y: auto;
  margin: 0;
  border: 1px solid #9abbd6;
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 5px 12px rgba(10,35,55,.14);
}
.manual-target-results[hidden] { display: none; }
.manual-target-results .target-result-item {
  display: block;
  width: 100%;
  min-height: 0;
  padding: .34rem .5rem;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: #fff;
  font-size: .78rem;
  line-height: 1.2;
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.manual-target-results .target-result-item:last-child { border-bottom: 0; }
.manual-target-results .target-result-item:hover,
.manual-target-results .target-result-item:focus { background: var(--blue-soft); }

@media (max-width: 1180px) {
  .booking-toolbar-simple { display: block; }
  .booking-list-summary { margin: 10px 0 0; }
  .manual-booking-grid { grid-template-columns: 130px 180px minmax(220px,1fr) 150px 90px 90px auto; }
}


/* 0.5.3: Filterkopf ohne Überlappung */
.booking-toolbar-simple { gap: 12px; }
.booking-filter-grid {
  grid-template-columns: 120px 120px 170px minmax(190px,1fr) 140px 120px auto;
  gap: 8px;
  min-width: 0;
}
.booking-filter-actions { gap: 8px; padding-right: 0; white-space: nowrap; }
.booking-list-summary { margin-left: 0; flex: 0 0 150px; }
.booking-list-summary > div { min-width: 150px; width: 150px; }
@media (max-width: 1180px) {
  .booking-toolbar-simple { display: block; }
  .booking-list-summary { margin: 10px 0 0; width: 150px; }
}

/* 0.5.3 Überschneidungs-Arbeitsansicht */
.booking-list-table tr.overlap-row td { background: #fff8dc; }
.booking-list-table tr.overlap-row:target td { outline: 2px solid #b7791f; outline-offset: -2px; }
.overlap-review-link { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.overlap-review-link:hover { text-decoration-thickness: 2px; }

/* 0.5.3 Konfliktgruppen mit kompakter Zeitgrafik */
.overlap-group-row td { padding: .55rem .65rem .65rem; background: #f7f9fc; border-top: 2px solid #c8d3e0; }
.overlap-group-head { display:flex; justify-content:space-between; gap:1rem; margin-bottom:.35rem; font-size:.82rem; font-weight:400; }
.overlap-group-head span:last-child { color:var(--muted); white-space:nowrap; }
.overlap-timeline { display:grid; gap:.18rem; }
.overlap-axis { margin-left:155px; display:flex; justify-content:space-between; font-size:.68rem; color:var(--muted); line-height:1; }
.overlap-track { display:grid; grid-template-columns:145px minmax(180px,1fr); gap:10px; align-items:center; min-height:18px; }
.overlap-track-label { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.72rem; }
.overlap-track-line { position:relative; height:12px; background:#e8edf3; border-radius:6px; overflow:hidden; }
.overlap-bar { position:absolute; top:1px; bottom:1px; min-width:3px; border-radius:5px; background:#6d87a3; opacity:.82; }
.overlap-bar:hover, .overlap-bar:focus { opacity:1; outline:2px solid #405d78; outline-offset:1px; }
.booking-list-summary { flex-basis:220px; }
.booking-list-summary > div { min-width:220px; width:220px; }
@media (max-width:1180px) { .booking-list-summary { width:220px; } }

/* 0.5.3 Korrekturzeile im gleichen Spaltenraster wie die Originalbuchung. */
.booking-list-table { table-layout: fixed; }
.booking-list-table col.col-date{width:8%}.booking-list-table col.col-employee{width:15%}.booking-list-table col.col-target{width:11%}.booking-list-table col.col-activity{width:9%}.booking-list-table col.col-start{width:8%}.booking-list-table col.col-stop{width:8%}.booking-list-table col.col-duration{width:9%}.booking-list-table col.col-source{width:8%}.booking-list-table col.col-review{width:17%}.booking-list-table col.col-action{width:7%}
.booking-column-form{display:grid!important;grid-template-columns:8fr 15fr 11fr 9fr 8fr 8fr 9fr 8fr 17fr 7fr;gap:0!important;align-items:center!important;width:100%}
.booking-column-form>*{min-width:0;box-sizing:border-box;padding:0 .42rem}.booking-column-form>input[type=hidden]{display:none}
.booking-column-form .booking-edit-date{grid-column:1}.booking-column-form .booking-edit-employee{grid-column:2}.booking-column-form .booking-edit-target{grid-column:3;width:auto;min-width:0;max-width:none}.booking-column-form .booking-edit-activity{grid-column:4}.booking-column-form .booking-edit-start{grid-column:5}.booking-column-form .booking-edit-stop{grid-column:6;padding-left:.85rem}.booking-column-form .booking-edit-reason{grid-column:7/10;display:flex;gap:.35rem;align-items:center}.booking-column-form .booking-edit-actions{grid-column:10;display:flex;gap:.25rem;padding-top:0;justify-content:flex-end}
.booking-column-form input,.booking-column-form select{box-sizing:border-box;width:100%;min-width:0;height:34px;margin:0;padding:.38rem .42rem;font-size:.82rem;font-weight:400}.booking-column-form .target-picker-summary{width:100%;margin:0}.booking-column-form .target-picker input[type=search]{width:100%;height:34px;margin:0}.booking-column-form .booking-edit-reason select{flex:1 1 55%}.booking-column-form .booking-edit-reason input{flex:1 1 45%}.booking-column-form .booking-edit-actions button{width:auto;height:34px;padding:.35rem .4rem;font-size:.76rem;white-space:nowrap}.booking-inline-error{margin:0 0 .4rem}

/* Inline-Korrektur: exakt dasselbe feste Spaltenraster wie die Originalbuchung. */
.booking-list-table{table-layout:fixed!important}
.booking-list-table col.col-date{width:8%}.booking-list-table col.col-employee{width:15%}.booking-list-table col.col-target{width:11%}.booking-list-table col.col-activity{width:9%}.booking-list-table col.col-start{width:8%}.booking-list-table col.col-stop{width:8%}.booking-list-table col.col-duration{width:9%}.booking-list-table col.col-source{width:8%}.booking-list-table col.col-review{width:17%}.booking-list-table col.col-action{width:7%}
.booking-edit-row>td{padding:.42rem 0!important}
.booking-inline-edit-content{width:100%;min-width:0}
.booking-column-form{grid-template-columns:8fr 15fr 11fr 9fr 8fr 8fr 9fr 8fr 17fr 7fr!important}
.booking-column-form>*{padding-left:.42rem!important;padding-right:.42rem!important}
.booking-column-form .booking-edit-stop{padding-left:.85rem!important}
.booking-column-form .booking-edit-target [data-target-editor]{width:100%;min-width:0}
.booking-column-form .booking-edit-target input[type=search]{margin:0!important;width:100%!important;min-width:0!important;height:34px!important;padding:.38rem .42rem!important}
.booking-column-form .booking-edit-activity select,.booking-column-form .booking-edit-start input,.booking-column-form .booking-edit-stop input{display:block;width:100%!important}
.booking-column-form .booking-edit-reason{padding-left:.42rem!important;padding-right:.42rem!important}
.booking-column-form .booking-edit-actions{padding-left:.2rem!important;padding-right:.42rem!important}


/* 0.5.3: Inline-Korrektur – Auftrag nutzt den freien Platz unter Datum + Mitarbeiter + Auftrag. */
.booking-column-form .booking-edit-target{grid-column:1/4!important;width:auto!important;min-width:0!important;max-width:none!important;padding-left:.42rem!important;padding-right:.42rem!important}
.booking-column-form .booking-edit-target [data-target-editor]{position:relative;width:100%;min-width:0}
.booking-column-form .booking-edit-target .target-result-list{left:0;right:0;width:auto;max-width:none}

.regime-summary{display:flex;gap:2rem;align-items:flex-start;padding:.7rem .85rem;background:var(--surface-soft,#f6f7f8);border-radius:8px}.regime-assignment-form{margin-top:1rem}.compact-table th,.compact-table td{padding:.5rem .65rem}

/* 0.5.3 multi time regimes */
.regime-picker-row{display:flex;gap:1.25rem;align-items:end;flex-wrap:wrap}.regime-select-form,.regime-create-form{display:flex;gap:.75rem;align-items:end;flex-wrap:wrap}.regime-picker-panel label{margin:0}.regime-picker-panel select,.regime-picker-panel input{min-width:14rem}.regime-create-form button{white-space:nowrap}
.time-account-summary{display:flex;gap:2rem;align-items:end;flex-wrap:wrap;margin-bottom:1rem}.time-account-balance{font-size:1.35rem}.time-account-table input{width:6.5rem}.hidden-account-adjustment{margin-top:1rem;border-top:1px solid #ddd;padding-top:.75rem}.hidden-account-adjustment summary{cursor:pointer;color:#777;font-size:.9rem}.inline-payroll-form{display:flex;gap:.35rem;align-items:center}.inline-payroll-form button{padding:.35rem .55rem}

.regime-first-date-admin{margin-top:1rem;border-top:1px solid var(--border,#d8dde3);padding-top:.7rem}.regime-first-date-admin summary{cursor:pointer;color:var(--muted,#667085);font-size:.9rem}.inline-admin-form{display:flex;gap:.7rem;align-items:end;margin-top:.7rem}.inline-admin-form label{max-width:260px}.inline-admin-form input{width:100%}


/* 0.5.3 Tagesauswertung zur Abstimmung des Zeitkontos */
.time-account-day-row>td{padding:.15rem .65rem .55rem;background:var(--surface,#fff)}
.time-account-days summary{cursor:pointer;color:var(--muted,#667085);font-size:.86rem;padding:.25rem 0}
.time-account-days[open] summary{margin-bottom:.45rem}
.daily-account-table{min-width:920px;font-size:.82rem}
.daily-account-table th,.daily-account-table td{white-space:nowrap;padding:.36rem .5rem}
.daily-account-table th:not(:first-child):not(:last-child),.daily-account-table td:not(:first-child):not(:last-child){text-align:right}
.daily-account-codes{color:var(--muted,#667085);font-size:.78rem}

/* 0.5.3 Buchungen: Arbeitsvorrat unterhalb der Filterzeile */
.booking-toolbar-simple{display:block}
.booking-list-summary{margin:8px 0 0;display:flex;gap:8px;justify-content:flex-end;align-items:center}
.booking-list-summary>div{min-width:150px}
@media(max-width:1100px){.booking-list-summary{justify-content:flex-start;flex-wrap:wrap}}

/* 0.5.3 Buchungen: manuelle Buchung im Filterkopf */
.booking-list-summary .manual-booking-toggle{margin:0;margin-right:auto;min-width:0;width:auto}
.booking-list-summary .manual-booking-toggle .primary{height:36px;box-sizing:border-box;display:inline-flex;align-items:center;padding:.38rem .7rem;font-size:.82rem;white-space:nowrap}
@media(max-width:1100px){.booking-list-summary .manual-booking-toggle{margin-right:0}}

/* 0.5.4 Mitarbeiter – kompakte Arbeitsseite */
.employee-toolbar{margin-bottom:.7rem}.employee-toolbar-actions{display:flex;align-items:center;gap:.5rem}.employee-toolbar-main{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.employee-filter-form{display:flex;align-items:center;gap:.45rem}.employee-filter-form>input[name=q]{width:240px;height:36px;box-sizing:border-box}.employee-status-filter{display:flex;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:#fff}.employee-status-filter a{padding:.45rem .7rem;text-decoration:none;color:inherit;font-size:.82rem;border-right:1px solid var(--line)}.employee-status-filter a:last-child{border-right:0}.employee-status-filter a.selected{background:#e8f1f9;color:#075b9c;font-weight:600}.employee-create-panel{margin-bottom:.8rem;padding:.7rem}.employee-create-grid{display:grid;grid-template-columns:110px 1fr 1fr 105px 1.2fr 125px 125px 1.35fr 82px;gap:.55rem;align-items:end}.employee-create-grid label,.employee-edit-grid label{margin:0;font-size:.76rem;font-weight:400}.employee-create-grid input,.employee-create-grid select,.employee-edit-grid input,.employee-edit-grid select{width:100%;height:34px;box-sizing:border-box;margin:0;padding:.35rem .45rem;font-size:.8rem;font-weight:400}.employee-list-panel{padding:.65rem}.employee-list-table{table-layout:fixed;width:100%}.employee-list-table col.emp-status{width:7%}.employee-list-table col.emp-number{width:10%}.employee-list-table col.emp-name{width:25%}.employee-list-table col.emp-profile{width:17%}.employee-list-table col.emp-start{width:10%}.employee-list-table col.emp-end{width:10%}.employee-list-table col.emp-regime{width:20%}.employee-list-table col.emp-action{width:9%}.employee-list-table th,.employee-list-table td{padding:.55rem .65rem}.employee-status-dot{display:inline-block;width:13px;height:13px;border-radius:50%;vertical-align:middle;background:#98a2ad}.employee-status-dot.active{background:#22a447}.employee-actions{display:flex;gap:.35rem;align-items:center}.employee-actions form{margin:0}.employee-edit-row>td{padding:.45rem 0!important;background:#f7fafd}.employee-edit-grid{display:grid;grid-template-columns:7fr 10fr 25fr 17fr 10fr 10fr 20fr 9fr;gap:0;align-items:end;width:100%}.employee-edit-grid>div{min-width:0;padding:0 .65rem;box-sizing:border-box}.employee-edit-status{align-self:center}.employee-edit-name,.employee-edit-profile{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.employee-inline-actions{display:flex;gap:.3rem;justify-content:flex-end;align-items:end}.employee-inline-actions .icon-action{height:34px;min-width:34px}.mini-label{display:block;font-size:.76rem;margin-bottom:.2rem}.employee-list-count{text-align:right;color:var(--muted);font-size:.82rem;padding:.6rem .3rem 0}.employee-list-table .inactive-row{opacity:.62}@media(max-width:1050px){.employee-create-grid{grid-template-columns:repeat(3,minmax(160px,1fr))}.employee-edit-grid{grid-template-columns:1fr 1fr}.employee-list-table{min-width:1050px}.employee-filter-form{flex-wrap:wrap}}
/* Mitarbeiter: Zeitregime vor Eintritt/Austritt; Datumsfelder bewusst kompakt */
.employee-list-table col.emp-status{width:7%}
.employee-list-table col.emp-number{width:9%}
.employee-list-table col.emp-name{width:23%}
.employee-list-table col.emp-profile{width:16%}
.employee-list-table col.emp-regime{width:19%}
.employee-list-table col.emp-start{width:9%}
.employee-list-table col.emp-end{width:9%}
.employee-list-table col.emp-action{width:8%}
.employee-edit-grid{grid-template-columns:7fr 9fr 23fr 16fr 19fr 9fr 9fr 8fr}
.employee-date-field input[type="date"]{min-width:0;width:100%;padding-left:.35rem;padding-right:.25rem}
.employee-list-table td:nth-child(5),.employee-list-table th:nth-child(5){white-space:nowrap}

/* 0.5.4 Mitarbeiter – Stichtag oberhalb der Zeitregime-Historie */
.employee-regime-area{margin:.55rem .65rem .25rem;padding:.65rem .75rem;background:#fff;border:1px solid var(--line);border-radius:7px}
.employee-regime-heading{font-size:.78rem;font-weight:600;margin:0 0 .45rem;color:var(--text)}
.employee-regime-add{padding-bottom:.65rem;border-bottom:1px solid var(--line)}
.employee-regime-add-form{display:grid;grid-template-columns:145px minmax(260px,430px) 36px;gap:.55rem;align-items:end}
.employee-regime-add-form label{margin:0;font-size:.76rem;font-weight:400}
.employee-regime-add-form input,.employee-regime-add-form select{height:34px;width:100%;box-sizing:border-box;margin:0;padding:.35rem .45rem;font-size:.8rem;font-weight:400}
.employee-regime-add-form .icon-action{height:34px;min-width:34px}
.employee-regime-history{padding-top:.65rem}
.employee-regime-history-table{width:auto;min-width:560px;margin:0}
.employee-regime-history-table th,.employee-regime-history-table td{padding:.38rem .55rem;font-size:.8rem;white-space:nowrap}
@media(max-width:1050px){.employee-regime-add-form{grid-template-columns:145px minmax(220px,1fr) 36px}.employee-regime-history-table{min-width:520px}}

/* 0.5.4 Zeitregime – kompaktes Verwaltungsfenster im FrontTime-Stil */
.regime-popup-body{background:var(--bg);margin:0}.regime-popup-page{max-width:none;margin:0;padding:.7rem .85rem 1rem}
.regime-popup-body .notice{margin:.55rem .85rem 0}
.regime-compact-head{display:flex;align-items:end;gap:.7rem;padding:.55rem .65rem;margin:0 0 .65rem;background:#fff;border:1px solid var(--line);border-radius:7px}
.regime-compact-head form{display:flex;align-items:end;gap:.55rem;margin:0}.regime-compact-head label,.regime-rule-row label{margin:0;font-size:.74rem;font-weight:400}.regime-compact-head select,.regime-compact-head input{height:34px;margin:0;padding:.32rem .45rem;font-size:.8rem;box-sizing:border-box}.regime-compact-select select{width:245px}.regime-compact-create{flex:1}.regime-compact-create input{width:210px}.regime-compact-create select{width:245px}.regime-compact-head button{height:34px;padding:.35rem .7rem;white-space:nowrap}
.regime-compact-section{background:#fff;border:1px solid var(--line);border-radius:7px;padding:.55rem .65rem;margin-bottom:.65rem}.regime-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:0 0 .4rem}.regime-title-row h1{font-size:1.08rem;margin:0}.regime-title-row .muted{font-size:.76rem}
.regime-day-table{width:100%;table-layout:fixed}.regime-day-table th,.regime-day-table td{padding:.3rem .55rem;height:32px;box-sizing:border-box}.regime-day-table th:nth-child(1){width:24%}.regime-day-table th:nth-child(2),.regime-day-table th:nth-child(3){width:18%}.regime-day-table th:nth-child(4){width:15%}.regime-day-table th:nth-child(5){width:25%}.regime-day-table input{width:88px;height:30px;margin:0;padding:.25rem .4rem;font-size:.8rem;box-sizing:border-box}.regime-day-table input[type=number]{width:72px}.regime-save-small{height:30px;padding:.25rem .55rem;font-size:.78rem}
.regime-pause-section h2{font-size:.95rem;margin:0}.regime-pause-title{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.4rem}.regime-pause-toggle{display:flex;align-items:center;gap:.45rem;margin:0}.regime-pause-toggle label{display:flex;align-items:center;gap:.35rem;margin:0;font-size:.76rem;font-weight:400}.regime-pause-toggle input{margin:0}.regime-pause-toggle button{height:29px;padding:.22rem .5rem;font-size:.76rem}
.regime-rule-list{border-top:1px solid var(--line)}.regime-rule-row{display:flex;align-items:end;gap:.5rem;padding:.4rem 0;border-bottom:1px solid var(--line);margin:0}.regime-rule-row:last-child{border-bottom:0}.regime-rule-name{width:190px;min-width:190px;display:flex;flex-direction:column;font-size:.78rem;line-height:1.2}.regime-rule-name .muted{font-size:.7rem;margin-top:.1rem}.regime-rule-row label{display:flex;flex-direction:column;gap:.15rem}.regime-rule-row input{width:76px;height:30px;margin:0;padding:.22rem .35rem;font-size:.78rem;box-sizing:border-box}.regime-rule-row input[type=number]{width:62px}.regime-rule-row button{height:30px;padding:.22rem .5rem;font-size:.76rem;margin-left:auto}.regime-empty-note{font-size:.78rem;margin:.25rem 0}
@media(max-width:900px){.regime-compact-head{align-items:stretch;flex-direction:column}.regime-compact-head form{flex-wrap:wrap}.regime-rule-row{flex-wrap:wrap}.regime-rule-name{width:100%;min-width:100%}}

/* Zeitregime als internes Fenster auf der Mitarbeiterseite */
.regime-modal[hidden] { display: none !important; }
.regime-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 22px;
  background: rgba(15, 23, 42, .28);
}
.regime-modal-dialog {
  width: min(1180px, calc(100vw - 44px));
  height: min(820px, calc(100vh - 44px));
  background: #fff;
  border: 1px solid #d8dee8;
  border-radius: 10px;
  box-shadow: 0 18px 48px rgba(15, 23, 42, .18);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.regime-modal-bar {
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 10px 0 16px;
  border-bottom: 1px solid #e3e7ee;
  background: #fff;
}
.regime-modal-title { font-weight: 600; }
.regime-modal-close {
  border: 0;
  background: transparent;
  width: 32px;
  height: 32px;
  padding: 0;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}
.regime-modal-frame {
  width: 100%;
  flex: 1 1 auto;
  border: 0;
  background: #fff;
}
body.regime-modal-open { overflow: hidden; }

/* Projekte & Aufträge – FrontTime kompakt */
.target-toolbar{margin-bottom:.7rem}.target-toolbar-main{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.target-toolbar-actions{display:flex;gap:.5rem;align-items:center}.target-toolbar-actions button{height:36px;padding:.42rem .7rem;font-size:.82rem}.target-filter-form{display:flex;align-items:center;gap:.45rem}.target-filter-form>input[name=q]{width:280px;height:36px;box-sizing:border-box}.target-manual-panel{margin-bottom:.8rem;padding:.7rem}.target-manual-grid{display:grid;grid-template-columns:150px minmax(300px,1.3fr) minmax(300px,1fr) 82px;gap:.55rem;align-items:end}.target-manual-grid label{margin:0;font-size:.76rem;font-weight:400}.target-manual-grid input,.target-manual-grid select,.target-edit-grid input,.target-edit-grid select{width:100%;height:34px;box-sizing:border-box;margin:0;padding:.35rem .45rem;font-size:.8rem;font-weight:400}.target-list-panel{padding:.65rem}.target-list-table{table-layout:fixed;width:100%}.target-list-table col.tar-status{width:6%}.target-list-table col.tar-type{width:8%}.target-list-table col.tar-number{width:10%}.target-list-table col.tar-import{width:13%}.target-list-table col.tar-desc{width:29%}.target-list-table col.tar-source{width:9%}.target-list-table col.tar-project{width:18%}.target-list-table col.tar-action{width:7%}.target-list-table th,.target-list-table td{padding:.5rem .65rem;vertical-align:middle}.target-list-table td:nth-child(3),.target-list-table td:nth-child(4),.target-list-table td:nth-child(6){white-space:nowrap}.target-row-actions{display:flex;align-items:center;gap:.3rem}.target-row-actions form{margin:0}.target-project-link{border:0;background:transparent;padding:0;color:inherit;text-decoration:underline;text-decoration-color:#aeb8c2;text-underline-offset:3px;font:inherit;cursor:pointer}.target-project-link:hover{color:#075b9c;text-decoration-color:#075b9c}.target-edit-row>td,.target-project-detail-row>td{padding:.45rem 0!important;background:#f7fafd}.target-edit-grid{display:grid;grid-template-columns:160px minmax(300px,1.25fr) minmax(300px,1fr) 82px;gap:.55rem;align-items:end;padding:0 .65rem}.target-edit-grid label{margin:0;font-size:.76rem;font-weight:400}.target-project-orders{margin:.1rem .65rem;padding:.55rem .65rem;background:#fff;border:1px solid var(--line);border-radius:7px}.target-project-orders-title{font-size:.78rem;font-weight:600;margin:0 0 .4rem}.target-project-orders-table{width:100%;margin:0}.target-project-orders-table th,.target-project-orders-table td{padding:.38rem .55rem;font-size:.8rem}.target-main-row.target-project-row{cursor:default}.target-list-table .inactive-row{opacity:.62}@media(max-width:1100px){.target-list-table{min-width:1120px}.target-manual-grid,.target-edit-grid{grid-template-columns:160px minmax(280px,1fr) minmax(280px,1fr) 82px}.target-filter-form{flex-wrap:wrap}}
.target-manual-grid-simple{grid-template-columns:150px minmax(360px,1fr) 82px;max-width:850px}.target-edit-grid-simple{grid-template-columns:160px minmax(360px,1fr) 82px;max-width:900px}.target-project-assigned{border:0;background:transparent;padding:0;color:#075b9c;font:inherit;font-size:.78rem;cursor:pointer;white-space:nowrap}.target-project-assigned:hover{text-decoration:underline}.target-project-assign{display:flex;align-items:end;gap:.45rem;margin:0 0 .55rem}.target-project-assign label{margin:0;min-width:420px;font-size:.76rem;font-weight:400}.target-project-assign select{height:34px;margin:0;padding:.35rem .45rem;font-size:.8rem;font-weight:400}.target-project-orders-table form{margin:0}.target-project-orders-table th:last-child,.target-project-orders-table td:last-child{width:70px;text-align:right}

/* Projekte/Auftraege – Filterleiste stabil auf einer Zeile */
.target-toolbar-main{flex-wrap:nowrap}
.target-toolbar-actions{flex:0 0 auto}
.target-filter-form{flex:1 1 auto;min-width:0;justify-content:flex-end;flex-wrap:nowrap}
.target-filter-form .employee-status-filter{flex:0 0 auto}
.target-project-filter{width:340px;max-width:34vw;height:36px;box-sizing:border-box}
.target-filter-form>input[name=q]{width:205px;min-width:160px}
@media(max-width:1050px){.target-toolbar-main{flex-wrap:wrap}.target-filter-form{width:100%;justify-content:flex-start;flex-wrap:wrap}.target-project-filter{max-width:none}}
/* Projekte & Aufträge – kompakter FrontTime-Stil */
.target-toolbar-fronttime .target-toolbar-main{flex-wrap:nowrap;align-items:center}.target-filter-fronttime{margin-left:auto;display:flex;align-items:center;gap:.55rem;min-width:0}.target-filter-fronttime .employee-status-filter{flex:0 0 auto}.target-search-box{display:flex;align-items:center;gap:.35rem;margin-left:.35rem}.target-search-box input[name=q]{width:360px;height:36px;box-sizing:border-box;margin:0;font-size:.82rem}.target-list-fronttime{padding:.55rem}.target-table-fronttime{table-layout:fixed;width:100%;font-size:.82rem}.target-table-fronttime col.tar-status{width:34px}.target-table-fronttime col.tar-type{width:76px}.target-table-fronttime col.tar-number{width:112px}.target-table-fronttime col.tar-import{width:128px}.target-table-fronttime col.tar-desc{width:auto}.target-table-fronttime col.tar-source{width:78px}.target-table-fronttime col.tar-project{width:230px}.target-table-fronttime col.tar-action{width:78px}.target-table-fronttime th{font-size:.76rem;font-weight:600;color:var(--muted);white-space:nowrap}.target-table-fronttime th,.target-table-fronttime td{padding:.43rem .55rem;vertical-align:middle}.target-table-fronttime .target-status-cell{text-align:center;padding-left:.2rem;padding-right:.2rem}.target-table-fronttime .employee-status-dot{width:11px;height:11px}.target-table-fronttime .target-type-cell,.target-table-fronttime .target-number-cell,.target-table-fronttime .target-import-cell,.target-table-fronttime .target-source-cell{white-space:nowrap}.target-table-fronttime .target-description-cell,.target-table-fronttime .target-project-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.target-project-display{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.target-project-assigned{border:0;background:transparent;padding:0;color:#075b9c;font:inherit;cursor:pointer;white-space:nowrap}.target-project-assigned:hover{text-decoration:underline}.target-table-fronttime .target-row-actions{justify-content:flex-end;white-space:nowrap}.target-table-fronttime .target-row-actions .icon-action{min-width:30px;width:30px;height:30px;padding:0}.target-table-fronttime .target-project-row{background:#fbfcfd}.target-table-fronttime .target-project-row td{border-top-color:#cfd7df}.target-project-orders{margin:.1rem .55rem;padding:.5rem .6rem}.target-project-assign{display:flex;align-items:flex-end;gap:.4rem;margin:0 0 .55rem}.target-project-assign label{margin:0;font-size:.76rem;font-weight:400;min-width:420px}.target-project-assign select{display:block;width:100%;height:34px;margin:.2rem 0 0;font-size:.8rem}.target-project-orders-title{font-weight:400;color:var(--muted)}.target-empty-row{text-align:center;padding:1rem!important}.target-manual-grid-simple{grid-template-columns:150px minmax(320px,1fr) 82px}.target-edit-grid-simple{grid-template-columns:160px minmax(320px,1fr) 82px}
@media(max-width:1100px){.target-toolbar-fronttime .target-toolbar-main{flex-wrap:wrap}.target-filter-fronttime{width:100%;margin-left:0;justify-content:space-between}.target-search-box{margin-left:auto}.target-search-box input[name=q]{width:300px}.target-table-fronttime{min-width:1040px}}
/* Projekte & Aufträge – kompakte Projektzuordnung */
.target-table-fronttime col.tar-action{width:104px}
.target-project-assigned{color:#075b9c;font-size:.78rem;white-space:nowrap}
.target-project-toggle-action{font-size:1rem;line-height:1}
.target-project-detail-row>td{padding:.25rem 0!important;background:#f7fafd}
.target-project-orders{margin:0 .55rem;padding:.38rem .55rem;background:#fff;border:1px solid var(--line);border-radius:6px}
.target-project-detail-head{display:flex;align-items:center;gap:.55rem;min-height:34px;margin-bottom:.25rem}
.target-project-detail-label{font-size:.78rem;color:var(--muted);white-space:nowrap}
.target-project-assign{display:flex;align-items:center;gap:.35rem;margin:0;min-width:0}
.target-order-combobox{position:relative;width:430px;max-width:55vw}
.target-order-combobox>input{width:100%;height:32px;box-sizing:border-box;margin:0;padding:.3rem .45rem;font-size:.8rem;font-weight:400}
.target-order-options{position:absolute;z-index:40;top:calc(100% + 2px);left:0;right:0;max-height:240px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:5px;box-shadow:0 4px 14px rgba(0,0,0,.12)}
.target-order-options button{display:grid;grid-template-columns:105px minmax(0,1fr);gap:.55rem;width:100%;border:0;border-bottom:1px solid #edf0f2;background:#fff;padding:.42rem .5rem;text-align:left;font:inherit;font-size:.8rem;cursor:pointer}
.target-order-options button:last-of-type{border-bottom:0}
.target-order-options button:hover{background:#f3f7fa}
.target-order-options button span:first-child{white-space:nowrap}
.target-order-options button span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.target-order-no-result{padding:.5rem;font-size:.8rem}
.target-project-orders-table{width:100%;margin:0;border-collapse:collapse}
.target-project-orders-table td{padding:.28rem .42rem;font-size:.8rem;border-top:1px solid #edf0f2}
.target-project-orders-table tr:first-child td{border-top:0}
.target-project-orders-table .project-order-number{width:120px;white-space:nowrap}
.target-project-orders-table .project-order-source{width:75px;white-space:nowrap}
.target-project-orders-table .project-order-remove{width:38px;text-align:right;padding-right:.1rem}
.target-project-orders-table .project-order-remove form{margin:0}
.target-project-orders-table .project-order-remove .icon-action{width:28px;height:28px;min-width:28px;padding:0}
.target-project-empty{padding:.35rem .42rem!important}
@media(max-width:1100px){.target-order-combobox{width:360px;max-width:none}}
.target-order-project-row>td{padding:.25rem 0!important;background:#f7fafd}
.target-order-project-editor{display:flex;align-items:center;gap:.55rem;margin:0 .55rem;padding:.38rem .55rem;background:#fff;border:1px solid var(--line);border-radius:6px}
.target-order-project-form{display:flex;align-items:center;gap:.35rem;margin:0;min-width:0}
.target-project-combobox{width:430px;max-width:55vw}
.target-order-project-form .icon-action{width:28px;height:28px;min-width:28px;padding:0}
.target-order-project-action{font-size:.95rem}
.target-order-project-row>td{padding:.25rem 0!important;background:#f7fafd}
.target-order-project-editor{display:flex;align-items:center;gap:.55rem;margin:0 .55rem;padding:.38rem .55rem;background:#fff;border:1px solid var(--line);border-radius:6px}
.target-order-project-form{display:flex;align-items:center;gap:.35rem;margin:0;min-width:0}
.target-project-combobox{width:430px;max-width:55vw}
.target-order-project-form .icon-action{width:28px;height:28px;min-width:28px;padding:0}
.target-order-project-action{font-size:.95rem}
/* Auftrag umbuchen – kompaktes internes FrontTime-Fenster */
.rebook-modal-dialog { width:min(1120px,94vw); height:min(520px,86vh); }
.rebook-page { padding:14px 16px; }
.rebook-source { display:grid; grid-template-columns:100px 110px 1fr; align-items:center; gap:10px; min-height:36px; border-bottom:1px solid #d9dee3; margin-bottom:10px; }
.rebook-source > span:first-child { color:#66727d; font-size:.85rem; }
.rebook-filter-row { display:grid; grid-template-columns:130px 130px minmax(190px,240px) minmax(320px,1fr) 38px; gap:8px; align-items:end; }
.rebook-filter-row label { margin:0; font-size:.78rem; color:#5e6872; }
.rebook-filter-row input,.rebook-filter-row select { height:34px; margin-top:3px; }
.rebook-target-label { min-width:0; }
.rebook-combobox { margin-top:3px; }
.rebook-combobox > input { width:100%; margin:0; }
.rebook-preview-row { margin-top:12px; min-height:42px; padding:6px 8px; border-top:1px solid #d9dee3; border-bottom:1px solid #d9dee3; display:flex; align-items:center; gap:24px; }
.rebook-preview-row form { margin-left:auto; }
.rebook-preview-row button.confirm-action { min-height:32px; }
@media(max-width:850px){.rebook-filter-row{grid-template-columns:1fr 1fr}.rebook-target-label{grid-column:1/-1}.rebook-preview-row{flex-wrap:wrap;gap:10px}.rebook-preview-row form{margin-left:0}}

/* Auftrag umbuchen – kompakter interner FrontTime-Dialog */
.rebook-popup-body{background:var(--bg);margin:0;overflow-x:hidden}
.rebook-popup-body .notice{margin:.45rem .7rem 0}
.rebook-popup-page{max-width:none;margin:0;padding:.65rem .75rem .8rem}
.rebook-source-line{display:grid;grid-template-columns:90px 105px minmax(0,1fr);gap:8px;align-items:center;height:34px;padding:0 2px 6px;border-bottom:1px solid #d7dde3;font-size:.84rem}
.rebook-source-label{color:#66727d}
.rebook-source-description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rebook-inline-notice{margin:.45rem 0 0!important}
.rebook-filter-row{display:grid;grid-template-columns:118px 118px minmax(210px,260px) minmax(360px,1fr) auto;gap:8px;align-items:end;padding:9px 0 8px}
.rebook-field{display:block;margin:0;font-size:.76rem;color:#5e6872;min-width:0}
.rebook-field>input,.rebook-searchbox>input{width:100%;height:32px;box-sizing:border-box;margin:3px 0 0;padding:.28rem .45rem;font-size:.82rem;font-weight:400}
.rebook-searchbox{position:relative;min-width:0}
.rebook-search-options{position:absolute;z-index:50;left:0;right:0;top:calc(100% + 2px);max-height:220px;overflow:auto;background:#fff;border:1px solid #b9c7d4;border-radius:5px;box-shadow:0 6px 16px rgba(0,0,0,.12);padding:3px}
.rebook-search-option{display:grid;grid-template-columns:92px minmax(0,1fr);gap:8px;width:100%;border:0;background:#fff;text-align:left;padding:5px 7px;border-radius:3px;font-size:.8rem;line-height:1.2;cursor:pointer}
.rebook-search-option:hover,.rebook-search-option:focus{background:#edf4fa;outline:none}
.rebook-search-option span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rebook-employee-field .rebook-search-option{grid-template-columns:68px minmax(0,1fr)}
.rebook-search-empty{padding:7px;font-size:.78rem}
.rebook-preview-button{height:32px;padding:0 .75rem;margin:0;white-space:nowrap}
.rebook-preview{border-top:1px solid #d7dde3;min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 2px 0}
.rebook-preview-summary{display:flex;align-items:center;gap:18px;min-width:0;font-size:.83rem}
.rebook-preview-summary>span{white-space:nowrap}
.rebook-preview-target{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:390px}
.rebook-preview-arrow{color:#6a7680}
.rebook-preview-action{margin-left:auto;display:flex;align-items:center;min-height:32px;font-size:.8rem}
.rebook-preview-action form{margin:0}
.rebook-preview-action .confirm-action{height:32px;min-height:32px;margin:0}
.rebook-preview-placeholder{font-size:.8rem}
.rebook-modal-dialog{width:min(1040px,94vw);height:auto;min-height:0;max-height:86vh}
.rebook-modal-dialog .regime-modal-frame{height:190px;min-height:190px;flex:none}
@media(max-width:900px){.rebook-filter-row{grid-template-columns:1fr 1fr}.rebook-employee-field,.rebook-target-field{grid-column:1/-1}.rebook-preview-button{justify-self:end}.rebook-preview{align-items:flex-start;flex-direction:column}.rebook-preview-summary{flex-wrap:wrap;gap:8px 14px}.rebook-preview-action{margin-left:0}.rebook-modal-dialog .regime-modal-frame{height:360px}}
.rebook-modal-frame{height:190px!important;min-height:190px!important;flex:none!important}
@media(max-width:900px){.rebook-modal-frame{height:360px!important;min-height:360px!important}}

/* Auftrag umbuchen – gerahmter FrontTime-Arbeitsdialog */
.rebook-popup-body{background:#f4f7f9}
.rebook-popup-page{padding:10px 12px 12px}
.rebook-work-panel,.rebook-preview-panel{background:#fff;border:1px solid #c8d4df;border-radius:7px;box-shadow:0 1px 2px rgba(20,45,70,.04)}
.rebook-work-panel{padding:0 10px 8px}
.rebook-source-line{height:36px;padding:0;border-bottom:1px solid #dbe3ea;grid-template-columns:92px 104px minmax(0,1fr)}
.rebook-filter-row{padding:8px 0 0;gap:8px}
.rebook-field{font-size:.75rem;font-weight:600;color:#5b6772}
.rebook-field>input,.rebook-searchbox>input{background:#fff;border-color:#aebfce;border-radius:5px}
.rebook-field>input:focus,.rebook-searchbox>input:focus{border-color:#6f94b5;box-shadow:0 0 0 2px rgba(63,112,154,.10);outline:none}
.rebook-preview-button{border-radius:5px;font-weight:600}
.rebook-preview-panel{margin-top:8px;padding:0 10px}
.rebook-preview{border:0;min-height:40px;padding:0;gap:12px}
.rebook-preview-summary{gap:0;font-size:.82rem}
.rebook-preview-summary>span:not(.rebook-preview-arrow):not(.rebook-preview-target){padding-right:14px;margin-right:14px;border-right:1px solid #dce4ea}
.rebook-preview-arrow{margin-right:10px;color:#667582}
.rebook-preview-target{max-width:430px}
.rebook-preview-action .confirm-action{border-radius:5px;font-weight:600}
.rebook-preview-placeholder{padding:10px 0}
.rebook-modal-dialog{width:min(1050px,94vw);border:1px solid #aebfce;box-shadow:0 12px 34px rgba(18,42,65,.18)}
.rebook-modal-dialog .regime-modal-bar{border-bottom:1px solid #c8d4df}
.rebook-modal-dialog .regime-modal-frame{height:202px!important;min-height:202px!important}
@media(max-width:900px){.rebook-modal-dialog .regime-modal-frame,.rebook-modal-frame{height:390px!important;min-height:390px!important}.rebook-preview-summary>span:not(.rebook-preview-arrow):not(.rebook-preview-target){border-right:0;padding-right:0;margin-right:0}}
/* Stapelbuchung – kompakter FrontTime-Dialog */
.batch-modal-dialog{width:min(1120px,94vw);max-height:88vh;border:1px solid #aebdca;box-shadow:0 12px 32px rgba(20,42,62,.18)}
.batch-modal-dialog .regime-modal-bar{border-bottom:1px solid #c8d4df}
.batch-modal-frame{height:650px!important;min-height:650px!important;background:#f5f7f9}
.batch-compact-page{padding:12px;background:#f5f7f9;min-height:100%;box-sizing:border-box}
.batch-frame{border:1px solid #c7d2dc;border-radius:6px;background:#fff;padding:10px 12px;margin:0 0 10px;box-shadow:0 1px 2px rgba(20,42,62,.04)}
.batch-frame-title{font-size:13px;font-weight:600;margin:0 0 8px;color:#34495e}
.batch-mode-row,.batch-work-row,.batch-bottom-row{display:grid;grid-template-columns:150px 145px 150px 150px;gap:8px;align-items:end}
.batch-mode-row label,.batch-work-row label,.batch-bottom-row label{font-size:12px;margin:0}.batch-mode-row input,.batch-mode-row select,.batch-work-row input,.batch-work-row select,.batch-bottom-row input{height:34px;margin-top:3px}
.batch-work-row{grid-template-columns:minmax(360px,1fr) 260px;margin-top:8px}.batch-search-select{position:relative}.batch-search-results{position:absolute;z-index:20;left:0;right:0;top:54px;border:1px solid #aebdca;background:#fff;box-shadow:0 5px 14px rgba(0,0,0,.12);max-height:210px;overflow:auto}.batch-search-results button{display:block;width:100%;border:0;border-bottom:1px solid #e6ebef;background:#fff;text-align:left;padding:7px 9px;font-size:12px}.batch-search-results button:hover{background:#f0f5f8}
.batch-employee-row{border-top:1px solid #e2e8ed;margin-top:10px;padding-top:8px}.batch-employee-head{display:flex;align-items:center;gap:7px;font-size:12px}.batch-employee-head strong{margin-right:4px}.batch-employee-head input{height:32px;width:230px}.batch-employee-head button{padding:4px 8px;min-height:30px}.batch-employee-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px 10px;margin-top:6px;max-height:112px;overflow:auto}.batch-employee-list label{display:grid;grid-template-columns:18px 58px 1fr;align-items:center;gap:4px;font-size:12px;padding:3px 5px;border-radius:3px}.batch-employee-list label:hover{background:#f3f6f8}.batch-employee-list input{margin:0}
.batch-bottom-row{grid-template-columns:1fr auto;margin-top:8px}.batch-note input{width:100%}.batch-bottom-row .primary{height:34px}
.batch-preview-frame{padding-bottom:9px}.batch-preview-summary{display:flex;gap:0;margin:-2px 0 7px;border:1px solid #d5dee5;border-radius:4px;background:#f8fafb;width:max-content}.batch-preview-summary span{font-size:12px;padding:5px 12px;border-right:1px solid #d5dee5}.batch-preview-summary span:last-child{border-right:0}.batch-preview-table{max-height:250px;overflow:auto}.batch-preview-table table{font-size:12px}.batch-preview-table th,.batch-preview-table td{padding:5px 7px}.batch-confirm-row{display:flex;justify-content:flex-end;margin-top:8px}.batch-confirm-row .primary{height:34px}
.manual-booking-toggle{display:flex;gap:7px;align-items:center}
@media(max-width:900px){.batch-modal-frame{height:75vh!important;min-height:75vh!important}.batch-mode-row{grid-template-columns:1fr 1fr}.batch-work-row{grid-template-columns:1fr}.batch-employee-list{grid-template-columns:1fr 1fr}}

/* Stapelbuchung – Neuaufbau nach Referenz Auftrag umbuchen */
.batch-popup-body{margin:0;background:#f4f7f9;overflow-x:hidden}
.batch-popup-page{padding:10px 12px 12px;max-width:none}
.batch-inline-notice{margin:0 0 8px!important}
.batch-work-panel,.batch-preview-panel{background:#fff;border:1px solid #c8d4df;border-radius:7px;box-shadow:0 1px 2px rgba(20,45,70,.04)}
.batch-work-panel{padding:9px 10px 10px}
.batch-primary-row{display:grid;grid-template-columns:190px 145px 150px 150px;gap:8px;align-items:end}
.batch-secondary-row{display:grid;grid-template-columns:minmax(235px,300px) minmax(320px,1fr) 210px minmax(170px,240px) auto;gap:8px;align-items:end;margin-top:8px;padding-top:8px;border-top:1px solid #dbe3ea}
.batch-field{display:block;position:relative;min-width:0;margin:0;font-size:.75rem;font-weight:600;color:#5b6772}
.batch-label{display:block;margin-bottom:3px}
.batch-field input,.batch-field select,.batch-picker-trigger{box-sizing:border-box;width:100%;height:32px;margin:3px 0 0;padding:.28rem .45rem;border:1px solid #aebfce;border-radius:5px;background:#fff;font:400 .82rem inherit;color:#24313b}
.batch-field input:focus,.batch-field select:focus,.batch-picker-trigger:focus{border-color:#6f94b5;box-shadow:0 0 0 2px rgba(63,112,154,.10);outline:none}
.batch-picker-trigger{display:flex;align-items:center;justify-content:space-between;text-align:left;cursor:pointer;margin-top:0}
.batch-caret{font-size:1rem;color:#60717e}
.batch-picker-menu{position:absolute;z-index:80;left:0;top:55px;width:min(470px,80vw);background:#fff;border:1px solid #aebfce;border-radius:6px;box-shadow:0 7px 18px rgba(18,42,65,.16);padding:6px}
.batch-picker-tools{display:grid;grid-template-columns:1fr auto auto;gap:5px;padding-bottom:5px;border-bottom:1px solid #e1e7ec}
.batch-picker-tools input{height:30px;margin:0;font-size:.8rem}
.batch-picker-tools button{height:30px;min-width:46px;padding:0 8px;border:1px solid #b9c7d3;border-radius:4px;background:#fff;cursor:pointer}
.batch-picker-list{max-height:190px;overflow:auto;padding-top:3px}
.batch-picker-list label{display:grid;grid-template-columns:18px 62px minmax(0,1fr);gap:5px;align-items:center;padding:4px 5px;border-radius:3px;font-size:.8rem;font-weight:400;color:#26343e;cursor:pointer}
.batch-picker-list label:hover{background:#edf4fa}.batch-picker-list input{width:auto;height:auto;margin:0}.batch-personnel{font-variant-numeric:tabular-nums;color:#53636f}
.batch-searchbox{position:relative}.batch-searchbox>input{margin-top:0}.batch-search-options{position:absolute;z-index:70;left:0;right:0;top:34px;max-height:220px;overflow:auto;background:#fff;border:1px solid #aebfce;border-radius:5px;box-shadow:0 7px 18px rgba(18,42,65,.15);padding:3px}
.batch-search-option{display:grid;grid-template-columns:90px minmax(0,1fr);gap:7px;width:100%;border:0;background:#fff;text-align:left;padding:5px 7px;border-radius:3px;font-size:.8rem;cursor:pointer}.batch-search-option:hover{background:#edf4fa}.batch-search-option span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.batch-search-empty{padding:7px;font-size:.78rem}
.batch-preview-button{height:32px;margin:0;padding:0 .8rem;border-radius:5px;font-weight:600;white-space:nowrap}
.batch-preview-panel{margin-top:8px;padding:0 10px 8px;min-height:42px}
.batch-preview-placeholder{padding:11px 0;font-size:.8rem}
.batch-preview-head{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.batch-preview-summary{display:flex;align-items:center;gap:0;font-size:.82rem}.batch-preview-summary span{padding-right:14px;margin-right:14px;border-right:1px solid #dce4ea}.batch-preview-summary span:last-child{border-right:0}
.batch-confirm-form{margin:0}.batch-confirm-form .confirm-action{height:32px;min-height:32px;border-radius:5px;font-weight:600}
.batch-preview-table{max-height:250px;overflow:auto;border-top:1px solid #dbe3ea}.batch-preview-table table{width:100%;font-size:.79rem;border-collapse:collapse}.batch-preview-table th,.batch-preview-table td{padding:5px 7px;border-bottom:1px solid #e4e9ed;text-align:left}.batch-preview-table th{background:#f3f7fa;font-weight:600}.batch-row-person{display:inline-block;min-width:58px;color:#53636f}
.batch-modal-dialog{width:min(1080px,94vw)!important;height:auto!important;min-height:0!important;max-height:86vh;border:1px solid #aebfce;box-shadow:0 12px 34px rgba(18,42,65,.18)}
.batch-modal-dialog .regime-modal-bar{border-bottom:1px solid #c8d4df}.batch-modal-frame{height:430px!important;min-height:430px!important;flex:none!important;background:#f4f7f9}
@media(max-width:900px){.batch-primary-row{grid-template-columns:1fr 1fr}.batch-secondary-row{grid-template-columns:1fr 1fr}.batch-employee-picker,.batch-target-picker,.batch-note-field{grid-column:1/-1}.batch-modal-frame{height:72vh!important;min-height:72vh!important}.batch-preview-head{align-items:flex-start;flex-direction:column;padding:8px 0}.batch-preview-summary{flex-wrap:wrap}.batch-preview-summary span{border-right:0;padding-right:8px;margin-right:8px}}

/* FrontTime Kalender – europäisch, Montag als Wochenbeginn */
.ft-calendar-trigger{box-sizing:border-box;width:100%;height:32px;margin:3px 0 0;padding:.28rem .45rem;border:1px solid #aebfce;border-radius:5px;background:#fff;color:#24313b;font:400 .82rem inherit;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;cursor:pointer}
.ft-calendar-trigger:focus{border-color:#6f94b5;box-shadow:0 0 0 2px rgba(63,112,154,.10);outline:none}.ft-calendar-icon{color:#60717e;font-size:.9rem}
.ft-calendar-popover{position:fixed;z-index:500;width:348px;background:#fff;border:1px solid #aebfce;border-radius:7px;box-shadow:0 10px 28px rgba(18,42,65,.20);padding:8px}
.ft-calendar-head{display:grid;grid-template-columns:30px 1fr 30px;align-items:center;gap:5px;margin-bottom:6px}.ft-calendar-head strong{text-align:center;font-size:.84rem;font-weight:600;color:#26343e}.ft-calendar-nav{height:28px;border:1px solid #c4d0da;border-radius:4px;background:#fff;font-size:1.15rem;line-height:1;cursor:pointer}.ft-calendar-nav:hover{background:#eef4f8}
.ft-calendar-grid{display:grid;grid-template-columns:34px repeat(7,1fr);gap:2px}.ft-calendar-weekdays{padding-bottom:4px;border-bottom:1px solid #e1e7ec;margin-bottom:3px}.ft-calendar-weekdays span{font-size:.69rem;font-weight:600;color:#63717c;text-align:center;padding:3px 0}
.ft-calendar-row{margin-bottom:2px}.ft-calendar-row button{height:30px;border:0;border-radius:4px;background:#fff;color:#283640;font-size:.76rem;cursor:pointer}.ft-calendar-row button:hover{background:#eaf2f8}.ft-calendar-kw{font-weight:600;color:#567084!important;border-right:1px solid #e1e7ec!important;border-radius:4px 0 0 4px!important}.ft-calendar-day.is-weekend{background:#fafbfc}.ft-calendar-day.is-outside{color:#a7b0b7}.ft-calendar-day.is-today{box-shadow:inset 0 0 0 1px #7697b3}.ft-calendar-row button.is-selected,.ft-calendar-day.is-week-selected{background:#d9e9f5;color:#153d5b;font-weight:600}.ft-calendar-row button.is-selected{box-shadow:inset 0 0 0 1px #7fa0ba}
.ft-calendar-foot{display:flex;justify-content:flex-end;margin-top:5px;padding-top:5px;border-top:1px solid #e1e7ec}.ft-calendar-foot button{height:27px;padding:0 8px;border:1px solid #c4d0da;border-radius:4px;background:#fff;font-size:.74rem;cursor:pointer}.ft-calendar-foot button:hover{background:#eef4f8}

/* 2026-09-07 Stapelbuchung: feste FrontTime-Zeilen */
.batch-line{display:grid;gap:8px;align-items:end}
.batch-line-main{grid-template-columns:minmax(235px,1.05fr) 190px minmax(300px,1.35fr) 220px}
.batch-line-time{grid-template-columns:150px 150px minmax(260px,1fr) 112px;margin-top:8px;padding-top:8px;border-top:1px solid #dbe3ea}
.batch-line .batch-field input,.batch-line .batch-field select,.batch-line .batch-picker-trigger,.batch-line .ft-calendar-trigger{height:32px;box-sizing:border-box}
.batch-line .ft-calendar-trigger{width:100%;margin:3px 0 0;padding:.28rem .45rem;border:1px solid #aebfce;border-radius:5px;background:#fff;color:#24313b;font-size:.82rem;display:flex;align-items:center;justify-content:space-between}
.batch-line [data-work-field].is-disabled{opacity:.48}
.batch-line [data-work-field].is-disabled input,.batch-line [data-work-field].is-disabled select{background:#f4f6f8}
.batch-preview-button{width:112px;justify-self:end}
/* Buchungsseite: beide Aktionen exakt gleich hoch, keine überstehende Restfläche */
.booking-list-summary .manual-booking-toggle{display:inline-flex!important;align-items:stretch!important;gap:7px!important;min-width:0!important;width:auto!important}
.booking-list-summary .manual-booking-toggle>button{height:36px!important;min-height:36px!important;box-sizing:border-box!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;margin:0!important;padding:.38rem .7rem!important;font-size:.82rem!important;line-height:1!important;white-space:nowrap!important}
.booking-list-summary .manual-booking-toggle .button-link{border:1px solid var(--line,#b8c8d6);background:#fff}
@media(max-width:900px){.batch-line-main{grid-template-columns:1fr 1fr}.batch-line-time{grid-template-columns:1fr 1fr}.batch-note-field{grid-column:1/-1}.batch-preview-button{grid-column:2;justify-self:end}}

/* 2026-09-07 Buchungsseite: Aktionsbuttons ohne Karten-/Feldhintergrund */
.booking-list-summary > .manual-booking-toggle{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:7px!important;
  flex:0 0 auto!important;
  width:auto!important;
  min-width:0!important;
  height:auto!important;
  margin:0 auto 0 0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.booking-list-summary > .manual-booking-toggle > button{
  height:36px!important;
  min-height:36px!important;
  margin:0!important;
  box-sizing:border-box!important;
}

/* FrontTime Navigation + Feiertagskalender 2026-09-08 */
.admin-nav{align-items:center}.admin-nav-disabled{padding:.6rem .8rem;color:#87919b;border:1px solid transparent}.admin-nav-manage{position:relative}.admin-nav-manage>summary{list-style:none;cursor:pointer;padding:.6rem .8rem;background:#fff;border:1px solid var(--line);border-radius:7px}.admin-nav-manage>summary::-webkit-details-marker{display:none}.admin-nav-menu{position:absolute;z-index:30;top:calc(100% + 4px);right:0;min-width:220px;padding:.35rem;background:#fff;border:1px solid var(--line);border-radius:7px;box-shadow:0 8px 24px rgba(20,35,50,.12)}.admin-nav-menu a{display:block;border:0;border-radius:5px;padding:.55rem .65rem}.target-status-cell form{margin:0;display:flex;justify-content:center}.target-done-checkbox{width:17px;height:17px;padding:0;border:1px solid #9da8b2;border-radius:3px;background:#fff;color:#1769a6;font-size:13px;line-height:15px;cursor:pointer}.target-done-checkbox.checked{background:#eef5fa;border-color:#6f9cbc}.holiday-head{display:flex;align-items:center;gap:.7rem;margin-bottom:.8rem}.holiday-head h1{margin:0 auto 0 0}.holiday-year{display:flex;align-items:center;gap:.45rem}.holiday-year .button-link{min-width:32px;text-align:center}.holiday-form-panel{margin-bottom:.8rem;padding:.7rem}.holiday-form{display:grid;grid-template-columns:150px minmax(260px,1fr) 190px 82px;gap:.55rem;align-items:end}.holiday-form label{margin:0;font-size:.76rem}.holiday-form input,.holiday-form select{height:34px;width:100%;box-sizing:border-box;margin:.2rem 0 0}.holiday-year-grid{display:grid;grid-template-columns:repeat(3,minmax(280px,1fr));gap:.7rem}.holiday-month{padding:.55rem}.holiday-month h2{font-size:.95rem;margin:.1rem 0 .45rem}.holiday-month table{width:100%;table-layout:fixed;margin:0}.holiday-month th,.holiday-month td{text-align:center;padding:.27rem .12rem;font-size:.73rem}.holiday-month th:first-child,.holiday-kw{width:28px;color:var(--muted);font-size:.65rem}.holiday-month td.outside{background:#fafbfc}.holiday-full{background:#ffd6d6!important;color:#9f1d1d;font-weight:700;cursor:pointer;border:1px solid #e58a8a}.holiday-half{background:linear-gradient(135deg,#ffd6d6 0 50%,transparent 50% 100%)!important;color:#9f1d1d;font-weight:700;cursor:pointer;border:1px solid #e58a8a}.holiday-list{margin-top:.8rem}.holiday-list h2{font-size:1rem}.holiday-list form{margin:0}.holiday-list td:last-child{text-align:right}@media(max-width:1100px){.holiday-year-grid{grid-template-columns:repeat(2,minmax(280px,1fr))}}@media(max-width:700px){.holiday-year-grid{grid-template-columns:1fr}.holiday-form{grid-template-columns:1fr}.admin-nav-menu{left:0;right:auto}}

/* 2026-09-08: kompakte, fixierte Arbeitskoepfe Buchungen / Projekte & Auftraege */
.admin-nav{margin-bottom:.55rem}
.admin-nav a,.admin-nav-manage>summary{padding:.42rem .68rem}
.admin-nav a.active,.admin-nav-manage>summary.active{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}
.admin-nav-menu a.active{background:var(--blue-soft);color:var(--blue-dark);font-weight:600}
.booking-list-toolbar,.target-toolbar-fronttime{position:sticky;top:0;z-index:25;background:var(--background);padding:.35rem 0 .45rem;margin-top:0;border-bottom:1px solid var(--line)}
.booking-list-toolbar{margin-bottom:.45rem}
.target-toolbar-fronttime{margin-bottom:.45rem}
.booking-toolbar-simple{gap:8px}
.booking-filter-grid{gap:6px}
.booking-list-summary{margin-top:4px}
.target-toolbar-fronttime .target-toolbar-main{min-height:38px}
@media(max-width:700px){.booking-list-toolbar,.target-toolbar-fronttime{position:static}}


/* Permanenter Fronttime!-Hauptrahmen */
html, body { height: 100%; }
body { min-height: 100vh; display: flex; flex-direction: column; overflow: hidden; }
.topbar {
  flex: 0 0 auto; min-height: 64px;
  padding: .38rem max(1rem, calc((100% - 1320px)/2));
  gap: 1rem; position: relative; z-index: 200;
}
.topbar-main { display: flex; align-items: center; gap: .8rem; min-width: 0; }
.brand { flex: 0 0 auto; padding: .42rem .72rem; border: 2px solid #fff; border-radius: 8px; line-height: 1; }
.top-admin-nav { display: flex; align-items: flex-start; gap: .38rem; min-width: 0; }
.top-admin-nav > a, .top-admin-nav > .top-nav-disabled, .top-manage > summary {
  display: block; padding: .45rem .65rem; border: 1px solid rgba(255,255,255,.38);
  border-radius: 7px; color: #fff; background: rgba(255,255,255,.08);
  text-decoration: none; white-space: nowrap; line-height: 1.15;
}
.top-admin-nav > a.active, .top-manage > summary.active {
  background: #fff; border-color: #fff; color: var(--blue-dark); font-weight: 700;
}
.top-nav-disabled { opacity: .52; cursor: default; }
.top-manage-wrap { position: relative; display: grid; justify-items: stretch; }
.top-manage { position: relative; }
.top-manage > summary { list-style: none; cursor: pointer; }
.top-manage > summary::-webkit-details-marker { display: none; }
.top-manage > summary::after { content: " ▾"; font-size: .72em; }
.top-manage[open] > summary::after { content: " ▴"; }
.top-manage-menu {
  position: absolute; top: calc(100% + 6px); right: 0; z-index: 250; min-width: 225px;
  padding: .35rem; background: #fff; border: 1px solid var(--line); border-radius: 8px;
  box-shadow: 0 10px 28px rgba(10,35,55,.22);
}
.top-manage-menu a {
  display: block; padding: .55rem .65rem; border-radius: 6px;
  color: var(--blue-dark); text-decoration: none; white-space: nowrap;
}
.top-manage-menu a:hover { background: var(--blue-soft); }
.top-sub-current {
  margin-top: .18rem; padding: 0 .35rem; color: #fff; font-size: .72rem;
  line-height: 1.05; text-align: center; white-space: nowrap;
}
.topbar-actions { flex: 0 0 auto; margin-left: auto; }
.page {
  flex: 1 1 auto; min-height: 0; width: 100%;
  overflow-y: auto; overflow-x: hidden; padding-top: .85rem;
}
.admin-nav { display: none; }
@media (max-width: 1050px) {
  .topbar { align-items: flex-start; flex-wrap: wrap; }
  .topbar-main, .top-admin-nav { flex-wrap: wrap; }
}
\n\n/* 2026-09-08 Korrektur: einzeiliger Hauptkopf + sauber getrennte Arbeitsbereiche */
.topbar{min-height:52px;align-items:center}
.topbar-main,.top-admin-nav{align-items:center}
.top-manage-wrap{display:block}
.top-sub-current{display:none!important}

/* Der Modulinhalt scrollt; Filter liegt in seinem eigenen undurchsichtigen Bereich. */
.page{padding-top:0;background:var(--background)}
.booking-list-toolbar,.target-toolbar-fronttime{
  position:sticky;top:0;z-index:40;
  box-sizing:border-box;
  margin:0 0 .55rem!important;
  padding:.85rem 0 .55rem!important;
  background:var(--background)!important;
  border-bottom:1px solid var(--line);
  box-shadow:none!important;
}
/* Kein Tabelleninhalt darf im Abstand oberhalb des Filters durchscheinen. */
.booking-list-toolbar::before,.target-toolbar-fronttime::before{
  content:"";position:absolute;left:-100vw;right:-100vw;top:0;bottom:0;
  background:var(--background);z-index:-1;
}

/* Spaltenkoepfe bleiben beim Scrollen stehen. Offset unter dem jeweiligen Filterblock. */
.booking-list-table thead th{position:sticky;top:112px;z-index:32;background:#fff;box-shadow:0 1px 0 var(--line)}
.target-table-fronttime thead th{position:sticky;top:62px;z-index:32;background:#fff;box-shadow:0 1px 0 var(--line)}
.employee-list-table thead th,.compact-table thead th{position:sticky;top:0;z-index:20;background:#fff;box-shadow:0 1px 0 var(--line)}

@media(max-width:1100px){
 .booking-list-table thead th,.target-table-fronttime thead th{position:static}
}

#overlap-work>.table-wrap,.target-list-fronttime>.table-wrap{overflow:visible!important}
.booking-list-table thead,.target-table-fronttime thead{display:table-header-group}
.booking-list-table thead th{position:sticky!important;top:116px!important;z-index:45!important;background:#f5f8fa!important;box-shadow:inset 0 -1px 0 var(--line)}
.target-table-fronttime thead th{position:sticky!important;top:63px!important;z-index:45!important;background:#f5f8fa!important;box-shadow:inset 0 -1px 0 var(--line)}
@media(max-width:1100px){.booking-list-table thead th{position:sticky!important;top:116px!important}.target-table-fronttime thead th{position:sticky!important;top:63px!important}}
.activity-modal-dialog{width:min(1180px,96vw)}.activity-modal-frame{height:min(760px,86vh)!important;min-height:560px!important}.activity-popup-page{max-width:1160px}.activity-compact-head{display:block}.activity-compact-create{display:grid;grid-template-columns:110px minmax(260px,1fr) 155px 175px auto;gap:8px;align-items:end;width:100%}.activity-compact-create label{margin:0;font-size:.78rem}.activity-compact-create input{height:34px;margin-top:3px}.activity-check{min-height:34px;align-items:center}.activity-compact-table td:nth-child(2) input{width:100%;box-sizing:border-box}.activity-profile-create{display:grid;grid-template-columns:140px minmax(260px,1fr) auto;gap:8px;align-items:end;margin:0 0 10px}.activity-profile-create label{margin:0;font-size:.78rem}.activity-profile-create input{height:34px;margin-top:3px}.activity-profile-card{border-top:1px solid var(--line);padding:10px 0 4px;margin:0}.activity-profile-title{display:flex;align-items:center;gap:8px;margin-bottom:7px}.activity-permission-grid{gap:5px}.activity-profile-actions{display:flex;justify-content:flex-end;margin-top:8px}

/* Tätigkeiten: eindeutige Hinweise, ruhige Checkbox-Spalten */
.activity-option{display:flex;flex-direction:column;gap:4px;margin:0;font-size:.78rem;align-items:flex-start}.activity-option>input{margin:0;width:18px;height:18px}.activity-help{font-size:.82em;cursor:help;color:#65798b;font-weight:400}.activity-check-cell{text-align:center;vertical-align:middle}.activity-check-cell>input{width:18px;height:18px;margin:0}.activity-compact-table th:nth-child(3),.activity-compact-table th:nth-child(4),.activity-compact-table th:nth-child(5){text-align:center}.activity-compact-create{grid-template-columns:110px minmax(260px,1fr) 105px 115px auto}


/* 2026-09-08 final layout correction:
   one opaque toolbar, one table header, no table bleed-through. */

/* Main content uses the same horizontal edge as the header navigation. */
.page {
  padding-left: 14px !important;
  padding-right: 14px !important;
}

/* Booking and target work areas must form their own stacking context. */
#overlap-work,
.target-list-fronttime {
  position: relative;
  isolation: isolate;
}

/* Filter/action bars are opaque and sit above the table. */
.booking-filter-toolbar,
.booking-filter-bar,
.booking-toolbar,
.target-filter-toolbar,
.target-toolbar-fronttime,
.target-filter-fronttime {
  background: var(--bg, #f5f7f9) !important;
  opacity: 1 !important;
  z-index: 60 !important;
}

/* Never let the table paint through the toolbar area. */
#overlap-work > .table-wrap,
.target-list-fronttime > .table-wrap {
  overflow-x: auto !important;
  overflow-y: visible !important;
  position: relative;
  z-index: 1 !important;
  margin-top: 0 !important;
}

/* Exactly one visible header: the real table THEAD. */
.booking-list-table thead,
.target-table-fronttime thead {
  display: table-header-group !important;
  visibility: visible !important;
}
.booking-list-table thead th,
.target-table-fronttime thead th {
  position: sticky !important;
  top: 0 !important;
  z-index: 20 !important;
  background: #f5f8fa !important;
  opacity: 1 !important;
  box-shadow: inset 0 -1px 0 var(--line);
}

/* Hide any cloned/floating header generated by older layout rules/scripts. */
.booking-table-head-clone,
.target-table-head-clone,
.table-head-clone,
.floating-table-head,
.sticky-table-head-clone {
  display: none !important;
}

/* No negative translation/margins around the two tables. */
.booking-list-table,
.target-table-fronttime {
  margin-top: 0 !important;
  transform: none !important;
}


/* 2026-09-08: Projekte & Aufträge – Tabellenkopf bleibt unter der fixen Werkzeugzeile stehen. */
.target-toolbar-fronttime{
  position:sticky!important;
  top:0!important;
  z-index:70!important;
  margin:0!important;
  padding:.72rem 0 .5rem!important;
  background:var(--background)!important;
  border-bottom:1px solid var(--line)!important;
}
.target-list-fronttime{
  padding-top:0!important;
  margin-top:0!important;
  background:var(--background)!important;
  overflow:visible!important;
}
.target-list-fronttime>.table-wrap{
  overflow:visible!important;
  position:static!important;
  margin:0!important;
  padding:0!important;
}
.target-table-fronttime{
  margin:0!important;
  border-collapse:separate!important;
  border-spacing:0!important;
}
.target-table-fronttime thead th{
  position:sticky!important;
  top:52px!important;
  z-index:65!important;
  background:#f5f8fa!important;
  box-shadow:inset 0 -1px 0 var(--line),0 1px 0 #fff!important;
}
@media(max-width:1100px){
  .target-list-fronttime>.table-wrap{overflow:visible!important}
  .target-table-fronttime thead th{position:sticky!important;top:52px!important}
}

/* Tätigkeiten – ruhige Fronttime-/Zeitregime-Darstellung. */
.activity-popup-page{max-width:none!important;padding:.7rem .85rem 1rem!important}
.activity-compact-head{padding:.55rem .65rem!important;margin:0 0 .65rem!important}
.activity-compact-create{display:grid!important;grid-template-columns:110px minmax(260px,1fr) 100px 115px auto!important;gap:.55rem!important;align-items:end!important;width:100%}
.activity-compact-create label{margin:0!important;font-size:.74rem!important;font-weight:400!important}
.activity-compact-create input[type=text],.activity-compact-create input:not([type]){height:34px!important;margin:0!important;padding:.32rem .45rem!important;font-size:.8rem!important;box-sizing:border-box!important;width:100%}
.activity-new-flag{display:flex!important;flex-direction:column!important;gap:5px!important;align-items:flex-start!important}
.activity-new-flag input[type=checkbox]{width:17px!important;height:17px!important;margin:0!important}
.activity-help{font-size:.82em;cursor:help;color:#65798b;font-weight:400}
.activity-list-section{padding:.55rem .65rem!important}
.activity-table-wrap{overflow:visible}
.activity-list-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:.82rem}
.activity-list-table col.act-code{width:180px}.activity-list-table col.act-name{width:auto}.activity-list-table col.act-active{width:80px}.activity-list-table col.act-target{width:105px}.activity-list-table col.act-employee{width:125px}.activity-list-table col.act-action{width:48px}
.activity-list-table th,.activity-list-table td{height:34px;padding:.35rem .55rem;border-bottom:1px solid var(--line);vertical-align:middle}
.activity-list-table th{font-size:.76rem;font-weight:600;color:var(--blue-dark);background:#eef5fa;text-align:left}
.activity-list-table th.center{text-align:center}
.activity-code{font-weight:600}.activity-system-badge{display:inline-block;margin-left:.35rem;padding:.12rem .42rem;border-radius:999px;background:#edf1f4;color:#536574;font-size:.7rem;font-weight:400}
.activity-state-cell{text-align:center}.activity-state{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;font-size:.9rem}.activity-state.on{color:#176c45;font-weight:700}.activity-state.off{color:#9aa8b3}
.activity-action-cell{text-align:right}.activity-action-cell .icon-action{width:28px;height:28px;min-width:28px;padding:0}
.activity-edit-row>td{padding:.42rem .55rem!important;background:#f7fafd!important}
.activity-edit-form{display:grid;grid-template-columns:180px minmax(240px,1fr) 80px 105px 125px 70px;gap:.55rem;align-items:end;margin:0}
.activity-edit-code{align-self:center;padding-bottom:.35rem}
.activity-edit-form label{margin:0;font-size:.72rem;font-weight:400}.activity-edit-form label>input[type=text],.activity-edit-form label>input:not([type]){display:block;width:100%;height:30px;margin:.2rem 0 0;padding:.25rem .4rem;font-size:.8rem;box-sizing:border-box}
.activity-edit-check{display:flex!important;flex-direction:column!important;align-items:center!important;gap:4px!important}.activity-edit-check input{width:17px!important;height:17px!important;margin:0!important}
.activity-edit-actions{display:flex;gap:.3rem;justify-content:flex-end;align-items:center;padding-bottom:.1rem}.activity-edit-actions .icon-action{width:29px;height:29px;min-width:29px;padding:0}
.activity-profile-create{display:grid!important;grid-template-columns:140px minmax(260px,1fr) auto!important;gap:.55rem!important;align-items:end!important;margin:0 0 .65rem!important}.activity-profile-create label{margin:0!important;font-size:.74rem!important}.activity-profile-create input{height:34px!important;margin:.2rem 0 0!important}
.activity-profile-card{border-top:1px solid var(--line)!important;padding:.65rem 0 .25rem!important;margin:0!important}.activity-profile-title{display:flex;align-items:center;gap:.45rem;margin-bottom:.45rem}.activity-profile-actions{display:flex;justify-content:flex-end;margin-top:.45rem}

/* Feiertagskalender: Monatsgrenzen und Bearbeitungszeile */
.holiday-month td.outside{background:#fafbfc!important;color:transparent!important;border-color:transparent!important;cursor:default!important}
.holiday-form{align-items:end}
.holiday-form input,.holiday-form select{height:38px!important;min-height:38px!important;padding:6px 10px!important;line-height:24px!important;font-size:.86rem!important}
.holiday-form select{appearance:auto!important;-webkit-appearance:menulist!important;padding-right:30px!important}
.holiday-form .employee-inline-actions{height:38px;display:flex;align-items:center;gap:6px}
.holiday-form .employee-inline-actions .icon-action{height:38px;min-height:38px;display:inline-flex;align-items:center;justify-content:center}


/* 2026-09-08: Tätigkeiten-Fenster – sichtbarer interner Vertikalscroll.
   Der Modal-Kopf bleibt stehen; ausschließlich der iframe-Inhalt scrollt. */
.activity-modal-dialog {
  height: min(820px, 92vh) !important;
  max-height: 92vh !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}
.activity-modal-dialog .regime-modal-bar {
  flex: 0 0 auto !important;
}
.activity-modal-frame {
  flex: 1 1 auto !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  border: 0 !important;
  overflow-y: scroll !important;
  overflow-x: hidden !important;
  display: block !important;
}
.regime-popup-body.activity-popup-body {
  height: auto !important;
  min-height: 100% !important;
  overflow-y: scroll !important;
  overflow-x: hidden !important;
}
.activity-popup-page {
  min-height: max-content;
  padding-bottom: 24px !important;
}

/* Hintergrundseite bleibt beim geöffneten internen Fenster stehen. */
body.regime-modal-open {
  overflow: hidden !important;
}
\n.employee-activity-modal-dialog{width:min(860px,94vw);height:min(620px,88vh);display:flex;flex-direction:column;overflow:hidden}.employee-activity-frame{flex:1;min-height:0;border:0}.activity-assign-page{padding:12px}.activity-assign-mode{display:flex;gap:24px;align-items:center;padding:12px 14px;background:#eaf4fb;border:1px solid #9fc8e5;border-radius:7px}.activity-assign-mode strong{margin-right:auto}.activity-dual{display:grid;grid-template-columns:1fr 56px 1fr;gap:10px;margin-top:14px}.activity-dual section>label{font-weight:700}.activity-search{width:100%;margin:6px 0;height:34px}.activity-pick-list{height:330px;border:1px solid #a9c8df;border-radius:6px;overflow-y:auto;background:white;padding:4px}.activity-pick-list button{display:block;width:100%;border:0;background:white;text-align:left;padding:7px 9px;border-radius:4px}.activity-pick-list button:hover,.activity-pick-list button.selected{background:#dceefb}.activity-move{display:flex;flex-direction:column;justify-content:center;gap:8px}.activity-move button{height:36px}.activity-assign-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:12px}.success-text{color:#25733b;font-weight:700}@media(max-width:700px){.activity-dual{grid-template-columns:1fr}.activity-move{flex-direction:row}.activity-assign-mode{flex-wrap:wrap}}\n
/* Mitarbeiter: Fronttime-Kalender für alle Datumsfelder */
.employee-ft-date{display:block;min-width:128px}
.employee-calendar-trigger{margin-top:3px!important}
.employee-calendar-popover{z-index:900!important}
.employee-calendar-kw{height:30px;display:flex;align-items:center;justify-content:center;font-size:.72rem;color:#567084;border-right:1px solid #e1e7ec}
.ft-calendar-day.is-disabled{opacity:.32;cursor:not-allowed;background:#fafafa!important}
.employee-inline-module-actions{display:flex;justify-content:flex-end;padding:7px 0 4px}
.employee-inline-module-actions .button-link{font-size:.78rem}


/* 2026-09-08: Globale horizontale Ausrichtung aller Fronttime!-Seiten */
:root {
  --fronttime-page-gutter: 28px;
  --fronttime-content-max: 1440px;
}

/* Kopf und Seiteninhalt beginnen auf derselben vertikalen Grundlinie. */
.topbar {
  padding-left: var(--fronttime-page-gutter) !important;
  padding-right: var(--fronttime-page-gutter) !important;
  box-sizing: border-box;
}

.page {
  padding-left: var(--fronttime-page-gutter) !important;
  padding-right: var(--fronttime-page-gutter) !important;
  box-sizing: border-box;
}

/* Keine zweite Einrückung innerhalb der eigentlichen Modulseiten. */
.page > main,
.page > section,
.page > .panel,
.page > .admin-page,
.page > .page-content,
.page > .content,
.page > .booking-page,
.page > .targets-page {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Verwaltungs-/Formularseiten nicht unnötig über den ganzen Bildschirm ziehen. */
.page .narrow-panel,
.page .admin-content,
.page .employee-admin-page,
.page .holiday-admin-page,
.page .settings-admin-page {
  max-width: var(--fronttime-content-max);
  width: 100%;
  box-sizing: border-box;
}

/* Tabellen und Karten füllen ihren verfügbaren Bereich, nicht mehr. */
.page .panel,
.page .card,
.page .table-wrap,
.page table,
.page form {
  box-sizing: border-box;
  max-width: 100%;
}

/* Horizontales Scrollen nur im Tabellenwrapper, nicht auf der ganzen Seite. */
.page {
  overflow-x: hidden !important;
}
.page .table-wrap {
  overflow-x: auto;
  max-width: 100%;
}

/* Mitarbeiterseite: unnötige Breitenüberschreitung verhindern. */
.employee-table,
.employee-list-table,
.employee-edit-row,
.employee-regime-area,
.employee-inline-edit,
.employee-table-wrap {
  max-width: 100% !important;
  box-sizing: border-box;
}
.employee-inline-edit input,
.employee-inline-edit select,
.employee-regime-area input,
.employee-regime-area select {
  min-width: 0;
}

/* Auf kleineren Displays bleibt der Grundabstand kompakt. */
@media (max-width: 900px) {
  :root { --fronttime-page-gutter: 14px; }
}


/* 2026-09-08: Seitenrahmen endgültig an Fronttime!-Logo ausrichten.
   Ursache der bisherigen Verschiebung war nicht der äußere Gutter,
   sondern zentrierte/max-width Inhaltscontainer innerhalb .page. */
:root {
  --fronttime-page-gutter: 28px;
}

/* Der komplette Arbeitsbereich nutzt die volle verfügbare Breite zwischen
   denselben Außenkanten wie der blaue Kopf. */
.page {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding-left: var(--fronttime-page-gutter) !important;
  padding-right: var(--fronttime-page-gutter) !important;
}

/* Direkte Seitencontainer nicht mehr zentrieren. */
.page > *,
.page > main,
.page > section,
.page > .panel,
.page > .admin-page,
.page > .page-content,
.page > .content {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Die Hauptmodule sollen nicht durch alte max-width/narrow-panel-Regeln
   auf ~1260 px begrenzt und anschließend zentriert werden. */
.page .booking-page,
.page .bookings-page,
.page #overlap-work,
.page .targets-page,
.page .target-list-fronttime,
.page .employee-admin-page,
.page .employees-page,
.page .holiday-admin-page {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Mitarbeiter: Bedienzeile und Tabelle exakt gleich breit.
   Die Tabelle selbst darf keine Seitenbreite erzwingen. */
.employee-admin-page,
.employee-page,
.employee-list,
.employee-table-wrap,
.employee-table,
.employee-list-table {
  width: 100% !important;
  max-width: 100% !important;
}
.employee-table-wrap,
.employee-list .table-wrap {
  overflow-x: hidden !important;
}
.employee-table,
.employee-list-table {
  table-layout: fixed;
}
.employee-table th:last-child,
.employee-table td:last-child,
.employee-list-table th:last-child,
.employee-list-table td:last-child {
  width: 110px;
}

/* Buchungen: der Filter-/Tabellenblock nicht mehr als zentrierte Insel.
   Er beginnt unter dem Logo und nutzt die Arbeitsbreite. */
#overlap-work,
.booking-filter-toolbar,
.booking-filter-bar,
.booking-toolbar,
.booking-list-table {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Projekte & Aufträge ebenso. */
.target-list-fronttime,
.target-filter-toolbar,
.target-toolbar-fronttime,
.target-filter-fronttime,
.target-table-fronttime {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Nur echte bewusst kompakte Dialog-/Formularkarten dürfen schmal bleiben;
   sie werden links ausgerichtet statt mittig zentriert. */
.page .narrow-panel {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Keine horizontale Seitenscrollbar. */
html, body, .page {
  overflow-x: hidden !important;
}
@media (max-width: 900px) {
  :root { --fronttime-page-gutter: 14px; }
}


/* 2026-09-08: Hauptinhalt wieder mittig und angenehm begrenzt.
   Auf großen Bildschirmen keine unnötige Vollbreite; beim schmaler Werden
   verengen sich Tabellen/Spalten flexibel statt sofort horizontal zu scrollen. */
:root {
  --fronttime-page-gutter: 28px;
  --fronttime-content-width: 1260px;
}

/* Blauer Kopf bleibt vollbreit; Navigation behält ihren bisherigen Rand. */
.topbar {
  width: 100% !important;
  max-width: none !important;
}

/* Seiteninhalt wieder als zentrierter Arbeitsbereich. */
.page {
  width: 100% !important;
  max-width: var(--fronttime-content-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--fronttime-page-gutter) !important;
  padding-right: var(--fronttime-page-gutter) !important;
  box-sizing: border-box;
}

/* Hauptmodule folgen der Seitenbreite, ohne eigene Vollbreiten-Zwangsregeln. */
.page .booking-page,
.page .bookings-page,
.page #overlap-work,
.page .targets-page,
.page .target-list-fronttime,
.page .employee-admin-page,
.page .employees-page,
.page .holiday-admin-page,
.page .admin-page,
.page .page-content,
.page .content {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Tabellen reagieren auf die verfügbare Breite. */
.page table {
  width: 100% !important;
  max-width: 100% !important;
}

/* Mitarbeiter: feste Tabellenbreite aufheben, Spalten sauber schrumpfen lassen. */
.employee-table,
.employee-list-table {
  table-layout: fixed !important;
}
.employee-table th,
.employee-table td,
.employee-list-table th,
.employee-list-table td {
  min-width: 0 !important;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Mitarbeiter-Spalten proportional statt breit fixiert. */
.employee-table th:nth-child(1),
.employee-table td:nth-child(1),
.employee-list-table th:nth-child(1),
.employee-list-table td:nth-child(1) { width: 7%; }

.employee-table th:nth-child(2),
.employee-table td:nth-child(2),
.employee-list-table th:nth-child(2),
.employee-list-table td:nth-child(2) { width: 9%; }

.employee-table th:nth-child(3),
.employee-table td:nth-child(3),
.employee-list-table th:nth-child(3),
.employee-list-table td:nth-child(3) { width: 23%; }

.employee-table th:nth-child(4),
.employee-table td:nth-child(4),
.employee-list-table th:nth-child(4),
.employee-list-table td:nth-child(4) { width: 16%; }

.employee-table th:nth-child(5),
.employee-table td:nth-child(5),
.employee-list-table th:nth-child(5),
.employee-list-table td:nth-child(5) { width: 20%; }

.employee-table th:nth-child(6),
.employee-table td:nth-child(6),
.employee-list-table th:nth-child(6),
.employee-list-table td:nth-child(6) { width: 10%; }

.employee-table th:nth-child(7),
.employee-table td:nth-child(7),
.employee-list-table th:nth-child(7),
.employee-list-table td:nth-child(7) { width: 10%; }

.employee-table th:nth-child(8),
.employee-table td:nth-child(8),
.employee-list-table th:nth-child(8),
.employee-list-table td:nth-child(8) { width: 105px; }

/* Buchungen: Spalten verengen sich mit dem Fenster. */
.booking-list-table {
  table-layout: fixed !important;
}
.booking-list-table th,
.booking-list-table td {
  min-width: 0 !important;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.booking-list-table th:nth-child(1), .booking-list-table td:nth-child(1) { width: 8%; }
.booking-list-table th:nth-child(2), .booking-list-table td:nth-child(2) { width: 16%; }
.booking-list-table th:nth-child(3), .booking-list-table td:nth-child(3) { width: 19%; }
.booking-list-table th:nth-child(4), .booking-list-table td:nth-child(4) { width: 10%; }
.booking-list-table th:nth-child(5), .booking-list-table td:nth-child(5) { width: 8%; }
.booking-list-table th:nth-child(6), .booking-list-table td:nth-child(6) { width: 8%; }
.booking-list-table th:nth-child(7), .booking-list-table td:nth-child(7) { width: 9%; }
.booking-list-table th:nth-child(8), .booking-list-table td:nth-child(8) { width: 10%; }
.booking-list-table th:nth-child(9), .booking-list-table td:nth-child(9) { width: 12%; }

/* Projekte & Aufträge: ebenfalls flexibel. */
.target-table-fronttime {
  table-layout: fixed !important;
}
.target-table-fronttime th,
.target-table-fronttime td {
  min-width: 0 !important;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.target-table-fronttime th:nth-child(1), .target-table-fronttime td:nth-child(1) { width: 7%; }
.target-table-fronttime th:nth-child(2), .target-table-fronttime td:nth-child(2) { width: 10%; }
.target-table-fronttime th:nth-child(3), .target-table-fronttime td:nth-child(3) { width: 15%; }
.target-table-fronttime th:nth-child(4), .target-table-fronttime td:nth-child(4) { width: 34%; }
.target-table-fronttime th:nth-child(5), .target-table-fronttime td:nth-child(5) { width: 12%; }
.target-table-fronttime th:nth-child(6), .target-table-fronttime td:nth-child(6) { width: 12%; }
.target-table-fronttime th:last-child, .target-table-fronttime td:last-child { width: 110px; }

/* Horizontaler Scrollbalken erst auf wirklich kleinen Ansichten. */
.employee-table-wrap,
.employee-list .table-wrap,
#overlap-work > .table-wrap,
.target-list-fronttime > .table-wrap {
  overflow-x: hidden !important;
}

@media (max-width: 1100px) {
  :root { --fronttime-content-width: 100%; --fronttime-page-gutter: 18px; }

  .employee-table th:nth-child(4),
  .employee-table td:nth-child(4),
  .employee-list-table th:nth-child(4),
  .employee-list-table td:nth-child(4) { width: 14%; }

  .employee-table th:nth-child(5),
  .employee-table td:nth-child(5),
  .employee-list-table th:nth-child(5),
  .employee-list-table td:nth-child(5) { width: 18%; }
}

@media (max-width: 820px) {
  :root { --fronttime-page-gutter: 12px; }

  /* Ab hier darf die Tabelle kontrolliert scrollen statt Inhalte unlesbar zu quetschen. */
  .employee-table-wrap,
  .employee-list .table-wrap,
  #overlap-work > .table-wrap,
  .target-list-fronttime > .table-wrap {
    overflow-x: auto !important;
  }

  .employee-table,
  .employee-list-table,
  .booking-list-table,
  .target-table-fronttime {
    min-width: 900px !important;
  }
}


/* 2026-09-08: Kopf-Navigation exakt auf den zentrierten Seitenrahmen ausrichten.
   Blau bleibt vollbreit, nur der Inhalt des Kopfes wird zentriert. */
.topbar {
  width: 100% !important;
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box;
}

.topbar-inner {
  width: 100%;
  max-width: var(--fronttime-content-width, 1260px);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--fronttime-page-gutter, 28px);
  padding-right: var(--fronttime-page-gutter, 28px);
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: inherit;
}

/* Navigation bleibt links, Anmeldung/Abmelden wird innerhalb desselben
   zentrierten Rahmens an die rechte Kante gedrückt. */
.topbar-inner .top-admin-nav {
  flex: 0 1 auto;
}
.topbar-inner .session,
.topbar-inner .top-session,
.topbar-inner .user-info,
.topbar-inner .login-info {
  margin-left: auto !important;
}

/* Falls die Anmeldung im bisherigen Markup kein eigenes bekanntes Klassen-
   element besitzt, hält der letzte direkte Block die rechte Rahmenkante. */
.topbar-inner > :last-child {
  margin-right: 0;
}

@media (max-width: 1100px) {
  .topbar-inner {
    max-width: 100%;
    padding-left: 18px;
    padding-right: 18px;
  }
}
@media (max-width: 820px) {
  .topbar-inner {
    padding-left: 12px;
    padding-right: 12px;
  }
}


/* 2026-09-08: Mitarbeiter-Tabelle – gezielte Spaltenkorrektur.
   Seitenbreite/Zentrierung bleibt unverändert. */
.employee-table-wrap,
.employee-list .table-wrap {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
  box-sizing: border-box;
}

.employee-table,
.employee-list-table {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  table-layout: fixed !important;
}

.employee-table th,
.employee-table td,
.employee-list-table th,
.employee-list-table td {
  min-width: 0 !important;
  box-sizing: border-box;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Zielverteilung:
   Status 70 | Nummer 100 | Name flexibel | Profil 175 |
   Zeitregime 230 | Eintritt 110 | Austritt 110 | Aktion 120 */
.employee-table th:nth-child(1),
.employee-table td:nth-child(1),
.employee-list-table th:nth-child(1),
.employee-list-table td:nth-child(1) { width: 70px !important; }

.employee-table th:nth-child(2),
.employee-table td:nth-child(2),
.employee-list-table th:nth-child(2),
.employee-list-table td:nth-child(2) { width: 100px !important; }

.employee-table th:nth-child(3),
.employee-table td:nth-child(3),
.employee-list-table th:nth-child(3),
.employee-list-table td:nth-child(3) { width: auto !important; }

.employee-table th:nth-child(4),
.employee-table td:nth-child(4),
.employee-list-table th:nth-child(4),
.employee-list-table td:nth-child(4) { width: 175px !important; }

.employee-table th:nth-child(5),
.employee-table td:nth-child(5),
.employee-list-table th:nth-child(5),
.employee-list-table td:nth-child(5) { width: 230px !important; }

.employee-table th:nth-child(6),
.employee-table td:nth-child(6),
.employee-list-table th:nth-child(6),
.employee-list-table td:nth-child(6) { width: 110px !important; }

.employee-table th:nth-child(7),
.employee-table td:nth-child(7),
.employee-list-table th:nth-child(7),
.employee-list-table td:nth-child(7) { width: 110px !important; }

.employee-table th:nth-child(8),
.employee-table td:nth-child(8),
.employee-list-table th:nth-child(8),
.employee-list-table td:nth-child(8) {
  width: 120px !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

/* Aktionsbuttons bleiben vollständig innerhalb ihrer Zelle. */
.employee-table td:nth-child(8),
.employee-list-table td:nth-child(8) {
  white-space: nowrap;
}
.employee-table td:nth-child(8) button,
.employee-table td:nth-child(8) a,
.employee-list-table td:nth-child(8) button,
.employee-list-table td:nth-child(8) a {
  flex: 0 0 auto;
}

/* Bei mittleren Breiten werden zuerst die inhaltlichen Spalten enger. */
@media (max-width: 1120px) {
  .employee-table th:nth-child(4),
  .employee-table td:nth-child(4),
  .employee-list-table th:nth-child(4),
  .employee-list-table td:nth-child(4) { width: 145px !important; }

  .employee-table th:nth-child(5),
  .employee-table td:nth-child(5),
  .employee-list-table th:nth-child(5),
  .employee-list-table td:nth-child(5) { width: 190px !important; }
}

/* Erst auf wirklich kleinen Ansichten kontrolliert horizontal scrollen. */
@media (max-width: 820px) {
  .employee-table-wrap,
  .employee-list .table-wrap {
    overflow-x: auto !important;
  }
  .employee-table,
  .employee-list-table {
    min-width: 900px !important;
  }
}


/* 2026-09-08: Projekte & Aufträge – Tabellenkopf sauber vom Tabellenkörper trennen.
   Globales Layout/Zentrierung bleibt unverändert. */

/* Der Tabellenwrapper darf den Sticky-Kopf nicht mit einer zweiten Scroll-Ebene
   bzw. sichtbarem Überlauf überlagern. */
.target-list-fronttime {
  position: relative !important;
  isolation: isolate !important;
}

.target-list-fronttime > .table-wrap {
  position: relative !important;
  z-index: 1 !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
  overflow-x: hidden !important;
  overflow-y: visible !important;
}

/* Genau ein echter Tabellenkopf. */
.target-table-fronttime thead {
  display: table-header-group !important;
  visibility: visible !important;
}

.target-table-fronttime thead tr {
  position: relative;
  z-index: 30;
}

/* Der Kopf liegt deckend über den Daten und bleibt unter Filter/Suche stehen. */
.target-table-fronttime thead th {
  position: sticky !important;
  top: 0 !important;
  z-index: 40 !important;
  background: #f5f8fa !important;
  background-clip: padding-box !important;
  opacity: 1 !important;
  box-shadow:
    inset 0 -1px 0 var(--line),
    0 -8px 0 #f5f8fa !important;
}

/* Keine Zeile darf durch negative Positionierung in den Kopf hineinlaufen. */
.target-table-fronttime,
.target-table-fronttime tbody,
.target-table-fronttime tbody tr {
  transform: none !important;
  margin-top: 0 !important;
  top: auto !important;
}

.target-table-fronttime tbody td {
  position: relative;
  z-index: 1;
  background-clip: padding-box;
}

/* Alte/floating Header bleiben sicher deaktiviert. */
.target-table-head-clone,
.target-table-fronttime + .target-table-head-clone,
.floating-table-head,
.sticky-table-head-clone {
  display: none !important;
}

/* Kopf und Daten verwenden exakt dieselbe Tabellengeometrie. */
.target-table-fronttime {
  width: 100% !important;
  table-layout: fixed !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
}

/* Erst bei wirklich kleinen Ansichten horizontal scrollen. */
@media (max-width: 820px) {
  .target-list-fronttime > .table-wrap {
    overflow-x: auto !important;
  }
}


/* 2026-09-08: Einheitlicher Fronttime!-Tabellenkopf.
   Schriftgröße und Spaltengeometrie bleiben unverändert.
   Filter/Aktionen bleiben sticky; direkt darunter bleibt der Tabellenkopf sticky. */

/* Deckender Arbeitskopf */
.booking-filter-toolbar,
.booking-filter-bar,
.booking-toolbar,
.target-filter-toolbar,
.target-toolbar-fronttime,
.target-filter-fronttime {
  background: #f3f6f8 !important;
  opacity: 1 !important;
  z-index: 70 !important;
}

/* Buchungen: bestehende Filterhöhe berücksichtigen. */
.booking-list-table thead th {
  position: sticky !important;
  top: 116px !important;
  z-index: 65 !important;
  background: #d9e9f5 !important;
  color: #0b4f7f !important;
  font-size: inherit !important;
  line-height: inherit !important;
  font-weight: 600 !important;
  border-bottom: 2px solid #78a9c9 !important;
  box-shadow: none !important;
  opacity: 1 !important;
  background-clip: padding-box !important;
}

/* Projekte & Aufträge: bestehende Filter-/Suchzeile berücksichtigen. */
.target-table-fronttime thead th {
  position: sticky !important;
  top: 63px !important;
  z-index: 65 !important;
  background: #d9e9f5 !important;
  color: #0b4f7f !important;
  font-size: inherit !important;
  line-height: inherit !important;
  font-weight: 600 !important;
  border-bottom: 2px solid #78a9c9 !important;
  box-shadow: none !important;
  opacity: 1 !important;
  background-clip: padding-box !important;
}

/* Tabellenkopf darf nicht von Datenzeilen übermalt werden. */
.booking-list-table thead,
.target-table-fronttime thead {
  display: table-header-group !important;
  visibility: visible !important;
}
.booking-list-table tbody,
.target-table-fronttime tbody {
  position: relative;
  z-index: 1;
}

/* Alte Clone-/Floating-Header konsequent deaktivieren. */
.booking-table-head-clone,
.target-table-head-clone,
.table-head-clone,
.floating-table-head,
.sticky-table-head-clone {
  display: none !important;
}

/* Responsive: Filterzeilen bleiben kompakt; Schriftgröße des Tabellenkopfs
   wird ausdrücklich nicht verändert. */
@media (max-width: 1100px) {
  .booking-list-table thead th {
    top: 116px !important;
    font-size: inherit !important;
  }
  .target-table-fronttime thead th {
    top: 63px !important;
    font-size: inherit !important;
  }
}


/* 2026-09-08 FINAL: Tabellenköpfe ohne Überlagerung.
   Keine festen Pixel-Offets mehr. Die Seite scrollt normal; Filter und
   Tabellenkopf werden innerhalb des Seiten-Scrollcontainers nacheinander sticky.
   Dadurch kann keine Datenzeile oberhalb des Tabellenkopfs sichtbar werden. */

/* Alte top-Offets vollständig neutralisieren. */
.booking-list-table thead th,
.target-table-fronttime thead th {
  top: auto !important;
}

/* Filterbereiche sind die erste sticky Ebene direkt unter dem blauen Hauptkopf. */
.booking-filter-toolbar,
.booking-filter-bar,
.booking-toolbar,
.target-filter-toolbar,
.target-toolbar-fronttime,
.target-filter-fronttime {
  position: sticky !important;
  top: 0 !important;
  z-index: 80 !important;
  background: #f3f6f8 !important;
  opacity: 1 !important;
}

/* Tabellenwrapper beschneiden den Inhalt sauber; keine Daten dürfen nach oben
   aus dem Tabellenbereich herausmalen. */
#overlap-work > .table-wrap,
.target-list-fronttime > .table-wrap {
  position: relative !important;
  overflow-x: hidden !important;
  overflow-y: clip !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
  isolation: isolate !important;
}

/* Tabellenkopf bleibt ein normaler Bestandteil der Tabelle.
   Er wird NICHT mehr über Datenzeilen gelegt. */
.booking-list-table thead,
.target-table-fronttime thead {
  position: static !important;
  display: table-header-group !important;
  visibility: visible !important;
  transform: none !important;
}

.booking-list-table thead tr,
.target-table-fronttime thead tr {
  position: static !important;
  transform: none !important;
}

.booking-list-table thead th,
.target-table-fronttime thead th {
  position: static !important;
  z-index: auto !important;
  background: #d9e9f5 !important;
  color: #0b4f7f !important;
  font-size: inherit !important;
  line-height: inherit !important;
  font-weight: 600 !important;
  border-bottom: 2px solid #78a9c9 !important;
  box-shadow: none !important;
  opacity: 1 !important;
}

/* Keine alten Header-Klone. */
.booking-table-head-clone,
.target-table-head-clone,
.table-head-clone,
.floating-table-head,
.sticky-table-head-clone {
  display: none !important;
}

/* Datenkörper beginnt immer nach dem echten THEAD. */
.booking-list-table tbody,
.target-table-fronttime tbody,
.booking-list-table tbody tr,
.target-table-fronttime tbody tr {
  position: static !important;
  top: auto !important;
  transform: none !important;
  margin-top: 0 !important;
}

/* Auf kleinen Bildschirmen darf nur horizontal gescrollt werden. */
@media (max-width: 820px) {
  #overlap-work > .table-wrap,
  .target-list-fronttime > .table-wrap {
    overflow-x: auto !important;
    overflow-y: clip !important;
  }
}


/* 2026-09-08: finale Tabellen-Scrollstruktur für Buchungen + Projekte/Aufträge.
   Filter bleibt außerhalb. Tabellenkopf sitzt im eigenen Scrollbereich bei top:0.
   Nur die Daten laufen darunter durch. Keine künstlichen Seiten-Offsets. */

/* Tabellenkarten bündig: kleinen weißen Rand links/rechts entfernen. */
#overlap-work,
.target-list-fronttime {
  padding: 0 !important;
  overflow: hidden !important;
  position: relative !important;
  isolation: isolate !important;
}

/* Nur der Tabellenbereich scrollt. */
#overlap-work > .table-wrap,
.target-list-fronttime > .table-wrap {
  position: relative !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  background: var(--surface) !important;
}

/* Höhe so wählen, dass auf Desktop nur die Daten scrollen. */
#overlap-work > .table-wrap {
  max-height: calc(100dvh - 255px) !important;
}
.target-list-fronttime > .table-wrap {
  max-height: calc(100dvh - 195px) !important;
}

/* Tabellenkopf: im Tabellen-Scrollbereich fest, ohne Überlagerungs-Offset. */
.booking-list-table thead,
.target-table-fronttime thead {
  display: table-header-group !important;
  visibility: visible !important;
}

.booking-list-table thead tr,
.target-table-fronttime thead tr {
  position: static !important;
}

.booking-list-table thead th,
.target-table-fronttime thead th {
  position: sticky !important;
  top: 0 !important;
  z-index: 30 !important;
  background: #d9e9f5 !important;
  color: #0b4f7f !important;
  font-size: inherit !important;
  line-height: inherit !important;
  font-weight: 600 !important;
  border-bottom: 2px solid #78a9c9 !important;
  box-shadow: none !important;
  opacity: 1 !important;
  background-clip: padding-box !important;
}

/* Daten bleiben unter dem Kopf und dürfen ihn nicht übermalen. */
.booking-list-table tbody,
.target-table-fronttime tbody {
  position: relative !important;
  z-index: 1 !important;
}
.booking-list-table tbody tr,
.target-table-fronttime tbody tr {
  position: static !important;
  transform: none !important;
  top: auto !important;
}

/* Kopfband und Zeilen exakt bündig mit Kartenkante. */
.booking-list-table,
.target-table-fronttime {
  width: 100% !important;
  margin: 0 !important;
  border-spacing: 0 !important;
}

/* Alte Header-Klone/floating Varianten bleiben aus. */
.booking-table-head-clone,
.target-table-head-clone,
.table-head-clone,
.floating-table-head,
.sticky-table-head-clone {
  display: none !important;
}

/* Auf kleineren Displays weiterhin kontrolliertes horizontales Scrollen. */
@media (max-width: 820px) {
  #overlap-work > .table-wrap,
  .target-list-fronttime > .table-wrap {
    overflow-x: auto !important;
  }
  #overlap-work > .table-wrap {
    max-height: calc(100dvh - 285px) !important;
  }
  .target-list-fronttime > .table-wrap {
    max-height: calc(100dvh - 225px) !important;
  }
}

/* 2026-09-08: Terminal kompakt + PWA / letzte 3 Buchungen */
.terminal-control-button { display:flex; align-items:center; justify-content:center; text-decoration:none; border:1px solid #8ca0b3; border-radius:10px; background:#f7f9fa; color:var(--blue-dark); font-weight:600; }
.terminal-recent-bookings { display:grid; gap:.35rem; margin-top:.55rem; }
.terminal-recent-row { display:grid; grid-template-columns:1.05fr minmax(0,1.35fr) .5fr .7fr .7fr; gap:.35rem; align-items:center; min-height:34px; padding:.35rem .55rem; border:1px solid var(--line); border-radius:7px; background:#fff; font-size:.86rem; }
.terminal-recent-row span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.terminal-recent-row span:nth-child(n+3) { text-align:center; }

/* Buchungen / Projekte: Seite selbst passt in den Viewport; nur Tabelle scrollt. */
.booking-admin-page, .targets-admin-page { height:calc(100dvh - 58px); overflow:hidden; }

@media (max-width:600px) {
  .topbar-inner { min-width:0; gap:.35rem; }
  .topbar-main { flex:0 1 auto; min-width:78px; }
  .topbar-actions { flex:1 1 auto; min-width:0; }
  .terminal-page .user-label { max-width:unset; }
  .topbar .brand { white-space:nowrap; }
  .terminal-page { padding-top:.5rem; padding-bottom:.5rem; }
  .terminal-idle-screen { min-height:0; align-content:start; gap:.5rem; }
  .idle-start-button { min-height:82px; font-size:1.35rem; }
  .terminal-state-screen { height:auto; display:grid; grid-template-rows:auto auto; gap:.45rem; }
  .terminal-state-screen .current-booking { min-height:92px; height:auto; padding:.7rem .8rem; }
  .terminal-command-bar, .terminal-command-bar.three-actions, .terminal-command-bar.pause-actions { height:auto; display:grid; grid-template-columns:1fr; grid-template-rows:none; gap:.4rem; }
  .terminal-command-bar form { height:auto; }
  .terminal-command-bar button, .terminal-command-bar .terminal-control-button { height:auto; min-height:52px; font-size:1.08rem; }
  .terminal-command-bar .terminal-control-button { grid-column:1/-1; }
  .terminal-control-button { min-height:48px; }
  .terminal-recent-bookings { margin-top:.45rem; gap:.3rem; }
  .terminal-recent-row { min-height:32px; padding:.3rem .45rem; font-size:.82rem; }
}
@media (max-width:600px) {
  .topbar-main { flex:0 0 auto !important; }
  .topbar-actions { flex:1 1 0 !important; overflow:hidden; justify-content:flex-end; }
  .topbar-actions .user-label { flex:1 1 auto; min-width:0; max-width:100%; text-align:right; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .topbar-actions form { flex:0 0 auto; }
}

/* 2026-09-08: Terminal-Gewichtung – Buchen dominant, Kontrolle farbig, aktive Aktionen flacher */
.terminal-control-button {
  background: var(--blue) !important;
  border-color: var(--blue-dark) !important;
  color: #fff !important;
}
@media (max-width:600px) {
  .terminal-idle-screen .idle-start-button {
    min-height: 104px !important;
    font-size: 1.55rem !important;
  }
  .terminal-idle-screen .terminal-control-button {
    min-height: 54px !important;
    font-size: 1.05rem !important;
  }
  .terminal-state-screen .terminal-command-bar button,
  .terminal-state-screen .terminal-command-bar .terminal-control-button {
    min-height: 44px !important;
    padding-top: .45rem !important;
    padding-bottom: .45rem !important;
    font-size: 1rem !important;
  }
}

/* 2026-09-08: Terminal nutzt die verfügbare Displayhöhe vollständig */
@media (max-width:600px) {
  .terminal-page {
    height: calc(100dvh - 58px);
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-sizing: border-box;
  }
  .terminal-idle-screen {
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    grid-template-rows: minmax(150px, 1fr) 58px;
    align-content: stretch;
    gap: .6rem;
  }
  .terminal-idle-screen .idle-start-button {
    height: 100%;
    min-height: 150px !important;
    background: #16834b !important;
    border-color: #0e6b3b !important;
    color: #fff !important;
    font-size: clamp(1.65rem, 7vw, 2rem) !important;
  }
  .terminal-idle-screen .terminal-control-button { height: 58px; min-height: 58px !important; }

  .terminal-state-screen {
    flex: 1 1 auto;
    min-height: 0;
    height: auto;
    grid-template-rows: minmax(105px, .9fr) minmax(210px, 1.65fr);
  }
  .terminal-state-screen .terminal-command-bar,
  .terminal-state-screen .terminal-command-bar.three-actions,
  .terminal-state-screen .terminal-command-bar.pause-actions {
    min-height: 0;
    height: 100%;
    grid-template-rows: repeat(4, minmax(44px, 1fr));
  }
  .terminal-state-screen .terminal-command-bar form,
  .terminal-state-screen .terminal-command-bar button,
  .terminal-state-screen .terminal-command-bar .terminal-control-button { height: 100%; }

  .terminal-recent-bookings {
    flex: 0 0 auto;
    width: 100%;
    margin-top: .6rem;
    gap: .4rem;
  }
  .terminal-recent-row {
    min-height: 42px;
    padding: .45rem .55rem;
    border-color: #b9d3e6;
    background: #eaf4fb;
    box-shadow: 0 1px 3px rgba(13,71,119,.08);
  }
  .terminal-page:has(.terminal-idle-screen:not([hidden])) .terminal-recent-row {
    border-color: #b8ddc8;
    background: #edf8f1;
  }
}


/* 2026-09-08: Terminal Startseite – ausgewogene Aktionen, letzte Buchungen dezent gelb */
@media (max-width:600px) {
  .terminal-idle-screen { grid-template-rows: minmax(72px, .55fr) minmax(72px, .75fr) auto !important; }
  .terminal-idle-screen .idle-start-button { min-height: 76px !important; font-size: clamp(1.45rem, 6vw, 1.8rem) !important; }
  .terminal-idle-screen .terminal-control-button { height: 100% !important; min-height: 76px !important; font-size: 1.15rem !important; }
  .terminal-page:has(.terminal-idle-screen:not([hidden])) .terminal-recent-row {
    border-color: #e2d39a !important;
    background: #fff8dc !important;
    box-shadow: 0 1px 3px rgba(110,91,25,.06);
  }
}

/* 2026-09-08: Startaktionen gleich hoch; Format-Hinweise bei Buchung vergessen entfallen */
@media (max-width:600px) {
  .terminal-idle-screen { grid-template-rows: 76px 76px auto !important; }
  .terminal-idle-screen .idle-start-button,
  .terminal-idle-screen .terminal-control-button { height:76px !important; min-height:76px !important; }
}

/* 2026-09-08: Terminal Startbuttons wirklich identisch + Format-Hinweise sicher ausblenden */
@media (max-width:600px) {
  .terminal-idle-screen {
    grid-template-rows: 76px 76px !important;
    grid-auto-rows: 0 !important;
    align-content: start !important;
  }
  .terminal-idle-screen > .idle-start-button,
  .terminal-idle-screen > .terminal-control-button {
    box-sizing: border-box !important;
    width: 100% !important;
    height: 76px !important;
    min-height: 76px !important;
    max-height: 76px !important;
    padding: .75rem 1rem !important;
    margin: 0 !important;
    line-height: 1.2 !important;
    font-size: 1.15rem !important;
    border-radius: 10px !important;
  }
  .request-period-grid .field-label small { display:none !important; }
}

/* 2026-09-08: Startseite – beide Hauptaktionen doppelt hoch, letzte Buchungen direkt darunter */
@media (max-width:600px) {
  .terminal-page:has(.terminal-idle-screen:not([hidden])) .terminal-idle-screen {
    flex: 0 0 auto !important;
    min-height: 0 !important;
    height: auto !important;
    grid-template-rows: 152px 152px !important;
    grid-auto-rows: auto !important;
    align-content: start !important;
    gap: .6rem !important;
  }
  .terminal-page:has(.terminal-idle-screen:not([hidden])) .terminal-idle-screen > .idle-start-button,
  .terminal-page:has(.terminal-idle-screen:not([hidden])) .terminal-idle-screen > .terminal-control-button {
    box-sizing: border-box !important;
    width: 100% !important;
    height: 152px !important;
    min-height: 152px !important;
    max-height: 152px !important;
    padding: 1rem !important;
    margin: 0 !important;
    line-height: 1.2 !important;
    font-size: clamp(1.45rem, 6vw, 1.8rem) !important;
  }
  .terminal-page:has(.terminal-idle-screen:not([hidden])) > .terminal-recent-bookings {
    flex: 0 0 auto !important;
    margin-top: .7rem !important;
  }
}

/* PWA Offline-Status */
.offline-banner{position:sticky;top:58px;z-index:80;margin:0 auto;padding:.42rem .75rem;max-width:1260px;text-align:center;font-size:.88rem;font-weight:650;border-radius:0 0 8px 8px;background:#fff3cd;color:#6b5600;border:1px solid #ead38a;border-top:0}
.offline-banner.ok{background:#e8f5e9;color:#27632a;border-color:#b8d8ba}.offline-banner.sync{background:#e6f1fb;color:#0b4f7f;border-color:#b8d1e6}.offline-banner.error{background:#fdeaea;color:#8a2525;border-color:#e8bcbc}
.offline-lock{display:grid;gap:.45rem;padding:1.2rem;margin-bottom:1rem;border:1px solid #d9a5a5;border-radius:10px;background:#fff0f0;color:#7d2020;text-align:center}.offline-lock strong{font-size:1.15rem}

/* 2026-09-09 Mitarbeiter: Aktionsspalte vollständig sichtbar, kein unnötiger Horizontal-Scroll. */
.employee-list-panel .table-wrap {
  overflow-x: hidden !important;
}
.employee-list-table col.emp-status { width: 7%; }
.employee-list-table col.emp-number { width: 9%; }
.employee-list-table col.emp-name { width: 21%; }
.employee-list-table col.emp-profile { width: 15%; }
.employee-list-table col.emp-regime { width: 18%; }
.employee-list-table col.emp-start { width: 9%; }
.employee-list-table col.emp-end { width: 9%; }
.employee-list-table col.emp-action { width: 112px; }
.employee-list-table th:last-child,
.employee-list-table td:last-child {
  width: 112px !important;
  padding-left: .35rem;
  padding-right: .35rem;
  box-sizing: border-box;
}
.employee-list-table .employee-actions {
  gap: .25rem;
  flex-wrap: nowrap;
  white-space: nowrap;
}
.employee-list-table td:nth-child(3),
.employee-list-table td:nth-child(4),
.employee-list-table td:nth-child(5) {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Zeitregime: verwendete Versionen revisionssicher sperren */
.regime-lock-warning{margin:0 0 .55rem;padding:.55rem .7rem;border:2px solid #b42318;border-radius:7px;background:#fff7f6;display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}.regime-lock-warning>strong{font-size:.95rem}.regime-lock-warning>span{font-size:.8rem;flex:1;min-width:320px}.regime-version-form{display:flex;align-items:end;gap:.55rem;margin:0}.regime-version-form label{margin:0;font-size:.74rem}.regime-version-form input{height:34px;width:135px;box-sizing:border-box;margin:0;padding:.32rem .45rem}.regime-version-form button{height:34px;white-space:nowrap}.regime-is-locked input:disabled,.regime-pause-section input:disabled{background:#f1f3f5;color:#667085;cursor:not-allowed}.regime-is-locked button:disabled,.regime-pause-section button:disabled{opacity:.45;cursor:not-allowed}

/* Zeitregime-Auswahl und reine Namenspflege */
.regime-compact-select select{width:390px;max-width:42vw}
.regime-compact-create select{width:330px;max-width:36vw}
.regime-title-main{display:flex;align-items:center;gap:.45rem;min-width:0}
.regime-rename-toggle{height:28px;min-width:32px;padding:.15rem .45rem;line-height:1}
.regime-rename-form{display:flex;align-items:end;gap:.55rem;margin:0 0 .55rem;padding:.45rem .55rem;background:#f7f9fb;border:1px solid var(--line);border-radius:6px}
.regime-rename-form label{margin:0;flex:1;font-size:.76rem}.regime-rename-form input{height:34px;margin:0;width:100%;max-width:520px}
.regime-rename-form button{height:34px;white-space:nowrap}
@media(max-width:900px){.regime-compact-select select,.regime-compact-create select{width:min(100%,520px);max-width:100%}.regime-rename-form{flex-wrap:wrap}}
.regime-rule-row .regime-rule-active{width:48px;min-width:48px;align-self:center;flex-direction:row;align-items:center;gap:.25rem;font-weight:600}.regime-rule-row .regime-rule-active input{width:auto;height:auto}.regime-rule-row.pause-rule-inactive [data-pause-field]{opacity:.45}
\n\n/* 2026-09-09 Zeitregime: kompakter Dialog + diskrete historische Sperre */\n.regime-popup-page{padding:.4rem .65rem .6rem}\n.regime-popup-body .notice{margin:.35rem .65rem 0;padding:.38rem .55rem;font-size:.78rem}\n.regime-compact-head{gap:.5rem;padding:.38rem .5rem;margin-bottom:.4rem}\n.regime-compact-head form{gap:.4rem}\n.regime-compact-head select,.regime-compact-head input{height:30px;padding:.2rem .38rem}\n.regime-compact-head button{height:30px;padding:.22rem .55rem}\n.regime-compact-section{padding:.38rem .5rem;margin-bottom:.4rem}\n.regime-title-row{margin-bottom:.25rem}\n.regime-title-row h1{font-size:1rem}\n.regime-day-table th,.regime-day-table td{padding:.18rem .45rem;height:27px;font-size:.78rem}\n.regime-day-table input{height:27px;padding:.15rem .35rem}\n.regime-save-small{height:27px;padding:.15rem .48rem}\n.regime-pause-title{margin-bottom:.22rem}\n.regime-pause-toggle button{height:27px}\n.regime-rule-row{gap:.4rem;padding:.24rem 0}\n.regime-rule-row input{height:27px;padding:.14rem .3rem}\n.regime-rule-row button{height:27px;padding:.15rem .45rem}\n.regime-rule-name{line-height:1.08}\n.regime-lock-warning{margin:0 0 .35rem;padding:.28rem .5rem;border:1px solid #d0d5dd;border-radius:6px;background:#f8f9fa;display:flex;align-items:end;gap:.45rem;flex-wrap:nowrap;color:#475467}\n.regime-lock-warning>strong{font-size:.78rem;white-space:nowrap;align-self:center}\n.regime-lock-help{font-size:.82rem;cursor:help;align-self:center;color:#667085}\n.regime-version-form{display:flex;align-items:end;gap:.4rem;margin:0 0 0 auto}\n.regime-version-form label{margin:0;font-size:.68rem;white-space:nowrap}\n.regime-version-form input{height:28px;width:116px;box-sizing:border-box;margin:0;padding:.18rem .35rem;font-size:.76rem}\n.regime-version-form button{height:28px;padding:.18rem .5rem;font-size:.74rem;white-space:nowrap}\n.regime-rename-form{margin-bottom:.35rem;padding:.3rem .45rem}\n@media(max-width:700px){.regime-lock-warning{flex-wrap:wrap}.regime-version-form{margin-left:0}}\n
/* 2026-09-09 Zeitregime: komplette Desktopansicht ohne unnötige Höhe */
.regime-popup-page{padding:.28rem .55rem .4rem}
.regime-compact-head{padding:.28rem .45rem;margin-bottom:.28rem}
.regime-compact-section{padding:.28rem .45rem;margin-bottom:.28rem}
.regime-lock-warning{margin:0 0 .28rem;padding:.18rem .42rem;min-height:28px;background:#fafafa;border:1px solid #d0d5dd;color:#475467}
.regime-lock-warning>strong{font-size:.75rem}
.regime-version-form label{display:flex;align-items:center;gap:.3rem;font-size:.67rem}
.regime-version-form input{height:26px}
.regime-version-form button{height:26px}
.regime-title-row{margin-bottom:.15rem}
.regime-day-table th,.regime-day-table td{padding:.10rem .38rem;height:24px}
.regime-day-table th:nth-child(1){width:24%}.regime-day-table th:nth-child(2),.regime-day-table th:nth-child(3){width:18%}.regime-day-table th:nth-child(4){width:15%}.regime-day-table th:nth-child(5){width:25%}
.regime-day-table input{height:25px}.regime-save-small{height:25px}
.regime-pause-section{padding-top:.25rem;padding-bottom:.25rem}
.regime-pause-title{margin-bottom:.08rem;min-height:26px}
.regime-pause-toggle label{white-space:nowrap;font-size:.72rem}.regime-pause-toggle button{height:25px}
.regime-rule-row{align-items:center;gap:.34rem;padding:.14rem 0;min-height:39px}
.regime-rule-row .regime-rule-active{width:50px;min-width:50px}
.regime-rule-name{width:190px;min-width:190px;display:block;white-space:nowrap;line-height:1}
.regime-rule-name strong{font-size:.76rem}.regime-rule-name .muted{display:inline;font-size:.66rem;margin-left:.3rem}
.regime-rule-row label:not(.regime-rule-active){display:grid;grid-template-columns:auto auto;align-items:center;gap:.22rem;white-space:nowrap;font-size:.67rem}
.regime-rule-row input{height:25px;width:76px}.regime-rule-row input[type=number]{width:58px}
.regime-rule-row button{height:25px;margin-left:auto}

/* 2026-09-09 Zeitregime: historische Aktion erst bei Bedarf öffnen */
.regime-lock-warning{justify-content:flex-start;align-items:center;min-height:26px;padding:.12rem .38rem;border:0;border-bottom:1px solid #d0d5dd;border-radius:0;background:transparent;margin:0 0 .18rem;gap:.3rem}
.regime-lock-warning>strong{font-size:.72rem;font-weight:600}.regime-lock-help{font-size:.74rem}.regime-version-toggle{margin-left:auto;height:25px;padding:.12rem .5rem;font-size:.72rem;white-space:nowrap}
.regime-version-form{margin-left:auto;align-items:center;gap:.3rem}.regime-version-form label{display:flex;align-items:center;gap:.25rem;font-size:.67rem}.regime-version-form input{height:25px;width:105px}.regime-version-form button{height:25px;padding:.12rem .42rem;font-size:.7rem}

/* 2026-09-09 Zeitregime: ruhiges Raster, Versionsaktion im Titel */
.regime-popup-page{padding:.34rem .55rem .5rem}
.regime-compact-head{display:grid;grid-template-columns:minmax(300px,1fr) minmax(560px,1.8fr);align-items:end;gap:.55rem;padding:.34rem .45rem;margin-bottom:.3rem}
.regime-compact-select,.regime-compact-create{min-width:0}
.regime-compact-select label{width:100%}.regime-compact-select select{width:100%;max-width:none}
.regime-compact-create{display:grid!important;grid-template-columns:minmax(180px,.8fr) minmax(300px,1.25fr) auto;gap:.45rem!important;align-items:end}
.regime-compact-create label{min-width:0}.regime-compact-create input,.regime-compact-create select{width:100%;max-width:none}
.regime-title-row{align-items:center;margin-bottom:.18rem;min-height:30px}
.regime-title-main{display:flex;align-items:center;gap:.35rem;min-width:0}
.regime-title-tools{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;white-space:nowrap}
.regime-lock-inline{font-size:.72rem;color:#667085;cursor:help}
.regime-version-toggle{height:25px;padding:.12rem .48rem;font-size:.72rem;white-space:nowrap}
.regime-version-form-inline{display:flex;justify-content:flex-end;align-items:center;gap:.35rem;margin:0 0 .25rem;padding:.18rem .3rem;background:#f8fafc;border:1px solid var(--line);border-radius:5px}
.regime-version-form-inline label{display:flex;align-items:center;gap:.3rem;margin:0;font-size:.69rem;font-weight:400}.regime-version-form-inline input{width:108px;height:26px;margin:0;padding:.15rem .3rem;font-size:.73rem}.regime-version-form-inline button{height:26px;padding:.15rem .45rem;font-size:.71rem}
.regime-day-table th,.regime-day-table td{padding:.12rem .38rem;height:25px}.regime-day-table input,.regime-save-small{height:25px}
.regime-pause-title{min-height:24px;margin-bottom:0}.regime-pause-toggle button{height:24px}
.regime-rule-list{margin-top:.05rem}
.regime-rule-row{display:grid;grid-template-columns:50px 215px 138px 138px 80px 138px 138px 1fr 76px;align-items:center;column-gap:.34rem;min-height:35px;padding:.1rem 0}
.regime-rule-row .regime-rule-active{grid-column:1;width:auto;min-width:0}
.regime-rule-name{grid-column:2;width:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.regime-rule-name strong{font-size:.75rem}.regime-rule-name .muted{font-size:.64rem;margin-left:.25rem}
.regime-rule-row label:not(.regime-rule-active){display:grid;grid-template-columns:auto 76px;align-items:center;gap:.2rem;white-space:nowrap;font-size:.65rem;min-width:0}
.regime-rule-row input{height:24px;width:76px;font-size:.72rem}.regime-rule-row input[type=number]{width:58px}
.regime-rule-row button{grid-column:9;height:24px;margin:0;padding:.12rem .35rem;font-size:.69rem}
.regime-rule-row label:nth-of-type(2){grid-column:3}.regime-rule-row label:nth-of-type(3){grid-column:4}.regime-rule-row label:nth-of-type(4){grid-column:5}.regime-rule-row label:nth-of-type(5){grid-column:6}.regime-rule-row label:nth-of-type(6){grid-column:7}
@media(max-width:1050px){.regime-compact-head{grid-template-columns:1fr}.regime-rule-row{grid-template-columns:48px 190px repeat(5,minmax(105px,1fr)) 70px}.regime-rule-row button{grid-column:8}}

/* 2026-09-09 Zeitregime: klare Neuanlage + Kopieraktion */
.regime-compact-head{display:flex;align-items:end;gap:.55rem}
.regime-compact-select{flex:1;min-width:0}.regime-compact-select select{width:100%}
.regime-create-toggle{height:30px;white-space:nowrap;padding:.22rem .7rem}
.regime-create-panel{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(330px,1.2fr) auto auto;align-items:end;gap:.45rem;margin:0 0 .3rem;padding:.34rem .45rem;background:#fff;border:1px solid var(--line);border-radius:7px}
.regime-create-panel[hidden]{display:none!important}.regime-create-panel label{margin:0;font-size:.74rem;font-weight:400}.regime-create-panel input,.regime-create-panel select{width:100%;height:30px;margin:0;padding:.2rem .38rem;box-sizing:border-box}.regime-create-panel button{height:30px;white-space:nowrap}
.regime-title-main{flex-wrap:wrap}.regime-rename-toggle,.regime-version-toggle{height:25px;padding:.12rem .48rem;font-size:.72rem;white-space:nowrap}
.regime-title-tools{margin-left:auto}.regime-lock-inline{white-space:nowrap}
@media(max-width:850px){.regime-compact-head{align-items:stretch;flex-direction:column}.regime-create-panel{grid-template-columns:1fr 1fr}.regime-create-panel button{width:max-content}}

/* 2026-09-09 Zeitregime: Regimename bewusst nicht fett */
.regime-title-row .regime-title-main h1{font-weight:400;}

/* 2026-09-09 final: keine doppelte Regime-Überschrift */
.regime-action-row{align-items:center;margin:0 0 .35rem;min-height:28px}

/* Mandanten-/Benutzerverwaltung */
.user-actions { display:flex; gap:.45rem; flex-wrap:wrap; align-items:center; }
.user-actions form { margin:0; }
.compact-form-grid { grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto; align-items:end; }
@media (max-width: 760px) { .compact-form-grid { grid-template-columns:1fr; } }

/* FrontTime Auswertungen – Mitarbeiter / grafische Wochenansicht */
.reports-page{max-width:1500px}
.reports-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.reports-heading-row h1{margin-bottom:.15rem}
.reports-subtitle{margin:0}
.reports-tabs{display:flex;gap:.35rem;flex-wrap:wrap}
.reports-tab{padding:.42rem .68rem;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:.82rem;color:var(--muted)}
.reports-tab.active{border-color:#89aeca;background:var(--blue-soft);color:var(--blue-dark);font-weight:600}
.reports-tab.disabled{opacity:.58}
.reports-filter-panel{padding:.75rem 1rem}
.reports-filter{display:grid;grid-template-columns:minmax(260px,1.4fr) minmax(260px,1fr) auto auto;gap:.75rem;align-items:end}
.reports-filter label{font-size:.8rem}
.reports-filter select,.reports-week-trigger{height:40px;margin-top:.25rem;box-sizing:border-box}
.reports-filter select{min-height:40px!important;padding:6px 32px 6px 10px!important;line-height:24px!important;appearance:auto!important;-webkit-appearance:menulist!important}
.reports-week-nav{display:flex;align-items:center;gap:.35rem;padding-bottom:1px}
.reports-week-nav .icon-action{height:38px;width:38px;min-width:38px;font-size:1.35rem!important}
.reports-today-link{height:38px;display:inline-flex;align-items:center;padding:.45rem .7rem}
.reports-pdf-actions{display:flex;align-items:center;gap:.35rem;padding-bottom:1px;white-space:nowrap}
.reports-pdf-actions .button-link{height:38px;display:inline-flex;align-items:center;padding:.45rem .68rem}
.reports-pdf-primary{border-color:#6f94b5!important;background:#eef5fa!important;color:#17364e!important}
.reports-pdf-download{background:#fff!important}
.reports-status{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:0 0 .8rem;padding:.65rem .8rem;border:1px solid var(--line);border-left-width:5px;border-radius:7px;background:#fff;font-size:.84rem}
.reports-status-warning{border-left-color:#e2a527;background:#fffaf0}
.reports-status-ok{border-left-color:#4b8b61;background:#f4fbf6}
.reports-status-planned{border-left-color:#8ca0b3;background:#f7f9fa}
.reports-status span{color:var(--muted)}
.reports-metrics{display:grid;grid-template-columns:repeat(4,minmax(145px,1fr));gap:.65rem;margin-bottom:.8rem}
.report-metric{display:flex;flex-direction:column;gap:.12rem;padding:.72rem .85rem;border:1px solid var(--line);border-radius:8px;background:#fff}
.report-metric span{font-size:.76rem;color:var(--muted)}
.report-metric strong{font-size:1.32rem;color:var(--blue-dark);font-weight:650}
.report-metric.negative{border-color:#ddb5b1;background:#fff8f7}.report-metric.negative strong{color:#9e3129}
.report-metric.positive{border-color:#a9cdb6;background:#f7fcf8}.report-metric.positive strong{color:#246a40}
.reports-week-panel{padding:.85rem 1rem 1rem}
.reports-week-title{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:.75rem}
.reports-week-title h2{margin:0 0 .12rem;font-size:1.05rem}.reports-week-title>div>span{font-size:.82rem;color:var(--muted)}
.reports-legend{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;font-size:.76rem;color:var(--muted)}
.reports-legend span{display:inline-flex;align-items:center;gap:.28rem}.legend-box{width:13px;height:13px;border:1px solid #9eb1c0;border-radius:3px;background:var(--blue-soft)}
.legend-box.pause{background:var(--yellow-soft);border-color:#d7ad52}.legend-box.review{background:#fff;border:2px solid #c74c42}
.legend-box.absence-vacation{background:#e8f3e8;border-color:#91b791}.legend-box.absence-sick{background:#f7e8e8;border-color:#c89a9a}.legend-box.absence-timeoff{background:#e8f0f8;border-color:#91adc9}.legend-box.absence-holiday{background:#f7f1df;border-color:#c8b37c}
.reports-week-scroll{overflow-x:auto;padding-bottom:.2rem}
.week-chart{min-width:1110px;display:grid;grid-template-columns:62px repeat(7,minmax(145px,1fr));grid-template-rows:44px calc(var(--report-hours) * 46px);border:1px solid var(--line);border-radius:7px;overflow:hidden;background:#fff}
.week-chart-head{display:flex;align-items:center;justify-content:center;gap:.3rem;padding:.4rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#eff5f9;color:var(--blue-dark);font-size:.78rem}
.week-chart-head strong{font-size:.86rem}.week-chart-head span{color:var(--muted);font-size:.74rem}.week-chart-head.time-head{font-weight:600}
.week-time-axis{position:relative;border-right:1px solid var(--line);background:#f8fafb}
.week-time-axis span{position:absolute;right:7px;transform:translateY(-50%);font-size:.69rem;color:var(--muted);white-space:nowrap}
.week-time-axis span:first-child{transform:none}.week-time-axis span:last-child{transform:translateY(-100%)}
.week-day-column{position:relative;border-right:1px solid var(--line);background:#fff;overflow:hidden}.week-day-column:last-child{border-right:0}.week-day-column.weekend{background:#fbfcfd}
.week-hour-line{position:absolute;left:0;right:0;border-top:1px solid #e9eef2;pointer-events:none}
.week-booking-bar{position:absolute;left:4px;right:4px;z-index:2;min-height:9px;padding:2px 4px;border:1px solid #8eafc8;border-radius:4px;background:#e8f2fa;color:#17364e;overflow:hidden;font-size:.67rem;line-height:1.12;box-shadow:0 1px 2px rgba(21,52,76,.08)}
.week-booking-bar strong,.week-booking-bar span,.week-booking-bar small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-booking-bar strong{font-size:.66rem}.week-booking-bar small{color:#496271;font-size:.61rem;margin-top:1px}
.week-booking-bar.pause{background:#fff3cd;border-color:#d4ab4e;color:#6b4b06}.week-booking-bar.pause small{color:#806521}
.week-booking-bar.absence{z-index:3;min-height:18px;padding:3px 5px;border-radius:4px;display:flex;align-items:center;box-shadow:0 1px 2px rgba(30,50,65,.06)}
.week-booking-bar.absence .absence-label{display:block;width:100%;font-size:.69rem;font-weight:600;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.week-booking-bar.absence-vacation{background:#e8f3e8;border-color:#91b791;color:#305a30}
.week-booking-bar.absence-sick{background:#f7e8e8;border-color:#c89a9a;color:#743838}
.week-booking-bar.absence-timeoff{background:#e8f0f8;border-color:#91adc9;color:#31536f}
.week-booking-bar.absence-holiday{background:#f7f1df;border-color:#c8b37c;color:#655a31}
.week-booking-bar.absence-doctor{background:#f1ebf7;border-color:#b4a0c6;color:#604a73}
.week-booking-bar.absence-training{background:#e7f3f1;border-color:#8fb8b1;color:#355e58}
.week-booking-bar.absence-other{background:#eff1f3;border-color:#b2bbc2;color:#4b5963}
.week-booking-bar.review{border:2px solid #c74c42;background:#fff3f1;color:#78251f;z-index:4}.week-booking-bar.open{box-shadow:inset 3px 0 0 #2e8752}
.reports-day-summary-panel{padding:.85rem 1rem}.reports-day-summary-panel h2{font-size:1rem;margin-bottom:.55rem}
.reports-day-table{font-size:.79rem}.reports-day-table th,.reports-day-table td{padding:.42rem .5rem;vertical-align:middle}.reports-day-table td:nth-child(2),.reports-day-table td:nth-child(3),.reports-day-table td:nth-child(4),.reports-day-table td:nth-child(5){white-space:nowrap}
.reports-calendar{z-index:800}

@media (max-width:1100px){
  .reports-filter{grid-template-columns:1fr 1fr}
  .reports-week-nav{grid-column:1/2}
  .reports-pdf-actions{grid-column:2/3;justify-content:flex-end}
}
@media (max-width:900px){
  .reports-heading-row{align-items:flex-start;flex-direction:column}
  .reports-filter{grid-template-columns:1fr 1fr}
  .reports-metrics{grid-template-columns:repeat(2,minmax(140px,1fr))}
}
@media (max-width:640px){
  .reports-filter{grid-template-columns:1fr}
  .reports-week-nav,.reports-pdf-actions{grid-column:1/-1;justify-content:flex-start;flex-wrap:wrap}
}
.week-chart-head.today{box-shadow:inset 0 -3px 0 #6f94b5}.week-day-column.today{background:#fbfdff}

/* 09.09.2026 – Wochenansicht aus dem optimierten PDF-Layout übernommen */
/* Kennzahlen kompakter: mehr Platz für die eigentliche Wochenansicht. */
.reports-metrics{gap:.45rem;margin-bottom:.65rem}
.report-metric{display:grid;grid-template-columns:auto auto;align-items:baseline;justify-content:space-between;gap:.4rem;padding:.42rem .65rem;border-radius:7px}
.report-metric span{font-size:.72rem;white-space:nowrap}
.report-metric strong{font-size:1.02rem;line-height:1.05}

/* Arbeitswoche priorisieren: Mo–Fr breit, Sa/So bewusst schmäler. */
.week-chart{min-width:1040px;grid-template-columns:52px repeat(5,minmax(150px,1fr)) repeat(2,minmax(82px,.55fr));}
.week-time-axis span{right:5px;font-size:.67rem}

/* Buchungsinhalt wie im PDF: Auftrag ist die Hauptinformation. */
.week-booking-bar{left:3px;right:3px;padding:3px 5px;font-size:.69rem;line-height:1.08}
.week-booking-bar .booking-target{display:block;font-size:.74rem;font-weight:700;line-height:1.05;color:#17364e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.week-booking-bar .booking-activity{display:block;font-size:.66rem;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.week-booking-bar .booking-time{display:block;font-size:.60rem;line-height:1.05;color:#5c6f7b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}

/* Pausen bleiben grafisch sichtbar, aber ohne Text – wie im PDF. */
.week-booking-bar.pause{padding:0;min-height:6px}

/* Wochenendspalten kompakt halten; Kopf darf trotzdem lesbar bleiben. */
.week-chart-head:nth-child(7),.week-chart-head:nth-child(8){padding-left:.2rem;padding-right:.2rem;gap:.18rem}
.week-chart-head:nth-child(7) strong,.week-chart-head:nth-child(8) strong{font-size:.8rem}
.week-chart-head:nth-child(7) span,.week-chart-head:nth-child(8) span{font-size:.68rem}

@media(max-width:900px){
  .report-metric{grid-template-columns:1fr;gap:.08rem}
  .week-chart{min-width:1010px}
}

/* Mitarbeiterauswertung in Listenform */
.reports-tab { text-decoration:none; }
.reports-list-filter-panel { padding: 14px 16px; }
.reports-list-filter { display:flex; flex-direction:column; gap:12px; }
.reports-list-mode { display:flex; gap:20px; flex-wrap:wrap; align-items:center; }
.reports-list-mode label { display:flex; gap:7px; align-items:center; font-weight:600; }
.reports-list-filter-grid { display:grid; grid-template-columns:minmax(260px,1.5fr) minmax(145px,.7fr) minmax(145px,.7fr) auto; gap:12px; align-items:end; }
.reports-list-filter-grid label { display:flex; flex-direction:column; gap:5px; }
.reports-list-filter-grid select, .reports-list-filter-grid input[type=date] { min-height:42px; width:100%; }
.reports-list-period-buttons { display:flex; gap:8px; align-items:center; padding-bottom:1px; }
.reports-employee-picker { border:1px solid var(--border, #d8dee8); border-radius:10px; padding:8px 10px; }
.reports-employee-picker summary { cursor:pointer; font-weight:600; }
.reports-employee-checks { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:7px 14px; margin-top:10px; }
.reports-employee-checks label { display:flex; gap:7px; align-items:center; }
.reports-list-actions { display:flex; gap:8px; flex-wrap:wrap; }
.employee-list-report { margin-top:16px; }
.employee-list-report-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:10px; }
.employee-list-report-head h2 { margin:0 0 3px; }
.reports-status-inline { display:inline-flex; align-items:center; border-radius:999px; padding:5px 9px; font-size:.82rem; font-weight:700; }
.reports-status-inline.reports-status-ok { background:#edf7f0; color:#24633a; }
.reports-status-inline.reports-status-warning { background:#fff5df; color:#7a5200; }
.reports-list-account-strip { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid #d9e0e9; border-radius:10px; overflow:hidden; margin:10px 0 16px; }
.reports-list-account-strip > div { padding:8px 12px; text-align:center; background:#f7f9fc; border-right:1px solid #d9e0e9; }
.reports-list-account-strip > div:last-child { border-right:0; }
.reports-list-account-strip span { display:block; font-size:.78rem; color:#687386; margin-bottom:2px; }
.reports-list-account-strip strong { font-size:1rem; }
.reports-list-table { width:100%; border-collapse:collapse; }
.reports-list-table th { background:#edf2f8; white-space:nowrap; }
.reports-list-table th, .reports-list-table td { padding:7px 9px; border-bottom:1px solid #e1e6ed; vertical-align:top; text-align:left; }
.booking-list-table th:nth-child(4), .booking-list-table th:nth-child(5), .booking-list-table th:nth-child(6),
.booking-list-table td:nth-child(4), .booking-list-table td:nth-child(5), .booking-list-table td:nth-child(6) { white-space:nowrap; }
.reports-week-list-group { margin:10px 0 16px; border:1px solid #dce2ea; border-radius:9px; overflow:hidden; }
.reports-week-list-title { padding:7px 10px; background:#f4f7fa; font-weight:700; }
.week-total-row td { background:#f8fafc; border-top:1px solid #cfd7e1; }
.reports-list-table .positive { color:#257044; }
.reports-list-table .negative { color:#a23b3b; }
.review-row td { background:#fff9e8; }
.reports-list-footnote { display:flex; gap:18px; flex-wrap:wrap; font-size:.82rem; color:#687386; margin-top:10px; }
@media (max-width:900px){
  .reports-list-filter-grid { grid-template-columns:1fr 1fr; }
  .reports-list-period-buttons { grid-column:1 / -1; }
  .reports-list-account-strip { grid-template-columns:1fr; }
  .reports-list-account-strip > div { border-right:0; border-bottom:1px solid #d9e0e9; }
  .reports-list-account-strip > div:last-child { border-bottom:0; }
}

/* Mitarbeiterauswertung Listen v3: reines Ausgabemodul */
.reports-list-output-panel{padding:16px}
.reports-list-output-panel .reports-list-filter{gap:14px}
.reports-list-section{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.reports-list-section-label{min-width:92px;font-weight:600;color:#24313b}
.reports-list-report-type{gap:24px}
.reports-list-output-grid{grid-template-columns:minmax(260px,1.35fr) minmax(155px,.72fr) minmax(155px,.72fr) auto}
.reports-range-trigger{min-height:42px;height:42px;margin:0;font-size:.86rem}
.reports-list-output-actions{align-items:center;padding-top:2px}
.reports-output-note{margin-left:6px;font-size:.82rem}
.reports-range-calendar{z-index:900}
.reports-range-calendar .ft-calendar-day.is-range-selected{background:#e9f2f8;color:#24445e}
.reports-range-calendar .ft-calendar-day.is-selected{background:#cfe2f0;color:#153d5b;font-weight:600;box-shadow:inset 0 0 0 1px #6f94b5}
.reports-range-calendar-foot{justify-content:space-between;align-items:center;gap:8px}
.reports-range-calendar-foot span{font-size:.68rem;color:#6c7882}
@media(max-width:900px){
  .reports-list-output-grid{grid-template-columns:1fr 1fr}
  .reports-list-output-grid>label:first-child{grid-column:1 / -1}
  .reports-list-output-grid .reports-list-period-buttons{grid-column:1 / -1}
  .reports-output-note{flex-basis:100%;margin-left:0}
}

/* 2026-09-11 Auswertungen: zentrale Navigation + einheitlicher Seitenkopf */
.top-reports-menu{left:0;right:auto;min-width:220px}
.top-manage-menu .top-manage-disabled{
  display:block;padding:.55rem .65rem;border-radius:6px;color:#8b96a1;
  white-space:nowrap;cursor:default;background:#fff;
}
.top-manage-menu a.active{background:var(--blue-soft);color:var(--blue-dark);font-weight:700}

.reports-page-head{align-items:center;margin-bottom:.7rem;min-height:42px}
.reports-page-head h1{margin:0 0 .12rem}
.reports-page-actions{display:flex;align-items:center;justify-content:flex-end;gap:.4rem;flex-wrap:wrap;white-space:nowrap}
.reports-page-actions .button-link{
  height:38px;display:inline-flex;align-items:center;justify-content:center;
  padding:.45rem .7rem;margin:0;font:inherit;font-size:.82rem;cursor:pointer;
}
.reports-page-actions button.button-link{appearance:none;-webkit-appearance:none}

/* Wochenansicht: die Ausgabeschalter stehen nur noch im Seitenkopf. */
.reports-filter{grid-template-columns:minmax(260px,1.4fr) minmax(260px,1fr) auto}

/* Mitarbeiterlisten: gleiche kompakte Struktur wie die Wochenansicht. */
.reports-list-output-panel{padding:.75rem 1rem}
.reports-list-output-panel .reports-list-filter{gap:.7rem}
.reports-list-section-compact{min-height:31px;gap:14px}
.reports-list-section-label{min-width:82px}
.reports-list-mode{gap:18px}
.reports-list-mode label{font-size:.8rem;font-weight:600;white-space:nowrap}
.reports-list-output-grid{grid-template-columns:minmax(260px,1.35fr) minmax(155px,.72fr) minmax(155px,.72fr) auto;gap:.75rem}
.reports-list-output-grid [hidden]{display:none!important}
.reports-single-employee select{height:40px;min-height:40px!important;padding:6px 32px 6px 10px!important;line-height:24px!important}
.reports-range-trigger{height:40px;min-height:40px}
.reports-list-period-buttons .button-link{height:38px;display:inline-flex;align-items:center}

.reports-employee-picker{
  border:1px solid var(--line);border-radius:7px;padding:.55rem .65rem;background:#fff;
}
.reports-employee-picker[hidden]{display:none!important}
.reports-select-all{
  display:inline-flex;align-items:center;gap:.42rem;margin:0 0 .48rem;
  padding:0 0 .45rem;border-bottom:1px solid var(--line);font-size:.8rem;font-weight:700;
}
.reports-select-all input,.reports-employee-checks input{flex:0 0 auto;margin:0}
.reports-employee-checks{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.34rem 1rem;margin-top:0;
}
.reports-employee-checks label{
  display:flex;align-items:center;gap:.42rem;min-width:0;margin:0;padding:.18rem .1rem;
  font-size:.79rem;font-weight:400;cursor:pointer;
}
.reports-employee-checks label span{
  display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.reports-output-note{margin:.05rem 0 0;font-size:.78rem}

@media(max-width:900px){
  .reports-page-head{align-items:flex-start;flex-direction:row}
  .reports-page-actions{margin-left:auto}
  .reports-filter{grid-template-columns:1fr 1fr}
  .reports-week-nav{grid-column:1/-1}
  .reports-list-output-grid{grid-template-columns:1fr 1fr}
  .reports-list-output-grid>label:first-child{grid-column:1/-1}
  .reports-list-output-grid .reports-list-period-buttons{grid-column:1/-1}
  .reports-employee-checks{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .reports-page-head{flex-direction:column;align-items:stretch}
  .reports-page-actions{margin-left:0;justify-content:flex-start}
  .reports-filter,.reports-list-output-grid{grid-template-columns:1fr}
  .reports-week-nav,.reports-list-output-grid>label:first-child,.reports-list-output-grid .reports-list-period-buttons{grid-column:1}
  .reports-employee-checks{grid-template-columns:1fr}
}

/* 2026-09-11 Auswertungen: einheitliche Mitarbeiterwahl + Drucken-Menü */
.reports-week-filter{display:flex;flex-direction:column;gap:.7rem}
.reports-week-filter-grid{
  display:grid;
  grid-template-columns:minmax(330px,.95fr) minmax(270px,.8fr) auto;
  gap:.75rem;
  align-items:end;
}
.reports-week-employee-slot,.reports-week-choice{min-width:0}
.reports-week-employee-slot label,.reports-week-choice{display:flex;flex-direction:column;gap:5px;font-size:.8rem;font-weight:600}
.reports-employee-stepper{display:grid;grid-template-columns:minmax(0,1fr) 38px 38px;gap:.35rem;align-items:center}
.reports-employee-stepper select{
  width:100%;min-width:0;height:40px;min-height:40px!important;
  padding:6px 30px 6px 10px!important;line-height:24px!important;
}
.reports-employee-arrow{height:38px!important;width:38px!important;min-width:38px!important;font-size:1.3rem!important}
.reports-week-employee-slot.is-hidden,
.reports-employee-slot.is-hidden{visibility:hidden;pointer-events:none}
.reports-week-trigger{width:100%;height:40px;min-height:40px}

.reports-list-output-grid{
  grid-template-columns:minmax(250px,.9fr) minmax(210px,.72fr) minmax(210px,.72fr) auto;
  gap:.75rem;
}
.reports-list-output-grid .reports-employee-slot{grid-column:1}
.reports-list-output-grid .reports-date-from{grid-column:2}
.reports-list-output-grid .reports-date-to{grid-column:3}
.reports-list-output-grid .reports-print-slot{grid-column:4}

.reports-print-slot{display:flex;align-items:flex-end;justify-content:flex-start;padding-bottom:1px;position:relative}
.reports-print-menu{position:relative;margin:0}
.reports-print-menu>summary{list-style:none}
.reports-print-menu>summary::-webkit-details-marker{display:none}
.reports-print-button{
  height:38px;display:inline-flex!important;align-items:center;justify-content:center;gap:.45rem;
  padding:.45rem .78rem!important;margin:0!important;cursor:pointer;white-space:nowrap;
}
.reports-print-dropdown{
  position:absolute;right:0;top:calc(100% + 4px);z-index:1400;min-width:175px;
  padding:4px;background:#fff;border:1px solid var(--line,#d8dee8);border-radius:7px;
  box-shadow:0 6px 18px rgba(20,45,65,.16);
}
.reports-print-dropdown button{
  display:block;width:100%;padding:.55rem .65rem;border:0;border-radius:5px;background:#fff;
  color:var(--text,#24313b);font:inherit;font-size:.82rem;text-align:left;cursor:pointer;white-space:nowrap;
}
.reports-print-dropdown button:hover{background:var(--blue-soft,#edf5fb);color:var(--blue-dark,#0d4777)}

/* Die Mehrfachauswahl ist bewusst nur eine kompakte Checkbox-Liste. */
.reports-employee-picker{border:0!important;border-radius:0!important;padding:.15rem 0 0!important;background:transparent!important}
.reports-select-all{margin:0 0 .35rem!important;padding:.1rem 0 .35rem!important}
.reports-employee-checks{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:.3rem 1rem!important}
.reports-employee-checks label{min-width:0!important;overflow:hidden}
.reports-employee-checks label span{
  display:block!important;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;
  white-space:nowrap!important;color:var(--text,#24313b)!important;
}

@media(max-width:980px){
  .reports-week-filter-grid{grid-template-columns:minmax(300px,1fr) minmax(250px,1fr) auto}
  .reports-list-output-grid{grid-template-columns:minmax(220px,1fr) minmax(180px,1fr) minmax(180px,1fr) auto}
}
@media(max-width:760px){
  .reports-week-filter-grid,.reports-list-output-grid{grid-template-columns:1fr 1fr}
  .reports-week-employee-slot,.reports-list-output-grid .reports-employee-slot{grid-column:1/-1}
  .reports-list-output-grid .reports-date-from{grid-column:1}
  .reports-list-output-grid .reports-date-to{grid-column:2}
  .reports-list-output-grid .reports-print-slot{grid-column:1/-1}
  .reports-week-choice{grid-column:1}
  .reports-week-filter-grid>.reports-print-slot{grid-column:2}
  .reports-employee-checks{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:520px){
  .reports-week-filter-grid,.reports-list-output-grid{grid-template-columns:1fr}
  .reports-week-choice,.reports-week-filter-grid>.reports-print-slot,
  .reports-list-output-grid .reports-date-from,.reports-list-output-grid .reports-date-to,
  .reports-list-output-grid .reports-print-slot{grid-column:1}
  .reports-employee-checks{grid-template-columns:1fr!important}
}


/* 2026-09-11 Korrektur: Checkbox + Beschriftung bleiben als eine Zeile sichtbar. */
.reports-select-all{white-space:nowrap!important}
.reports-select-all input,
.reports-employee-checks input[type="checkbox"]{
  width:auto!important;min-width:0!important;flex:0 0 auto!important;
}
.reports-employee-checks label{
  display:flex!important;align-items:center!important;gap:.42rem!important;white-space:nowrap!important;
}


/* 2026-09-11 Wochenansicht: Status kompakt im Seitenkopf statt eigener Zeile. */
.reports-page-status{
  margin-left:auto;display:flex;align-items:center;justify-content:flex-end;
  min-width:0;text-align:right;
}
.reports-page-status .reports-status-inline{
  max-width:min(460px,48vw);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.reports-status-inline.reports-status-planned{background:#eef1f4;color:#536576}
@media(max-width:640px){
  .reports-page-head{flex-direction:row;align-items:flex-start}
  .reports-page-status{margin-left:auto;padding-top:.2rem}
  .reports-page-status .reports-status-inline{max-width:52vw;font-size:.75rem;padding:4px 7px}
}

/* v49: zentrale Auswertungen Projekte / Aufträge / Mitarbeiter / Tätigkeiten */
.analysis-heading{margin-bottom:.55rem}
.analysis-tabs{display:flex;gap:.35rem;align-items:flex-end;border-bottom:1px solid #cfd9e3;margin:0 0 .7rem;padding:0 .25rem}
.analysis-tabs a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:.55rem 1.05rem;border:1px solid transparent;border-bottom:0;border-radius:9px 9px 0 0;color:#38536a;text-decoration:none;font-weight:650;background:#edf2f6}
.analysis-tabs a:hover{background:#e2ebf2;color:#0d4777}
.analysis-tabs a.active{position:relative;top:1px;background:#fff;border-color:#cfd9e3;color:#0d4777}
.analysis-subtabs{display:flex;gap:.4rem;margin:-.2rem 0 .75rem}
.analysis-subtabs a,.analysis-related-links a{color:#0d4777;text-decoration:none;font-weight:650}
.analysis-subtabs a{padding:.34rem .65rem;border-radius:7px;background:#eef3f7}
.analysis-subtabs a.active{background:#0d4777;color:#fff}
.analysis-filter-panel{padding:.8rem 1rem}
.analysis-filter-form{display:grid;grid-template-columns:minmax(240px,1.5fr) minmax(145px,.62fr) minmax(145px,.62fr) minmax(115px,.45fr) auto auto;gap:.7rem;align-items:end}
.analysis-filter-form>label{display:flex;flex-direction:column;gap:5px;font-size:.8rem;font-weight:600;min-width:0}
.analysis-filter-form select,.analysis-filter-form input{width:100%;min-height:40px}
.analysis-search-combobox{position:relative;min-width:0}
.analysis-search-combobox>input[type=search]{box-sizing:border-box;margin:0;padding-right:2rem}
.analysis-search-options{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 4px);max-height:270px;overflow-y:auto;border:1px solid #aebdca;border-radius:6px;background:#fff;box-shadow:0 7px 18px rgba(24,53,75,.18)}
.analysis-search-options[hidden]{display:none!important}
.analysis-search-options button{display:block;width:100%;min-height:36px;padding:.48rem .62rem;border:0;border-bottom:1px solid #e4e9ee;background:#fff;color:#263f52;text-align:left;font:inherit;font-size:.8rem;cursor:pointer}
.analysis-search-options button:last-of-type{border-bottom:0}
.analysis-search-options button:hover,.analysis-search-options button[aria-selected=true]{background:#eaf3f9;color:#0d4777}
.analysis-search-empty{display:block;padding:.65rem;color:#6b7784;font-size:.8rem;font-weight:400}
.analysis-apply{min-height:40px}
.analysis-export-actions{display:flex;gap:.35rem;align-items:center}
.analysis-export-actions .button-link{min-height:40px;display:inline-flex;align-items:center}
.analysis-related-links{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;border-top:1px solid #e1e7ed;margin-top:.7rem;padding-top:.65rem;font-size:.82rem}
.analysis-related-links span{color:#647482}
.analysis-metrics{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));margin:.7rem 0}
.analysis-section-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:.6rem}
.analysis-section-heading h2{margin:0;font-size:1.05rem}
.analysis-section-heading span{font-size:.8rem;color:#6b7784}
.analysis-overview-panel,.analysis-trend-panel,.analysis-matrix-panel,.analysis-details-panel{padding:.9rem 1rem;margin-bottom:.8rem}
.analysis-trend-list{display:grid;gap:.42rem}
.analysis-trend-row{display:grid;grid-template-columns:minmax(165px,auto) minmax(180px,1fr) 75px;gap:.7rem;align-items:center;font-size:.82rem}
.analysis-trend-row>span{white-space:nowrap}
.analysis-trend-row>strong{text-align:right;font-variant-numeric:tabular-nums}
.analysis-trend-track{height:12px;border-radius:999px;background:#e8eef3;overflow:hidden}
.analysis-trend-track i{display:block;height:100%;min-width:0;border-radius:999px;background:#3d7aa4}
.analysis-table{width:100%;border-collapse:collapse;font-size:.84rem}
.analysis-table th,.analysis-table td{padding:.52rem .58rem;border-bottom:1px solid #dfe6ed;text-align:left;vertical-align:top}
.analysis-table thead th{background:#edf3f8;color:#243c50;white-space:nowrap}
.analysis-table tbody tr:hover{background:#f6f9fb}
.analysis-table td:not(:first-child),.analysis-table th:not(:first-child){white-space:nowrap}
.analysis-table td a{color:#0d4777;text-decoration:none;font-weight:650}
.analysis-table td a:hover{text-decoration:underline}
.analysis-activity-employee-table th:last-child,.analysis-activity-employee-table td:last-child{width:180px;text-align:right}
.analysis-table tfoot th{background:#e9f0f6;border-top:2px solid #9fb4c5}
.analysis-selected-row{background:#eef6fb!important;box-shadow:inset 3px 0 0 #0d4777}
.analysis-details-table .requires-review{background:#fff6df}
.analysis-empty{text-align:center;color:#647482}
.analysis-details-disclosure{padding:0!important;overflow:hidden}
.analysis-details-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;cursor:pointer;list-style:none;background:#f8fafc;color:#263f52}
.analysis-details-disclosure>summary::-webkit-details-marker{display:none}
.analysis-details-disclosure>summary span{font-size:1.05rem;font-weight:700}
.analysis-details-disclosure>summary small{margin-left:auto;color:#6b7784;font-size:.8rem}
.analysis-details-disclosure>summary::after{content:'▸';color:#61798b;font-size:1rem}
.analysis-details-disclosure[open]>summary{border-bottom:1px solid #dfe6ed}
.analysis-details-disclosure[open]>summary::after{content:'▾'}
.analysis-details-content{padding:0 1rem .9rem}

@media print{
  @page{size:A4 portrait;margin:12mm}
  .topbar,.analysis-tabs,.analysis-subtabs,.analysis-filter-panel,.analysis-related-links{display:none!important}
  .analysis-details-disclosure:not([open]){display:none!important}
  .analysis-details-disclosure[open]>summary{display:none!important}
  .analysis-details-disclosure[open]{break-before:page;page-break-before:always}
  .analysis-details-disclosure[open]>.analysis-details-content{display:block!important;padding:0}
  .analysis-page .panel{box-shadow:none!important;break-inside:auto}
  .analysis-page .table-wrap{overflow:visible!important}
  .analysis-table thead th{background:#e1e1e1!important;color:#000!important;border-bottom:1px solid #666!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .analysis-table tfoot th{background:#ededed!important;color:#000!important;border-top:1px solid #666!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

@media (max-width:1100px){
  .analysis-filter-form{grid-template-columns:1fr 1fr 1fr}
  .analysis-filter-form>label:first-child{grid-column:1/-1}
  .analysis-export-actions{justify-content:flex-start}
}
@media (max-width:720px){
  .analysis-tabs{overflow-x:auto;padding:0;gap:.2rem}
  .analysis-tabs a{min-width:max-content;padding:.5rem .75rem}
  .analysis-filter-form{grid-template-columns:1fr}
  .analysis-filter-form>label:first-child{grid-column:1}
  .analysis-export-actions{flex-wrap:wrap}
  .analysis-metrics{grid-template-columns:1fr 1fr}
  .analysis-trend-row{grid-template-columns:1fr 70px;gap:.3rem .6rem}
  .analysis-trend-track{grid-column:1/-1;grid-row:2}
}

/* FrontTime v16 – zentrale Zeitkontoverwaltung */
.time-account-page-head{margin-bottom:.75rem}
.time-account-overview-panel{padding:.85rem 1rem}
.time-account-filter-row{display:grid;grid-template-columns:10rem minmax(16rem,1fr) auto;gap:.65rem;align-items:end;margin-bottom:.75rem}
.time-account-filter-row label{margin:0}
.time-account-filter-row select,.time-account-filter-row input{width:100%}
.time-account-overview-table th,.time-account-overview-table td{white-space:nowrap;vertical-align:middle}
.time-account-overview-table td:first-child{white-space:normal;min-width:12rem}
.time-account-overview-table .selected-row{background:#eef5fa}
.time-account-overview-table .time-value{font-variant-numeric:tabular-nums;text-align:right}
.time-account-overview-table .positive,.time-account-key-values .positive{color:#246a40}
.time-account-overview-table .negative,.time-account-key-values .negative{color:#9e3129}
.time-account-reported{display:inline-flex;align-items:center;justify-content:center;min-width:1.55rem;height:1.55rem;border:1px solid #8eb59a;border-radius:.35rem;background:#f4fbf6;color:#246a40;font-weight:700}
.time-account-legacy{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:1.55rem;border:1px solid #d8b15a;border-radius:.35rem;background:#fff9e9;color:#765814;font-size:.78rem;font-weight:700}
.time-account-editor{margin-top:1rem}
.time-account-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.8rem}
.time-account-editor-head h2{margin:0 0 .2rem}
.time-account-key-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;margin-bottom:1rem}
.time-account-key-values>div{border:1px solid #d9e2e8;border-radius:.55rem;padding:.7rem .8rem;background:#fafcfd}
.time-account-key-values span{display:block;color:#64737f;font-size:.82rem;margin-bottom:.25rem}
.time-account-key-values strong{display:block;font-size:1.02rem;font-variant-numeric:tabular-nums}
.time-account-editor-grid{display:grid;grid-template-columns:1fr;gap:.8rem;align-items:start}
.time-account-editor-stack{grid-template-columns:1fr}
.time-account-wide-card{width:100%}
.time-account-checkpoint-collapsible{padding:0;overflow:hidden}
.time-account-checkpoint-collapsible>summary{cursor:pointer;list-style:none;padding:.78rem .9rem;font-weight:700;color:#17364e;background:#fafcfd}
.time-account-checkpoint-collapsible>summary::-webkit-details-marker{display:none}
.time-account-checkpoint-collapsible>summary::after{content:'▸';float:right;color:#738694}
.time-account-checkpoint-collapsible[open]>summary::after{content:'▾'}
.time-account-checkpoint-collapsible[open]>summary{border-bottom:1px solid #e2e8ec}
.time-account-checkpoint-content{padding:.85rem .9rem .95rem}
.time-account-subpanel{border:1px solid #d9e2e8;border-radius:.6rem;padding:.9rem;background:#fff}
.time-account-subpanel h3{margin:.05rem 0 .45rem}
.time-account-payroll-inputs{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin:.8rem 0}
.time-account-payroll-inputs input,.time-account-checkpoint-form input,.time-account-checkpoint-form select{width:100%}
.time-account-preview{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:.7rem 0}
.time-account-preview>div{padding:.65rem .7rem;border-radius:.45rem;background:#f4f7f9;border:1px solid #e0e6ea}
.time-account-preview span{display:block;color:#64737f;font-size:.8rem;margin-bottom:.18rem}
.time-account-preview strong{font-size:1.05rem;font-variant-numeric:tabular-nums}
.time-account-checkline{display:flex!important;align-items:center;gap:.45rem;margin:.8rem 0!important}
.time-account-checkline input{width:auto!important;margin:0}
.time-account-confirmed-box{margin-top:.75rem}
.time-account-report-details{display:grid;grid-template-columns:1fr 1fr;gap:.4rem .75rem;margin:.75rem 0}
.time-account-report-details>div{display:flex;justify-content:space-between;gap:.75rem;border-bottom:1px solid #edf0f2;padding:.25rem 0}
.time-account-report-details dt{color:#64737f}
.time-account-report-details dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}
.time-account-checkpoint-form{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;align-items:end;margin-top:.75rem}
.time-account-checkpoint-form .form-actions{grid-column:1/-1;margin:0}
.notice-inline{padding:.6rem .7rem;border-radius:.45rem;background:#f7f9fa;border:1px solid #d9e2e8;font-size:.88rem}
.warning-inline{background:#fff9e9;border-color:#d8b15a}
.time-account-history-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}
.time-account-history-grid h3{margin:.25rem 0 .5rem}
.employee-time-account-link{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.employee-time-account-link h2{margin-top:0}
.employee-time-account-link-panel .time-account-balance{font-size:1.35rem}

@media(max-width:950px){
  .time-account-key-values{grid-template-columns:1fr 1fr}
  .time-account-editor-grid,.time-account-history-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
  .time-account-filter-row{grid-template-columns:1fr}
  .time-account-key-values,.time-account-payroll-inputs,.time-account-preview,.time-account-checkpoint-form{grid-template-columns:1fr}
  .time-account-editor-head,.employee-time-account-link{align-items:stretch;flex-direction:column}
}

/* Zeitkonten v17: offizieller Monatsstand, Inline-Bearbeitung und Lohnverrechnungs-Workflow */
.time-account-page-actions{display:flex;align-items:center;justify-content:flex-end;gap:.55rem}
.time-account-overview-table th,.time-account-overview-table td{vertical-align:middle}
.time-account-overview-table .time-value,.payroll-send-summary .time-value{font-variant-numeric:tabular-nums;text-align:right}
.time-account-status{display:inline-flex;align-items:center;white-space:nowrap;border:1px solid #cfd8de;border-radius:.35rem;padding:.18rem .42rem;font-size:.78rem;line-height:1.2}
.time-account-status.reported{border-color:#8eb59a;background:#f4fbf6;color:#246a40;font-weight:600}
.time-account-status.prepared{border-color:#8fb0c8;background:#f0f6fa;color:#244e6c;font-weight:600}
.time-account-status.legacy{border-color:#d8b15a;background:#fff9e9;color:#765814}
.time-account-status.invalid{margin-left:.3rem;border-color:#d59b91;background:#fff2f0;color:#8f2e25;font-weight:600}
.time-account-editor-row>td{padding:0!important;border-top:0!important;background:#f4f8fb!important}
.time-account-editor-inline-cell{white-space:normal!important}
.time-account-inline-editor{margin:.35rem .55rem .8rem;padding:1rem;border:1px solid #cbdbe6;border-radius:.65rem;background:#fff;box-shadow:0 2px 7px rgba(22,54,78,.06)}
.time-account-statusline{display:flex;align-items:center;gap:.5rem;margin:.65rem 0}
.time-account-preview.single{grid-template-columns:1fr}
.time-account-preparation-actions{margin-top:.7rem}
.time-account-unprepare-form{margin-top:.45rem}
.time-account-unprepare-form button{padding:.45rem .65rem}
.compact-histories{margin-top:.8rem}
.time-account-history-collapsible{border:1px solid #d9e2e8;border-radius:.55rem;background:#fff;overflow:hidden}
.time-account-history-collapsible>summary{cursor:pointer;list-style:none;padding:.65rem .75rem;font-weight:600;color:#354d5f;background:#fafcfd}
.time-account-history-collapsible>summary::-webkit-details-marker{display:none}
.time-account-history-collapsible>summary::after{content:'▸';float:right;color:#738694}
.time-account-history-collapsible[open]>summary::after{content:'▾'}
.time-account-history-collapsible .table-wrap{border-top:1px solid #e2e8ec}
.time-account-payroll-dialog{width:min(760px,calc(100vw - 2rem));max-height:85vh;border:1px solid #bdccd7;border-radius:.7rem;padding:1rem;background:#fff;color:inherit;box-shadow:0 18px 60px rgba(0,0,0,.24)}
.time-account-payroll-dialog::backdrop{background:rgba(13,31,45,.42)}
.time-account-payroll-dialog{position:fixed;left:50vw;top:50vh;right:auto;bottom:auto;transform:translate(-50%,-50%);margin:0;overflow:auto}
.time-account-back-link{display:inline-block;margin-bottom:.35rem;color:#1d5f91;text-decoration:none}
.time-account-back-link:hover{text-decoration:underline}
.time-account-payroll-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem}
.time-account-payroll-dialog-head h2{margin:0 0 .18rem}
.time-account-payroll-dialog-head p{margin:0}
.payroll-send-summary th,.payroll-send-summary td{white-space:nowrap}
.payroll-send-summary td:first-child{white-space:normal;min-width:15rem}
.dialog-actions{display:flex;justify-content:flex-end;gap:.55rem;margin-top:.85rem}
@media (max-width:900px){
  .time-account-page-head{align-items:stretch;flex-direction:column}
  .time-account-page-actions{justify-content:flex-start}
}

/* FrontTime v18 - kompakter Status Lohnverrechnung */
.payroll-month-status{display:flex;flex-direction:column;align-items:flex-end;gap:.1rem;padding:.42rem .62rem;border:1px solid #d4dee5;border-radius:.5rem;background:#fafcfd;line-height:1.2;white-space:nowrap}
.payroll-month-status strong{font-size:.82rem;color:#314b5d}
.payroll-month-status span{font-size:.78rem;color:#657783}
.payroll-month-status.complete{border-color:#9fc3aa;background:#f4fbf6}
.payroll-month-status.complete strong,.payroll-month-status.complete span{color:#246a40}
@media(max-width:760px){.payroll-month-status{align-items:flex-start;white-space:normal;width:100%}}

/* FrontTime v19 - LV information + employee payroll history */
.time-account-history-print-form{display:flex;align-items:end;gap:.6rem;flex-wrap:wrap;margin-top:1rem;padding:.6rem .75rem;border:1px solid #d9e2e8;border-radius:.55rem;background:#fafcfd}
.time-account-history-print-form>strong{align-self:center;margin-right:.25rem;color:#354d5f}
.time-account-history-print-form label{display:flex;align-items:center;gap:.45rem;margin:0;color:#64737f;font-size:.82rem}
.time-account-history-print-form select{min-width:7.2rem}
.payroll-send-confirm-form{margin-top:.75rem}
.payroll-information-field{display:block;margin:0 0 .8rem}
.payroll-information-field textarea{display:block;width:100%;min-height:4.8rem;margin-top:.35rem;resize:vertical}
.payroll-information-field .muted{display:block;margin-top:.25rem;font-size:.78rem}
@media(max-width:760px){.time-account-history-print-form{align-items:stretch;flex-direction:column}.time-account-history-print-form label{align-items:stretch;flex-direction:column;gap:.25rem}.time-account-history-print-form select{width:100%}}

/* Fronttime v21 - Zeitkonten kompakter + interne Übersicht + Urlaubskonto */
.time-account-filter-row-v21{
  display:grid;
  grid-template-columns:7.5rem minmax(12rem,18rem) minmax(10rem,14rem) auto auto;
  gap:.55rem;align-items:end;margin-bottom:.65rem
}
.time-account-filter-row-v21 .time-account-filter-status select,
.time-account-filter-row-v21 .time-account-filter-employee select,
.time-account-filter-row-v21 .time-account-search input{height:34px}
.time-account-filter-row-v21 button{height:34px;white-space:nowrap}
.time-account-key-values-v21{grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;margin-bottom:.7rem}
.time-account-key-values-v21>div{padding:.5rem .65rem}
.time-account-key-values-v21 span{font-size:.76rem;margin-bottom:.12rem}
.time-account-key-values-v21 strong{font-size:.94rem}
.compact-operation-card{padding:.62rem .72rem}
.time-account-card-title-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem;min-height:26px}
.time-account-card-title-row h3{margin:0 auto 0 0}
.compact-unprepare-form{margin:0 0 0 auto}
.compact-text-button{border:0!important;background:transparent!important;color:#5f7483!important;padding:.15rem .3rem!important;font-size:.76rem!important;text-decoration:underline;cursor:pointer}
.time-account-payroll-line{display:grid;grid-template-columns:8rem 9rem minmax(13rem,1fr) auto;gap:.55rem;align-items:end}
.time-account-payroll-line label,.compact-checkpoint-form label{margin:0;font-size:.75rem;color:#64737f}
.time-account-input-hours{width:100%!important;min-width:0}
.time-account-inline-value{height:34px;display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding:0 .65rem;border:1px solid #e0e6ea;border-radius:.42rem;background:#f4f7f9;white-space:nowrap}
.time-account-inline-value span{font-size:.75rem;color:#64737f}
.time-account-inline-value strong{font-variant-numeric:tabular-nums;font-size:.95rem}
.time-account-compact-action{height:34px;white-space:nowrap;padding:.42rem .7rem!important}
.compact-note{margin:.35rem 0 0!important;padding:.38rem .5rem!important;font-size:.76rem!important;line-height:1.25}
.time-account-reported-compact{display:flex;align-items:center;gap:1.15rem;flex-wrap:wrap;padding:.32rem 0;font-size:.82rem}
.time-account-reported-compact strong{font-variant-numeric:tabular-nums}
.time-account-checkpoint-collapsible.compact-operation-card{padding:0}
.time-account-checkpoint-collapsible.compact-operation-card>summary{padding:.58rem .72rem}
.time-account-checkpoint-collapsible.compact-operation-card .time-account-checkpoint-content{padding:.58rem .72rem .65rem}
.compact-checkpoint-form{display:grid;grid-template-columns:8.2rem 8.5rem 8rem 8rem auto;gap:.5rem;align-items:end;margin:0}
.compact-checkpoint-form select,.compact-checkpoint-form input{height:34px;width:100%;min-width:0}
.time-account-vacation-warning{margin:.35rem 0 0;padding:.38rem .5rem;border:1px solid #d8b15a;border-radius:.4rem;background:#fff9e9;color:#6b5b1f;font-size:.75rem;line-height:1.25}
.time-account-history-actions-row{display:grid;grid-template-columns:minmax(11rem,14rem) minmax(12rem,15rem) minmax(20rem,1fr);gap:.55rem;align-items:start;margin-top:.6rem}
.compact-history-control>summary{padding:.5rem .62rem;font-size:.82rem;white-space:nowrap}
.compact-history-control .table-wrap{max-width:100%;overflow:auto}
.compact-history-control .compact-table{min-width:600px}
.compact-history-print-form{margin:0;padding:.42rem .55rem;display:grid;grid-template-columns:auto minmax(7rem,9rem) auto;gap:.45rem;align-items:end;min-height:42px}
.compact-history-print-form>strong{align-self:center;margin:0;font-size:.82rem;white-space:nowrap}
.compact-history-print-form label{display:flex;align-items:center;gap:.35rem;margin:0;font-size:.74rem;color:#64737f;white-space:nowrap}
.compact-history-print-form select{height:32px;min-width:6.8rem}
.compact-history-print-form button{height:32px;padding:.35rem .55rem}
.internal-overview-dialog{width:min(820px,calc(100vw - 2rem))}
.internal-time-overview-table th,.internal-time-overview-table td{white-space:nowrap;padding:.35rem .48rem}
.internal-time-overview-table td:first-child{white-space:normal;min-width:13rem}
.internal-time-overview-table .time-value{text-align:right;font-variant-numeric:tabular-nums}
.dialog-actions .button-link.primary{display:inline-flex;align-items:center;background:#1769a6;color:#fff;border-color:#1769a6}

@media(max-width:1100px){
  .time-account-key-values-v21{grid-template-columns:repeat(3,minmax(0,1fr))}
  .time-account-payroll-line{grid-template-columns:8rem 9rem 1fr auto}
  .compact-checkpoint-form{grid-template-columns:repeat(4,minmax(7rem,1fr)) auto}
  .time-account-history-actions-row{grid-template-columns:1fr 1fr}.compact-history-print-form{grid-column:1/-1}
}
@media(max-width:760px){
  .time-account-filter-row-v21,.time-account-key-values-v21,.time-account-payroll-line,.compact-checkpoint-form,.time-account-history-actions-row{grid-template-columns:1fr}
  .time-account-inline-value{height:auto;min-height:34px}
  .compact-history-print-form{grid-column:auto;grid-template-columns:1fr}
}


/* Fronttime v22 - Zeitkonten optisch verdichten */
/* Kopf rechts: Status und Aktion als gemeinsamer, sauber ausgerichteter Block. */
.time-account-page-actions{
  display:grid;
  grid-template-columns:max-content max-content;
  align-items:stretch;
  justify-content:end;
  gap:.5rem;
}
.time-account-page-actions .payroll-month-status{
  min-height:42px;
  justify-content:center;
  padding:.3rem .6rem;
}
.time-account-page-actions>[data-payroll-send-open],
.time-account-page-actions>a.button-link{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
  padding:.45rem .75rem;
}

/* Filter: bewusst kompakte Arbeitszeile statt voll ausgenutzter Seitenbreite. */
.time-account-filter-row-v21{
  grid-template-columns:6.4rem 11.5rem 11.5rem 6.2rem 11.2rem;
  justify-content:start;
  column-gap:.5rem;
  row-gap:.4rem;
}
.time-account-filter-row-v21 .time-account-filter-status,
.time-account-filter-row-v21 .time-account-filter-employee,
.time-account-filter-row-v21 .time-account-search{
  min-width:0;
}
.time-account-filter-row-v21 select,
.time-account-filter-row-v21 input{
  min-width:0;
}
.time-account-filter-row-v21 .time-account-filter-submit,
.time-account-filter-row-v21 .time-account-overview-print-button{
  width:100%;
  padding-left:.55rem;
  padding-right:.55rem;
}

/* Lohnverrechnung: vier kompakte Elemente ohne aufgezogene Leerfläche. */
.time-account-payroll-line{
  grid-template-columns:7.1rem 7.8rem 13.6rem max-content;
  justify-content:start;
  gap:.5rem;
}
.time-account-payroll-line .time-account-inline-value{
  width:13.6rem;
  max-width:13.6rem;
}
.time-account-payroll-line .time-account-compact-action{
  min-width:7.2rem;
}

@media(max-width:1100px){
  .time-account-page-actions{grid-template-columns:max-content max-content}
  .time-account-filter-row-v21{
    grid-template-columns:6.4rem 11.5rem 11.5rem 6.2rem 11.2rem;
  }
  .time-account-payroll-line{
    grid-template-columns:7.1rem 7.8rem 13.6rem max-content;
  }
}
@media(max-width:820px){
  .time-account-page-actions{
    grid-template-columns:1fr;
    justify-content:stretch;
    width:100%;
  }
  .time-account-page-actions .payroll-month-status{align-items:flex-start;white-space:normal}
  .time-account-filter-row-v21{
    grid-template-columns:6.4rem minmax(10rem,1fr) minmax(10rem,1fr) 6.2rem 11.2rem;
  }
  .time-account-payroll-line{
    grid-template-columns:7.1rem 7.8rem minmax(12rem,13.6rem) max-content;
  }
}
@media(max-width:760px){
  .time-account-filter-row-v21,
  .time-account-payroll-line{
    grid-template-columns:1fr;
    justify-content:stretch;
  }
  .time-account-payroll-line .time-account-inline-value{
    width:100%;
    max-width:none;
  }
}


/* Fronttime v23 - Zeitkonten: Bearbeitungsbereich optisch vereinheitlichen */
/* Die fünf Kopfkarten sind exakt gleich hoch und haben identische Textachsen. */
.time-account-key-values-v21>div{
  box-sizing:border-box;
  height:56px;
  min-height:56px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:.45rem .65rem;
}
.time-account-key-values-v21 span{
  margin:0 0 .12rem;
  line-height:1.05;
  font-size:.72rem;
}
.time-account-key-values-v21 strong{
  margin:0;
  line-height:1.12;
  font-size:.90rem;
}

/* Filterfelder: kleine normale Formularschrift, damit Status/Auswahl vollständig lesbar bleiben. */
.time-account-filter-row-v21 label{
  font-size:.72rem;
  line-height:1.1;
}
.time-account-filter-row-v21 select,
.time-account-filter-row-v21 input{
  height:32px!important;
  font-size:.79rem!important;
  line-height:1.15!important;
  padding:.28rem .45rem!important;
}
.time-account-filter-row-v21 select{
  padding-right:1.55rem!important;
}
.time-account-filter-row-v21 button{
  height:32px!important;
  font-size:.80rem!important;
}

/* Untere Arbeitszeile: der Platz gehört primär den beiden Historien. */
.time-account-history-actions-row{
  display:grid;
  grid-template-columns:minmax(18rem,1fr) minmax(20rem,1.08fr) max-content;
  gap:.55rem;
  align-items:start;
  margin-top:.6rem;
}
.compact-history-control{
  min-width:0;
}
.compact-history-control>summary{
  min-height:42px;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:.48rem .62rem;
  font-size:.78rem;
  line-height:1.15;
  white-space:nowrap;
}
.compact-history-control>summary::after{
  float:none;
  margin-left:.5rem;
  flex:0 0 auto;
}
.compact-history-control[open]{
  grid-column:1 / 3;
}
.compact-history-control .table-wrap{
  max-width:100%;
  overflow:auto;
}
.compact-history-control .compact-table{
  width:100%;
  min-width:0;
  font-size:.72rem;
}
.compact-history-control .compact-table th,
.compact-history-control .compact-table td{
  padding:.32rem .38rem;
  line-height:1.15;
}

/* Druckbereich ohne zusätzliche Überschrift: Ab-Auswahl + eindeutiger Button. */
.compact-history-print-form{
  margin:0;
  padding:.42rem .5rem;
  min-height:42px;
  display:grid;
  grid-template-columns:6.9rem 9.6rem;
  gap:.45rem;
  align-items:end;
  justify-content:end;
}
.compact-history-print-form label{
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:.32rem;
  margin:0;
  font-size:.70rem;
  line-height:1.1;
  color:#64737f;
  white-space:nowrap;
}
.compact-history-print-form select{
  width:100%;
  min-width:0;
  height:32px!important;
  font-size:.78rem!important;
  line-height:1.15!important;
  padding:.25rem 1.45rem .25rem .4rem!important;
}
.compact-history-print-form button{
  height:32px;
  min-width:9.6rem;
  padding:.35rem .55rem;
  font-size:.80rem;
  white-space:nowrap;
}

@media(max-width:1100px){
  .time-account-history-actions-row{
    grid-template-columns:minmax(15rem,1fr) minmax(16rem,1fr) max-content;
  }
}
@media(max-width:860px){
  .time-account-history-actions-row{
    grid-template-columns:1fr 1fr;
  }
  .compact-history-print-form{
    grid-column:1 / -1;
    justify-self:end;
  }
  .compact-history-control[open]{grid-column:1 / -1}
}
@media(max-width:760px){
  .time-account-key-values-v21>div{height:auto;min-height:54px}
  .time-account-history-actions-row{grid-template-columns:1fr}
  .compact-history-control[open],.compact-history-print-form{grid-column:auto}
  .compact-history-print-form{width:100%;grid-template-columns:minmax(7rem,1fr) auto;justify-self:stretch}
}

/* Fronttime v25 - Zeitkonten als geführte Arbeitsliste mit eigenem Bearbeitungsfenster */
.time-account-worklist th,.time-account-worklist td{vertical-align:middle}
.time-account-worklist .time-value{white-space:nowrap}
.time-account-work-state{min-width:15rem}
.time-account-work-state small{display:block;margin-top:.2rem;color:#667784;font-size:.73rem;line-height:1.2}
.time-account-status.neutral{border-color:#cfd8de;background:#f7f9fa;color:#526572}
.time-account-status.attention{border-color:#d6ad54;background:#fff9e9;color:#765814;font-weight:600}
.time-account-status.open{border-color:#9db8ca;background:#f2f7fa;color:#315d78;font-weight:600}

.time-account-editor-dialog{
  position:fixed;
  left:50%;
  top:50%;
  right:auto;
  bottom:auto;
  transform:translate(-50%,-50%);
  margin:0;
  width:min(1120px,calc(100vw - 2rem));
  max-height:90vh;
  padding:0;
  border:1px solid #b9cbd8;
  border-radius:.8rem;
  background:#f4f7f9;
  color:inherit;
  box-shadow:0 20px 70px rgba(0,0,0,.30);
  overflow:auto;
}
.time-account-editor-dialog::backdrop{background:rgba(13,31,45,.48)}
.time-account-editor-dialog-head{
  position:sticky;top:0;z-index:5;
  display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;
  padding:.85rem 1rem;
  border-bottom:1px solid #cbd8e1;
  background:#fff;
}
.time-account-editor-dialog-head h2{margin:.05rem 0 .15rem;font-size:1.25rem}
.time-account-editor-dialog-head p{margin:0}
.time-account-dialog-kicker{font-size:.72rem!important;text-transform:uppercase;letter-spacing:.04em;color:#668093;font-weight:700}
.time-account-dialog-close{font-size:1.2rem;line-height:1;min-width:2rem;height:2rem}
.time-account-editor-dialog-body{padding:.85rem 1rem 1rem}

.time-account-key-values-modal{grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem;margin:0 0 .7rem}
.time-account-key-values-modal>div{height:58px;min-height:58px;display:flex;flex-direction:column;justify-content:center;padding:.45rem .62rem;background:#fff}
.time-account-key-values-modal span{font-size:.70rem;line-height:1.05;margin:0 0 .12rem}
.time-account-key-values-modal strong{font-size:.88rem;line-height:1.15;white-space:normal}

.time-account-next-step{display:flex;align-items:baseline;gap:.6rem;margin:0 0 .75rem;padding:.58rem .72rem;border:1px solid #b8cbd8;border-radius:.55rem;background:#fff;font-size:.82rem;line-height:1.25}
.time-account-next-step strong{white-space:nowrap}
.time-account-next-step span{color:#506574}
.time-account-next-step.open{border-color:#9db8ca;background:#f2f7fa}
.time-account-next-step.ready{border-color:#8fb0c8;background:#f0f6fa}
.time-account-next-step.warning{border-color:#d59b91;background:#fff2f0}
.time-account-next-step.attention{border-color:#d8b15a;background:#fff9e9}
.time-account-next-step.done{border-color:#8eb59a;background:#f4fbf6}
.time-account-next-step.neutral{border-color:#cfd8de;background:#fafcfd}

.time-account-work-card{margin-top:.65rem;border:1px solid #d2dde5;border-radius:.65rem;background:#fff;overflow:hidden}
.time-account-work-card:not(details){padding:.72rem .8rem}
.time-account-work-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.7rem;margin-bottom:.55rem}
.time-account-work-card-head h3{margin:.02rem 0 0;font-size:1rem}
.time-account-work-card-kicker{display:block;color:#6a7d89;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.035em}
.time-account-work-card-status{display:flex;align-items:center;gap:.4rem}
.modal-payroll-line{grid-template-columns:7.4rem 9.4rem 14.8rem max-content;gap:.55rem;justify-content:start;align-items:end}
.modal-payroll-line label{font-size:.72rem;line-height:1.1}
.modal-payroll-line input{height:34px;font-size:.82rem}
.modal-payroll-line .time-account-inline-value{width:14.8rem;max-width:14.8rem}
.modal-unprepare-form{margin:.35rem 0 0;text-align:right}

.checkpoint-work-card>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;list-style:none;padding:.62rem .8rem;background:#fff}
.checkpoint-work-card>summary::-webkit-details-marker{display:none}
.checkpoint-work-card>summary span{display:flex;align-items:baseline;gap:.55rem}
.checkpoint-work-card>summary small{font-size:.68rem;color:#6a7d89;font-weight:700;text-transform:uppercase;letter-spacing:.035em}
.checkpoint-work-card>summary strong{font-size:.95rem;color:#17364e}
.checkpoint-work-card>summary em{font-size:.72rem;font-style:normal;color:#6a7d89}
.checkpoint-work-card>summary::after{content:'▸';color:#738694}
.checkpoint-work-card[open]>summary{border-bottom:1px solid #e0e7ec}
.checkpoint-work-card[open]>summary::after{content:'▾'}
.checkpoint-work-card .time-account-checkpoint-content{padding:.65rem .8rem .75rem}
.modal-checkpoint-form{grid-template-columns:9rem 9rem 9rem 9.5rem max-content;gap:.55rem;margin:0}
.modal-checkpoint-form label{font-size:.72rem;line-height:1.1}
.modal-checkpoint-form input,.modal-checkpoint-form select{height:34px;min-height:34px;font-size:.80rem;box-sizing:border-box}
.modal-checkpoint-form select{padding:4px 30px 4px 9px!important;line-height:24px!important;appearance:auto!important;-webkit-appearance:menulist!important}

.history-work-card{padding:.72rem .8rem!important}
.modal-history-row{grid-template-columns:minmax(16rem,1fr) minmax(17rem,1fr) max-content;margin-top:0}
.modal-history-row .compact-history-control>summary{min-height:38px}
.modal-history-row .compact-history-print-form{min-height:38px}

@media(max-width:1000px){
  .time-account-key-values-modal{grid-template-columns:repeat(3,minmax(0,1fr))}
  .modal-payroll-line{grid-template-columns:7.4rem 9rem minmax(12rem,1fr) max-content}
  .modal-payroll-line .time-account-inline-value{width:auto;max-width:none}
  .modal-checkpoint-form{grid-template-columns:repeat(4,minmax(8rem,1fr)) max-content}
  .modal-history-row{grid-template-columns:1fr 1fr}.modal-history-row .compact-history-print-form{grid-column:1/-1;justify-self:end}
}
@media(max-width:760px){
  .time-account-editor-dialog{width:calc(100vw - .7rem);max-height:94vh}
  .time-account-editor-dialog-body{padding:.65rem}
  .time-account-key-values-modal{grid-template-columns:1fr 1fr}
  .time-account-next-step{align-items:flex-start;flex-direction:column;gap:.2rem}
  .time-account-next-step strong{white-space:normal}
  .modal-payroll-line,.modal-checkpoint-form,.modal-history-row{grid-template-columns:1fr}
  .modal-history-row .compact-history-print-form{grid-column:auto;justify-self:stretch}
  .checkpoint-work-card>summary span{align-items:flex-start;flex-direction:column;gap:.1rem}
}

/* v27: gemeldete Monatsstände bleiben eingefroren; Korrekturen klar hervorheben */
.payroll-month-status.correction{border-color:#d8a05e;background:#fff7ea}
.payroll-correction-summary{display:block;margin-top:.12rem;color:#8a4d17;font-weight:700}
.time-account-work-state .time-account-status.invalid{white-space:nowrap}

/* 2026-09-12 v28: einheitlicher Fronttime-Kalender für alle Datumsfelder */
.ft-date-input-wrap{position:relative;display:block;width:100%;box-sizing:border-box}
.ft-date-input-wrap>input[data-ft-date],.ft-date-input-wrap>input[data-date-input]{width:100%;box-sizing:border-box;padding-right:34px!important}
.ft-date-input-open{position:absolute;right:3px;top:50%;transform:translateY(-50%);width:28px;height:28px;padding:0;border:0;border-left:1px solid #d4dde4;border-radius:0 4px 4px 0;background:transparent;color:#5d7384;font-size:.92rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer}
.ft-date-input-open:hover{background:#eef4f8;color:#214e70}.ft-date-input-open:focus{outline:2px solid rgba(63,112,154,.22);outline-offset:-2px}
.ft-global-calendar{z-index:1900!important;width:348px;max-width:calc(100vw - 16px)}
.ft-calendar-kw-label{height:30px;display:flex;align-items:center;justify-content:center;font-size:.72rem;color:#567084;border-right:1px solid #e1e7ec}
.ft-global-calendar .ft-calendar-day:disabled{opacity:.32;cursor:not-allowed;background:#fafafa!important}
.ft-global-calendar .ft-calendar-foot{gap:6px}
.booking-filter-grid .ft-date-input-wrap,.manual-booking-grid .ft-date-input-wrap,.holiday-form .ft-date-input-wrap,.rebook-date-field .ft-date-input-wrap{margin-top:3px}
@media(max-width:520px){.ft-global-calendar{left:8px!important;width:calc(100vw - 16px)}}

/* v29 – Verwaltung > Export / Import */
.export-period-form{grid-template-columns:180px 180px auto;align-items:end;max-width:680px}
.export-import-metrics{margin:.8rem 0}.export-import-metrics .metric{min-width:150px}
.inline-notice{margin:.7rem 0}.export-import-secondary{margin-top:.8rem}
.page-intro{margin-top:-.35rem;color:var(--muted)}
@media(max-width:700px){.export-period-form{grid-template-columns:1fr}.export-import-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v30 – kontrollierter FastTime-Import */
.fasttime-preview-metrics{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}
.import-details{margin:.8rem 0;border:1px solid #d7dee6;border-radius:.55rem;padding:.55rem .7rem;background:#fff}
.import-details summary{cursor:pointer;font-weight:600}
.import-details .table-wrap{margin-top:.6rem}
.fasttime-preview-table td:last-child{min-width:240px;white-space:normal}
.import-decision-actions{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}
.import-decision-actions form{margin:0}
.fasttime-decision-panel{margin-top:1rem}
@media(max-width:700px){.fasttime-preview-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.fasttime-preview-table{min-width:900px}}

/* v35 – FrontTime Datensicherung als zentrale Betriebsfunktion */
.fronttime-backup-panel{border-width:2px}
.fronttime-backup-metrics{grid-template-columns:repeat(4,minmax(120px,1fr))}
.fronttime-backup-actions{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}
.migration-panel>summary{font-size:1rem;cursor:pointer}
.migration-log-heading{margin-top:1.4rem}
@media(max-width:700px){.fronttime-backup-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* FrontTime v41 - Startseite/Mitarbeiter/Zeitkonto UI */
.employee-toolbar-actions .employee-toolbar-primary,
.employee-toolbar-actions .employee-toolbar-secondary{
  width:160px;min-width:160px;height:38px;box-sizing:border-box;
  display:inline-flex;align-items:center;justify-content:center;text-align:center;
}
.employee-toolbar-actions .employee-toolbar-primary{font-weight:700}
.employee-toolbar-actions .employee-toolbar-secondary{
  background:#f7f9fa;border-color:#aebbc6;color:#354d5f;font-weight:600;
}
.internal-overview-dialog[open]{
  position:fixed!important;inset:auto!important;top:50%!important;left:50%!important;
  transform:translate(-50%,-50%)!important;margin:0!important;
}
@media(max-width:760px){
  .employee-toolbar-actions{align-items:stretch;flex-direction:column}
  .employee-toolbar-actions .employee-toolbar-primary,
  .employee-toolbar-actions .employee-toolbar-secondary{width:100%;min-width:0}
}

/* FrontTime v43 - Datensicherung klar getrennt */
.fronttime-backup-panel{border-width:1px}
.fronttime-backup-heading{margin-bottom:.9rem}
.fronttime-backup-heading h2{margin-bottom:.2rem}
.fronttime-backup-heading p{margin:.2rem 0 0}
.fronttime-backup-sections{display:grid;grid-template-columns:1fr;gap:1.15rem}
.fronttime-backup-card{border:1px solid #cbd7e0;border-radius:.7rem;background:#fff;padding:1rem 1.05rem}
.fronttime-backup-create-card{box-shadow:0 1px 3px rgba(20,45,70,.05)}
.fronttime-restore-card{background:#fafcfd;border-color:#d5dde3}
.fronttime-backup-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.7rem}
.fronttime-backup-card-head h3{margin:0 0 .25rem;font-size:1rem;color:#263f52}
.fronttime-backup-card-head p{margin:0;line-height:1.45}
.fronttime-backup-card .fronttime-backup-metrics{margin:.75rem 0 .85rem}
.fronttime-backup-card .fronttime-backup-actions{margin:0}
.fronttime-restore-form{margin:0;gap:.65rem}
.fronttime-restore-form label{margin:0}
.fronttime-restore-form input[type=file]{display:block;width:100%;box-sizing:border-box;margin-top:.4rem}
.fronttime-restore-form .form-actions{margin-top:.1rem}
.fronttime-backup-notes{margin-top:1rem;padding-top:.85rem;border-top:1px solid #e2e8ec}
.fronttime-backup-notes>p{margin-top:0}
@media(max-width:700px){
  .fronttime-backup-card{padding:.85rem}
  .fronttime-backup-sections{gap:.9rem}
}

/* 2026-09-13 v47 – Zeitregime gesammelt speichern */
.regime-day-table-central-save th:nth-child(1){width:34%}
.regime-day-table-central-save th:nth-child(2),
.regime-day-table-central-save th:nth-child(3){width:23%}
.regime-day-table-central-save th:nth-child(4){width:20%}
.regime-pause-toggle-central{display:flex;align-items:center;gap:.35rem;margin:0;font-size:.72rem;font-weight:400;white-space:nowrap}
.regime-pause-toggle-central input{margin:0}
.regime-rule-row-central{grid-template-columns:50px 215px 138px 138px 80px 138px 138px minmax(8px,1fr)}
.regime-central-actions{position:sticky;bottom:0;z-index:5;display:flex;justify-content:flex-end;align-items:center;gap:.5rem;padding:.5rem .55rem;margin-top:.25rem;border-top:1px solid var(--line);background:rgba(248,250,252,.97)}
.regime-central-actions .button-link,.regime-central-actions button{min-width:105px;height:34px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}
@media(max-width:1050px){.regime-rule-row-central{grid-template-columns:48px 190px repeat(5,minmax(105px,1fr)) minmax(8px,1fr)}}


/* 2026-09-14 v59: Mitarbeiter-App / Terminal – Wochen- und Monatsstand bis gestern */
.terminal-page { padding-bottom: 2.1rem; }
.terminal-period-stand {
  position: fixed;
  left: 0;
  right: 0;
  bottom: max(.3rem, env(safe-area-inset-bottom));
  z-index: 25;
  display: flex;
  justify-content: center;
  gap: 1.15rem;
  color: #7c8791;
  font-size: .76rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: .01em;
  pointer-events: none;
}

/* 2026-09-14 v60: Gemeinsames Terminal – Abschluss nach Buchungsaktion */
.terminal-finish-screen {
  width: min(760px, 100%);
  min-height: calc(100dvh - 58px - 5.3rem);
  margin: 0 auto;
  display: grid;
  grid-template-rows: 1fr auto;
  gap: 1rem;
  align-items: center;
}
.terminal-finish-last-booking {
  width: 100%;
  align-self: center;
  display: grid;
  gap: .5rem;
  padding: clamp(1.2rem, 4vw, 2rem);
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  text-align: center;
  box-shadow: 0 5px 18px rgba(20, 43, 64, .06);
}
.terminal-finish-kicker {
  color: #66727d;
  font-size: .84rem;
  font-weight: 600;
  letter-spacing: .03em;
}
.terminal-finish-last-booking strong {
  font-size: clamp(1.55rem, 5vw, 2.2rem);
  line-height: 1.12;
}
.terminal-finish-last-booking > span {
  font-size: clamp(1rem, 3.2vw, 1.25rem);
}
.terminal-finish-time {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: .15rem;
  color: #596570;
  font-size: 1rem;
}
.terminal-finish-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .8rem;
  width: 100%;
}
.terminal-finish-actions form { margin: 0; }
.terminal-finish-actions button {
  width: 100%;
  min-height: 74px;
  font-size: clamp(1.15rem, 3.6vw, 1.5rem);
  font-weight: 700;
}
.terminal-cancel-button {
  border: 1px solid #9ba7b1;
  background: #fff;
  color: #263746;
  border-radius: 8px;
}
@media (max-width: 560px) {
  .terminal-finish-screen { min-height: calc(100dvh - 58px - 4.8rem); }
  .terminal-finish-actions { grid-template-columns: 1fr; }
  .terminal-finish-actions button { min-height: 64px; }
}


/* 2026-09-14 v67: einheitliche Karten fuer Zeit, Mandant, Benutzer und Abmelden */
.topbar-actions { gap:.38rem; }
.topbar-actions form { margin:0; }
.header-card {
  display:flex; align-items:center; justify-content:center; min-width:0;
  padding:.45rem .65rem; border:1px solid rgba(255,255,255,.38);
  border-radius:7px; background:rgba(255,255,255,.08); color:#fff;
  font:inherit; font-weight:400; line-height:1.15; white-space:nowrap;
  text-decoration:none; box-shadow:none;
}
.header-card-full { display:inline; }
.header-card-compact { display:none; }
.header-card-form { display:flex; margin:0; }
button.header-card-action {
  width:auto; margin:0; cursor:pointer; font-weight:400;
}
button.header-card-action:hover { background:rgba(255,255,255,.14); filter:none; }
.server-clock {
  font-variant-numeric:tabular-nums; letter-spacing:0;
}
.server-clock-full,.server-clock-time { font-weight:400; letter-spacing:0; }
.server-clock-time { display:none; }
.server-clock-stale { opacity:.64; }
.server-clock-stale::after { content:"•"; opacity:.75; margin-left:.2rem; }
.server-clock-compact .server-clock-full { display:none; }
.server-clock-compact .server-clock-time { display:inline; }
@media (max-width: 1120px) {
  .header-session-card .header-card-full { display:none; }
  .header-session-card .header-card-compact { display:inline; }
}
@media (max-width: 930px) {
  .server-clock-admin .server-clock-full { display:none; }
  .server-clock-admin .server-clock-time { display:inline; }
}
@media (max-width: 600px) {
  .header-card { padding:.42rem .55rem; }
  .server-clock-full { display:none!important; }
  .server-clock-time { display:inline!important; }
}


/* 2026-09-14 v68: Kopf sauber in Navigation links und Infokarten rechts gruppieren */
.topbar-inner {
  column-gap: 1rem;
}
.topbar-main {
  flex: 1 1 auto;
  min-width: 0;
}
.top-admin-nav,
.topbar-actions {
  gap: .42rem;
}
.topbar-actions {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  margin-left: auto;
  flex-wrap: nowrap;
}
.top-admin-nav > a,
.top-manage > summary,
.header-card {
  box-sizing: border-box;
  min-height: 35px;
  align-items: center;
}
.top-admin-nav > a,
.top-manage > summary {
  display: flex;
}
.header-card-form {
  align-items: stretch;
}
button.header-card-action {
  min-height: 35px;
}
@media (max-width: 1050px) {
  .topbar-inner { column-gap: .65rem; }
}


/* 2026-09-14 v69: Uhrzeit ohne Datum + zweizeiliger Mitarbeiterkopf auf Mobilgeraeten */
.server-clock-full { display:none !important; }
.server-clock-time { display:inline !important; }

@media (max-width: 600px) {
  /* Mitarbeiter/Terminal: zwei feste Kopfzeilen statt zusammengedrueckter Karten. */
  .topbar-inner.topbar-employee {
    display:grid;
    grid-template-columns:auto minmax(88px,1fr) auto;
    grid-template-areas:
      "brand clock logout"
      "tenant user user";
    gap:.42rem;
    width:100%;
    align-items:stretch;
  }
  .topbar-inner.topbar-employee > .topbar-main,
  .topbar-inner.topbar-employee > .topbar-actions {
    display:contents;
  }
  .topbar-inner.topbar-employee .brand {
    grid-area:brand;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:35px;
    padding:.42rem .62rem;
  }
  .topbar-inner.topbar-employee .server-clock {
    grid-area:clock;
    min-width:88px;
    padding:.42rem .5rem;
  }
  .topbar-inner.topbar-employee .header-tenant-card {
    grid-area:tenant;
    min-width:0;
  }
  .topbar-inner.topbar-employee .header-user-card {
    grid-area:user;
    min-width:0;
    overflow:hidden;
  }
  .topbar-inner.topbar-employee .header-user-card .header-card-full {
    display:block;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .topbar-inner.topbar-employee .header-tenant-card .header-card-full {
    display:inline;
  }
  .topbar-inner.topbar-employee .header-tenant-card .header-card-compact,
  .topbar-inner.topbar-employee .header-user-card .header-card-compact {
    display:none;
  }
  .topbar-inner.topbar-employee .header-logout-form {
    grid-area:logout;
    min-width:0;
  }
  .topbar-inner.topbar-employee .header-logout-form .header-card-action {
    width:100%;
    height:100%;
  }
  .topbar-inner.topbar-employee .header-card {
    min-height:35px;
    font-size:inherit;
    font-weight:400;
  }
}
.week-chart-head.week-day-open {
  appearance: none;
  width: 100%;
  border: 0;
  border-radius: 0;
  background: inherit;
  color: inherit;
  font: inherit;
  cursor: pointer;
}
.week-chart-head.week-day-open:hover,
.week-chart-head.week-day-open:focus-visible {
  background: #dcebf7;
  box-shadow: inset 0 -3px 0 #0d4777;
  outline: none;
}
.reports-day-modal { background:transparent; pointer-events:none; padding:14px; }
.reports-day-modal-dialog { width:min(1000px, calc(100vw - 28px)); height:min(560px, calc(100vh - 28px)); pointer-events:auto; will-change:transform; box-shadow:0 16px 42px rgba(15,23,42,.24); }
.reports-day-modal-dialog .regime-modal-bar { cursor: move; touch-action: none; user-select: none; background:#0d4777; color:#fff; }
.reports-day-modal-dialog .regime-modal-close { color:#fff; }
.reports-day-modal-dialog.is-dragging { box-shadow:0 24px 60px rgba(15,23,42,.3); }
.reports-day-modal-frame { width: 100%; height: 100%; min-height: 0; border: 0; background: #f4f7fa; }
body.embedded-view { background: #f4f7fa; }
body.embedded-view .page { max-width: none; padding: 12px; }
.day-bookings-embedded-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 8px; padding:7px 10px; border:1px solid #cbd8e3; border-radius:8px; background:#fff; }
.day-bookings-embedded-head .primary { height:32px; padding:.32rem .7rem; white-space:nowrap; }
.day-manual-booking-panel { margin:0 0 8px; padding:9px 10px; }
.week-print-dialog{position:fixed;left:50%;top:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);margin:0;width:min(520px,calc(100vw - 28px));max-height:85vh;overflow:hidden;padding:18px;border:1px solid #bdccd7;border-radius:10px;background:#fff}
.week-print-dialog::backdrop{background:rgba(13,31,45,.42)}
.week-print-head,.week-print-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}
.week-print-head h2{margin:0;font-size:1.15rem}
.week-print-mode{display:grid;gap:10px;margin:16px 0}
.week-print-dialog .reports-employee-picker{max-height:none;overflow:hidden;min-height:0}
.week-print-dialog .reports-employee-checks{max-height:46vh;overflow-y:auto;overscroll-behavior:contain;padding-right:4px}
.week-print-actions{justify-content:flex-end;flex-wrap:wrap;margin-top:16px}
.day-manual-booking-grid { grid-template-columns:minmax(220px,1.6fr) minmax(130px,.8fr) minmax(220px,1.25fr) 160px auto; gap:8px; align-items:end; }
.day-manual-booking-grid label { margin:0; font-size:.72rem; }
.day-manual-booking-grid input,.day-manual-booking-grid select { height:34px; margin-top:3px; }
.day-booking-target input[type="search"] { min-width:0; width:100%; }
.day-booking-scope select { min-width:0; width:100%; }
.day-single-booking-times { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.day-single-booking-times[hidden] { display:none; }
.day-manual-booking-actions { display:flex; align-items:center; gap:6px; min-width:0; }
.day-manual-booking-actions .primary { padding-left:.65rem; padding-right:.65rem; white-space:nowrap; }
.day-manual-booking-close { flex:0 0 34px; width:34px; min-width:34px; height:34px; padding:0; font-size:1.15rem; line-height:1; }
.day-bookings-embedded-head small { color:#52687a; }
body.embedded-view #overlap-work { margin:0; }
.booking-review-button{cursor:pointer;border:0;font:inherit;font-size:.75rem;white-space:nowrap}
.booking-review-button:focus-visible{outline:2px solid #1769a6;outline-offset:2px}
.booking-review-dialog{position:fixed;left:50%;top:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);margin:0;width:min(520px,calc(100vw - 32px));max-height:80dvh;overflow:auto;padding:18px;border:1px solid #bdccd7;border-radius:10px;background:#fff;color:#17364e}
.booking-review-dialog::backdrop{background:rgba(13,31,45,.35)}
.booking-review-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.booking-review-dialog-head h2{margin:0;font-size:1.1rem}
.booking-review-dialog [data-review-text]{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}
body.embedded-view .page.day-bookings-page{height:100dvh;box-sizing:border-box;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.day-bookings-page>.day-bookings-embedded-head,.day-bookings-page>.day-manual-booking-panel{flex:0 0 auto}
.day-bookings-page>#overlap-work{flex:1 1 0;min-height:0;max-height:none!important;display:flex;flex-direction:column}
.day-bookings-page>#overlap-work>.table-wrap{flex:1 1 0;min-height:0;height:auto!important;max-height:none!important;overflow-y:auto!important}

@media (max-width: 760px) {
  .reports-day-modal-dialog { width: 100vw; height: 100vh; max-width: none; max-height: none; border-radius: 0; }
  .reports-day-modal { padding:0; }
  .reports-day-modal-dialog .regime-modal-bar { cursor:default; }
  .day-manual-booking-grid { grid-template-columns:1fr; }
}


/* 2026-09-18 v0.75.26 – Wochenansicht kompakter, Live-Soll und App-Zeitstand */
.reports-page .reports-filter-panel{margin-top:0}
.reports-print-slot{gap:.55rem;justify-content:flex-end}
.reports-print-slot>.reports-status-inline{white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}
.reports-due-hint{display:block;margin-top:.1rem;color:var(--muted);font-size:.68rem;white-space:nowrap}
.terminal-period-stand{
  left:50%;right:auto;transform:translateX(-50%);bottom:max(.3rem,env(safe-area-inset-bottom));
  width:min(680px,calc(100% - 1rem));display:grid;grid-template-columns:1fr 1fr;gap:.4rem;
  color:#52616d;font-size:.72rem;pointer-events:none;
}
.terminal-period-row{
  display:grid;grid-template-columns:auto repeat(3,auto);align-items:center;justify-content:center;gap:.5rem;
  padding:.28rem .5rem;border:1px solid rgba(180,193,204,.72);border-radius:7px;background:rgba(255,255,255,.94);
  box-shadow:0 2px 7px rgba(25,45,60,.06);font-variant-numeric:tabular-nums;
}
.terminal-period-row strong{color:#334b5e;font-size:.72rem}
.terminal-period-balance{font-weight:700;color:#334b5e}
.terminal-period-balance.positive{color:#246a40}.terminal-period-balance.negative{color:#9e3129}
@media(max-width:620px){
  .reports-print-slot{justify-content:flex-start;flex-wrap:wrap}
  .terminal-period-stand{grid-template-columns:1fr;gap:.22rem;font-size:.68rem}
  .terminal-period-row{grid-template-columns:48px repeat(3,auto);gap:.36rem;padding:.22rem .4rem}
}

/* 2026-09-18 Wochenansicht: Überschneidung als kompakte Unteransicht im Tagesfenster. */
.day-overlap-embedded-head{margin-bottom:6px;background:#f8fafc}
.day-overlap-embedded-head small{font-size:.8rem}
.day-overlap-back{height:30px;padding:.25rem .6rem;white-space:nowrap}

/* 2026-09-20 v0.75.33 – Zeitkonto-Druckmenü und Monatsliste */
.time-account-filter-row-v21{
  grid-template-columns:6.4rem 11.5rem 11.5rem 6.2rem minmax(10rem,1fr);
  width:100%;
}
.time-account-print-slot{grid-column:5;display:flex;align-items:flex-end;justify-content:flex-end;justify-self:stretch;width:100%;min-width:0}
.time-account-print-slot .reports-print-menu{margin-left:auto}
.time-account-print-slot .reports-print-button{
  box-sizing:border-box;height:32px!important;min-height:32px!important;
  padding:.28rem .65rem!important;font-size:.80rem!important;line-height:1.15;
}
.time-account-print-slot .reports-print-dropdown{min-width:155px}
.time-account-monthly-dialog[open]{display:flex;flex-direction:column}
.time-account-monthly-dialog .week-print-head{flex:0 0 auto}
.time-account-monthly-dialog .week-print-head p{margin:.2rem 0 0}
.time-account-month-select{display:grid;grid-template-columns:7rem minmax(10rem,14rem);align-items:center;gap:.6rem;flex:0 0 auto;margin:14px 0 10px;font-size:.82rem}
.time-account-month-select select{
  box-sizing:border-box;height:36px;min-height:36px!important;margin:0;
  padding:5px 32px 5px 10px!important;line-height:24px!important;font-size:.86rem;
  appearance:auto!important;-webkit-appearance:menulist!important;
}
.time-account-monthly-picker{display:flex!important;flex-direction:column;flex:1 1 auto;min-height:0!important;overflow:hidden!important}
.time-account-monthly-picker .reports-select-all{flex:0 0 auto}
.time-account-monthly-picker .reports-employee-checks{display:grid;grid-template-columns:1fr 1fr!important;max-height:46vh;overflow-y:auto;overscroll-behavior:contain;padding-right:4px}
.time-account-monthly-dialog .week-print-actions{flex:0 0 auto}
@media(max-width:760px){
  .time-account-filter-row-v21{grid-template-columns:1fr}
  .time-account-print-slot{grid-column:1;justify-content:flex-start}
  .time-account-print-slot .reports-print-menu{margin-left:0}
  .time-account-month-select{grid-template-columns:1fr}
  .time-account-monthly-picker .reports-employee-checks{grid-template-columns:1fr!important}
}
