/* Private absence is a corner ribbon, independent from source-change colors. */
.absence-marked{position:relative;overflow:hidden}
.lesson.absence-marked{cursor:pointer}
.absence-dialog-status{display:flex;align-items:center;gap:6px;border-top:1px solid #edc8d0;padding-top:12px;margin-top:16px;color:#c43c56;font-size:14px}
.absence-ribbon{position:absolute;top:18px;left:-29px;width:116px;height:23px;transform:rotate(-45deg);display:flex;align-items:center;justify-content:center;background:#c43c56;color:#fff;font-size:11px;font-weight:700;line-height:1;z-index:2;pointer-events:none}
.lesson.absence-marked{padding-left:66px}
.agenda-parallel .lesson.absence-marked{padding-top:62px;padding-left:12px}
.timetable-lesson.absence-marked{position:relative}
.timetable-lesson.absence-marked>strong,.timetable-lesson.absence-marked>.timetable-status{padding-left:42px}
.timetable-lesson.absence-marked .absence-ribbon{top:14px;left:-31px;width:102px;height:20px;font-size:10px}
.timetable-week .timetable-lesson.absence-marked{padding-top:22px}
.timetable-week .timetable-lesson.absence-marked>strong{padding-left:0}
.timetable-week .timetable-lesson.absence-marked .absence-ribbon{top:5px;left:-14px;width:44px;height:12px}
.timetable-week .absence-ribbon>span{font-size:0}
.timetable-week .absence-ribbon>span:after{content:'−';font-size:13px;display:block;transform:rotate(45deg)}
.absence-view-row{display:flex;align-items:center;gap:10px}
.absence-view-row .schedule-modes{flex:1;min-width:0}
.absence-entry{flex:0 0 44px;width:44px;height:44px;padding:10px;background:#fff;border:1px solid var(--line);border-radius:12px;color:var(--blue)}
.absence-entry svg{width:22px;height:22px;display:block}
.absence-entry.active{background:var(--blue-soft);border-color:#b7c9f4}
#absenceView .navigation-controls .day-strip{margin:0;padding-bottom:0}
#absenceView .weekbar strong{height:18px;font-size:16px;line-height:18px;white-space:nowrap}
.absence-summary,.absence-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:14px 0;font-size:13px}
.absence-summary{color:#9d3c50}.absence-heading h2{margin:0;font-size:21px}
#absenceView .navigation-controls .absence-heading{height:44px;margin:0}
#absenceView .absence-heading [data-absence-cancel]{min-height:44px;min-width:44px}
#absenceView .absence-heading-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
.absence-modes,.absence-detail-tabs{display:flex;gap:3px;padding:4px;background:#fff;border:1px solid var(--line);border-radius:13px;margin:14px 0}
.absence-modes button,.absence-detail-tabs button{flex:1;min-width:0;min-height:44px;padding:7px 3px;border:0;border-radius:9px;background:none;font:inherit;font-size:13px;color:var(--muted)}
.absence-modes button[aria-pressed=true],.absence-detail-tabs button[aria-pressed=true]{background:var(--blue-soft);color:var(--blue);font-weight:700}
#absenceView .lesson{width:100%;text-align:right;color:var(--ink);font:inherit;margin:10px 0}
#absenceView .lesson .time{font-size:14px;white-space:nowrap}
#absenceView .lesson h3{font-size:17px}
/* Selection overlays the original card without changing its content geometry. */
#absenceView .absence-choice{padding-left:36px}
#absenceView .absence-choice .absence-ribbon{top:12px;left:-29px;width:90px;height:18px;font-size:10px}
.absence-select-dot{position:absolute;left:12px;top:14px;border:1px solid #bdc9d9;border-radius:50%;width:19px;height:19px}
.absence-choice{position:relative}
.absence-boundary{display:flex;gap:8px;align-items:center;width:100%;min-height:44px;border:0;background:none;color:var(--muted);font:inherit;font-size:13px;padding:4px 0}
.absence-boundary:before,.absence-boundary:after{content:'';height:1px;background:var(--line);flex:1}
.absence-boundary.selected{color:#b1324d;font-weight:700}.absence-boundary.selected:before,.absence-boundary.selected:after{background:#c43c56}
.absence-savebar{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:18px;margin:18px 0}.absence-savebar small{color:var(--muted);font-size:12px}.absence-savebar .primary{flex:1;font-size:14px}
.absence-reasons{display:grid;gap:8px;margin:16px 0}.absence-reasons button{min-height:46px;text-align:right;border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px 14px;color:var(--ink);font:inherit;font-size:15px}.absence-reasons button[aria-pressed=true]{background:var(--blue-soft);color:var(--blue);border-color:#b7c9f4}#absenceDialog .primary{width:100%}
.absence-delete{color:#b1324d}.absence-empty{color:var(--muted);padding:24px 0}.absence-totals{font-size:14px;color:var(--muted);margin:0 0 12px}#absenceStatistics .stats-count{white-space:normal;text-align:center}#absenceStatistics .stats-item time{white-space:nowrap;direction:ltr;font-size:12px}#absenceStatistics .stats-item .text-button{flex-shrink:0}#absenceStatistics .stats-options{margin-bottom:14px}
#statisticsMetrics:has(#absenceMetric:not([hidden])) button{padding-inline:3px;font-size:12px}
@media(max-width:360px){#absenceView .lesson{grid-template-columns:90px minmax(0,1fr);gap:8px}.absence-savebar{gap:8px}.absence-savebar .primary{font-size:13px}}
