.rc-board, .rc-board * { box-sizing: border-box; }
.rc-board { color: #F4F1EC; background: #111312; font-family: var(--font-body); display: flex; flex-direction: column; min-height: 0; }
.rc-board button, .rc-board a { font: inherit; color: inherit; -webkit-tap-highlight-color: transparent; }
.rc-board button { cursor: pointer; border: 1px solid #363e39; border-radius: 9px; background: transparent; min-height: 44px; padding: 8px 12px; }
.rc-board button:disabled { opacity: .5; cursor: default; }
.rc-board :focus-visible { outline: 2px solid #4FB286; outline-offset: -2px; }
.rc-overlay { position: fixed; inset: 0; z-index: 20000; background: rgba(0,0,0,.62); display: flex; align-items: flex-end; justify-content: center; }
.rc-sheet { width: min(440px, 100vw); max-height: 86dvh; border-radius: 22px 22px 0 0; overflow: hidden; box-shadow: 0 -8px 40px #0006; animation: rc-enter .2s ease-out; }
@keyframes rc-enter { from { transform: translateY(100%); } to { transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .rc-sheet { animation: none; } }
.rc-head { padding: 18px 16px 12px; display: flex; gap: 8px; align-items: center; justify-content: space-between; flex-shrink: 0; }
.rc-head > div { min-width: 0; }
.rc-eyebrow { font: 10px var(--font-mono); letter-spacing: .08em; color: #4FB286; }
.rc-board h1 { font: 700 32px/1.05 var(--font-header); margin: 5px 0 0; }
.rc-close { flex: 0 0 44px; font-size: 26px !important; }
.rc-tabs { display: flex; gap: 6px; overflow-x: auto; flex-shrink: 0; padding: 4px 16px 12px; }
.rc-tabs button { flex-shrink: 0; font: 700 19px var(--font-header); display: flex; align-items: center; gap: 9px; }
.rc-tabs [aria-selected="true"] { border-color: #4FB286; background: #4fb2861a; }
.rc-dot { width: 7px; height: 7px; border-radius: 50%; background: #657069; }
.rc-dot.rc-saved { background: #4FB286; }
.rc-dot.rc-waiting { background: #E8A33D; }
.rc-content { overflow-y: auto; min-height: 0; padding: 0 16px 12px; flex: 1; overscroll-behavior: contain; }
.rc-event { display: flex; flex-direction: column; gap: 4px; font-size: 13px; border-top: 1px solid #ffffff12; padding: 10px 0; overflow-wrap: anywhere; }
.rc-event > span, .rc-note { color: #b4bcb6; font-size: 12px; line-height: 1.5; }
.rc-chip, .rc-time { font: 10px var(--font-mono); }
.rc-chip { padding: 4px 6px; background: #4fb28619; color: #4FB286; border-radius: 4px; display: inline-block; }
.rc-pending { color: #E8A33D; font: 12px var(--font-mono); }
.rc-quick { display: flex; align-items: center; gap: 5px; font-size: 12px; }
.rc-quick > span { flex: 1; font-family: var(--font-mono); }
.rc-quick button { padding: 6px 9px; }
.rc-board .rc-player { width: 100%; display: flex; align-items: center; gap: 9px; border: 0; border-bottom: 1px solid #ffffff12; border-radius: 0; text-align: left; padding: 12px 0; min-height: 62px; }
.rc-toggle, .rc-board .rc-toggle { box-sizing: border-box; position: relative; flex-shrink: 0; width: 44px; height: 44px; min-width: 44px; min-height: 44px; padding: 0; border: 0; border-radius: 7px; background: #E3555B; cursor: pointer; }
.rc-toggle[aria-checked="true"], .rc-board .rc-toggle[aria-checked="true"] { background: #4FB286; }
.rc-toggle svg { position: absolute; width: 24px; height: 24px; left: calc(50% - 12px); top: calc(50% - 12px); fill: none; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.rc-glyph-absent { stroke: #fff; opacity: 1; }
.rc-glyph-here { stroke: #0E0E0E; opacity: 0; }
.rc-toggle[aria-checked="true"] .rc-glyph-absent { opacity: 0; }
.rc-toggle[aria-checked="true"] .rc-glyph-here { opacity: 1; }
.rc-toggle:focus-visible { outline: 2px solid #F4F1EC; outline-offset: -3px; }
[data-screen-label="Attendance"] .rc-toggle { width: calc(44px / var(--dds-zoom, 1)); height: calc(44px / var(--dds-zoom, 1)); }
.attendance-quick { margin: 0 0 8px; color: #F4F1EC; }
.attendance-footer .attendance-quick button { background: transparent; color: #F4F1EC; border-color: #363e39; font: 12px var(--font-body); padding: 6px 9px; }
[data-screen-label="Attendance"] .attendance-row { overflow-wrap: anywhere; }
.attendance-footer { flex-shrink: 0; padding: 9px 14px; background: #111312; border-top: 1px solid #363e39; }
.attendance-footer button { min-height: calc(44px / var(--dds-zoom, 1)); border: 1px solid #4FB286; border-radius: 8px; padding: 8px; cursor: pointer; }
.attendance-footer .rc-save { width: 100%; background: #4FB286; color: #0E0E0E; font: 700 16px var(--font-header); }
.attendance-events { display: flex; gap: 8px; overflow-x: auto; margin-bottom: 6px; font: 11px var(--font-mono); }
.attendance-events > div { flex-shrink: 0; max-width: 100%; overflow-wrap: anywhere; }
.rc-name { font: 600 21px/1.1 var(--font-header); flex: 1; min-width: 0; overflow-wrap: anywhere; }
.rc-name small { font: 11px var(--font-mono); color: #b4bcb6; }
.rc-mark { display: block; margin-top: 5px; }
.rc-rsvp { display: block; margin-top: 5px; font: 9px/1.4 var(--font-mono); color: #a1ada5; }
.rc-footer { flex-shrink: 0; border-top: 1px solid #ffffff17; padding: 10px 16px max(10px, env(safe-area-inset-bottom)); display: flex; flex-direction: column; gap: 4px; background: #111312; }
.rc-board .rc-save { background: #4FB286; border-color: #4FB286; color: #0E0E0E; font-weight: 700; width: 100%; line-height: 1.3; }
.rc-links { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 12px; }
.rc-links a { padding: 12px 0; color: #4FB286; }
.rc-links button { border: 0; padding-left: 0; }
.rc-confirm { color: #ff7b80; font-size: 14px; padding: 6px 0; }
.rc-confirm > div { display: flex; gap: 8px; margin-top: 6px; }
.rc-confirm button { flex: 1; }
.rc-empty { padding: 22px 16px; line-height: 1.5; }
.rc-stepper { padding: 0 16px 8px; display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-shrink: 0; font: 12px var(--font-mono); }
.rc-stepper button { min-width: 44px; font-size: 24px; }
.rc-inline { flex: 1; overflow: hidden; }
.rc-busy { opacity: .5; }
.rc-toast { position: fixed; bottom: max(94px, env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); z-index: 23000; width: min(390px, calc(100vw - 24px)); padding: 12px 16px; box-sizing: border-box; background: #26362d; color: #F4F1EC; border: 1px solid #4FB286; border-radius: 10px; font: 13px/1.5 var(--font-body); pointer-events: none; }
.rc-toast[hidden] { display: none; }
.rc-board .rc-who { text-align: left; border: 0; padding: 0; font: 600 21px/1.1 var(--font-header); }
.attendance-who { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; text-align: left; padding: 0; border: 0; color: inherit; background: transparent; }
button.attendance-who { cursor: pointer; min-height: calc(44px / var(--dds-zoom, 1)); }
.attendance-who:focus-visible { outline: 2px solid #4FB286; outline-offset: 2px; }
.rc-history-overlay { position: fixed; inset: 0; z-index: 22000; background: #111312; }
.rc-history { width: 100%; height: 100dvh; overflow: hidden; }
.rc-history .rc-head { align-items: flex-start; padding-top: max(18px, env(safe-area-inset-top)); }
.rc-history h1, .rc-history-team, .rc-history-summary { overflow-wrap: anywhere; }
.rc-history-team { margin: 8px 0 0; font: 13px/1.4 var(--font-body); color: #b4bcb6; }
.rc-history-summary { margin: 0; padding: 0 16px 14px; font: 13px/1.5 var(--font-body); }
.rc-history-content { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 0 16px max(16px, env(safe-area-inset-bottom)); }
.rc-history-months { display: flex; flex-direction: column; gap: 22px; }
.rc-history-month-head { position: sticky; top: 0; z-index: 1; background: #111312; padding: 12px 0 10px; margin-bottom: 12px; border-bottom: 1px solid #ffffff17; overflow-wrap: anywhere; }
.rc-history-month-head h2 { font: 700 24px/1.1 var(--font-header); margin: 0; }
.rc-history-month-head p { font: 13px/1.5 var(--font-body); color: #b4bcb6; margin: 4px 0 0; }
.rc-history-tiles { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin: 0; padding: 0; list-style: none; }
.rc-history-tile { min-width: 0; padding: 14px; border: 1px solid #363e39; border-radius: 12px; background: #171b18; overflow-wrap: anywhere; }
.rc-history-date { font: 11px/1.5 var(--font-mono); margin-bottom: 8px; color: #b4bcb6; }
.rc-history-tile h2 { font: 600 22px/1.15 var(--font-header); margin: 10px 0 6px; }
.rc-history-tile p { font: 13px/1.5 var(--font-body); margin: 0 0 14px; }
.rc-history-badge { display: inline-block; border: 1px solid currentColor; border-radius: 5px; padding: 5px 7px; font: 12px var(--font-mono); }
.rc-outcome-here { color: #0E0E0E; background: #4FB286; border-color: #4FB286; font-weight: 700; }
.rc-outcome-absent { color: #fff; background: #E3555B; border-color: #E3555B; font-weight: 700; }
.rc-outcome-excused { color: #0E0E0E; background: #E8A33D; border-color: #E8A33D; font-weight: 700; }
.rc-outcome-no_reply { color: #a1ada5; }
.rc-history-tile small { display: block; font: 11px/1.5 var(--font-body); color: #b4bcb6; margin-top: 7px; }
button.rc-history-mark { box-sizing: border-box; min-width: 96px; min-height: 44px; padding: 0 16px; font: 700 15px/1 var(--font-mono); letter-spacing: .04em; cursor: pointer; -webkit-tap-highlight-color: transparent; touch-action: manipulation; transition: transform 120ms ease-out, filter 120ms ease-out; }
button.rc-history-mark:active { transform: scale(0.94); filter: brightness(1.1); }
button.rc-history-mark:focus-visible { outline: 2px solid #F4F1EC; outline-offset: 2px; }
button.rc-history-mark[aria-busy="true"] { cursor: progress; }
button.rc-history-mark.rc-outcome-no_reply { background: transparent; }
.rc-board button.rc-history-mark.rc-outcome-here { color: #0E0E0E; background: #4FB286; border-color: #4FB286; }
.rc-board button.rc-history-mark.rc-outcome-absent { color: #fff; background: #E3555B; border-color: #E3555B; }
.rc-board button.rc-history-mark.rc-outcome-excused { color: #0E0E0E; background: #E8A33D; border-color: #E8A33D; }
.rc-board button.rc-history-mark.rc-outcome-no_reply { color: #a1ada5; border-color: currentColor; }
.rc-board button.rc-history-mark:disabled { opacity: 1; cursor: progress; }
.rc-history-hint { font: 12px/1.5 var(--font-body); color: #b4bcb6; margin: 0 0 4px; }
@media (min-width: 360px) { .rc-history-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Keep both controls beside each other with full phone-sized tap targets. */
.rc-history-actions { display: flex; gap: 8px; align-items: stretch; }
.rc-history-actions button.rc-history-mark { flex: 1; min-width: 44px; padding: 4px; font-size: 12px; }
.rc-board .rc-history-late { flex: 0 0 62px; min-width: 44px; min-height: 44px; padding: 4px; font: 700 10.5px/1.3 var(--font-mono); color: #9DBEFF; border: 1px solid #9DBEFF; }
.rc-board .rc-history-late[aria-pressed="true"], .rc-outcome-late, .rc-board button.rc-history-mark.rc-outcome-late { color: #0E0E0E; background: #9DBEFF; border-color: #9DBEFF; }
.rc-toast button { pointer-events: auto; min-width: 44px; min-height: 44px; margin-left: 8px; color: #F4F1EC; background: #26362d; border: 1px solid #4FB286; border-radius: 5px; cursor: pointer; }
.rc-toast button:focus-visible, .rc-history-late:focus-visible { outline: 2px solid #F4F1EC; outline-offset: 2px; }
