:root {
  color-scheme: dark;
  --background: #050508;
  --sidebar: #080810;
  --surface: #0e0e19;
  --raised: #1a1a28;
  --text: #f0f0f8;
  --muted-reference: #717180;
  --muted: #aaaaba;
  --brand: #ff7900;
  --highlight: #fb9441;
  --success: #22c55d;
  --danger: #ef4444;
  --warning: #eab40e;
  --line: #333344;
  --control-line: #777787;
  --morning: #eab40e;
  --morning-bg: #29220f;
  --afternoon: #fb9441;
  --afternoon-bg: #2c1b12;
  --success-bg: #0d291a;
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.5;
  background: var(--background);
  color: var(--text);
  accent-color: var(--brand);
  scrollbar-color: var(--control-line) var(--sidebar);
}
* { box-sizing: border-box; }
body {
  --canvas-grid: rgb(240 240 248 / 4%);
  --canvas-warmth: rgb(255 121 0 / 12%);
  margin: 0;
  min-height: 100vh;
  background-color: var(--background);
  /* The planning grid fades out before longer coordinator rosters. */
  background-image:
    linear-gradient(to bottom, transparent, var(--background) 900px),
    linear-gradient(var(--canvas-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--canvas-grid) 1px, transparent 1px),
    radial-gradient(ellipse 85% 650px at 0% 0%, var(--canvas-warmth), transparent 75%);
  background-size: 100% 100%, 48px 48px, 48px 48px, 100% 100%;
}
::selection { color: var(--background); background: var(--highlight); }
a { color: inherit; text-underline-offset: .25em; }
button, input, select { font: inherit; }
input { caret-color: var(--brand); }
button, a, label, summary { -webkit-tap-highlight-color: transparent; }
button, summary, .shift, .unavailable { cursor: pointer; }
button, .primary, .secondary { min-height: 48px; }
:focus-visible { outline: 3px solid var(--highlight); outline-offset: 4px; }
h1, h2, h3, p { margin-block: 0; }
h1 { font-size: 2.75rem; line-height: 1.08; letter-spacing: -.035em; font-weight: 750; text-wrap: balance; }
h2 { font-size: 1.25rem; line-height: 1.3; letter-spacing: -.02em; }
h3 { font-size: 1rem; }
p { max-width: 65ch; }
p + p { margin-top: .75rem; }
svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
.accent { color: var(--brand); }
.muted, .help, .privacy { color: var(--muted); }
.lead { color: var(--muted); font-size: 1.125rem; margin-top: 1.25rem; line-height: 1.65; }
.help { font-size: .8125rem; line-height: 1.6; margin-block: .625rem 1rem; }
.site-header { background: var(--sidebar); min-height: 100px; padding: 24px 6%; display: flex; align-items: center; gap: 22px; border-bottom: 1px solid var(--line); }
.brand { display: flex; gap: 12px; align-items: center; text-decoration: none; font-size: .875rem; line-height: 1.25; }
.brand-mark { font-size: 2rem; letter-spacing: -.07em; font-weight: 800; }
.brand-mark > span { color: var(--brand); }
.header-label { padding-left: 22px; border-left: 1px solid var(--line); font-size: .8125rem; color: var(--muted); }
.session-name { margin-left: auto; font-size: .8125rem; color: var(--muted); overflow-wrap: anywhere; max-width: 35%; }
.welcome-layout, .schedule-layout { display: grid; grid-template-columns: minmax(250px, 1fr) minmax(420px, 1.35fr); gap: 8%; max-width: 1180px; margin: auto; padding: 76px 48px 64px; align-items: start; }
.welcome-copy { padding-block: 36px; }
.welcome-copy h1 { font-size: 3.75rem; }
.week-ribbon { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-top: 48px; padding-block: 16px; border-block: 1px solid var(--line); font-size: .75rem; color: var(--muted); text-align: center; }
.week-ribbon + p { font-size: .8125rem; margin-top: 16px; }
.entry-panel { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 32px; }
.entry-panel > p { margin-top: .75rem; color: var(--muted); font-size: .9375rem; }
form > label { display: block; font-size: .875rem; font-weight: 600; margin-top: 24px; margin-bottom: 8px; }
input:not([type=checkbox]), select { display: block; width: 100%; min-height: 52px; padding: 12px 14px; background: var(--sidebar); color: var(--text); border: 1px solid var(--control-line); border-radius: 8px; }
input::placeholder { color: var(--muted); opacity: 1; }
input:user-invalid { border-color: var(--danger); }
.primary, .secondary { display: inline-flex; align-items: center; justify-content: center; gap: 12px; padding: 13px 20px; font-size: .9375rem; font-weight: 700; border: 1px solid transparent; border-radius: 8px; text-decoration: none; line-height: 1.4; transition: background-color 160ms ease-out, border-color 160ms ease-out; }
.primary { background: var(--brand); color: var(--background); }
.primary:hover { background: var(--highlight); }
.secondary { border-color: var(--control-line); background: transparent; color: var(--text); }
.secondary:hover { background: var(--raised); }
.primary:active, .secondary:active { transform: translateY(1px); }
.full { width: 100%; margin-top: 20px; }
button:disabled { cursor: wait; opacity: .6; }
.entry-panel > .privacy { margin-top: 24px; font-size: .75rem; line-height: 1.7; }
details { font-size: .875rem; color: var(--muted); }
summary { min-height: 48px; padding-block: 12px; color: var(--text); }
.recovery-details { border-top: 1px solid var(--line); margin-top: 24px; padding-top: 8px; }
.greeting { color: var(--muted); margin-bottom: 24px; overflow-wrap: anywhere; }
.week-intro h1 { font-size: 3.25rem; }
.week-summary { margin-block: 36px 20px; padding-top: 28px; border-top: 1px solid var(--line); }
.week-summary > .muted { font-size: .8125rem; }
.week-summary h2 { margin-top: 8px; }
.week-summary > p { margin-top: 8px; font-size: .875rem; color: var(--muted); }
.status { display: inline-flex; align-items: center; gap: 8px; font-size: .8125rem; white-space: nowrap; }
.status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.status-open { color: var(--success); }
.status-closed { color: var(--warning); }
.week-summary .status { margin-top: 24px; }
.device-details { grid-column: 1 / -1; margin-top: 24px; border-top: 1px solid var(--line); }
.text-button { color: var(--text); background: transparent; border: none; text-decoration: underline; padding: 8px 0; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.section-heading p { font-size: .875rem; color: var(--muted); margin-top: 8px; }
.calendar-icon { width: 32px; height: 32px; color: var(--muted); }
.days-fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.day-list { margin-top: 24px; border-top: 1px solid var(--line); }
.day-row { position: relative; display: grid; grid-template-columns: 1fr 1.7fr; align-items: center; border: 0; border-bottom: 1px solid var(--line); padding: 18px 0; margin: 0; min-width: 0; }
.day-row legend { float: left; width: 100%; padding: 0; }
.day-name { display: block; text-transform: capitalize; font-size: 1rem; font-weight: 650; }
.day-date { display: block; font-size: .8125rem; color: var(--muted); margin-top: 2px; font-variant-numeric: tabular-nums; }
.shift-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.shift { position: relative; min-height: 50px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--control-line); border-radius: 8px; background: var(--surface); }
.shift input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.shift > span { display: flex; align-items: center; gap: 6px; font-size: .875rem; font-weight: 600; }
.shift svg { width: 18px; height: 18px; }
.shift .selected-mark { display: none; }
.shift:has(input:checked) svg { display: none; }
.shift:has(input:checked) .selected-mark { display: block; }
.shift-morning { color: var(--morning); }
.shift-afternoon { color: var(--afternoon); }
.shift-morning:has(input:checked) { background: var(--morning-bg); border-color: var(--morning); }
.shift-afternoon:has(input:checked) { background: var(--afternoon-bg); border-color: var(--afternoon); }
.shift:has(input:focus-visible) { outline: 3px solid var(--highlight); outline-offset: 3px; }
.shift:hover { border-color: var(--highlight); }
.days-fieldset:disabled .shift { cursor: default; }
.unavailable { display: flex; align-items: center; gap: 12px; font-size: .875rem; min-height: 52px; margin-top: 18px; }
input[type=checkbox] { width: 20px; height: 20px; flex: 0 0 auto; }
.save-bar { display: flex; justify-content: space-between; gap: 18px; align-items: center; margin-top: 22px; padding-top: 24px; border-top: 1px solid var(--line); }
.save-bar strong { display: block; font-size: .9375rem; font-variant-numeric: tabular-nums; }
.save-bar .muted { display: block; font-size: .75rem; margin-top: 2px; }
.final-note { margin-top: 18px; }
.notice { padding: 16px 18px; margin-top: 24px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); font-size: .875rem; }
.notice strong, .notice span { display: block; }
.notice span { margin-top: 4px; color: var(--muted); }
.notice.success { border-color: var(--success); }
.notice.success strong { color: var(--success); }
.empty-state { padding-block: 32px; }
.empty-state p { margin-top: 16px; color: var(--muted); }
.empty-state a { margin-top: 24px; }
.site-footer { max-width: 1180px; padding: 24px 48px 32px; margin: auto; display: flex; justify-content: space-between; gap: 16px; font-size: .75rem; color: var(--muted); }
.site-footer a { display: inline-flex; min-height: 44px; align-items: center; }
.compact-main { max-width: 600px; padding: 64px 24px; margin: auto; min-height: 65vh; }
.compact-main .entry-panel { margin-block: 32px; }
.compact-main > p { margin-block: 24px; }
.compact-main > label { display: block; margin-bottom: 8px; }
.compact-main .primary { margin-top: 16px; }
.error-marker { display: grid; place-items: center; background: var(--danger); color: var(--background); width: 48px; height: 48px; border-radius: 50%; font-size: 1.5rem; font-weight: 800; margin-bottom: 24px; }
.error-actions { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.error-actions .primary { margin: 0; }
.admin-main { max-width: 1240px; padding: 56px 48px; margin: auto; }
.admin-heading { display: flex; justify-content: space-between; gap: 24px; align-items: start; }
.admin-toolbar { margin-block: 40px; display: flex; justify-content: space-between; gap: 24px; align-items: end; }
.inline-form { display: flex; gap: 8px; }
.week-filter { flex: 0 1 460px; }
.totals-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; margin-top: 24px; }
.total-day { background: var(--surface); padding: 18px 14px; border-right: 1px solid var(--line); }
.total-day:last-child { border: 0; }
.total-day h3 { text-transform: capitalize; font-size: .875rem; }
.total-day > span { font-size: .75rem; }
dl { margin: 16px 0 0; }
dl > div { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
dt { font-size: .75rem; color: var(--muted); }
dd { margin: 0; font-weight: 650; font-variant-numeric: tabular-nums; }
.responses { margin-block: 40px; }
.table-scroll { margin-top: 20px; overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; }
table { width: 100%; border-collapse: collapse; text-align: left; font-size: .875rem; }
th, td { padding: 14px 18px; border-bottom: 1px solid var(--line); }
thead { background: var(--surface); color: var(--muted); }
tbody th { font-weight: 500; overflow-wrap: anywhere; min-width: 180px; }
td { white-space: nowrap; font-variant-numeric: tabular-nums; }
tr:last-child > * { border-bottom: 0; }
.admin-tools { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.recovery-code { font-family: ui-monospace, monospace; }
.schedule-filter { margin-bottom: 28px; }
.preview-banner { padding: 10px 24px; background: var(--warning); color: var(--background); font-size: .8125rem; text-align: center; }
.preview-banner a { margin-left: 12px; font-weight: 700; }
.sr-only, .skip:not(:focus) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip:focus { display: block; padding: 16px; }
@media (max-width: 800px) {
  .site-header { background: var(--sidebar); min-height: 80px; padding: 18px 24px; }
  .header-label { display: none; }
  .welcome-layout, .schedule-layout { grid-template-columns: 1fr; gap: 32px; max-width: 580px; padding: 32px 24px; }
  .welcome-copy { padding-block: 8px; }
  .welcome-copy h1, .week-intro h1 { font-size: 2.75rem; }
  .week-ribbon { margin-top: 28px; }
  .entry-panel { padding: 24px; }
  .week-intro h1 br, .week-intro .lead br { display: none; }
  .week-intro h1 { font-size: 1.75rem; }
  .week-intro .lead { display: none; }
  .greeting { margin-bottom: 12px; }
  .week-summary { margin-block: 20px 0; padding-top: 16px; }
  .week-summary > .muted, .week-summary .week-days-copy { display: none; }
  .week-summary h2 { margin-top: 0; }
  .week-summary .status { margin-top: 12px; }
  .device-details { margin-top: 12px; }
  .day-row { grid-template-columns: minmax(86px,1fr) 2fr; }
  .save-bar { position: sticky; bottom: 0; margin-inline: -24px; padding: 16px 24px calc(16px + env(safe-area-inset-bottom)); background: var(--sidebar); z-index: 2; }
  .save-bar .primary { padding-inline: 14px; }
  .save-bar svg { display: none; }
  .site-footer { padding: 20px 24px; flex-wrap: wrap; align-items: center; }
  .site-footer span { max-width: 220px; }
  .admin-main { padding: 32px 24px; }
  .admin-heading { flex-direction: column; }
  .admin-heading h1 { font-size: 2rem; }
  .admin-toolbar { flex-wrap: wrap; }
  .week-filter { flex-basis: 100%; }
  .totals-grid { grid-template-columns: 1fr; }
  .total-day { display: grid; grid-template-columns: 1fr 1fr 2fr; align-items: center; border-right: 0; border-bottom: 1px solid var(--line); }
  dl { margin: 0; display: flex; gap: 16px; }
  .admin-tools { grid-template-columns: 1fr; }
}
@media (max-width: 360px) {
  .welcome-layout, .schedule-layout { padding-inline: 16px; }
  .shift-pair { gap: 6px; }
  .shift svg { display: none; }
  .save-bar { margin-inline: -16px; padding-inline: 16px; gap: 8px; }
  .save-bar .primary { font-size: .8125rem; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; } }

/* Coordinator roster: one bounded page of people, with details on demand. */
.admin-heading h1 { font-size: 2rem; }
.admin-heading .lead { margin-top: 12px; font-size: 1rem; }
.admin-toolbar { margin-block: 24px 32px; }
.response-overview { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 24px; margin-block: 24px 16px; font-size: .9375rem; }
.response-overview p + p { margin: 0; }
.response-overview strong { font-variant-numeric: tabular-nums; }
.daily-overview summary { font-weight: 600; }
.daily-overview .totals-grid { margin-top: 8px; }
.daily-overview .total-day { padding: 12px 8px; }
.total-day > div > .muted { font-size: .75rem; }
.daily-counts { display: grid; gap: 4px; margin-top: 12px; }
.daily-counts a { display: flex; align-items: center; justify-content: space-between; gap: 6px; min-height: 44px; padding: 8px 6px; font-size: .75rem; border-radius: 8px; text-decoration: none; }
.daily-counts a:hover { background: var(--raised); }
.daily-counts strong { color: var(--highlight); text-decoration: underline; text-underline-offset: .2em; font-size: 1rem; font-variant-numeric: tabular-nums; }
#responses, #publish-week { scroll-margin-top: 24px; }
.roster-status-nav { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 24px; }
.roster-status-nav a { display: inline-flex; align-items: center; gap: 12px; min-height: 48px; padding: 10px 12px; border: 1px solid var(--control-line); border-radius: 8px; text-decoration: none; font-size: .8125rem; }
.roster-status-nav a:hover { background: var(--raised); }
.roster-status-nav strong { color: var(--highlight); font-variant-numeric: tabular-nums; }
.roster-filters { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; margin-top: 24px; padding: 20px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; }
.roster-filters label { display: block; margin-bottom: 8px; font-size: .8125rem; font-weight: 600; }
.roster-search { grid-column: span 2; }
.filter-actions { display: flex; align-items: center; justify-content: end; gap: 20px; grid-column: span 2; }
.filter-actions a, .roster-meta a { display: inline-flex; align-items: center; min-height: 44px; font-size: .875rem; }
.roster-meta { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; align-items: center; margin-block: 24px 8px; font-size: .8125rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.roster-meta a { color: var(--text); }
.volunteer-list { border-block: 1px solid var(--line); }
.volunteer-row { border-bottom: 1px solid var(--line); }
.volunteer-row:last-child { border-bottom: 0; }
.volunteer-row > summary { display: grid; grid-template-columns: minmax(0,1fr) 180px 90px 22px; align-items: center; gap: 16px; padding: 20px 12px; list-style: none; }
.volunteer-row > summary::-webkit-details-marker { display: none; }
.volunteer-row > summary:hover, .volunteer-row[open] > summary { background: var(--surface); }
.volunteer-name { font-size: .9375rem; font-weight: 600; overflow-wrap: anywhere; }
.response-status { font-size: .8125rem; }
.response-available { color: var(--success); }
.response-pending { color: var(--warning); }
.response-unavailable, .volunteer-count { color: var(--muted); }
.volunteer-count { font-size: .8125rem; font-variant-numeric: tabular-nums; }
.volunteer-row[open] > summary .expand-icon { transform: rotate(180deg); }
.volunteer-detail { padding: 8px 24px 24px; }
.volunteer-days { list-style: none; margin: 0; padding: 0; max-width: 620px; }
.volunteer-days li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; padding: 12px 0; border-bottom: 1px solid var(--line); color: var(--text); }
.volunteer-days strong { text-transform: capitalize; font-weight: 500; }
.volunteer-days strong span { margin-left: 8px; font-size: .8125rem; }
.person-recovery { margin-top: 16px; }
.person-recovery summary { overflow-wrap: anywhere; text-decoration: underline; text-underline-offset: .25em; }
.roster-pagination { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 20px; font-size: .8125rem; }
.admin-publish { border-top: 1px solid var(--line); padding-top: 16px; margin-top: 24px; }
.admin-publish > summary { font-size: 1rem; font-weight: 600; }
.admin-publish .entry-panel, .admin-publish > form { max-width: 600px; margin-top: 16px; }
@media (max-width: 800px) {
  .daily-overview .total-day { grid-template-columns: minmax(80px,1fr) 2fr; gap: 16px; padding: 8px 12px; }
  .daily-counts { grid-template-columns: 1fr 1fr; margin: 0; gap: 12px; }
  .daily-overview summary .muted { display: block; font-size: .8125rem; font-weight: 400; }
  .responses > .section-heading { align-items: start; flex-wrap: wrap; }
  .roster-filters { grid-template-columns: repeat(2,minmax(0,1fr)); padding: 16px; gap: 16px 12px; }
  .filter-actions { grid-column: 1 / -1; justify-content: start; }
  .volunteer-row > summary { grid-template-columns: minmax(0,1fr) auto 22px; gap: 8px 12px; padding: 16px 8px; }
  .volunteer-name { grid-column: 1 / 3; }
  .expand-icon { grid-column: 3; grid-row: 1 / 3; }
  .response-status { grid-column: 1; }
  .volunteer-count { grid-column: 2; }
  .volunteer-detail { padding-inline: 8px; }
  .roster-status-nav a { flex: 1 1 45%; justify-content: space-between; }
}
@media (max-width: 400px) {
  .admin-main { padding-inline: 16px; }
  .roster-filters { grid-template-columns: minmax(0,1fr); }
  .roster-search { grid-column: auto; }
  .roster-pagination .secondary { padding-inline: 12px; }
}

/* Approved A · Señal naranja. Color roles reinforce labels, never replace them. */
.schedule-layout { grid-template-columns: minmax(250px, 360px) minmax(0, 1fr); max-width: 1296px; gap: 64px; padding: 42px 28px 60px; }
.schedule-panel { min-width: 0; padding: 28px; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; }
.week-intro { padding-top: 28px; }
.week-intro h1 { font-size: 2.75rem; }
.roster-status-nav { margin-block: 24px 32px; }
.roster-status-nav a { background: var(--surface); }
.roster-status-nav a[aria-current] { border-color: var(--brand); background: var(--afternoon-bg); }
.roster-status-nav a[aria-current]::before { content: "✓"; }
.daily-overview .section-heading { align-items: baseline; flex-wrap: wrap; gap: 8px; }
.daily-overview .section-heading p { margin: 0; }
.daily-overview .totals-grid { gap: 10px; border: 0; overflow: visible; }
.daily-overview .total-day { padding: 0; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; min-width: 0; }
.whole-day { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 14px 12px; min-height: 76px; border-radius: 11px 11px 0 0; text-decoration: none; font-size: .8125rem; }
.whole-day strong, #responses-title { text-transform: capitalize; }
.whole-day small { display: block; color: var(--muted); font-size: .6875rem; margin-top: 3px; }
.day-total-count { text-align: right; font-variant-numeric: tabular-nums; }
.day-total-count b { font-size: 1.125rem; }
.whole-day:hover { background: var(--raised); }
.whole-day[aria-current] { background: var(--brand); color: var(--background); }
.whole-day[aria-current] small { color: var(--background); }
.daily-counts { padding: 6px; margin: 0; border-top: 1px solid var(--line); }
.daily-counts a.morning, .shift-tag.morning { color: var(--morning); background: var(--morning-bg); }
.daily-counts a.afternoon, .shift-tag.afternoon { color: var(--afternoon); background: var(--afternoon-bg); }
.daily-counts strong { color: inherit; text-decoration: none; }
.daily-counts a:hover { text-decoration: underline; }
.daily-counts a[aria-current] { outline: 2px solid currentColor; outline-offset: -2px; text-decoration: underline; }
.response-status { display: inline-flex; align-items: center; gap: 8px; justify-self: start; padding: 6px 10px; border-radius: 6px; }
.response-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: 0 0 auto; }
.response-available { background: var(--success-bg); }
.response-pending { background: var(--morning-bg); }
.response-unavailable { background: var(--raised); }
.person-shifts { display: flex; gap: 8px; flex-wrap: wrap; }
.shift-tag { padding: 4px 8px; border-radius: 6px; font-size: .8125rem; }
@media (min-width: 801px) and (max-width: 1100px) {
  .daily-overview .totals-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
  .schedule-layout { gap: 28px; grid-template-columns: 280px minmax(0,1fr); }
  .schedule-panel { padding: 20px; }
}
@media (max-width: 800px) {
  .schedule-layout { grid-template-columns: minmax(0,1fr); gap: 28px; padding: 28px 24px; }
  .schedule-panel { padding: 0; border: 0; background: transparent; }
  .week-intro { padding: 0; }
  .week-intro h1 { font-size: 2rem; }
  .daily-overview .total-day { grid-template-columns: minmax(116px,1fr) 1.7fr; gap: 0; padding: 0; }
  .whole-day { padding: 12px; border-radius: 11px 0 0 11px; }
  .daily-counts { border-top: 0; border-left: 1px solid var(--line); gap: 6px; padding: 6px; }
  .daily-counts a { flex-wrap: wrap; justify-content: center; padding: 8px 4px; }
  .response-status { font-size: .75rem; }
}
@media (max-width: 360px) {
  .schedule-layout { padding-inline: 16px; }
}
