/* Actuals business states only. Calendar structure lives in weekly-grid.css; shared slot/card visuals live in components/calendar.css. */
.actuals-live-badge { align-self: flex-start; margin-top: 6px; display: inline-flex; align-items: center; gap: 7px; padding: 5px 12px; border: 1px solid var(--rst-op-live-border); border-radius: var(--rst-ui-radius-pill); color: var(--rst-op-live-accent); font-size: 11px; font-weight: var(--rst-fw-bold); white-space: nowrap; }
.actuals-live-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--rst-op-live-accent); }
.actuals-slot-empty { width: 100%; max-width: none; height: 100%; align-self: stretch; justify-self: stretch; margin: 0; display: grid; }
.actuals-slot-empty.rs-slot-add:is(:hover,:focus-visible) { opacity: 1; border-color: var(--rst-calendar-slot-hover-border); box-shadow: none; }

.actuals-slot-card {
  position: relative;
  overflow: hidden;
}
.actuals-slot-card.is-pending strong { color: var(--rst-ui-muted); }
.actuals-slot-card.has-proof,
.actuals-slot-card[data-actuals-edit] { cursor: pointer; }

.actuals-proof-dot { position: absolute; right: 4px; bottom: 3px; width: 14px; height: 14px; display: grid; place-items: center; border-radius: var(--rst-ui-radius-round); background: var(--rst-ui-workspace-header); font-size: 8px; }
.actuals-proof-dot svg,
.actuals-proof-head .rs-icon-badge svg { width: 100%; height: 100%; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.actuals-proof-dialog { width: min(640px,calc(100vw - 36px)); }
.actuals-proof-card,
.actuals-proof-tile { border: 1px solid var(--rst-ui-line); background: var(--rst-ui-workspace-body); }
.actuals-proof-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.actuals-proof-tile { overflow: hidden; border-radius: var(--rst-ui-radius-lg); }
.actuals-proof-tile__media { aspect-ratio: 4 / 3; display: grid; place-items: center; background: var(--rst-ui-workspace-body); color: var(--rst-ui-muted); font-size: 26px; font-weight: var(--rst-fw-display); }
.actuals-proof-tile__media img { width: 100%; height: 100%; display: block; object-fit: cover; }
.actuals-proof-tile div:last-child { display: grid; gap: 3px; padding: 11px 12px; }
.actuals-proof-tile :is(strong,small) { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.actuals-proof-tile strong { color: var(--rst-ui-text); font-size: 13px; font-weight: var(--rst-fw-bold); }
.actuals-proof-tile small { color: var(--rst-ui-muted); font-size: 11px; font-weight: var(--rst-fw-medium); }

.actuals-absence-badge { position: absolute; left: 4px; right: 4px; bottom: 3px; height: 18px; padding: 0 5px; display: flex; align-items: center; gap: 4px; overflow: hidden; border-radius: var(--rst-ui-radius-pill); background: var(--rst-op-absence-bg); color: var(--rst-ui-text); white-space: nowrap; }
.actuals-absence-badge .rs-status-icon { width: 12px; height: 12px; flex-basis: 12px; }
.actuals-absence-badge .rs-status-icon svg { width: 9px; height: 9px; }
.actuals-absence-badge > span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; font-size: 8.5px; font-weight: var(--rst-fw-bold); }

.actuals-correction-dot { align-self: flex-start; padding: 4px 6px; border: 1px solid var(--rst-op-actual-border); border-radius: var(--rst-ui-radius-pill); color: var(--rst-op-actual-accent); font-size: 10px; font-weight: var(--rst-fw-bold); letter-spacing: .08em; line-height: 1; text-transform: uppercase; }
.actuals-correction-dialog { max-width: min(720px,calc(100vw - 32px)); color: var(--rst-ui-text); }
.actuals-correction-dialog::backdrop { background: var(--rst-overlay-bg); }
.actuals-correction-card { min-width: min(680px,calc(100vw - 32px)); border: 1px solid var(--rst-ui-line); background: var(--rst-ui-workspace-body); }
.actuals-correction-head h2 { margin: 0 0 4px; font-size: 20px; }
.actuals-correction-head p { color: var(--rst-ui-muted); }
.actuals-correction-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.actuals-correction-reason { margin-top: 12px; }
