/* v2.0 Preview 6 — unified light/dark design system + visual tightening */
html[data-theme="light"]{
  color-scheme:light;
  --iea:#007297;
  --iea-deep:#07536b;
  --cyan:#00a8d8;
  --ink:#26353a;
  --heading:#16272d;
  --muted:#697a7f;
  --paper:#f4f6f4;
  --white:#ffffff;
  --line:#d8e1de;
  --soft:#eef2f0;
  --sand:#f1ece2;
  --surface:#ffffff;
  --surface-raised:#ffffff;
  --surface-soft:#f0f3f1;
  --surface-muted:#e8eeeb;
  --control-bg:#ffffff;
  --control-border:#c8d4d1;
  --nav-text:#33474e;
  --hero-start:#063f52;
  --hero-end:#08778c;
  --accent-soft:#e8f3f5;
  --danger:#a13d4d;
  --shadow:0 10px 30px rgba(24,55,61,.075);
  --shadow-raised:0 14px 38px rgba(24,55,61,.10);
  --club-brass:#8c6c39;
  --club-brass-soft:#d8c8a8;
  --club-cream:#f3efe6;
}

html[data-theme="dark"]{
  color-scheme:dark;
  --iea:#72c5d5;
  --iea-deep:#9bd7e2;
  --cyan:#55c5e7;
  --ink:#d7e3e4;
  --heading:#f1f5f4;
  --muted:#9aabad;
  --paper:#0e1517;
  --white:#172124;
  --line:#2b3a3d;
  --soft:#1a272a;
  --sand:#2b2924;
  --surface:#151f22;
  --surface-raised:#192528;
  --surface-soft:#1b292c;
  --surface-muted:#223135;
  --control-bg:#10191b;
  --control-border:#3a4c50;
  --nav-text:#c8d6d7;
  --hero-start:#0c2025;
  --hero-end:#0e5968;
  --accent-soft:#1b3035;
  --danger:#e98998;
  --shadow:0 12px 34px rgba(0,0,0,.22);
  --shadow-raised:0 18px 46px rgba(0,0,0,.28);
  --club-brass:#c2a66e;
  --club-brass-soft:#7d6b49;
  --club-cream:#292720;
}

/* Base page rhythm */
body{
  background:var(--paper);
  color:var(--ink);
}
.container{
  width:min(1160px,92vw);
  margin:28px auto 64px;
}
.topbar{
  min-height:68px;
  background:color-mix(in srgb,var(--surface) 94%,transparent);
  border-bottom:1px solid var(--line);
  box-shadow:0 4px 18px rgba(24,55,61,.045);
}
html[data-theme="dark"] .topbar{
  background:color-mix(in srgb,var(--paper) 92%,transparent);
  border-bottom-color:var(--line);
}
.brand-copy strong,
.page-title h1,
.section-head h2,
.card h2,
.card h3{
  color:var(--heading);
}
.brand-copy small,
.page-title p,
.muted{
  color:var(--muted);
}

/* Tighter editorial spacing */
.page-title{
  margin-bottom:14px;
}
.page-title h1{
  font-size:clamp(2rem,3.6vw,3.35rem);
  line-height:1;
}
.section-head{
  margin-bottom:13px;
}
.section-head h2{
  font-size:1.72rem;
}
.content-section{
  margin-top:32px;
}
.grid2{
  gap:20px;
}
.metric-row{
  margin:18px 0 30px;
  border-radius:14px;
  box-shadow:var(--shadow);
}
.metric-row article{
  padding:18px 19px;
}
.metric-row strong{
  font-size:2.1rem;
}

/* Unified surfaces */
.card,
.form-card,
.auth-card,
.class-card,
.empty-state,
.show-mini,
.show-card,
.team-panel,
.contact-card,
.parent-directory-card,
.committee-card,
.planning-card,
.notification-card,
.availability-card,
.volunteer-card,
.hub-rider-card,
.hub-event-card,
.action-row,
.stat-card,
.report-net-summary>div,
.finance-filter-panel,
.policy-chip-grid>span{
  background:var(--surface);
  color:var(--ink);
  border-color:var(--line);
  box-shadow:var(--shadow);
}
.card{
  padding:18px;
  border-radius:14px;
}
.empty-state{
  padding:20px;
  border-radius:14px;
}
.class-card,
.show-card,
.rider-card{
  border-radius:14px;
}
.show-mini{
  min-height:128px;
  padding:14px;
  border-radius:13px;
}
.show-card-main{
  background:var(--surface);
}
.show-card-date,
.datebox,
.show-date{
  background:var(--surface-soft);
}
.class-card>header{
  padding:15px 18px;
  background:var(--surface-soft);
  border-color:var(--line);
}
.detail-band{
  border-radius:13px;
}
.detail-band>div{
  padding:14px 17px;
  background:var(--surface);
}
.contact-strip>span,
.progress-numbers>div,
.event-rsvp-note,
.my-show-day-open-jobs,
.season-history-stats>span{
  background:var(--surface-soft);
  border-color:var(--line);
}

/* Navigation */
.nav-primary>a,
.nav-utility>a,
.nav-signout,
.nav-menu>summary,
.theme-toggle{
  border-radius:8px;
}
.nav-primary>a.is-active,
.nav-utility>a.is-active,
.nav-menu.has-active>summary,
.nav-menu-panel a.is-active{
  background:var(--accent-soft);
  color:var(--iea-deep);
}
.nav-menu-panel{
  background:var(--surface-raised);
  border-color:var(--line);
  box-shadow:var(--shadow-raised);
}
.nav-menu-panel::before{
  background:var(--surface-raised);
  border-color:var(--line);
}
.nav-menu-panel a{
  color:var(--ink);
}
.nav-menu-panel a:hover{
  background:var(--surface-soft);
  color:var(--iea-deep);
}

/* Forms and controls */
main input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
main select,
main textarea{
  background:var(--control-bg);
  color:var(--ink);
  border-color:var(--control-border);
}
main input::placeholder,
main textarea::placeholder{
  color:color-mix(in srgb,var(--muted) 75%,transparent);
}
main input:focus,
main select:focus,
main textarea:focus{
  border-color:var(--iea);
  outline:0;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--iea) 14%,transparent);
}
.form-card{
  max-width:720px;
  margin:30px auto;
  padding:clamp(20px,4vw,32px);
}
.form-card form>p{
  margin-bottom:13px;
}
.form-card label,
.field-wrap label,
.report-season-picker label,
.report-filter-bar label{
  color:var(--muted);
}
.btn{
  min-height:40px;
  padding:9px 14px;
  border-radius:10px;
  box-shadow:none;
}
.btn:hover{
  box-shadow:0 7px 18px color-mix(in srgb,var(--iea) 18%,transparent);
}
.btn.secondary{
  background:var(--surface-soft);
  color:var(--iea-deep);
  border-color:var(--line);
}

/* Filters / pills */
.filter-tabs{
  gap:6px;
}
.filter-tabs a,
.dashboard-workspace-link{
  background:var(--surface);
  border-color:var(--line);
  color:var(--muted);
  box-shadow:none;
}
.filter-tabs a:hover,
.filter-tabs a.active,
.dashboard-workspace-link:hover,
.dashboard-workspace-link.active{
  background:var(--accent-soft);
  border-color:color-mix(in srgb,var(--iea) 52%,var(--line));
  color:var(--iea-deep);
}
.status-pill{
  background:var(--accent-soft);
  color:var(--iea-deep);
}

/* Tables */
.entry-table{
  color:var(--ink);
}
.entry-table th{
  background:var(--surface-soft);
  color:var(--muted);
  border-color:var(--line);
}
.entry-table td{
  border-color:var(--line);
}
.entry-table tbody tr:hover{
  background:color-mix(in srgb,var(--surface-soft) 70%,transparent);
}
.entry-table th,
.entry-table td{
  padding:10px 12px;
}
.past-list{
  background:var(--surface);
  border-color:var(--line);
}
.past-list a{
  border-color:var(--line);
}
.past-list a:hover{
  background:var(--surface-soft);
}

/* Dashboard / hero refinement */
.hero,
.show-hero{
  border-radius:20px;
  padding:clamp(24px,4vw,42px);
  background:
    radial-gradient(circle at 82% 18%,rgba(255,255,255,.08),transparent 22rem),
    linear-gradient(118deg,var(--hero-start),var(--hero-end));
  box-shadow:var(--shadow-raised);
}
.dashboard-hero{
  min-height:230px;
}
.hero h1,
.show-hero h1{
  font-size:clamp(2.2rem,4.5vw,4.2rem);
}
.welcome-kicker{
  margin-bottom:13px;
  padding:6px 10px;
}

/* Rider / show cards */
.rider-grid{
  gap:13px;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
}
.rider-card{
  background:var(--surface);
  border-color:var(--line);
  box-shadow:var(--shadow);
}
.rider-card:hover,
.show-card:hover,
.show-mini:hover{
  border-color:color-mix(in srgb,var(--iea) 35%,var(--line));
  box-shadow:var(--shadow-raised);
}
.rider-card>div:last-child{
  padding:14px 15px 16px;
}
.rider-card img,
.avatar{
  height:205px;
}
.show-strip{
  gap:11px;
}

/* Finance / reporting */
.report-link-card{
  padding:20px;
}
.report-card-grid{
  gap:11px;
}
.finance-filter-panel{
  padding:15px;
}
.finance-positive{
  color:#2e7256;
}
html[data-theme="dark"] .finance-positive{
  color:#8bc9a9;
}

/* Feedback and alerts */
.flash{
  padding:11px 14px;
  border-radius:10px;
  background:var(--accent-soft);
  color:var(--ink);
  border:1px solid color-mix(in srgb,var(--iea) 28%,var(--line));
}
.danger-link{
  color:var(--danger);
}

/* Footer */
footer{
  color:var(--muted);
  padding:22px;
}

/* Dark-mode cleanup for historically hard-coded surfaces */
html[data-theme="dark"] .show-card-main,
html[data-theme="dark"] .class-card>header,
html[data-theme="dark"] .entry-table th,
html[data-theme="dark"] .report-net-summary>div,
html[data-theme="dark"] .finance-filter-panel,
html[data-theme="dark"] .policy-chip-grid>span,
html[data-theme="dark"] .season-history-stats>span,
html[data-theme="dark"] .my-show-day-open-jobs{
  background:var(--surface-soft);
}
html[data-theme="dark"] .btn.secondary{
  background:var(--surface-soft);
  border-color:var(--line);
  color:var(--iea-deep);
}
html[data-theme="dark"] .filter-tabs a,
html[data-theme="dark"] .dashboard-workspace-link{
  background:var(--surface);
  border-color:var(--line);
  color:var(--muted);
}
html[data-theme="dark"] .filter-tabs a:hover,
html[data-theme="dark"] .filter-tabs a.active,
html[data-theme="dark"] .dashboard-workspace-link:hover,
html[data-theme="dark"] .dashboard-workspace-link.active{
  background:var(--accent-soft);
  border-color:#45646b;
  color:var(--iea-deep);
}

/* Responsive tightening */
@media(max-width:940px){
  .container{width:min(94vw,1160px);margin-top:22px}
  .grid2{gap:16px}
}
@media(max-width:760px){
  .container{width:min(94vw,1160px);margin-bottom:48px}
  .content-section{margin-top:26px}
  .page-title{align-items:flex-start}
  .page-title h1{font-size:2rem}
  .section-head h2{font-size:1.55rem}
  .card{padding:15px}
  .metric-row article{padding:15px 16px}
  .hero,.show-hero{border-radius:16px;padding:22px}
  .mobile-sticky-actions{
    background:color-mix(in srgb,var(--surface-raised) 94%,transparent);
    border-color:var(--line);
  }
}


/* Calendar surfaces are styled inline in Preview 5; these higher-specificity
   selectors make those components inherit the active portal theme. */
html[data-theme="dark"] .calendar-toolbar,
html[data-theme="dark"] .month-calendar,
html[data-theme="dark"] .month-day,
html[data-theme="dark"] .agenda-date-block,
html[data-theme="dark"] .calendar-detail-date{
  background:var(--surface);
  border-color:var(--line);
  color:var(--ink);
}
html[data-theme="dark"] .calendar-nav-button{
  background:var(--surface);
  border-color:var(--line);
  color:var(--ink);
}
html[data-theme="dark"] .calendar-view-switch{
  background:var(--surface-soft);
  border-color:var(--line);
}
html[data-theme="dark"] .calendar-view-switch a{
  color:var(--muted);
}
html[data-theme="dark"] .calendar-view-switch a.active{
  background:var(--iea);
  color:#071316;
}
html[data-theme="dark"] .calendar-filters select{
  background:var(--control-bg);
  border-color:var(--control-border);
  color:var(--ink);
}
html[data-theme="dark"] .month-weekdays{
  background:var(--surface-soft);
  border-color:var(--line);
}
html[data-theme="dark"] .month-day.outside-month{
  background:#111a1c;
  color:#708286;
}
html[data-theme="dark"] .month-event{
  background:var(--accent-soft);
}
html[data-theme="dark"] .month-event:hover{
  background:var(--surface-muted);
}
html[data-theme="dark"] .month-event.kind-show{
  background:#173239;
}
html[data-theme="dark"] .month-event.kind-lesson{
  background:#302b21;
}
html[data-theme="dark"] .month-event.kind-deadline{
  background:#352226;
}
html[data-theme="dark"] .month-event.kind-meeting{
  background:#202b37;
}
html[data-theme="dark"] .month-event.kind-social{
  background:#2c2532;
}
html[data-theme="dark"] .agenda-event{
  background:var(--surface);
  border-color:var(--line);
}
html[data-theme="dark"] .calendar-detail-date span{
  background:var(--surface-soft);
  color:var(--iea-deep);
}
