/* Reset, page shell, shared primitives and keyframes */

:root {
      --navy: #183b5b;
      --navy-2: #234d72;
      --ink: #142333;
      --muted: #66788a;
      --line: #dce4ea;
      --surface: #ffffff;
      --surface-soft: #f5f8fa;
      --break: #fff5e7;
      --break-line: #ead9bd;
      --accent: #0aa6d6;
      --physics: #ff4f14;
      --chem: #b9d8aa;
      --shadow: 0 12px 36px rgba(24,59,91,.10);
      --radius: 18px;
    }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
      margin: 0;
      font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
      color: var(--ink);
      background: #eef3f6;
      -webkit-font-smoothing: antialiased;
    }
button, select { font: inherit; }
.page {
      width: min(1580px, calc(100% - 32px));
      margin: 24px auto 48px;
    }
.action-btn {
      border: 1px solid var(--line);
      background: #fff;
      color: var(--navy);
      min-height: 38px;
      padding: 8px 12px;
      border-radius: 12px;
      font-weight: 800;
      cursor: pointer;
      box-shadow: 0 3px 12px rgba(24,59,91,.05);
    }
.action-btn:hover { border-color: #a9bac8; background: #fbfdff; }
.action-btn:focus-visible {
      outline: 3px solid rgba(10,166,214,.28);
      outline-offset: 2px;
    }
.footer-note {
      text-align: center;
      color: var(--muted);
      font-size: 12px;
      margin-top: 18px;
    }
@media (max-width: 1100px) {
.page { width: min(100% - 24px, 980px); margin-top: 12px; }
.action-btn.print-btn { display: none; }
}
@media (max-width: 620px) {
.page { width: 100%; margin: 0 auto 28px; }
.action-btn { min-width: 38px; padding: 8px 10px; }
}
@media print {
body { background: #fff; }
.page { width: 100%; margin: 0; }
.footer-note { display: none !important; }
}
:root {
      --navy: #071f3d;
      --navy-2: #0e3159;
      --ink: #0c2340;
      --muted: #587089;
      --line: #d8e5ee;
      --accent: #11c9ef;
      --physics: #ff4f14;
      --math: #0aa6d6;
      --chem: #85b86e;
      --meal: #f5a524;
      --page: #eef7fb;
    }
body { background: var(--page); }
.page { width: min(1480px, calc(100% - 32px)); margin: 18px auto 52px; }
.action-btn { min-height: 40px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-color: #cedde7; border-radius: 12px; color: var(--navy); box-shadow: 0 5px 16px rgba(7,31,61,.05); }
.action-btn .lucide { width: 18px; height: 18px; }
@media (max-width: 1080px) {
.page { width: min(100% - 24px, 980px); margin-top: 12px; }
}
@media (max-width: 700px) {
.page { width: 100%; margin: 0 auto 30px; }
}
:root {
  --sm-ink: #0b1d3a;
  --sm-muted: #71809b;
  --sm-page: #f3f6fa;
  --sm-card: rgba(255,255,255,.92);
  --sm-blue: #1677f2;
  --sm-line: rgba(101,126,164,.16);
  --sm-shadow: 0 18px 44px rgba(36,68,113,.10), 0 2px 8px rgba(36,68,113,.05);
}
* { box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  overflow-y: overlay;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
}
html.is-scrolling { scrollbar-color: rgba(72,100,136,.42) transparent; }
html::-webkit-scrollbar { width: 7px; }
html::-webkit-scrollbar-track { background: transparent; }
html::-webkit-scrollbar-thumb { border-radius: 999px; background: transparent; }
html.is-scrolling::-webkit-scrollbar-thumb { background: rgba(72,100,136,.42); }
body {
  margin: 0;
  color: var(--sm-ink);
  background: var(--sm-page);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}
button { color: inherit; }
.page.app-shell {
  width: min(1120px, calc(100% - 28px));
  margin: 14px auto 48px;
}
#monthLabel { font-size: 21px; letter-spacing: -.03em; text-transform: capitalize; }
.today-button {
  min-height: 44px;
  padding: 0 12px;
  border: 0;
  border-radius: 14px;
  color: var(--sm-blue);
  background: transparent;
  font-weight: 800;
  cursor: pointer;
}
#previousWeekBtn { left: 0; }
#nextWeekBtn { right: 0; }
.content-layout { width: min(820px, 100%); margin: 0 auto; }
.activity-stack { display: grid; gap: 9px; min-width: 0; }
.activity-stack.shared-start { padding-left: 9px; border-left: 2px solid rgba(118,139,171,.25); }
@keyframes menu-in {
from { opacity: 0; transform: translateY(-8px) scale(.97); }
to { opacity: 1; transform: none; }
}
@keyframes scrim-in {
from { opacity: 0; }
to { opacity: 1; }
}
.footer-note { margin: 28px auto 0; color: var(--sm-muted); font-size: 12px; text-align: center; }
button:focus-visible { outline: 3px solid rgba(22,119,242,.25); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
@media (max-width: 760px) {
.page.app-shell { width: 100%; margin: 0 auto 34px; }
#monthLabel { font-size: 19px; }
.content-layout { padding: 0 12px; }
}
@media (max-width: 430px) {
.today-button { padding: 0 6px; font-size: 13px; }
}
@keyframes menu-sheet-in {
from { opacity: 0; transform: translateY(18px) scale(.98); }
to { opacity: 1; transform: none; }
}
@media print {
body { background: #fff; }
.content-layout, .footer-note { display: none !important; }
}

/* Touch behaviour: no grey/black flash on tap, no 300ms delay, no text selection on controls */
* { -webkit-tap-highlight-color: transparent; }
button, .schedule-card, .club-card, .day-tab, .calendar-day, .round-action {
  touch-action: manipulation;
  -webkit-user-select: none;
  user-select: none;
}

/* An element with the hidden attribute is hidden, whatever a component rule says. */
[hidden] { display: none !important; }
