:root{--ink:#183443;--muted:#526975;--teal:#07596a;--teal-dark:#034352;--blue:#e7f0f5;--line:#cbd9df;--paper:#fff;--canvas:#f3f7f9;--red:#9e2536;--red-bg:#fff0f1;--yellow:#fff6d9;--green:#1c6849;--radius:7px;font-family:"Segoe UI",Calibri,Arial,sans-serif;color:var(--ink);background:var(--canvas);font-synthesis:none;font-size:16px;line-height:1.5}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{border:1px solid var(--teal);border-radius:var(--radius);padding:.65rem 1rem;background:var(--teal);color:white;font-weight:600;cursor:pointer;min-height:44px}button:hover{background:var(--teal-dark)}button:disabled{cursor:default;opacity:.48}.secondary{color:var(--teal);background:#fff;border-color:#90adb8}.secondary:hover{background:var(--blue)}.quiet{color:var(--teal);background:transparent;border-color:transparent;padding:.4rem .6rem}.quiet:hover{background:var(--blue)}.small{padding:.35rem .6rem;font-size:.9rem}.text-link,a{color:var(--teal)}a:hover{text-decoration-thickness:2px}.text-link{font-weight:600}input,select,textarea{border:1px solid #92aab6;border-radius:4px;background:white;color:var(--ink);padding:.6rem .7rem;min-height:44px;min-width:0;max-width:100%}textarea{resize:vertical;line-height:1.5}input[type=checkbox]{accent-color:var(--teal);width:20px;height:20px;min-height:20px;flex:0 0 20px}input:read-only{background:#eef3f5;color:#425e6c}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible,summary:focus-visible{outline:3px solid #d58512;outline-offset:3px}label{display:flex;flex-direction:column;gap:.3rem;font-size:.92rem;font-weight:600}form{display:flex;flex-direction:column;gap:1rem}form>button{align-self:flex-start}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(1.8rem,4vw,2.5rem);line-height:1.15;letter-spacing:-.025em;margin-bottom:.5rem;font-weight:650}h2{font-size:1.3rem;line-height:1.3;margin-bottom:1rem}h3{font-size:1rem;margin:1.1rem 0 .5rem}p{max-width:78ch;margin-bottom:1rem}.muted{font-weight:400;color:var(--muted);font-size:.9rem}.check{flex-direction:row;align-items:center;font-size:.92rem;font-weight:400;gap:.6rem;line-height:1.4}.checkbox-stack{display:flex;flex-direction:column;gap:.65rem;margin:.5rem 0}.skip-link{position:fixed;top:-100px;left:1rem;background:white;padding:1rem;z-index:100}.skip-link:focus{top:1rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:#fff;border-bottom:3px solid var(--teal);padding:.8rem clamp(1rem,3vw,2.5rem);min-height:82px}.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;font-size:1.4rem;font-weight:700;letter-spacing:-.04em;color:var(--ink)}.brand small{display:block;font-weight:400;font-size:.77rem;letter-spacing:.02em;line-height:1.2;color:var(--muted)}.brand-mark{width:40px;height:43px;display:grid;place-content:center;border-radius:12px 4px 12px 4px;color:#fff;background:var(--teal);font-size:2rem;line-height:1;font-weight:650}.session-line{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;font-size:.85rem;flex-wrap:wrap}.session-line>span{max-width:220px;overflow-wrap:anywhere}main{max-width:1560px;margin:auto;padding:0 clamp(1rem,3vw,2.5rem) 2rem}.release-footer{border-top:1px solid var(--line);padding:1rem 2rem;text-align:center;font-size:.8rem;background:#fff}.release-footer a{color:var(--muted)}.message{position:sticky;top:0;z-index:30;padding:.85rem 1.5rem;background:#e5f4ec;border-bottom:1px solid #9abbaa;box-shadow:0 2px 4px #18344312;overflow-wrap:anywhere}.message.error{color:var(--red);background:var(--red-bg);border-color:#d9a5aa}.login-layout{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;min-height:calc(100vh - 150px);gap:clamp(3rem,8vw,9rem);padding:3rem clamp(0rem,3vw,3rem)}.login-copy h1{font-size:clamp(2.6rem,5.5vw,5rem);font-weight:620;line-height:1.05;margin-bottom:1.5rem}.login-copy p{font-size:1.1rem;max-width:32ch;color:var(--muted)}.login-rule{display:grid;grid-template-columns:repeat(6,1fr);max-width:430px;margin-top:3rem;border-top:4px solid var(--teal)}.login-rule span{padding:.75rem .2rem;border-right:1px solid var(--line);font-size:.85rem;color:var(--muted)}.login-form{max-width:430px;padding:2rem;border:1px solid var(--line);background:#fff;border-top:5px solid var(--teal);border-radius:var(--radius)}.login-form button{width:100%}.field-error{color:var(--red);font-size:.9rem;margin:0;min-height:.2rem}.narrow{max-width:580px;margin:3rem auto;padding:2rem;background:white;border:1px solid var(--line);border-radius:var(--radius)}.navigation{display:flex;align-items:stretch;gap:.2rem;overflow:auto;border-bottom:1px solid var(--line);margin:0 -1px 1.8rem;padding-top:.7rem;scrollbar-width:thin}.navigation button{flex-shrink:0;border:none;border-radius:0;background:transparent;color:var(--muted);font-size:.9rem;padding:.9rem .8rem;border-bottom:3px solid transparent;white-space:nowrap}.navigation button:hover{background:var(--blue);color:var(--teal)}.navigation button.active{border-bottom-color:var(--teal);color:var(--teal);background:#e7f0f5;font-weight:700}.view-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.view-heading p{margin-bottom:0}.state-label{font-size:.82rem;color:var(--muted);background:#e5edf1;border-radius:30px;padding:.4rem .8rem;white-space:nowrap}.state-label.editing{color:#fff;background:var(--teal)}.toolbar{display:flex;flex-flow:row wrap;align-items:flex-end;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line);margin-bottom:1rem}.toolbar label{min-width:150px}.toolbar label:first-child{min-width:230px}.toolbar button{align-self:flex-end}.empty{padding:3rem 1.5rem;background:#fff;border:1px dashed #9ab1bc;text-align:center;color:var(--muted);max-width:none;border-radius:var(--radius)}.plan-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:1rem 0;flex-wrap:wrap}.button-group{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.mode-label{flex-direction:row;align-items:center;font-size:.85rem}.mode-label select{min-height:38px;padding:.3rem .5rem}.plan-summary{display:flex;gap:1.8rem;padding:1rem 0}.plan-summary>div{display:flex;flex-direction:column;min-width:100px}.plan-summary span{font-size:.8rem;color:var(--muted)}.plan-summary strong{font-size:1.1rem;font-variant-numeric:tabular-nums}.notice{padding:.85rem 1rem;border-left:4px solid #b88516;background:var(--yellow);border-radius:0 4px 4px 0;font-size:.9rem;margin:1rem 0}.notice p:last-child{margin-bottom:0}.notice.subtle{border-color:#93afba;background:#e9f1f5;font-size:.85rem}.coverage-message{font-size:.85rem;color:var(--red);margin-bottom:.6rem}.plan-scroll{max-width:100%;overflow:auto;border:1px solid #9fb4be;border-radius:var(--radius);max-height:70vh;background:white;scrollbar-color:#92a9b4 #e9f0f3}.plan-table{border-collapse:separate;border-spacing:0;min-width:100%;font-size:.85rem;table-layout:fixed}.plan-table th,.plan-table td{border-right:1px solid #d9e3e7;border-bottom:1px solid #d9e3e7;padding:0;min-width:133px;width:133px;background:#fff}.plan-table thead th{position:sticky;top:0;z-index:4;background:#e1edf2;text-align:left;padding:.65rem .65rem;border-bottom:2px solid #9fb5c0;vertical-align:bottom}.plan-table thead th small{display:block;color:var(--muted);font-weight:400;font-size:.7rem}.plan-table thead th:first-child{left:0;z-index:6;min-width:88px;width:88px}.plan-table tbody th{position:sticky;left:0;z-index:3;padding:.55rem .5rem;font-size:.82rem;text-align:left;min-width:88px;width:88px;background:#f1f6f8;color:#34515f}.plan-table tbody th span{display:block;font-size:.67rem;font-weight:400;color:var(--muted)}.plan-table tr.weekend th{background:#e2edf1}.plan-table tr.gap th{box-shadow:inset 4px 0 var(--red);background:var(--red-bg);color:var(--red)}.plan-table td input{border:0;border-radius:0;padding:.5rem .6rem;min-height:40px;height:40px;width:100%;font-size:.9rem;font-weight:600;background:transparent;box-shadow:none;outline-offset:-3px}.plan-table td input:read-only{color:#486471;background:#f5f8fa;cursor:default}.plan-table td input:focus{background:#fdf7dc}.plan-table td .cell-status{display:block;font-size:.64rem;height:17px;padding:0 .6rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:132px}.plan-table td.saving{background:#fef5d8}.plan-table td.saved .cell-status{color:var(--green)}.plan-table td.dirty{background:#fff4db}.plan-table td.error{background:var(--red-bg);box-shadow:inset 0 0 0 1px #cb7580}.plan-table td.error .cell-status{color:var(--red)}.plan-table td.pending{background:#fff8e6}.editing-mode .plan-scroll{border:2px solid var(--teal)}.editing-mode .plan-table thead th{background:#d5eced}.table-hint{font-size:.75rem;color:var(--muted);margin:.65rem 0 1.2rem;max-width:none}.legend-dot{display:inline-block;width:7px;height:7px;background:var(--red);border-radius:50%;margin-left:.5rem}.work-panel{border:1px solid var(--line);background:#fff;padding:1.25rem;border-radius:var(--radius);margin:1rem 0}.work-panel summary{font-weight:650;cursor:pointer;min-height:24px}.work-panel[open]>summary{margin-bottom:1.25rem}.work-panel p{font-size:.9rem}.work-panel form+form{padding-top:1.5rem;margin-top:1.5rem;border-top:1px solid var(--line)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.9rem;align-items:end}.form-grid>button{justify-self:start;align-self:end}.interval-row,.period-row{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:.6rem;align-items:end;margin:.5rem 0;padding:.6rem 0;border-bottom:1px solid #e7edf0}.period-row.contract-row{grid-template-columns:repeat(3,minmax(100px,1fr));padding:.8rem;background:#f7fafb;border-radius:4px}.period-row label{font-size:.8rem}.interval-row label{font-size:.8rem}.export-line{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;border-top:1px solid var(--line);padding:1rem 0;font-size:.9rem}.export-line+p{font-size:.77rem}.export-line a[aria-disabled=true]{opacity:.4;pointer-events:none}.opening-week{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.7rem}.master-columns{columns:2 440px;column-gap:1.5rem}.master-columns>.work-panel{break-inside:avoid;margin-top:0;margin-bottom:1.5rem}.data-table{border-collapse:collapse;background:#fff;width:100%;font-size:.85rem;margin:1rem 0}.data-table th,.data-table td{padding:.6rem .7rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.data-table th{background:var(--blue);font-weight:600}.data-table td{overflow-wrap:anywhere}.table-wrapper{overflow:auto;max-width:100%}.rights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.7rem}.rights-grid label{font-size:.8rem}.support-columns{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:2rem}.conversation{background:#fff;border:1px solid var(--line);border-radius:var(--radius);min-height:180px;max-height:520px;overflow:auto;margin-bottom:1.2rem;padding:1rem}.chat-message{max-width:90%;padding:.8rem 1rem;margin:.5rem 0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.92rem;background:#edf3f6;border-radius:7px}.chat-message.user{background:#e0edef;margin-left:auto}.chat-message strong{display:block;font-size:.75rem;margin-bottom:.25rem;color:var(--muted)}.case-item,.personal-item{background:#fff;border:1px solid var(--line);border-left:4px solid var(--teal);padding:1rem;margin:.7rem 0;border-radius:0 5px 5px 0;overflow-wrap:anywhere}.case-item p{white-space:pre-wrap;font-size:.9rem}.case-item small{color:var(--muted)}.error-list{color:var(--red);font-size:.9rem}.pending-label{color:#896010}.duration{font-variant-numeric:tabular-nums}.loading{opacity:.6;pointer-events:none}[hidden]{display:none!important}@media(max-width:760px){.topbar{padding:.65rem 1rem;min-height:74px}.brand{font-size:1.2rem}.brand-mark{width:33px;height:37px}.session-line{font-size:.75rem;gap:.1rem}.session-line button{font-size:.75rem;padding:.3rem;min-height:36px}.session-line>span{max-width:100px}.login-layout{display:flex;flex-direction:column;align-items:stretch;min-height:auto;gap:2rem;padding:2rem 0}.login-copy h1{font-size:2.7rem}.login-copy p{font-size:.95rem;max-width:40ch}.login-rule{display:none}.login-form{padding:1.3rem;max-width:none}.navigation{margin-bottom:1.5rem}.navigation button{font-size:.82rem;padding:.8rem .7rem}.view-heading{align-items:flex-start}.view-heading h1{font-size:1.7rem}.view-heading p{font-size:.8rem}.state-label{font-size:.7rem;white-space:normal;text-align:right}.toolbar{gap:.7rem}.toolbar label:first-child{min-width:180px;flex:1}.toolbar label{min-width:130px}.toolbar button{width:100%}.plan-summary{gap:1.2rem;padding:.5rem 0}.plan-summary>div{min-width:80px}.plan-summary strong{font-size:.95rem}.plan-summary span{font-size:.72rem}.plan-actions{gap:.7rem}.mode-label{font-size:.75rem}.button-group button{font-size:.85rem;padding:.5rem .7rem}.work-panel{padding:1rem}.plan-scroll{max-height:65vh}.plan-table th,.plan-table td{min-width:116px;width:116px}.plan-table thead th{font-size:.75rem}.plan-table thead th:first-child,.plan-table tbody th{min-width:76px;width:76px}.plan-table td .cell-status{max-width:115px}.interval-row{grid-template-columns:1.2fr 1fr 1fr auto;gap:.3rem}.interval-row input,.interval-row select{padding:.4rem;font-size:.83rem}.interval-row button{padding:.3rem .45rem;font-size:.8rem}.period-row{grid-template-columns:1fr 1fr;gap:.5rem}.period-row.contract-row{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.opening-week{grid-template-columns:1fr 1fr}.support-columns{grid-template-columns:1fr;gap:1rem}.narrow{padding:1.3rem;margin:2rem auto}.export-line{gap:1rem;font-size:.8rem}.release-footer{font-size:.75rem;padding:1rem}.chat-message{max-width:96%}.notice{font-size:.8rem}.plan-rule-note{font-size:.78rem}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}@media print{.topbar,.navigation,.toolbar,.plan-actions,.work-panel,.export-line,.table-hint,.release-footer,#global-message,.session-line{display:none!important}.plan-scroll{max-height:none;overflow:visible}.plan-table thead th,.plan-table tbody th{position:static}main{padding:0}.plan-table{font-size:8pt}.plan-table td input{font-size:8pt}.cell-status{display:none!important}}
.route-google-result{border:1px solid var(--line);background:#fff;padding:.8rem;border-radius:4px}.route-google-result p{margin-bottom:.5rem}.route-google-attribution{display:inline-block;font-family:"Segoe UI",Arial,sans-serif;font-style:normal;font-weight:400;font-size:14px;letter-spacing:normal;white-space:nowrap;color:#1f1f1f}.route-walking-warning{margin-bottom:0}

/* Stammdaten: eine Bestandsliste mit direkt zugehörigem Editor je Arbeitsbereich. */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.master-tabs{display:flex;gap:.35rem;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:1.5rem 0}
.master-tabs button{border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;color:var(--muted)}
.master-tabs button[aria-selected=true]{color:var(--teal);border-bottom-color:var(--teal);background:var(--blue)}
.master-tabs span{font-weight:400;margin-left:.25rem}
.master-workspace{display:grid;grid-template-columns:minmax(340px,.95fr) minmax(0,1.2fr);gap:1.5rem;align-items:start}
.master-workspace>.work-panel{margin-top:0;min-width:0}
.master-list-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.master-list-heading h2{margin:0}.master-list-heading button{flex-shrink:0}
.master-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,.65fr);gap:.75rem;margin-bottom:.75rem}
.master-list-wrap{max-height:62vh;overflow:auto;max-width:100%;border-top:1px solid var(--line)}
.master-list-wrap .data-table{margin:0}.master-list-wrap th{position:sticky;top:0;z-index:1}
.master-list-wrap button[data-edit-branch],.master-list-wrap button[data-edit-person]{white-space:nowrap}
.master-list-wrap .selected-record td{background:#e5f2f3}.record-secondary{display:block;font-size:.78rem;color:var(--muted);margin-top:.2rem}
.master-editor h2{scroll-margin-top:5rem}.master-editor .period-row{grid-template-columns:repeat(2,minmax(0,1fr))}.master-editor .period-row>label{min-width:0}
.master-editor .period-row.contract-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
@media(max-width:1050px){.master-workspace{grid-template-columns:minmax(0,1fr)}.master-list-wrap{max-height:26rem}}
@media(max-width:480px){.master-filters{grid-template-columns:minmax(0,1fr)}.master-list-heading{align-items:flex-start}.master-list-heading button{font-size:.82rem;padding:.5rem}.master-list-wrap .data-table{min-width:440px}.master-editor .period-row,.master-editor .period-row.contract-row{grid-template-columns:minmax(0,1fr)}}

/* Calendar color covers sticky dates, all person cells and their inputs. */
.plan-table tbody tr.calendar-highlight>th,.plan-table tbody tr.calendar-highlight>td{background:var(--blue)}
.plan-table tbody tr.calendar-highlight>td input{background:inherit}

#advanced-panel{scroll-margin-top:10rem}
.plan-table input[data-detail-select=true]{cursor:pointer}
.plan-table td.detail-selected{outline:2px solid var(--teal);outline-offset:-2px}
@media(max-width:760px){#advanced-panel{scroll-margin-top:15rem}}

#detail-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
#detail-form .form-grid>label,#detail-form .interval-row>label{min-width:0}
#detail-form .interval-row{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr) auto}
@media(max-width:760px){#detail-form .form-grid{grid-template-columns:minmax(0,1fr)}}

#day-notes-panel{scroll-margin-top:10rem}
#day-notes-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
#day-notes-form label{min-width:0}
.plan-table th .day-notes{display:block;font-size:.75rem;font-weight:400;white-space:normal;overflow-wrap:anywhere;max-width:13rem;text-align:left}
.plan-table th .day-notes span{display:block;color:var(--ink);margin-top:.3rem}
.plan-table [data-edit-day-notes]{font-size:.7rem;padding:.25rem .35rem;margin-top:.3rem;white-space:normal}
@media(max-width:760px){#day-notes-panel{scroll-margin-top:15rem}#day-notes-form .form-grid{grid-template-columns:minmax(0,1fr)}}

@media print{.plan-table [data-edit-day-notes]{display:none}}

.foreign-assignments{font-weight:400;white-space:normal;overflow-wrap:anywhere;text-align:left}
.foreign-assignment{border-left:3px solid var(--teal);padding:.35rem .4rem;margin:.35rem 0;font-size:.75rem;line-height:1.4}
.foreign-assignment strong,.foreign-assignment span,.foreign-assignment small{display:block;white-space:normal;overflow-wrap:anywhere}
.foreign-assignment strong{font-weight:600}.foreign-assignment small{color:var(--muted);font-size:.7rem}
.foreign-assignment[data-status=pending],.foreign-assignment[data-status=approved]{border-left-color:#b47a16}
#detail-foreign-assignments{margin-bottom:1rem}#detail-foreign-assignments .foreign-assignment{font-size:.9rem}

.column-order-controls{display:flex;gap:.25rem;margin-top:.35rem}
.column-order-controls[hidden]{display:none}.column-order-controls button{min-width:44px;min-height:44px;padding:.3rem .5rem;font-size:1rem}
.plan-table th[draggable=true]{cursor:grab;outline:1px dashed var(--teal);outline-offset:-3px}
.plan-table th[draggable=true]:active{cursor:grabbing}
#column-order-status{margin:.5rem 0;font-size:.85rem}
@media print{.column-order-controls,#column-order-note,#column-order-status,#column-order-toggle{display:none!important}}

/* Native shortcode selection keeps free entry and the established grid navigation. */
.plan-table td{position:relative}
.plan-table td input.has-code-picker{padding-right:2.8rem}
.plan-table td select[data-code-picker]{position:absolute;right:0;top:0;width:2.25rem;min-width:2.25rem;height:40px;min-height:40px;margin:0;padding:.2rem;border:0;border-left:1px solid var(--line);border-radius:0;background-color:transparent;color:var(--teal);cursor:pointer;outline-offset:-3px}
.plan-table td select[data-code-picker]:focus{outline:2px solid var(--teal)}
.plan-table td select[data-code-picker] option{background:white;color:var(--ink)}
.plan-table td select[data-code-picker]:disabled{cursor:default}

.interval-row>.absence-partial,.interval-row>.absence-hint{grid-column:1/-1}
.interval-row>.absence-hint{margin:0;font-size:.85rem;color:var(--muted)}
.interval-row[data-auto-absence=true]>.remove-row{grid-column:4}

.plan-table tfoot th,.plan-table tfoot td{padding:.45rem .35rem;background:#e7f1f3;font-size:.76rem;vertical-align:middle;font-weight:650}
.plan-table tfoot th{position:sticky;left:0;z-index:3;min-width:88px;width:88px;text-align:left;overflow-wrap:anywhere;background:#d5e8ec;color:var(--ink)}
.plan-table tfoot tr:first-child>*{border-top:2px solid var(--teal)}
.plan-table tfoot tr[data-footer-row=components] td{font-size:.68rem;font-weight:500}
.plan-table tfoot [data-footer-part]{display:inline-block;white-space:nowrap;margin-right:.4rem}
.plan-table:has(tfoot [data-hours-cell]) th[data-column-person]{min-width:12rem;width:12rem}
.plan-table tfoot td[data-hours-cell]{text-align:center}
.plan-table tfoot .footer-hours{display:inline-flex;gap:.3rem;align-items:baseline;white-space:nowrap;font-size:.72rem;font-variant-numeric:tabular-nums}
.plan-table tfoot [data-hours-cell] [data-footer-part]{margin-right:0}
.plan-table tfoot [data-hours-kind=total]{font-weight:700}
.plan-table tfoot tr[data-footer-row=home-hours-total] td{background:#d5e8ec}
.plan-scroll:has(tfoot[hidden]){scroll-padding-bottom:0}
#plan-version-control select{min-height:36px;padding:.25rem .4rem}
@media(max-width:760px){.plan-table tfoot:has([data-hours-cell]) :is(th,td){padding:.2rem .35rem;line-height:1.2}.plan-table tfoot:has([data-hours-cell]) th{font-size:.68rem}}
.plan-table tfoot tr[data-footer-row=total] td{font-size:.85rem}
.plan-table tfoot td.footer-incomplete{color:var(--muted)}
.plan-table tfoot td.footer-negative{color:var(--red);background:var(--red-bg)}
.plan-scroll{scroll-padding-bottom:9rem}
.plan-table thead th{z-index:5}
.plan-table tfoot{position:sticky;bottom:0;z-index:4;background:#e7f1f3;box-shadow:0 -1px 0 var(--teal)}
@media print{.plan-scroll{scroll-padding-bottom:0}.plan-table tfoot,.plan-table tfoot th{position:static;bottom:auto;box-shadow:none}}
#person-summaries .data-table th:first-child,#person-summaries .data-table td:first-child{min-width:9rem}
#person-summaries .data-table th:nth-child(n+2):nth-child(-n+7),#person-summaries .data-table td:nth-child(n+2):nth-child(-n+7){white-space:nowrap;overflow-wrap:normal;word-break:normal;font-variant-numeric:tabular-nums}
#person-summaries .data-table th:last-child,#person-summaries .data-table td:last-child{width:24%;min-width:10rem;max-width:20rem;white-space:normal;overflow-wrap:anywhere}
.plan-summary{flex-wrap:wrap}
.plan-summary>.n-progress-summary{min-width:0;max-width:100%}
#summary-n [data-n-part]{display:inline-block;white-space:nowrap;font:inherit;color:inherit}
:root{--plan-absent:#fff0dc;--plan-vacation:#e7f4e8;--plan-sick:#fbe6e8}
.plan-table .cell-times{padding:.2rem .4rem .35rem;font-size:.7rem;line-height:1.4;color:var(--ink);text-align:left}
.plan-table .cell-time-segment,.plan-table .cell-times-state{display:block;white-space:normal}
.plan-table .cell-time-clock{display:inline-block;white-space:nowrap}
.plan-table .cell-times-state{font-weight:650;color:#896010}
.plan-table tbody tr>td[data-absence-kind=ABSENCE]{background:var(--plan-absent)}
.plan-table tbody tr>td[data-absence-kind=U]{background:var(--plan-vacation)}
.plan-table tbody tr>td[data-absence-kind=KR]{background:var(--plan-sick)}
.plan-table tbody tr>td[data-absence-kind] input{background:inherit}
.plan-table th .day-notes span{font-size:.75rem}
.plan-table th .day-notes .goods-marker{font-weight:650}
.absence-legend{display:flex;gap:.5rem;flex-wrap:wrap}
.absence-legend [data-absence-key]{display:inline-block;padding:.15rem .4rem;border:1px solid var(--line);border-radius:3px;color:var(--ink)}
.absence-legend [data-absence-key=ABSENCE]{background:var(--plan-absent)}
.absence-legend [data-absence-key=U]{background:var(--plan-vacation)}
.absence-legend [data-absence-key=KR]{background:var(--plan-sick)}

/* Direct, keyboard-accessible delivery-day control in the sticky date column. */
.plan-table .goods-toggle{display:flex;align-items:center;justify-content:space-between;gap:.25rem;min-width:64px;min-height:44px;width:100%;margin:.35rem 0 0;padding:.35rem .3rem;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);font-size:.72rem;font-weight:600;touch-action:manipulation}
.plan-table .goods-toggle>span{margin:0;font:inherit;color:inherit}
.plan-table .goods-switch-track{display:inline-block;position:relative;flex:none;width:26px;height:16px;border:1px solid #647e88;border-radius:12px;background:#d9e2e6}
.plan-table .goods-switch-track::after{content:"";display:block;position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:0 0 1px #274655}
.plan-table .goods-toggle[aria-checked=true]{border-color:var(--teal);background:#e0f1ee;color:var(--teal)}
.plan-table .goods-toggle[aria-checked=true] .goods-switch-track{border-color:var(--teal);background:var(--teal)}
.plan-table .goods-toggle[aria-checked=true] .goods-switch-track::after{left:12px}
.plan-table .goods-toggle:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.plan-table .goods-toggle:disabled{opacity:.65;cursor:wait}
.plan-table .goods-toggle-status:not(.visually-hidden){display:block;color:var(--red);font-size:.65rem;font-weight:400;white-space:normal;overflow-wrap:anywhere}
@media print{.plan-table .goods-toggle,.plan-table .goods-toggle-status{display:none!important}}

#summary-version [data-plan-stage]{display:block;font:inherit;color:inherit}
#summary-version [data-plan-date]{display:block;font-size:.75rem;line-height:1.5;font-weight:400;color:var(--muted);white-space:normal}
#summary-version time{white-space:nowrap}

/* Keep save errors readable inside narrow plan columns. */
.plan-table td.error .cell-status{height:auto;min-height:17px;max-width:none;white-space:pre-line;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.4;padding-bottom:.3rem}
#global-message.error{white-space:pre-line;overflow-wrap:anywhere;max-height:55vh;overflow-y:auto}

/* Saved qualification warnings stay separate from temporary save states. */
.plan-table .cell-qualification-warning{display:block;padding:.2rem .6rem .4rem;font-size:.7rem;line-height:1.4;height:auto;max-width:none;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;color:var(--red)}
.qualification-notice{padding:.75rem 1rem;border:1px solid #cb7580;border-radius:4px;white-space:normal;overflow-wrap:anywhere;color:var(--red)}
@media screen{
 .plan-table tbody tr>td.qualification-warning{background:var(--red-bg);box-shadow:inset 0 0 0 1px #cb7580}
 .plan-table tbody tr>td.qualification-warning input{background:inherit}
 .qualification-notice{background:var(--red-bg)}
}
@media print{.cell-qualification-warning,#detail-qualification-warning{display:none!important}}

/* Person/date holiday credits use the existing master-data controls. */
#holiday-credit-form{max-width:64rem}
#holiday-credit-title{margin-top:.5rem}
#holiday-credit-form .muted{margin:0}
#holiday-credit-form .holiday-confirmation{min-height:44px;padding:.5rem 0}
#holiday-credit-form .button-group>button,#holiday-credit-list button,#holiday-refresh{min-height:44px;min-width:44px}
.holiday-credit-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:1.75rem 0 .75rem}
.holiday-credit-heading h3{margin:0}
#holiday-credit-list .data-table{width:100%;table-layout:fixed}
#holiday-credit-list th,#holiday-credit-list td{overflow-wrap:anywhere;vertical-align:top}
#holiday-credit-list td[data-label=Gutschrift]{font-variant-numeric:tabular-nums}
#holiday-credit-list td[data-label=Quelle]{white-space:pre-wrap}
#holiday-credit-list .holiday-row-actions{display:flex;gap:.5rem;flex-wrap:wrap}
#holiday-credit-list .record-secondary{display:block}
.hr-settings-details{border-top:1px solid var(--line);margin-top:2rem;padding-top:1rem}
.hr-settings-details>summary{min-height:44px;display:list-item;padding:.5rem 0}
.hr-settings-details[open]>summary{margin-bottom:.75rem}
#holiday-credit-status.error{color:var(--red)}
@media(max-width:700px){
 #holiday-credit-form .form-grid{grid-template-columns:minmax(0,1fr)}
 #holiday-credit-form .button-group{align-items:stretch}
 #holiday-credit-form .button-group>button{flex:1 1 100%}
 #holiday-credit-list .table-wrapper{overflow:visible}
 #holiday-credit-list .data-table,#holiday-credit-list tbody,#holiday-credit-list tr{display:block;min-width:0;width:100%}
 #holiday-credit-list thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 #holiday-credit-list tbody tr{border:1px solid var(--line);border-radius:var(--radius);padding:.75rem;margin:.75rem 0;background:var(--paper)}
 #holiday-credit-list td{display:grid;grid-template-columns:6.25rem minmax(0,1fr);gap:.75rem;border:0;padding:.4rem 0;width:100%;min-width:0}
 #holiday-credit-list td::before{content:attr(data-label);font-weight:600;white-space:normal}
 #holiday-credit-list .holiday-row-actions>button{flex:1 1 100%}
}
/* Branch-right colors follow the selected option, including account loads and resets. */
#account-branches select:has(option[value="plan"]:checked){background-color:#e4efff;border-color:#73a2d5;color:#163c69}
#account-branches select:has(option[value="read"]:checked){background-color:#e4f3e9;border-color:#7eaf91;color:#225d39}

/* A rejected foreign request is distinct from pending or a failed cell save. */
.plan-table td.rejected .cell-times-state,.plan-table td.rejected .cell-status{color:var(--red)}

.plan-table td[data-request-status] .cell-status{height:auto;min-height:17px;max-width:none;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.4;padding-bottom:.35rem}
.plan-table td.error[data-request-status] .cell-status{white-space:pre-line}

/* Daily travel is a single draft total, separate from individual foreign-occupancy badges. */
.plan-table .cell-travel{padding:.2rem .4rem .35rem;color:var(--ink);font-size:.7rem;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
.plan-table .cell-travel-value{display:block;font-weight:650;font-variant-numeric:tabular-nums}
.plan-table .cell-travel-value[data-travel-state=open]{color:#896010}
.plan-table .cell-travel-kind{display:block;color:var(--muted);font-size:.65rem;font-weight:400}

#qualification-home-rows .data-table{min-width:30rem}
#qualification-home-rows .data-table th:nth-child(n+3),#qualification-home-rows .data-table td:nth-child(n+3){white-space:nowrap;overflow-wrap:normal}

#import-summary .data-table th:first-child,#import-summary .data-table td:first-child{white-space:nowrap;overflow-wrap:normal}

#auto-travel-status{overflow-wrap:anywhere}.cell-travel-status{display:block;white-space:normal;line-height:1.35}
