.shift-schedule { max-width: 1440px; margin: 0 auto; color: #172535; }
.schedule-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:16px; }
.schedule-heading h1,.schedule-heading h2 { margin-bottom:6px; }
.schedule-heading p,.schedule-help { color:#536276; font-size:13px; line-height:1.55; }
.schedule-settings { border:1px solid #dce4ee; border-radius:12px; padding:14px; margin-bottom:20px; font-size:13px; }
.schedule-settings summary { cursor:pointer; font-weight:600; }
.schedule-settings form { display:flex; gap:12px; flex-wrap:wrap; align-items:end; margin-top:12px; }
.schedule-month-nav { display:flex; align-items:center; gap:16px; margin:18px 0; }
.schedule-month-nav h2 { margin:0; min-width:180px; font-size:20px; text-align:center; }
.schedule-legend { display:flex; gap:18px; flex-wrap:wrap; margin:14px 0; font-size:12px; }
.schedule-legend span { display:flex; align-items:center; gap:7px; }
.schedule-key { width:12px; height:12px; border-radius:4px; display:inline-block; }
.schedule-key.scheduled { background:#dceaff; }.schedule-key.overtime { background:#f5c66b; }.schedule-key.holiday { background:#e2d6fa; }
.schedule-calendar-scroll { overflow-x:auto; border:1px solid #dce4ee; border-radius:14px; }
.schedule-calendar { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); min-width:770px; gap:1px; background:#dce4ee; }
.schedule-weekday { padding:12px; background:#f4f7fb; text-align:center; font-size:12px; font-weight:650; }
.schedule-day { min-height:136px; padding:10px; background:#fff; display:flex; flex-direction:column; gap:6px; color:#172535; text-decoration:none; font-size:12px; overflow:hidden; }
.schedule-day:hover { background:#f0f6ff; }.schedule-day:focus-visible { outline:3px solid #245bd5; outline-offset:-3px; }
.schedule-day.is-selected { box-shadow:inset 0 0 0 2px #245bd5; }.schedule-day.is-holiday { background:#f4efff; }
.schedule-day.outside-month { color:#8793a2; background:#f6f8fa; }.schedule-day-number { font-weight:650; }.schedule-holiday-name { color:#69479d; font-size:11px; }
.schedule-chip { border-radius:6px; padding:5px 7px; border-left:3px solid var(--employee-color); background:var(--employee-bg); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.schedule-chip small { display:block; font-size:10px; }.schedule-chip.has-overtime { background:#fff1d1; border-left-color:#c57d10; }
.employee-color-0 { --employee-color:#3972c5; --employee-bg:#eaf2ff; }.employee-color-1 { --employee-color:#397d66; --employee-bg:#e8f4ef; }.employee-color-2 { --employee-color:#8257b0; --employee-bg:#f1eafa; }.employee-color-3 { --employee-color:#ac566d; --employee-bg:#fcecf1; }.employee-color-4 { --employee-color:#3a7e8c; --employee-bg:#e6f3f5; }
.schedule-day-panel,.schedule-add { margin-top:24px; border:1px solid #dce4ee; border-radius:14px; padding:20px; scroll-margin-top:20px; }
.schedule-shift { border-left:4px solid var(--employee-color); background:var(--employee-bg); border-radius:8px; padding:14px; margin-top:10px; display:flex; gap:16px; justify-content:space-between; align-items:center; flex-wrap:wrap; }
.schedule-shift h3 { font-size:14px; margin:0 0 6px; }.schedule-shift p { font-size:13px; margin:0 0 6px; }.schedule-shift small { font-size:12px; }
.schedule-shift-actions { display:flex; align-items:center; flex-wrap:wrap; gap:14px; font-size:12px; }.schedule-shift-actions form { margin:0; }
.schedule-overtime { padding:5px 9px; border-radius:6px; background:#fff1d1; color:#835107; }
.schedule-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; max-width:820px; }
.schedule-form label { display:flex; flex-direction:column; gap:7px; font-size:13px; }.schedule-form input,.schedule-form select { min-width:0; width:100%; margin:0; }.schedule-form-wide { grid-column:1/-1; }
.schedule-form .primary { justify-self:start; }.schedule-error,.schedule-notice { padding:14px; border-radius:10px; background:#eef5ff; font-size:13px; }.schedule-error { background:#fff0ed; color:#963c30; }
.schedule-empty { padding:20px 0; color:#64748b; }
@media(max-width:650px) { .schedule-form { grid-template-columns:minmax(0,1fr); }.schedule-month-nav { gap:8px; flex-wrap:wrap; }.schedule-month-nav h2 { min-width:150px; }.schedule-day-panel,.schedule-add { padding:14px; } }

.schedule-hour-totals { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:18px 0; }
.schedule-hour-totals > div { border:1px solid #dce4ee; padding:14px; border-radius:12px; background:#fff; }
.schedule-hour-totals dt { font-size:12px; color:#536276; }.schedule-hour-totals dd { margin:6px 0 0; font-size:24px; font-weight:600; font-variant-numeric:tabular-nums; }.schedule-hour-totals dd small { font-size:12px; font-weight:400; }
.schedule-day-hours { display:flex; flex-wrap:wrap; gap:4px; margin-top:auto; }.schedule-hour-status { border-radius:4px; padding:3px 5px; font-size:10px; }.schedule-hour-status.timesheet { background:#eef2f6; color:#334155; }.schedule-hour-status.approved { background:#dceaff; color:#234a8c; }.schedule-hour-status.paid { background:#dff1e8; color:#216242; }
.schedule-hours-table { min-width:680px; width:100%; }.schedule-hours-table caption { padding:12px; text-align:left; font-size:13px; }.schedule-hours-table th small { display:block; font-size:11px; font-weight:400; color:#536276; }.schedule-hours-table td { font-variant-numeric:tabular-nums; white-space:nowrap; }
@media(max-width:650px) { .schedule-hour-totals { grid-template-columns:repeat(2,minmax(0,1fr)); } }
