/* Year calendar: twelve months, fixed day positions, one track per collision lane. */
.content:has(.year-calendar-panel){min-width:0}.year-calendar-panel{position:relative;min-width:0}.year-toolbar{display:flex;gap:18px;align-items:end;flex-wrap:wrap;padding:20px 22px}.year-toolbar label{display:grid;gap:6px;font-size:12px;font-weight:700;color:var(--muted)}.year-toolbar select{min-width:190px;max-width:260px}.year-choice{display:flex;gap:10px;align-items:end}.year-choice input{width:112px}.year-choice button{height:44px;min-width:36px}.year-calendar-help,.year-empty{margin:0;padding:0 22px 16px;color:var(--muted);font-size:12px;line-height:1.6}.year-scroll{max-width:100%;max-height:76vh;overflow:auto;overscroll-behavior:contain;border-top:1px solid var(--line);border-bottom:1px solid var(--line);scrollbar-gutter:stable}.year-scroll:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.year-matrix{min-width:1084px}.year-grid{display:grid;grid-template-columns:92px minmax(0,1fr)}.year-heading{position:sticky;top:0;z-index:5;min-height:32px;background:#eef3f7;border-bottom:1px solid #cad5dd}.year-heading>strong{position:sticky;left:0;z-index:6;padding:9px 8px;background:#eef3f7;font-size:10px;color:var(--navy)}.year-day-numbers,.year-weekdays,.year-lane,.year-date-background{display:grid;grid-template-columns:repeat(31,minmax(32px,1fr))}.year-day-numbers span{text-align:center;padding:9px 0;font-size:11px;font-weight:800;border-left:1px solid #dce4ea}.year-month{border-bottom:1px solid #cbd6df}.year-month:last-child{border-bottom:0}.year-month>h3{position:sticky;left:0;z-index:3;margin:0;padding:9px 8px;align-self:stretch;background:#fff;border-right:1px solid #dce4ea;color:var(--navy);font-size:11px}.year-month-track{position:relative;padding-bottom:4px;min-width:0}.year-date-background{position:absolute;inset:0;pointer-events:none}.year-day{background:#fff;border-left:1px solid #e3e9ee}.year-day.is-weekend{background:#eef1f4}.year-day.is-holiday{background:repeating-linear-gradient(135deg,#fff6d9,#fff6d9 4px,#f5e7bc 4px,#f5e7bc 7px)}.year-day.is-today{box-shadow:inset 2px 0 #0071b9,inset -2px 0 #0071b9}.year-day.invalid-day,.year-weekdays .invalid-day{background:repeating-linear-gradient(135deg,#dce2e7,#dce2e7 3px,#d2d9df 3px,#d2d9df 5px);color:#78848e}.year-weekdays{position:relative;height:22px;align-items:center;pointer-events:none}.year-weekdays>span{padding:4px 0;font-size:9px;color:#667582;text-align:center}.year-lane{position:relative;min-height:30px;align-items:center}.absence-marker{display:flex;align-items:center;gap:2px;height:26px;min-width:0;margin:1px;padding:2px;border:1px solid;border-radius:5px;font-size:10px;line-height:1;white-space:nowrap;overflow:hidden;text-align:left;cursor:pointer;font-weight:750}.absence-marker svg{width:14px;height:16px;flex:0 0 14px}.marker-full{flex:0 0 auto}.marker-initials{display:none;font-size:8px;letter-spacing:-.3px}.marker-half{font-size:8px;margin-left:auto}.use-initials .marker-full{display:none}.use-initials .marker-initials{display:inline}.absence-marker.is-submitted{border-style:dashed;background-image:repeating-linear-gradient(135deg,transparent,transparent 4px,#ffffff65 4px,#ffffff65 7px)}.absence-marker:hover,.absence-marker:focus-visible{outline:2px solid #142b3c;outline-offset:1px;z-index:2}.absence-green{color:#125f3b;background-color:#d9f2e5;border-color:#238251}.absence-red{color:#902a24;background-color:#fde1df;border-color:#bd4b41}.absence-yellow{color:#6c5100;background-color:#fff0b8;border-color:#a07c00}.absence-blue{color:#174e7b;background-color:#d9edff;border-color:#347bb4}.year-legend{display:flex;gap:8px;flex-wrap:wrap;padding:16px 22px;font-size:11px}.year-legend>span:not(.year-status-key){display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid;border-radius:5px}.year-legend svg{width:18px;height:18px;flex:none}.year-status-key{flex-basis:100%;color:var(--muted);line-height:1.6}.year-detail-card{position:fixed;left:8px;top:8px;z-index:100;width:320px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overflow:auto;padding:18px;color:var(--navy);background:#fff;border:1px solid #b8c9d6;border-radius:10px;box-shadow:0 10px 35px #102e4a35}.year-detail-card[hidden]{display:none}.year-detail-name{display:block;padding-right:24px;font-size:14px;overflow-wrap:anywhere}.year-detail-close{position:absolute;right:6px;top:6px;min-width:28px;min-height:28px;border:0;background:#eef3f7;border-radius:5px;cursor:pointer;color:#24475f;font-size:20px}.year-detail-card dl{margin:12px 0 0;font-size:12px}.year-detail-card dl>div{display:grid;gap:3px;padding:6px 0;border-top:1px solid #edf1f4}.year-detail-card dt{color:var(--muted);font-size:10px}.year-detail-card dd{display:flex;align-items:center;gap:6px;margin:0;line-height:1.5;overflow-wrap:anywhere}.year-detail-card svg{width:18px;height:18px;flex:none}.year-empty{padding-top:14px}
@media(max-width:620px){.year-toolbar{padding:16px;gap:12px;align-items:stretch}.year-toolbar>label{width:100%}.year-toolbar select{max-width:none;width:100%;min-width:0}.year-calendar-help{padding:0 16px 14px}.year-legend{padding:14px 16px}.year-scroll{max-height:72vh}}
.day-start-1{grid-column-start:1}.day-span-1{grid-column-end:span 1}
.day-start-2{grid-column-start:2}.day-span-2{grid-column-end:span 2}
.day-start-3{grid-column-start:3}.day-span-3{grid-column-end:span 3}
.day-start-4{grid-column-start:4}.day-span-4{grid-column-end:span 4}
.day-start-5{grid-column-start:5}.day-span-5{grid-column-end:span 5}
.day-start-6{grid-column-start:6}.day-span-6{grid-column-end:span 6}
.day-start-7{grid-column-start:7}.day-span-7{grid-column-end:span 7}
.day-start-8{grid-column-start:8}.day-span-8{grid-column-end:span 8}
.day-start-9{grid-column-start:9}.day-span-9{grid-column-end:span 9}
.day-start-10{grid-column-start:10}.day-span-10{grid-column-end:span 10}
.day-start-11{grid-column-start:11}.day-span-11{grid-column-end:span 11}
.day-start-12{grid-column-start:12}.day-span-12{grid-column-end:span 12}
.day-start-13{grid-column-start:13}.day-span-13{grid-column-end:span 13}
.day-start-14{grid-column-start:14}.day-span-14{grid-column-end:span 14}
.day-start-15{grid-column-start:15}.day-span-15{grid-column-end:span 15}
.day-start-16{grid-column-start:16}.day-span-16{grid-column-end:span 16}
.day-start-17{grid-column-start:17}.day-span-17{grid-column-end:span 17}
.day-start-18{grid-column-start:18}.day-span-18{grid-column-end:span 18}
.day-start-19{grid-column-start:19}.day-span-19{grid-column-end:span 19}
.day-start-20{grid-column-start:20}.day-span-20{grid-column-end:span 20}
.day-start-21{grid-column-start:21}.day-span-21{grid-column-end:span 21}
.day-start-22{grid-column-start:22}.day-span-22{grid-column-end:span 22}
.day-start-23{grid-column-start:23}.day-span-23{grid-column-end:span 23}
.day-start-24{grid-column-start:24}.day-span-24{grid-column-end:span 24}
.day-start-25{grid-column-start:25}.day-span-25{grid-column-end:span 25}
.day-start-26{grid-column-start:26}.day-span-26{grid-column-end:span 26}
.day-start-27{grid-column-start:27}.day-span-27{grid-column-end:span 27}
.day-start-28{grid-column-start:28}.day-span-28{grid-column-end:span 28}
.day-start-29{grid-column-start:29}.day-span-29{grid-column-end:span 29}
.day-start-30{grid-column-start:30}.day-span-30{grid-column-end:span 30}
.day-start-31{grid-column-start:31}.day-span-31{grid-column-end:span 31}

.absence-marker.use-initials:has(.marker-half){gap:1px;padding:1px}.absence-marker.use-initials:has(.marker-half) svg{width:12px;flex-basis:12px}.absence-marker.use-initials:has(.marker-half) .marker-initials{font-size:7px}.marker-half{flex:0 0 auto;margin-left:0}

/* HR-only yearly table: the staff column remains visible inside its own scroller. */
.annual-summary{margin-top:24px;min-width:0;overflow:hidden}.annual-summary-note{padding:0 22px 16px;margin:16px 0 0;color:var(--muted);font-size:12px;line-height:1.7}.annual-summary-scroll{max-width:100%;max-height:65vh;overflow:auto;overscroll-behavior:contain;isolation:isolate;border-top:1px solid var(--line)}.annual-summary-scroll:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.annual-summary-table{width:100%;min-width:2050px;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:12px}.annual-summary-table caption{text-align:left;padding:10px 20px;color:var(--muted);background:#f7f9fb;font-size:11px}.annual-summary-table th,.annual-summary-table td{padding:12px 10px;border-right:1px solid #e3e9ee;border-bottom:1px solid #e3e9ee;vertical-align:middle}.annual-summary-table thead{position:sticky;top:0;z-index:3;background:#eef3f7}.annual-summary-table thead th{color:var(--navy);font-size:11px;line-height:1.5;text-align:center;background:#eef3f7;overflow-wrap:anywhere}.annual-summary-table thead tr:first-child th:not(.annual-person){padding:10px}.annual-summary-table .annual-person{position:sticky;left:0;z-index:2;width:220px;min-width:220px;background:#fff;text-align:left;white-space:normal;overflow-wrap:anywhere}.annual-summary-table thead .annual-person{z-index:4;background:#eef3f7}.annual-person strong{display:block;font-size:12px}.annual-person small{display:block;margin-top:5px;color:var(--muted);font-size:10px;font-weight:500}.annual-summary-table tbody tr:nth-child(even) td,.annual-summary-table tbody tr:nth-child(even) .annual-person{background:#f8fafc}.annual-number{text-align:right;font-variant-numeric:tabular-nums}.annual-number.is-zero{color:#788591}.annual-number.annual-negative{color:#b42318;font-weight:750}.annual-number.annual-balance{font-weight:750}.annual-type-chip{font-size:10px;line-height:1.4;display:grid;justify-items:center;gap:5px;min-height:68px;padding:5px;border-radius:6px}.annual-type-chip svg{width:20px;height:20px}.annual-summary-empty{text-align:left;color:var(--muted);padding:24px!important}@media(max-width:620px){.annual-summary{margin-top:20px}.annual-summary-note{padding:0 16px 14px}.annual-summary-table .annual-person{width:170px;min-width:170px}.annual-summary .panel-heading{padding:18px 16px;align-items:flex-start}.annual-summary h2{font-size:19px}.annual-summary-scroll{max-height:62vh}}

.annual-summary-table .annual-total{width:150px;font-weight:800;background:#e8f1f7;border-left:2px solid #b7cad8}.annual-summary-table tbody tr:nth-child(even) .annual-total{background:#e2edf5}
