/* BF Dienstplan: focused planning workspace, isolated design preview. */
:root{--bf-action:#a9430b;--bf-orange:#f57921;--bf-orange-soft:#fff0e5;--ink:#253238;--muted:#52616b;--paper:#f4f6f8;--line:#dce3e7;--bf-positive:#24624a;--bf-warning:#a33c29;--bf-header:66px}
html{scroll-padding-top:112px}body{color:var(--ink);font-size:14px;background:var(--paper)}
body:has(.topbar){padding-top:0!important}
button,input,select,textarea{font-size:14px}button,a,input,summary{touch-action:manipulation}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--bf-action)!important;outline-offset:3px!important}
.primary,.ec-primary{background:var(--bf-action)!important;border-color:var(--bf-action)!important;color:#fff!important}
.primary:hover,.ec-primary:hover{background:#873405!important}.secondary:hover{background:#f0f3f5}
.staging-notice{background:#253238!important;font-size:11px!important;letter-spacing:.015em!important}
body:has(.topbar) #root>main{padding:calc(30px + var(--bf-header) + 16px) 24px 20px!important;height:100dvh!important;box-sizing:border-box;min-width:0}
.topbar{top:30px!important;bottom:auto!important;min-height:var(--bf-header)!important;height:var(--bf-header)!important;padding:0 20px!important;background:#fff!important;backdrop-filter:none!important;box-sizing:border-box}
.topbar .brand{width:122px!important;height:54px!important}
.topbar .brand .brand-logo{width:110px!important;max-height:44px!important}
.topbar .desktop-nav{gap:2px!important;margin:0 16px!important}
.topbar .desktop-nav button{flex-direction:row!important;gap:7px!important;min-height:44px!important;min-width:0!important;padding:8px!important;border-radius:7px!important;font-size:13px!important}
.topbar .desktop-nav button svg{width:17px;height:17px;flex:none}
.topbar .desktop-nav button span{font-size:12px!important;font-weight:600}
.topbar .desktop-nav button.active{color:var(--bf-action)!important;background:var(--bf-orange-soft)!important}
.topbar .header-actions{flex:none!important}
.topbar .profile-trigger{min-height:44px!important;gap:8px!important;padding:4px!important;max-width:185px}
.topbar .profile-trigger .avatar{width:32px!important;height:32px!important;font-size:12px!important;flex:none}
.topbar .profile{display:block!important;font-size:12px!important;text-align:left;max-width:125px;overflow:hidden;text-overflow:ellipsis}
.topbar .profile small{font-size:10px!important;text-transform:none!important;letter-spacing:0!important;color:var(--muted)!important}
.page-head{padding:4px 0 16px!important;gap:16px!important;align-items:center!important}
.page-head h1,.ec-head h1{font-size:25px!important;line-height:1.25!important;font-weight:650!important;letter-spacing:-.6px!important;margin:0!important}
.page-head p:not(.eyebrow){font-size:14px!important;line-height:1.5!important;color:var(--muted)!important;margin:5px 0 0!important;max-width:78ch}
.page-head .eyebrow{display:none!important}
.page-head .primary{min-height:44px;padding:11px 16px!important;font-size:13px!important;border-radius:8px!important}
.bf-overview-page{max-width:1600px;margin:0 auto}
.bf-status-strip{display:flex;align-items:stretch;flex-wrap:wrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:2px 0 20px;background:#fff}
.bf-status-strip article{display:flex;align-items:center;gap:9px;padding:15px 20px;flex:1 1 220px;min-width:0;border-right:1px solid var(--line);color:var(--muted)}
.bf-status-strip article:last-child{border-right:0}.bf-status-strip article b{font-size:23px;font-weight:650;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1}
.bf-status-strip article span{font-size:13px;line-height:1.3}
.bf-status-strip article svg{color:#6c7a83;flex:none}.bf-status-strip article.has-open-items b,.bf-status-strip article.has-open-items svg{color:var(--bf-warning)}
.bf-status-strip article:first-child{border-left:3px solid var(--bf-orange)}
.dashboard-grid.bf-design-dashboard{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:16px!important;padding:0!important;margin:0!important}
.bf-design-dashboard .attention-panel{grid-column:auto!important;background:#fff;box-shadow:none!important;border:1px solid var(--line)!important;border-radius:10px!important;max-height:440px!important;min-width:0;overflow:hidden}
.bf-design-dashboard .attention-panel.bf-priority-panel{grid-column:1/-1!important;border-top:3px solid var(--bf-positive)!important}
.bf-design-dashboard .attention-panel.bf-priority-panel.bf-panel-open{border-top-color:var(--bf-warning)!important}
.bf-design-dashboard .attention-panel>header{padding:15px 18px!important;gap:12px!important;min-height:0!important;border-bottom:1px solid #edf0f2}
.bf-design-dashboard .attention-panel h2{font-size:17px!important;font-weight:650!important;line-height:1.3!important;margin:0!important;letter-spacing:-.25px}
.bf-design-dashboard .attention-panel .eyebrow{display:none}
.bf-design-dashboard .attention-panel>header>span{font-size:12px!important;font-weight:600;line-height:1.3;padding:5px 9px!important;border-radius:5px!important;color:var(--bf-warning);background:#fcece7;white-space:nowrap}
.bf-design-dashboard .bf-panel-empty>header>span{background:#eef2f3!important;color:var(--muted)!important}
.bf-design-dashboard .all-good{padding:17px 18px!important;min-height:0!important;font-size:14px!important;line-height:1.5;text-align:left!important;color:var(--muted)!important}
.bf-design-dashboard .bf-priority-panel.bf-panel-empty .all-good{color:var(--bf-positive)!important}
.bf-design-dashboard .attention-list{max-height:320px!important;overflow:auto}
.bf-design-dashboard .attention-list>button{padding:12px 18px!important;min-height:52px}
.bf-design-dashboard .attention-list b{font-size:14px!important}.bf-design-dashboard .attention-list small{font-size:12px!important;color:var(--muted)!important;line-height:1.5}
.bf-system-details{margin-top:22px;border-top:1px solid var(--line)}
.bf-system-details>summary{cursor:pointer;min-height:48px;box-sizing:border-box;padding:15px 3px;color:var(--muted);font-size:13px;font-weight:600}
.bf-system-content{display:grid;grid-template-columns:1fr;gap:12px;padding:0 0 16px}
.bf-system-content .bf-backup-status,.bf-system-content .pwa-setup-card{margin:0!important;box-shadow:none!important;border-radius:8px!important;background:#fff!important}
.bf-system-content .pwa-icon{width:52px!important;height:52px!important;object-fit:contain}
.bf-system-content .eyebrow{display:none}.bf-system-content h2{font-size:16px!important}
/* A bounded weekly grid, with controls outside its scrolling surface. */
body:has(.bf-plan-workspace) #root>main{display:flex;flex-direction:column;overflow:hidden!important;min-height:0}
main:has(.bf-plan-workspace)>.topbar{flex:none}
main:has(.bf-plan-workspace)>.page-head,main:has(.bf-plan-workspace)>.toolbar,main:has(.bf-plan-workspace)>.legend{flex:none}
.toolbar.desktop-plan-only{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:7px!important;height:auto!important;min-height:50px!important;padding:8px 10px!important;border:1px solid var(--line);border-radius:9px!important;background:#fff!important;margin:0!important}
.toolbar button{min-height:40px!important;padding:8px 11px!important;border-radius:6px!important;font-size:12px!important;flex:none}
.toolbar strong{font-size:15px!important;font-weight:650;line-height:1.35;margin-left:5px}
.toolbar .week-view{display:none}.toolbar>span:empty{flex:1}
.bf-plan-workspace{display:flex!important;flex-direction:column;flex:1;min-height:0;min-width:0;margin-top:10px}
.bf-area-filters{display:flex;gap:7px;flex-wrap:wrap;align-items:center;flex:none;padding:0 0 10px}
.bf-area-filters button{min-height:40px;padding:8px 13px;background:#fff;border:1px solid #cbd5db;border-radius:7px;color:var(--muted);font-size:13px;font-weight:550;white-space:nowrap;line-height:1.3}
.bf-area-filters button[aria-pressed=true]{color:var(--bf-action);border-color:var(--bf-action);background:var(--bf-orange-soft);font-weight:650}
.bf-area-filters button:hover{border-color:var(--bf-action)}
.bf-plan-workspace .schedule-wrap{flex:1;min-height:0;max-height:none!important;width:100%;overflow:auto!important;border:1px solid var(--line);border-radius:9px!important;scroll-padding-top:55px;scroll-padding-left:190px;overscroll-behavior:contain}
.bf-plan-workspace .schedule{grid-template-columns:190px repeat(7,minmax(116px,1fr))!important;min-width:1002px!important;background:#fff}
.bf-plan-workspace .corner,.bf-plan-workspace .day-head{height:54px!important;min-height:54px!important;box-sizing:border-box;position:sticky!important;top:0!important;background:#f4f6f8!important;border-bottom:1px solid #ccd6dc}
.bf-plan-workspace .day-head b{font-size:14px!important}.bf-plan-workspace .day-head span{font-size:12px!important;color:var(--muted)}
.bf-plan-workspace .day-head.today-col{background:#fff0e5!important}
.bf-plan-workspace .corner small{font-size:12px!important;letter-spacing:0!important;color:var(--muted)}
.bf-plan-workspace .corner b{font-size:12px!important}
.bf-plan-workspace .employee-cell,.bf-plan-workspace .day-cell{min-height:62px!important;height:auto!important;box-sizing:border-box}
.bf-plan-workspace .employee-cell{padding:8px 10px!important}
.bf-plan-workspace .employee-cell b{font-size:13px!important;font-weight:650!important}
.bf-plan-workspace .employee-cell small{font-size:11px!important;color:var(--muted)!important}
.bf-plan-workspace .employee-cell .hours{font-size:12px!important;font-variant-numeric:tabular-nums}
.bf-plan-workspace .employee-cell .person{width:30px!important;height:30px!important;font-size:10px!important;flex:none}
.bf-plan-workspace .day-cell{padding:5px!important}
.bf-plan-workspace .shift{min-height:46px!important;padding:7px 8px!important;border-radius:6px!important;border-left-width:3px!important}
.bf-plan-workspace .shift b{font-size:12px!important;line-height:1.3;white-space:nowrap;font-variant-numeric:tabular-nums}
.bf-plan-workspace .shift small{font-size:11px!important;color:var(--muted)!important;line-height:1.3}
.bf-plan-workspace .off,.bf-plan-workspace .absence{min-height:46px!important;font-size:12px!important}
.bf-plan-workspace .off small,.bf-plan-workspace .absence small{font-size:11px!important}
.bf-plan-workspace .add-shift{min-width:44px;min-height:44px}
.bf-plan-workspace .area-divider{padding:0!important;background:#eaf0f3!important;min-height:44px!important;grid-column:1/-1}
.bf-area-toggle{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:9px 13px;background:transparent;border:0!important;border-radius:0!important;text-align:left;color:var(--ink)}
.bf-area-toggle strong{font-size:14px;font-weight:650}.bf-area-toggle>i{width:4px;height:20px;border-radius:2px;flex:none}
.bf-area-toggle .bf-design-icon{transform:rotate(-90deg)}.bf-area-toggle .bf-design-icon.expanded{transform:none}
.bf-area-count{margin-left:auto;color:var(--muted);font-size:12px;font-weight:400}
.bf-plan-workspace .area-stats{display:flex!important;gap:18px;align-items:center;flex-wrap:wrap;min-height:0!important;height:auto!important;padding:8px 14px!important;background:#f8fafb!important;grid-column:1/-1}
.bf-plan-workspace .area-stats>div{display:flex!important;align-items:baseline;gap:6px!important;padding:0!important;border:0!important;min-width:0!important;background:transparent!important}
.bf-plan-workspace .area-stats>div>i{display:none!important}
.bf-plan-workspace .area-stats>div>span{display:flex!important;align-items:baseline;gap:5px}
.bf-plan-workspace .area-stats b{font-size:13px!important;font-weight:650!important;white-space:nowrap}
.bf-plan-workspace .area-stats small{font-size:11px!important;color:var(--muted)!important;margin:0!important}
.bf-plan-workspace .area-stats .tour-coverage{margin-left:auto!important}
.bf-palette-details{grid-column:1/-1;background:#fafbfc;border-bottom:1px solid var(--line)}
.bf-palette-details>summary{cursor:pointer;padding:10px 15px;min-height:40px;box-sizing:border-box;font-size:12px;font-weight:600;color:var(--muted)}
.bf-palette-details .shift-palette{padding:10px 14px!important;min-height:0!important;flex-wrap:wrap;gap:8px;background:transparent!important}
.bf-palette-details .shift-palette>button{min-height:44px!important;font-size:12px!important}
.legend{padding:9px 2px 0!important;font-size:12px!important;line-height:1.4;flex:none}
/* Keep the established people/detail workspace, with clearer readable controls. */
body.bf-time-page #root>main{padding:calc(30px + var(--bf-header)) 0 0!important}
.bf-time-workspace{font-size:14px}.bf-time-sidebar{padding-top:18px!important}
.bf-time-person-detail b{font-size:13px!important}.bf-time-person-detail small,.bf-time-person-detail em{font-size:11px!important;color:var(--muted)!important}
.bf-time-employee-list>button{min-height:64px!important;padding:9px 8px!important}
.bf-time-toolbar>.time-subnav button{min-height:44px!important;color:var(--muted)}
.bf-time-toolbar>.time-subnav button.active{color:var(--bf-action)!important}
.bf-time-content .time-report-kpis article{padding:12px 15px!important;min-height:70px!important}
.bf-time-content .time-report-kpis b{font-size:22px!important}.bf-time-content .time-report-kpis small{font-size:12px!important;color:var(--muted)!important}
.bf-time-controls :is(button,a),.bf-time-controls .time-month-switch input{min-height:40px!important;height:40px!important}
.bf-time-content .time-session-list>article{min-height:56px!important}.bf-time-content .eyebrow{display:none}
@media(min-width:1101px){
 body:has(.bf-plan-workspace) #root>main{display:grid;grid-template-columns:180px minmax(0,1fr);grid-template-rows:56px 40px minmax(0,1fr) 24px;gap:0 16px}
 main:has(.bf-plan-workspace)>.page-head{grid-column:1;grid-row:1;padding:0!important;align-self:center}
 main:has(.bf-plan-workspace)>.page-head p{display:none!important}
 main:has(.bf-plan-workspace)>.toolbar{grid-column:2;grid-row:1;align-self:center}
 main:has(.bf-plan-workspace)>.stats{grid-column:1/-1;grid-row:2;align-self:center}
 main:has(.bf-plan-workspace)>.bf-plan-workspace{grid-column:1/-1;grid-row:3}
 main:has(.bf-plan-workspace)>.legend{grid-column:1/-1;grid-row:4}
}
main:has(.bf-plan-workspace)>.stats{display:flex!important;align-items:center;gap:24px!important;margin:0!important;padding:4px 2px!important;min-height:0!important;flex:none;background:transparent!important;border:0!important}
main:has(.bf-plan-workspace)>.stats article{display:flex!important;align-items:center!important;gap:8px!important;min-height:0!important;padding:0!important;flex:1;min-width:0;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
main:has(.bf-plan-workspace)>.stats article>.stat-icon,main:has(.bf-plan-workspace)>.stats article>em{display:none!important}
main:has(.bf-plan-workspace)>.stats article>div{display:flex;align-items:baseline;gap:6px;min-width:0}
main:has(.bf-plan-workspace)>.stats b{font-size:16px!important;font-variant-numeric:tabular-nums;white-space:nowrap}
main:has(.bf-plan-workspace)>.stats small{font-size:12px!important;color:var(--muted)!important;line-height:1.3}
main:has(.bf-plan-workspace)>.stats article>button{min-height:28px;padding:4px 8px;font-size:11px;white-space:nowrap}
.bf-area-tools{display:flex;flex-wrap:wrap;align-items:center;grid-column:1/-1;background:#f8fafb;border-bottom:1px solid var(--line);min-width:0}
.bf-area-tools .area-stats{flex:1;border:0!important}
.bf-area-tools .bf-palette-details{flex:none;border-bottom:0;border-left:1px solid var(--line);background:transparent}
.bf-area-tools .bf-palette-details[open]{flex:1 1 100%;border-left:0;border-top:1px solid var(--line)}
.bf-plan-workspace .employee-cell .person{display:none!important}
.bf-plan-workspace .employee-cell{gap:8px!important}
.bf-toolbar-options{display:flex;gap:7px;align-items:center;margin-left:auto}
.bf-design-toolbar strong{margin-right:auto}
.bf-toolbar-options .filter{display:inline-flex!important}
@media(max-width:1100px){
 .topbar .desktop-nav{display:none!important}.topbar .mobile-menu-toggle{display:grid!important;position:absolute;left:16px;top:11px!important;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:21px}
 .topbar .brand{position:absolute!important;left:50%!important;transform:translateX(-50%);width:122px!important}
 .topbar .header-actions{position:absolute!important;right:16px!important;width:auto!important}
 .topbar.menu-open .desktop-nav{display:flex!important;position:fixed!important;inset:96px auto 0 0!important;width:min(320px,86vw)!important;box-sizing:border-box;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;margin:0!important;padding:16px!important;background:#fff;overflow:auto!important;z-index:42}
 .topbar.menu-open .desktop-nav>button{flex-direction:row!important;justify-content:flex-start!important;min-height:46px!important;padding:12px!important}
 .topbar.menu-open .desktop-nav>button span{font-size:14px!important}
 .side-menu-backdrop{position:fixed;inset:96px 0 0!important;z-index:35}
 .bf-status-strip article{flex-basis:42%;border-bottom:1px solid var(--line)}
}
@media(max-width:900px){
 :root{--bf-header:64px}
 body:has(.topbar) #root>main{padding:110px 14px 20px!important;height:auto!important;min-height:100dvh}
 .topbar{padding-top:0!important}.topbar .header-actions{width:44px!important;right:14px!important}.topbar .profile{display:none!important}
 .topbar .mobile-menu-toggle{left:14px;top:10px!important}.topbar .profile-trigger{padding:3px!important;gap:0!important}
 .page-head{padding:2px 0 16px!important;align-items:flex-start!important;flex-wrap:wrap}
 .page-head h1{font-size:23px!important}.page-head p:not(.eyebrow){font-size:13px!important}
 main:has(.bf-plan-workspace)>.page-head p{display:none!important}
 main:has(.bf-plan-workspace)>.stats{display:grid!important;grid-template-columns:1fr 1fr;gap:7px 12px!important;padding:10px 1px!important}
 main:has(.bf-plan-workspace)>.stats article{gap:5px!important;min-height:24px!important}
 main:has(.bf-plan-workspace)>.stats b{font-size:14px!important}
 main:has(.bf-plan-workspace)>.stats small{font-size:10.5px!important}
 main:has(.bf-plan-workspace)>.stats article>button{min-width:24px;padding:3px;font-size:10px}
 .dashboard-grid.bf-design-dashboard{grid-template-columns:1fr!important;gap:12px!important}
 .bf-status-strip{margin-bottom:16px}.bf-status-strip article{padding:13px 12px;gap:7px}
 .bf-status-strip article b{font-size:22px}.bf-status-strip article span{font-size:12px}.bf-status-strip article svg{display:none}
 .bf-design-dashboard .attention-panel>header{padding:13px 14px!important}.bf-design-dashboard .all-good{padding:14px!important;font-size:13px!important}
 .bf-design-dashboard .attention-panel h2{font-size:16px!important}
 body:has(.bf-plan-workspace) #root>main{height:100dvh!important;min-height:0!important;padding-bottom:12px!important}
 .toolbar.desktop-plan-only{gap:6px!important}.toolbar strong{order:-1;flex-basis:100%;margin:1px 0 4px;font-size:14px!important}
 .bf-toolbar-options{flex:1 1 100%;margin-left:0;flex-wrap:wrap;padding-top:7px;border-top:1px solid var(--line)}
 .bf-options-toggle{margin-left:auto!important}
 .toolbar .repeat{font-size:0!important;min-width:40px!important;padding:7px!important}
 .toolbar .repeat::after{content:'Rhythmus';font-size:12px}
 .toolbar .availability-filter{max-width:155px;white-space:normal;line-height:1.3}
 .bf-area-filters{flex-wrap:nowrap;overflow:auto;padding:0 1px 10px;scrollbar-width:thin}.bf-area-filters button{min-height:44px;padding:9px 12px}
 .bf-plan-workspace .schedule{grid-template-columns:150px repeat(7,minmax(116px,1fr))!important;min-width:962px!important}
 .bf-plan-workspace .schedule-wrap{scroll-padding-left:150px}
 .bf-plan-workspace .employee-cell{padding:8px!important;gap:6px!important;flex-wrap:wrap}
 .bf-plan-workspace .employee-cell .person{display:none!important}.bf-plan-workspace .employee-cell .hours{margin-left:0!important;font-size:11px!important}
 .bf-plan-workspace .area-stats{gap:10px;padding:8px 12px!important}
 .bf-area-tools .bf-palette-details{flex:1 1 100%;border-left:0;border-top:1px solid var(--line)}
 .bf-area-toggle{position:sticky;left:0;max-width:calc(100vw - 28px)}
 .bf-time-menu-shade{inset:94px 0 0!important}.bf-time-workspace .bf-time-sidebar{top:94px!important}
 body.bf-time-page #root>main{padding:94px 0 20px!important}
 .bf-time-controls :is(button,a),.bf-time-controls .time-month-switch input{min-height:44px!important;height:44px!important}
 .bf-time-content{padding:14px!important}.bf-time-controls{flex-wrap:wrap!important}
 .bf-time-content .time-week-actions{display:flex!important;flex-wrap:wrap!important;width:100%;gap:7px!important}
 .bf-time-content .time-week-actions>button{min-height:44px!important}
 .bf-time-content .time-week-actions>.primary{flex:1 1 100%;width:100%;min-width:0}
 .bf-time-content .time-report-kpis article{min-height:76px!important;padding:12px!important}
 .bf-time-content .time-report-kpis article>span{display:none!important}
 .bf-time-content .time-report-kpis b{font-size:18px!important;white-space:nowrap;line-height:1.3}
 .bf-time-content .time-report-kpis small{font-size:11.5px!important}
}
@media(max-width:420px){
 .toolbar button{min-height:44px!important;padding:7px 10px!important}.toolbar .availability-filter{max-width:130px;font-size:11px!important}
 .bf-status-strip article{flex-basis:40%;padding:12px 10px}.bf-status-strip article span{font-size:11px}
 .bf-design-dashboard .attention-panel>header>span{font-size:11px!important;white-space:normal;text-align:right}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{.staging-notice{position:static}.topbar,.bf-area-filters,.bf-palette-details,.bf-system-details{display:none!important}body:has(.topbar) #root>main{padding:0!important;height:auto!important;display:block!important}.bf-plan-workspace,.bf-plan-workspace .schedule-wrap{display:block!important;max-height:none!important;overflow:visible!important}}
.bf-time-break-fields{grid-column:1/-1;min-width:0;margin:8px 0;padding:12px;border:1px solid var(--line);border-radius:8px}.bf-time-break-fields legend{padding:0 4px;font-size:14px;font-weight:600}.bf-time-break-fields p{font-size:12px;color:var(--muted);margin:4px 0 10px}.bf-time-break-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end;margin-bottom:12px}.bf-time-break-row label{min-width:0}.bf-time-break-row input{width:100%;box-sizing:border-box}@media(max-width:500px){.bf-time-break-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.bf-time-break-row>.bf-button{grid-column:1/-1}}
