/* Calendar controls inherit the site's type and color tokens. */
[hidden] { display:none !important; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.calendar-options { margin-top:22px; border-top:1px solid var(--line); padding-top:22px; display:grid; gap:20px; }
.calendar-options .hint { display:block; margin:8px 0 0; max-width:75ch; }
.workweek { border:0; padding:0; margin:0; min-width:0; }
.workweek legend { font-weight:700; margin-bottom:8px; font-size:.92rem; }
.workweek-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; margin-top:10px; }
.workweek-days label { cursor:pointer; text-align:center; position:relative; }
.workweek-days input { position:absolute; opacity:0; width:100%; height:100%; inset:0; margin:0; cursor:pointer; }
.workweek-days span { display:block; padding:9px 0; border:1px solid var(--line-strong); border-radius:var(--radius-sm); font-weight:600; font-size:.86rem; }
.workweek-days input:checked + span { background:var(--accent-soft); border-color:var(--accent); color:var(--accent-ink); }
.workweek-days input:focus-visible + span { outline:3px solid var(--accent); outline-offset:2px; }
.range-options { display:flex; gap:14px 24px; flex-wrap:wrap; }
.range-options label { display:flex; align-items:center; gap:7px; cursor:pointer; font-size:.92rem; }
.calendar-options input[type=checkbox] { accent-color:var(--accent); }
.additional-days summary { font-weight:600; cursor:pointer; }
.additional-days textarea { margin-top:8px; resize:vertical; font-family:var(--font-mono); font-size:.84rem; }
.calculation-calendar { border-top:1px solid var(--line); padding-top:24px; margin-top:24px; }
.calculation-calendar h2 { margin:0 0 16px; font-size:1.3rem; }
.calendar-toolbar { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:10px; }
.calendar-toolbar .btn { font-size:1.4rem; padding:6px 16px; }
.calendar-toolbar select { text-transform:capitalize; }
.calendar-month-total { color:var(--green); font-weight:600; margin:12px 0; }
.calendar-weekdays,.calendar-dates { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
.calendar-weekdays { text-align:center; color:var(--muted); font-size:.8rem; margin-bottom:8px; }
.calendar-date { font-family:var(--font-body); min-width:0; min-height:43px; padding:8px 2px; text-align:center; border:1px solid transparent; border-radius:var(--radius-sm); font-size:.94rem; font-weight:600; }
button.calendar-date { cursor:pointer; }
button.calendar-date:hover,button.calendar-date[aria-pressed=true] { border-color:var(--ink); }
button.calendar-date:focus-visible,.calendar-toolbar :focus-visible { outline:3px solid var(--accent); outline-offset:2px; }
.day-business { color:#065f46; background:#e7f5ee; }
.day-rest { color:#4b5563; background:#f0f1f4; }
.day-holiday { color:#92400e; background:#fff0d9; text-decoration:underline; text-underline-offset:4px; }
.day-excluded { color:#4b5563; background:#fff; border:1px dashed #9ca3af; text-decoration:line-through; }
.day-outside { color:var(--muted); background:transparent; font-weight:400; }
.calendar-legend { display:flex; flex-wrap:wrap; gap:8px 18px; font-size:.78rem; margin:16px 0; }
.calendar-legend span { display:flex; gap:6px; align-items:center; }
.calendar-swatch { display:inline-block; width:12px; height:12px; border-radius:2px; }
.calendar-reason { padding:14px; min-height:76px; background:var(--bg-soft); font-size:.9rem; margin:0; border-left:3px solid var(--accent); }
.calendar-scope { color:var(--muted); font-size:.85rem; line-height:1.6; margin-top:16px; }
.calendar-error { display:none; padding:14px 18px; color:#991b1b; background:#fef2f2; border:1px solid #fecaca; border-radius:var(--radius); margin:16px 0; }
.calendar-retry { margin-top:10px; }
.guide-controls { margin-bottom:28px; }
.guide-controls .calendar-options { max-width:680px; }
@media(max-width:480px) { .calendar-date { min-height:38px; } .calendar-dates,.calendar-weekdays { gap:4px; } .calendar-toolbar .btn { padding:6px 12px; } .workweek-days { gap:4px; } }
