.bm-timeline-grid { min-width: 1310px; }
.bm-timeline-row { display:grid; grid-template-columns:130px repeat(7,minmax(130px,1fr)) 270px; border-bottom:1px solid var(--bm-line); }
.bm-timeline-person, .bm-timeline-cell, .bm-timeline-summary { min-height:68px; padding:6px; min-width:0; }
.bm-timeline-person { display:flex; align-items:center; gap:4px; padding-left:6px; position:sticky; left:0; z-index:2; background:#fff; border-right:1px solid var(--bm-line); }
.bm-timeline-person p { white-space:normal; line-height:1.2; font-size:12px; }
.bm-timeline-person p + p { font-size:10px; margin-top:3px; }
.bm-person-grip { width:10px; height:16px; }
.bm-person-name span { display:block; overflow-wrap:anywhere; }
.bm-timeline-cell { border-left:1px solid var(--bm-line); display:flex; flex-direction:column; justify-content:center; gap:3px; }
.bm-timeline-summary { display:flex; align-items:center; border-left:1px solid var(--bm-line); background:#f5f8f4; padding:6px 10px; }
.bm-timeline-heading { padding:8px 6px 6px; text-align:center; border-left:1px solid var(--bm-line); font-size:12px; color:var(--bm-ink); }
.bm-timeline-heading strong { display:block; }
.bm-summary-heading { font-size:14px; }
.bm-summary-heading span { font-size:11px; }
.bm-timeline-axis { display:flex; justify-content:space-between; font-size:9px; color:#627568; margin-top:6px; font-variant-numeric:tabular-nums; font-weight:500; }
.bm-timeline-content { width:100%; min-width:0; }
.bm-timeline-track { position:relative; width:100%; height:28px; border-radius:4px; background:#edf2ed; isolation:isolate; }
.bm-timeline-track + .bm-timeline-track { margin-top:3px; }
.bm-timeline-tick { position:absolute; top:0; bottom:0; border-left:1px solid #ccd8cf; z-index:-1; }
.bm-timeline-bar { position:absolute; top:0; height:28px; padding:0 1px; border:1px solid #397b54; border-radius:4px; background:#cde8d3; color:#163f29; font-size:10px; font-weight:700; font-variant-numeric:tabular-nums; display:flex; align-items:center; justify-content:center; flex-direction:column; line-height:1.12; white-space:nowrap; }
button.bm-timeline-bar { cursor:pointer; }
.bm-timeline-bar:hover { background:#b7dfc2; }
.bm-timeline-bar:focus-visible, .bm-timeline-free:focus-visible, .bm-timeline-add:focus-visible { outline:2px solid #23653d; outline-offset:2px; }
.bm-timeline-bar.is-selected { box-shadow:0 0 0 2px #23653d; }
.bm-timeline-bar.is-confirmed { border-color:#1e6440; background:#b5dbc0; }
.bm-timeline-short-label { display:block; width:100%; font-size:9px; line-height:1.2; padding:2px 0; color:#23492f; text-align:center; }
button.bm-timeline-short-label { cursor:pointer; }
button.bm-timeline-short-label:focus-visible { outline:2px solid #23653d; outline-offset:1px; }
.bm-timeline-block, .bm-timeline-free { display:flex; flex-direction:column; align-items:center; justify-content:center; width:100%; min-height:28px; border-radius:4px; padding:3px; background:#ecefeb; border:1px solid #d7ded7; color:#687368; font-size:10px; line-height:1.2; text-align:center; }
button.bm-timeline-free { cursor:pointer; }
.bm-timeline-free small { font-size:9px; color:#45684e; margin-top:2px; }
.bm-timeline-free:hover { background:#e1ebe2; }
.bm-timeline-block.vacation { background:#e1edf9; border-color:#b4cde4; color:#345d80; }
.bm-timeline-block.school { background:#efe3fb; border-color:#d3b6e8; color:#6f428b; }
.bm-timeline-block.absence, .bm-timeline-block.sick { background:#fae8e7; border-color:#edc3bf; color:#924943; }
.bm-timeline-free.wish { background:#fff3da; border-color:#e5c576; color:#785a19; }
.bm-timeline-add { display:block; width:100%; font-size:9px; line-height:1.1; padding:3px; color:#466b51; text-align:right; }
.bm-timeline-note { font-size:9px; line-height:1.2; color:#46614c; margin-top:2px; overflow-wrap:anywhere; }
.bm-timeline-credit { font-size:9px; line-height:1.2; color:#46614c; margin-top:2px; font-variant-numeric:tabular-nums; }
.bm-timeline-week { display:grid; grid-template-columns:1fr 1fr; gap:2px 8px; width:100%; margin:0; font-size:12px; line-height:1.25; font-variant-numeric:tabular-nums; }
.bm-timeline-week div { display:flex; justify-content:space-between; gap:3px; }
.bm-timeline-week dt { color:#627568; }
.bm-timeline-week dd { font-weight:650; }
.bm-timeline-week .balance { grid-column:span 2; border-top:1px solid #dbe3db; padding-top:3px; }
.bm-summary-content { width:100%; }
.bm-timeline-month { display:flex; flex-wrap:wrap; justify-content:space-between; column-gap:5px; font-size:11px; line-height:1.25; margin-top:4px; padding-top:3px; border-top:1px solid #dbe3db; }
.bm-timeline-month strong { color:#31543b; }
.bm-timeline-month span { text-align:right; color:#42694d; }
.bm-timeline-account { display:flex; justify-content:space-between; gap:6px; font-size:11px; line-height:1.25; margin-top:3px; color:#31543b; font-variant-numeric:tabular-nums; }
.bm-timeline-account > span { white-space:nowrap; }
.bm-account-balance-high { color:#b42318; }
.bm-account-balance-negative { color:#15803d; }
.bm-account-balance-neutral { color:#000000; }
.bm-timeline-vacation { margin-left:auto; text-align:right; }
.bm-timeline-legend { display:flex; flex-wrap:wrap; gap:6px 16px; padding:8px 12px; font-size:10px; color:#607365; border-bottom:1px solid var(--bm-line); }
@media(max-width:600px) { .bm-timeline-grid { min-width:1290px; } .bm-timeline-row { grid-template-columns:110px repeat(7,minmax(130px,1fr)) 270px; } }
@media(pointer:coarse) { .bm-timeline-track, .bm-timeline-bar { height:36px; } .bm-timeline-free { min-height:40px; } .bm-timeline-add { min-height:24px; } }
@media print { .bm-timeline-add { display:none; } .bm-timeline-person { position:static; } .bm-timeline-bar,.bm-timeline-block,.bm-timeline-free { print-color-adjust:exact; -webkit-print-color-adjust:exact; } }
