/* One type hierarchy and three material depths across the complete PWA. */
:root {
  --mc-font: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --mc-font-display: ui-rounded, -apple-system, BlinkMacSystemFont, 'SF Pro Rounded', 'Segoe UI', Roboto, sans-serif;
  --mc-text-xs: .8125rem;
  --mc-text-sm: .9375rem;
  --mc-text-lg: 1.125rem;
  --mc-text-xl: clamp(1.25rem, 1.4vw, 1.5rem);
  --mc-text-2xl: clamp(1.75rem, 2.8vw, 2.5rem);
  --mc-text-3xl: clamp(2.25rem, 4.2vw, 3.5rem);
  --mc-polish-glass: color-mix(in srgb, var(--mc-surface) 84%, transparent);
  --mc-polish-edge: color-mix(in srgb, var(--mc-ink) 10%, transparent);
  --mc-polish-highlight: rgba(255,255,255,.75);
  --mc-shadow-card: 0 2px 3px rgba(7,20,54,.025), 0 12px 32px rgba(7,20,54,.065), inset 0 1px 0 var(--mc-polish-highlight);
  --mc-shadow-sheet: 0 8px 24px rgba(7,20,54,.12), 0 32px 90px rgba(7,20,54,.25), inset 0 1px 0 var(--mc-polish-highlight);
}
.theme-dark {
  --mc-polish-glass: color-mix(in srgb, var(--mc-surface) 88%, transparent);
  --mc-polish-edge: rgba(180,203,245,.18);
  --mc-polish-highlight: rgba(210,227,255,.12);
  --mc-shadow-card: 0 2px 4px rgba(0,0,0,.12), 0 14px 36px rgba(0,0,0,.2), inset 0 1px 0 var(--mc-polish-highlight);
  --mc-shadow-sheet: 0 10px 28px rgba(0,0,0,.25), 0 36px 96px rgba(0,0,0,.38), inset 0 1px 0 var(--mc-polish-highlight);
}
body {font-family:var(--mc-font);font-size:1rem;line-height:1.55;letter-spacing:-.012em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
button,input,select,textarea {font-family:var(--mc-font);}
:is(.app-shell,.mc-sheet,.mc-tour) :is(h1,h2,h3,h4) {font-family:var(--mc-font-display);font-weight:650;letter-spacing:-.035em;line-height:1.2;text-wrap:balance;}
.page-header h1 {font-size:var(--mc-text-2xl);font-weight:700;line-height:1.16;letter-spacing:-.045em;}
:is(.mc-card,.mc-sheet,.mc-empty-state) h2 {line-height:1.22;}
:is(.app-shell,.mc-sheet) p {line-height:1.6;text-wrap:pretty;}
:is(.eyebrow,.page-kicker,.card-label,.course-code) {font-size:.75rem;font-weight:650;letter-spacing:.11em;line-height:1.5;}
:is(.mc-button,.provider-button,.mc-nav__item,.study-section-nav button,.study-entry-tabs button,.preference-row,.tool-row) {font-family:var(--mc-font);font-weight:600;letter-spacing:-.012em;line-height:1.35;text-transform:none;}
.mc-button {border-radius:14px;}
.mc-button--text {text-decoration:none;font-weight:600;}
:is(.tool-row,.support-row,.preference-row,.task-row) strong {font-size:1rem;font-weight:600;line-height:1.35;letter-spacing:-.018em;}
:is(.tool-row,.support-row,.preference-row,.account-pill,.mc-install-card) small {font-size:.8125rem;font-weight:400;line-height:1.5;}
.account-pill strong,.mc-install-card strong {font-size:.875rem;font-weight:600;line-height:1.4;}
.mc-input {font-size:.875rem;font-weight:600;line-height:1.45;gap:8px;}
.mc-input :is(input,select,textarea) {font-size:1rem;line-height:1.5;letter-spacing:-.012em;}
.mc-input :is(input,textarea)::placeholder {font-weight:400;opacity:1;}
:is(.focus-time,.focus-dial__time,.planner-total strong,.progress-metric strong,.metric-value) {font-variant-numeric:tabular-nums;letter-spacing:-.045em;}
.app-main {padding-inline:clamp(20px,4vw,56px);}
.app-view {gap:24px;}
.page-header {padding-block:4px 8px;}
.section-heading {gap:16px;}
:is(.mc-card:not(.today-next):not(.focus-timer-card--glass),.study-tools-card,.profile-settings-card,.course-disclosure,.planner-calendar-card,.focus-music-card) {
  border:1px solid var(--mc-polish-edge);
  background:linear-gradient(145deg,color-mix(in srgb,var(--mc-surface) 94%,transparent),var(--mc-polish-glass));
  box-shadow:var(--mc-shadow-card);
  -webkit-backdrop-filter:none;backdrop-filter:none;
}
/* Accent cards keep their navy material and readable light type. Applying the
   neutral glass background here previously left white text on white glass. */
.mc-card .mc-card { -webkit-backdrop-filter:none; backdrop-filter:none; }
.app-shell .today-next .today-next__context,.app-shell .today-next .card-label svg {color:#d5ffe8;}
.focus-ring__inner > span {color:var(--mc-hero-kicker);}
.mc-card {padding:24px;border-radius:var(--mc-radius-lg);}
.mc-card--tinted {background:linear-gradient(145deg,color-mix(in srgb,var(--mc-mint) 18%,var(--mc-surface)),var(--mc-polish-glass));}
.mc-empty-state {border:1px solid var(--mc-polish-edge);background:var(--mc-polish-glass);box-shadow:inset 0 1px 0 var(--mc-polish-highlight);padding:28px;gap:14px;}
.mc-empty-state p {max-width:48ch;font-size:.9375rem;}
.app-sidebar {border-inline-end:1px solid var(--mc-polish-edge);background:color-mix(in srgb,var(--mc-surface) 75%,transparent);-webkit-backdrop-filter:saturate(135%) blur(24px);backdrop-filter:saturate(135%) blur(24px);}
.mc-nav__item {min-height:48px;font-size:.9375rem;border-radius:14px;}
.mc-nav__item.is-active {box-shadow:inset 0 1px 0 var(--mc-polish-highlight),0 3px 12px rgba(7,20,54,.045);}
:is(.account-pill,.mc-install-card,.study-section-nav,.study-entry-tabs,.planner-view-toggle) {border-color:var(--mc-polish-edge);box-shadow:inset 0 1px 0 var(--mc-polish-highlight);}
.mc-sheet {border:1px solid var(--mc-polish-edge);background:color-mix(in srgb,var(--mc-surface) 93%,transparent);box-shadow:var(--mc-shadow-sheet);-webkit-backdrop-filter:saturate(140%) blur(28px);backdrop-filter:saturate(140%) blur(28px);}
.mc-sheet::backdrop {background:rgba(5,14,35,.42);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);}
.mc-sheet-motion-leaving::backdrop {animation:mc-backdrop-exit var(--mc-sheet-exit-duration,1s) cubic-bezier(.22,.8,.24,1) both;}
/* Keep the backdrop's glass filter static during exit; animate only opacity
   instead of repeatedly recomputing full-page blur while the dialog is modal. */
@keyframes mc-backdrop-exit {to {opacity:0;}}
.sheet-surface {padding:clamp(24px,4vw,36px);}
.onboarding-step {gap:16px;}
.onboarding-step h2 {font-size:var(--mc-text-2xl);line-height:1.2;}
.onboarding-step p {font-size:1rem;max-width:46ch;}
.onboarding-actions {padding-top:12px;gap:12px;}
.mc-onboarding__tutorial-nav button {font-weight:600;font-size:.875rem;letter-spacing:-.015em;}
:is(.mc-button,.provider-button,.tool-row,.mc-nav__item,.preference-row):focus-visible {outline:3px solid var(--mc-blue);outline-offset:3px;}
@media(hover:hover) {.mc-card {transition:box-shadow 240ms ease,border-color 240ms ease;}.mc-card:hover {border-color:var(--mc-line-strong);box-shadow:0 3px 8px rgba(7,20,54,.04),0 18px 40px rgba(7,20,54,.09),inset 0 1px 0 var(--mc-polish-highlight);}}
@media(max-width:640px) {.mc-card {padding:20px;}.mc-empty-state {padding:22px;}.app-view {gap:20px;}.page-header h1 {font-size:clamp(1.75rem,7vw,2.125rem);}.sheet-surface {padding:24px;}.onboarding-actions .mc-button {min-height:48px;}}
@media(prefers-reduced-motion:reduce) {.mc-sheet-motion-leaving::backdrop {animation:none;}.app-view,.mc-card,.mc-button {animation:none;transition:none;}}
@media(prefers-reduced-transparency:reduce) {:is(.mc-card,.mc-sheet,.app-sidebar,.mc-empty-state,.study-tools-card,.profile-settings-card,.course-disclosure,.planner-calendar-card,.focus-music-card) {background:var(--mc-surface);-webkit-backdrop-filter:none;backdrop-filter:none;}.mc-sheet::backdrop {-webkit-backdrop-filter:none;backdrop-filter:none;}}
:root[data-reduced-transparency=true] :is(.mc-card,.mc-sheet,.app-sidebar,.mc-empty-state,.study-tools-card,.profile-settings-card,.course-disclosure,.planner-calendar-card,.focus-music-card) {background:var(--mc-surface);-webkit-backdrop-filter:none;backdrop-filter:none;}
@media(forced-colors:active) {:is(.mc-card,.mc-sheet,.mc-empty-state) {border:1px solid CanvasText;box-shadow:none;background:Canvas;}.mc-sheet::backdrop {background:transparent;backdrop-filter:none;}}

.theme-dark :is(.mc-card:not(.today-next):not(.focus-timer-card--glass),.study-tools-card,.profile-settings-card,.course-disclosure,.planner-calendar-card,.focus-music-card) {background:var(--mc-surface-elevated);border-color:var(--mc-polish-edge);box-shadow:var(--mc-shadow-card);}
@media(prefers-reduced-transparency:reduce) {.theme-dark :is(.mc-card,.study-tools-card,.profile-settings-card,.course-disclosure,.planner-calendar-card,.focus-music-card) {background:var(--mc-surface);}}
:root[data-reduced-transparency=true] .theme-dark :is(.mc-card,.study-tools-card,.profile-settings-card,.course-disclosure,.planner-calendar-card,.focus-music-card),:root.theme-dark[data-reduced-transparency=true] :is(.mc-card,.study-tools-card,.profile-settings-card,.course-disclosure,.planner-calendar-card,.focus-music-card) {background:var(--mc-surface);}

/* A restrained action hierarchy: solid primary, neutral secondary, quiet utility. */
:root {--mc-button-min-height:48px;--mc-action-radius:12px;}
.mc-button,.provider-button {min-height:48px;padding:12px 16px;border-radius:var(--mc-action-radius);font-size:.9375rem;font-weight:600;line-height:1.4;gap:8px;transition:background 180ms ease,border-color 180ms ease,box-shadow 180ms ease,transform 120ms ease;}
.mc-button svg,.provider-button svg {width:18px;height:18px;flex-shrink:0;}
.mc-button--primary {box-shadow:0 3px 8px color-mix(in srgb,var(--mc-blue) 16%,transparent),inset 0 1px 0 rgba(255,255,255,.16);background:var(--mc-blue);}
.mc-button--primary:hover:not(:disabled) {box-shadow:0 4px 12px color-mix(in srgb,var(--mc-blue) 20%,transparent);}
:is(.mc-button--secondary,.theme-dark .mc-button--secondary) {color:var(--mc-ink);border-color:var(--mc-polish-edge);background:color-mix(in srgb,var(--mc-surface) 88%,transparent);box-shadow:inset 0 1px 0 var(--mc-polish-highlight);}
:is(.mc-button--quiet,.theme-dark .mc-button--quiet) {min-height:44px;padding:10px 12px;color:var(--mc-ink-secondary);border-color:transparent;background:transparent;box-shadow:none;}
.mc-button--text {min-height:44px;padding:9px 8px;border-color:transparent;background:transparent;box-shadow:none;}
:is(.mc-button--secondary,.mc-button--quiet,.mc-button--text):hover:not(:disabled) {color:var(--mc-ink);border-color:var(--mc-polish-edge);background:color-mix(in srgb,var(--mc-ink) 5%,var(--mc-surface));box-shadow:none;transform:none;}
.mc-button:hover:not(:disabled),.provider-button:hover:not(:disabled) {transform:none;}
.provider-button:hover:not(:disabled) {box-shadow:0 2px 8px rgba(7,20,54,.06);}
:is(.mc-button,.provider-button):active:not(:disabled) {transform:scale(.985);}
:is(.mc-button,.provider-button):disabled {opacity:.5;transform:none;box-shadow:none;}
:is(.mc-button,.provider-button):disabled:not([aria-busy=true]) {cursor:not-allowed;}
.today-next .mc-button--primary,.focus-timer-card--glass .mc-button--primary {box-shadow:0 3px 10px rgba(0,0,0,.12);}
:is(.planner-hero__actions,.focus-timer-card--glass) :is(.mc-button--secondary,.mc-button--quiet) {color:var(--mc-hero-copy);border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.08);box-shadow:none;}
:is(.planner-hero__actions,.focus-timer-card--glass) :is(.mc-button--secondary,.mc-button--quiet):hover:not(:disabled) {color:var(--mc-hero-copy);background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.3);}
.planner-plan-button {min-height:48px;}
.planner-plan-button small {font-size:.75rem;font-weight:400;}
:is(.planner-command-strip__actions,.calendar-connection-row,.focus-sound-controls,.maps-toolbar) .mc-button {min-height:44px;padding:10px 12px;font-size:.875rem;}
:is(.sheet-close,.mc-home-install__dismiss) {min-width:44px;min-height:44px;border-color:transparent;background:transparent;border-radius:12px;}
:is(.sheet-close,.mc-home-install__dismiss):hover {background:color-mix(in srgb,var(--mc-ink) 6%,transparent);}
:is(.course-card__note-action,.availability-preset) {min-height:44px;font-weight:600;border-radius:12px;}
.course-card__note-action {color:var(--mc-ink-secondary);border-color:var(--mc-polish-edge);background:transparent;}
:is(.study-section-nav,.study-entry-tabs,.planner-view-toggle) {border-radius:14px;background:color-mix(in srgb,var(--mc-ink) 4%,var(--mc-surface));box-shadow:none;}
:is(.study-section-nav,.study-entry-tabs,.planner-view-toggle) button {min-height:44px;border-radius:10px;font-size:.875rem;font-weight:600;}
.study-section-nav button.is-active {background:var(--mc-surface);color:var(--mc-ink);box-shadow:0 1px 4px rgba(7,20,54,.08);}
.focus-preset {min-height:88px;border-radius:16px;background:color-mix(in srgb,var(--mc-surface) 94%,transparent);}
.focus-preset strong {font-size:1.75rem;font-weight:650;letter-spacing:-.04em;}
.focus-preset span {font-weight:500;}
.focus-preset:hover {transform:none;}
.focus-preset.is-selected {background:color-mix(in srgb,var(--mc-blue) 8%,var(--mc-surface));border-color:var(--mc-blue);box-shadow:none;}
.focus-preset.is-selected strong {color:var(--mc-blue);}
.today-quick-action {border-radius:14px;box-shadow:none;}
:is(.tool-row,.preference-row,.today-quick-action):hover {transform:none;}
.maps-toolbar {gap:8px;}
.maps-menu summary {border-color:var(--mc-polish-edge);font-size:.875rem;border-radius:12px;}
:is(.mc-button,.provider-button,.sheet-close,.mc-home-install__dismiss,.availability-preset,.focus-preset,.maps-menu summary):focus-visible {outline:3px solid var(--mc-blue);outline-offset:3px;}
@media(max-width:640px) {.mc-button,.provider-button {min-height:48px;}.sheet-close {top:8px;right:8px;}}
@media(prefers-reduced-motion:reduce) {.mc-button,.provider-button,.focus-preset {transition:none;transform:none!important;}}
@media(forced-colors:active) {.mc-button,.provider-button,.availability-preset,.focus-preset,.sheet-close {border:1px solid ButtonText;box-shadow:none;}.mc-button--primary {background:Highlight;color:HighlightText;}}

.mc-button.course-delete,.mc-button.course-delete:hover:not(:disabled) {color:var(--mc-danger);}

/* Keep text on accent surfaces readable when transparency is reduced. */
@media(prefers-reduced-transparency:reduce) {
  :is(.today-next,.theme-dark .today-next,.focus-timer-card--glass,.theme-dark .focus-timer-card--glass) {background:#102f7d;color:#fffbe8;}
}
:root[data-reduced-transparency=true] :is(.today-next,.focus-timer-card--glass) {background:#102f7d;color:#fffbe8;}
@media(forced-colors:active) {
  :is(.today-next,.focus-timer-card--glass) {background:Canvas;color:CanvasText;}
  :is(.today-next,.focus-timer-card--glass) :is(h2,p,.card-label,.focus-clock,.today-next__link) {color:CanvasText;}
  .app-shell .today-next .today-next__context,.app-shell .today-next .card-label svg {color:CanvasText;}
}

@media(max-width:760px) {
  .app-shell .today-header {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;}
  .app-shell .today-header > div:first-child {grid-column:1;grid-row:1;min-width:0;}
  .app-shell .today-header .page-header__actions {display:contents;}
  .app-shell .today-header .avatar {grid-column:2;grid-row:1;}
  .app-shell .today-header .plan-badge {grid-column:1/-1;grid-row:2;justify-self:start;max-width:100%;white-space:normal;}
  .app-shell .planner-page-header {display:grid;grid-template-columns:minmax(0,1fr);gap:12px;}
  .app-shell .planner-date-nav {display:grid;grid-template-columns:48px minmax(0,1fr) 48px auto;width:100%;gap:6px;}
  .app-shell .planner-date-picker,.app-shell .planner-date-picker input {min-width:0;width:100%;}
  .app-shell [data-planner-today] {min-width:0;padding-inline:10px;}
  .app-shell .study-page-header {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;}
  .app-shell .study-page-header .page-header__actions {display:flex;width:auto;}
  .app-shell .study-page-header .mc-button {min-width:0;}
  .app-shell .study-section-nav button {min-width:0;gap:6px;padding-inline:8px!important;font-size:.875rem!important;}
}
@media(max-width:360px) {
  .app-shell .planner-date-nav {grid-template-columns:48px minmax(0,1fr) 48px;}
  .app-shell [data-planner-today] {grid-column:1/-1;}
  .app-shell .study-section-nav button svg {display:none;}
}
