/* Source: styles.css */
/* Source: design-system.css */
/* MindCoda design system — translated from MindCodaTheme.swift. */
:root {
  color-scheme: light;
  --mc-ink: #0c193d;
  --mc-ink-secondary: #4d5c75;
  --mc-teal: #0f4f42;
  --mc-on-accent: #ffffff;
  --mc-blue: #0940c4;
  --mc-deep-blue: #05155c;
  --mc-surface: #ffffff;
  --mc-pearl: #fcfcf2;
  --mc-mint: #c7fce0;
  --mc-cream: #fafddb;
  --mc-hero-heading: #fafddb;
  --mc-hero-copy: #ffffff;
  --mc-hero-kicker: #c7fce0;
  --mc-coral: #f58057;
  --mc-success: #0f6a57;
  --mc-success-surface: #e3f8ef;
  --mc-warning: #855c08;
  --mc-warning-surface: #fff7d7;
  --mc-danger: #a22f43;
  --mc-danger-surface: #fff0f3;
  --mc-line: rgba(9, 64, 196, .11);
  --mc-line-strong: rgba(9, 64, 196, .22);
  --mc-background: radial-gradient(circle at 8% -8%, rgba(199, 252, 224, .78), transparent 31%), radial-gradient(circle at 96% 10%, rgba(199, 225, 255, .48), transparent 28%), linear-gradient(145deg, #edf9f5 0%, var(--mc-pearl) 48%, #fff 100%);
  /* Matches MindCodaTheme: rounded display type for titles and timers,
     the platform's own text face for reading. */
  --mc-font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mc-font-display: ui-rounded, "SF Pro Rounded", "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --mc-font-serif: ui-serif, Georgia, Cambria, "Times New Roman", serif;
  --mc-text-xs: .75rem;
  --mc-text-sm: .875rem;
  --mc-text-base: 1rem;
  --mc-text-lg: 1.125rem;
  --mc-text-xl: 1.375rem;
  --mc-text-2xl: clamp(1.75rem, 3vw, 2.25rem);
  --mc-text-3xl: clamp(2.1rem, 4.4vw, 3.35rem);
  --mc-space-1: 4px;
  --mc-space-2: 8px;
  --mc-space-3: 12px;
  --mc-space-4: 16px;
  --mc-space-5: 20px;
  --mc-space-6: 24px;
  --mc-space-7: 28px;
  --mc-space-8: 32px;
  --mc-space-10: 40px;
  --mc-space-12: 48px;
  --mc-radius-sm: 14px;
  --mc-radius-md: 18px;
  --mc-radius-lg: 24px;
  --mc-radius-xl: 30px;
  --mc-radius-pill: 999px;
  --mc-shadow-card: 0 10px 28px rgba(5, 21, 92, .065), 0 1px 0 rgba(255, 255, 255, .92) inset;
  --mc-shadow-hero: 0 18px 42px rgba(5, 21, 92, .16), 0 1px 0 rgba(255, 255, 255, .2) inset;
  --mc-shadow-sheet: 0 24px 65px rgba(5, 21, 92, .22);
  --mc-shadow-float: 0 14px 32px rgba(5, 21, 92, .13);
  --mc-duration-fast: 140ms;
  --mc-duration-standard: 180ms;
  --mc-duration-slow: 320ms;
  --mc-ease-standard: cubic-bezier(.2, .75, .25, 1);
  --mc-button-min-height: 54px;
  --mc-input-min-height: 50px;
  --mc-touch-target: 44px;
  --mc-z-navigation: 15;
  --mc-z-modal: 40;
  /* Semantic aliases. Use these in new UI instead of raw palette values. */
  --mc-background-primary: var(--mc-background);
  --mc-background-secondary: var(--mc-pearl);
  --mc-surface-primary: var(--mc-surface);
  --mc-surface-elevated: color-mix(in srgb, var(--mc-surface) 92%, var(--mc-pearl));
  --mc-text-primary: var(--mc-ink);
  --mc-text-secondary: var(--mc-ink-secondary);
  --mc-text-muted: color-mix(in srgb, var(--mc-ink-secondary) 74%, transparent);
  --mc-accent-primary: var(--mc-blue);
  --mc-accent-secondary: var(--mc-teal);
  --mc-border-subtle: var(--mc-line);
  --mc-radius-small: var(--mc-radius-sm);
  --mc-radius-medium: var(--mc-radius-md);
  --mc-radius-large: var(--mc-radius-lg);
  --mc-radius-extra-large: var(--mc-radius-xl);
  --mc-shadow-subtle: 0 2px 8px rgba(5, 21, 92, .05);
  --mc-shadow-elevated: 0 16px 40px rgba(5, 21, 92, .12);
  --mc-glass-subtle: rgba(255, 255, 255, .58);
  --mc-glass-standard: rgba(255, 255, 255, .72);
  --mc-glass-strong: rgba(255, 255, 255, .88);
  --mc-glass-border: rgba(255, 255, 255, .7);
  --mc-glass-highlight: rgba(255, 255, 255, .52);
  --mc-glass-blur-subtle: 10px;
  --mc-glass-blur-standard: 18px;
  --mc-glass-blur-strong: 28px;
  --mc-icon-xs: 16px;
  --mc-icon-sm: 20px;
  --mc-icon-md: 24px;
  --mc-icon-lg: 32px;
  /* AI Tutor uses these semantic materials rather than introducing a
     separate color system. They map directly to future native surfaces. */
  --mc-ai-surface: color-mix(in srgb, var(--mc-surface) 92%, var(--mc-pearl));
  --mc-ai-surface-soft: color-mix(in srgb, var(--mc-mint) 18%, var(--mc-surface));
  --mc-ai-message-user: var(--mc-blue);
  --mc-ai-message-assistant: var(--mc-surface-elevated);
  --mc-ai-stream: color-mix(in srgb, var(--mc-mint) 36%, var(--mc-surface));
}

/* Opt-in dark mode follows the icon's deep navy and cobalt. Mint remains a
   small brand accent, not the color of the whole workspace. */
.theme-dark {
  color-scheme: dark;
  --mc-ink: #f2f6ff;
  --mc-ink-secondary: #bbc9e2;
  --mc-teal: #9dbfff;
  --mc-on-accent: #071735;
  --mc-blue: #a5c2ff;
  --mc-deep-blue: #071b54;
  --mc-surface: #142446;
  --mc-pearl: #09152e;
  --mc-mint: #254475;
  --mc-cream: #283957;
  --mc-hero-heading: #f8faff;
  --mc-hero-copy: #e9f0ff;
  --mc-hero-kicker: #c5f8dc;
  --mc-coral: #f4a27d;
  --mc-line: rgba(162, 190, 247, .17);
  --mc-line-strong: rgba(177, 202, 255, .29);
  --mc-background: radial-gradient(circle at 10% -8%, rgba(23, 66, 151, .56), transparent 32%), radial-gradient(circle at 95% 5%, rgba(47, 86, 158, .35), transparent 30%), linear-gradient(150deg, #0d214b 0%, var(--mc-pearl) 54%, #081126 100%);
  --mc-shadow-card: 0 10px 28px rgba(0, 0, 0, .22);
  --mc-shadow-hero: 0 13px 32px rgba(0, 0, 0, .28);
  --mc-shadow-sheet: 0 26px 80px rgba(0, 0, 0, .48);
  --mc-shadow-float: 0 18px 38px rgba(0, 0, 0, .32);
  --mc-success: #8be9c1;
  --mc-success-surface: #103b39;
  --mc-warning: #f8d878;
  --mc-warning-surface: #463a12;
  --mc-danger: #ffbac7;
  --mc-danger-surface: #48202a;
  --mc-surface-elevated: color-mix(in srgb, var(--mc-surface) 86%, #243d73);
  --mc-glass-subtle: rgba(19, 37, 76, .68);
  --mc-glass-standard: rgba(19, 37, 76, .82);
  --mc-glass-strong: rgba(19, 37, 76, .94);
  --mc-glass-border: rgba(204, 222, 255, .14);
  --mc-glass-highlight: rgba(255, 255, 255, .06);
  --mc-ai-surface: color-mix(in srgb, var(--mc-surface) 89%, #294984);
  --mc-ai-surface-soft: color-mix(in srgb, var(--mc-mint) 36%, var(--mc-surface));
  --mc-ai-message-user: #b7d0ff;
  --mc-ai-message-assistant: color-mix(in srgb, var(--mc-surface) 90%, #2b4a81);
  --mc-ai-stream: color-mix(in srgb, var(--mc-mint) 42%, var(--mc-surface));
}

/* Future SwiftUI mapping: MCGlassSubtle / MCGlassStandard / MCGlassStrong. */
.mc-glass-subtle, .mc-glass-standard, .mc-glass-strong {
  border: 1px solid var(--mc-glass-border);
  box-shadow: var(--mc-shadow-subtle), inset 0 1px 0 var(--mc-glass-highlight);
  -webkit-backdrop-filter: saturate(135%) blur(var(--mc-glass-blur-subtle));
  backdrop-filter: saturate(135%) blur(var(--mc-glass-blur-subtle));
}
.mc-glass-subtle { background: var(--mc-glass-subtle); }
.mc-glass-standard { background: var(--mc-glass-standard); -webkit-backdrop-filter: saturate(145%) blur(var(--mc-glass-blur-standard)); backdrop-filter: saturate(145%) blur(var(--mc-glass-blur-standard)); }
.mc-glass-strong { background: var(--mc-glass-strong); box-shadow: var(--mc-shadow-elevated); -webkit-backdrop-filter: saturate(150%) blur(var(--mc-glass-blur-strong)); backdrop-filter: saturate(150%) blur(var(--mc-glass-blur-strong)); }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .mc-glass-subtle, .mc-glass-standard, .mc-glass-strong { background: var(--mc-surface-elevated); }
}
@media (prefers-reduced-transparency: reduce) {
  .mc-glass-subtle, .mc-glass-standard, .mc-glass-strong { background: var(--mc-surface-elevated); -webkit-backdrop-filter: none; backdrop-filter: none; }
}

* { box-sizing: border-box; }
/* Author layout rules must never override semantic hidden content. */
*[hidden] { display: none !important; }
html { min-width: 320px; background: var(--mc-pearl); }
body { min-width: 320px; margin: 0; color: var(--mc-ink); background: var(--mc-background); font-family: var(--mc-font); font-size: var(--mc-text-base); line-height: 1.5; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
h1, h2, h3, .focus-clock { font-family: var(--mc-font-display); }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: progress; opacity: .7; }
a { color: inherit; text-decoration: none; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid var(--mc-blue); outline-offset: 3px; }
svg { width: 1.2em; height: 1.2em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.skip-link { position: absolute; z-index: 30; top: 10px; left: -999px; padding: 10px 16px; border-radius: var(--mc-radius-sm); color: var(--mc-on-accent); background: var(--mc-teal); font-weight: 750; }
.skip-link:focus { left: 12px; }

.eyebrow, .page-kicker, .card-label { margin: 0; color: var(--mc-teal); font-size: var(--mc-text-xs); font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.small-print { margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.5; }

.mc-button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: var(--mc-button-min-height); padding: 15px 18px; border: 1px solid transparent; border-radius: var(--mc-radius-md); font-size: var(--mc-text-base); font-weight: 760; line-height: 1.2; text-align: center; transition: transform var(--mc-duration-standard) var(--mc-ease-standard), background var(--mc-duration-standard) var(--mc-ease-standard), box-shadow var(--mc-duration-standard) var(--mc-ease-standard), border-color var(--mc-duration-standard) var(--mc-ease-standard); }
.mc-button:hover:not(:disabled) { transform: translateY(-1px); }
.mc-button svg { width: 19px; height: 19px; }
.mc-button--primary { color: var(--mc-on-accent); background: var(--mc-blue); box-shadow: 0 7px 16px color-mix(in srgb, var(--mc-blue) 26%, transparent); }
.mc-button--primary:hover:not(:disabled) { background: color-mix(in srgb, var(--mc-blue) 84%, #000); box-shadow: 0 10px 20px color-mix(in srgb, var(--mc-blue) 32%, transparent); }
.mc-button--secondary { color: var(--mc-blue); border-color: color-mix(in srgb, var(--mc-blue) 22%, var(--mc-glass-border)); background: color-mix(in srgb, var(--mc-glass-standard) 86%, var(--mc-mint)); box-shadow: inset 0 1px 0 var(--mc-glass-highlight); }
.mc-button--secondary:hover:not(:disabled), .mc-button--quiet:hover:not(:disabled) { background: color-mix(in srgb, var(--mc-blue) 14%, transparent); }
.mc-button--quiet { min-height: 44px; padding: 10px 13px; color: var(--mc-ink-secondary); border-color: var(--mc-line); background: color-mix(in srgb, var(--mc-glass-standard) 84%, var(--mc-surface)); box-shadow: inset 0 1px 0 var(--mc-glass-highlight); font-size: var(--mc-text-sm); }
.mc-button--text { min-height: 44px; padding: 8px 0; color: var(--mc-blue); background: transparent; font-size: var(--mc-text-sm); }
.mc-button--text:hover:not(:disabled) { color: var(--mc-teal); transform: none; }

.mc-card { width: 100%; padding: 22px; border: 1px solid color-mix(in srgb, var(--mc-line) 72%, var(--mc-glass-border)); border-radius: var(--mc-radius-lg); color: var(--mc-ink); background: linear-gradient(145deg, color-mix(in srgb, var(--mc-surface) 94%, var(--mc-glass-highlight)), var(--mc-surface)); box-shadow: var(--mc-shadow-card); }
.mc-card--tinted { background: color-mix(in srgb, var(--mc-mint) 25%, var(--mc-surface)); }
.mc-card h2, .mc-card h3 { margin: 0; letter-spacing: -.035em; line-height: 1.14; }
.mc-card h2 { font-size: var(--mc-text-xl); }
.mc-card h3 { font-size: var(--mc-text-lg); }
.mc-card p { margin: 0; color: var(--mc-ink-secondary); }

.mc-hero { display: grid; gap: var(--mc-space-4); padding: 24px; border: 1px solid rgba(255,255,255,.3); border-radius: var(--mc-radius-xl); color: var(--mc-hero-heading); background: linear-gradient(135deg, var(--mc-blue), var(--mc-deep-blue)); box-shadow: var(--mc-shadow-hero); }
.mc-hero__top { display: flex; align-items: center; gap: 12px; }
.mc-hero__top p { margin: 0; color: var(--mc-hero-kicker); font-size: var(--mc-text-xs); font-weight: 800; letter-spacing: .15em; }
.mc-hero h2 { max-width: 650px; margin: 0; color: var(--mc-hero-heading); font-size: var(--mc-text-3xl); font-weight: 800; letter-spacing: -.04em; line-height: 1.02; }
.mc-hero > p { max-width: 570px; margin: 0; color: var(--mc-hero-copy); font-size: var(--mc-text-sm); }
.mc-hero--compact { gap: 12px; padding: 20px; border-radius: var(--mc-radius-lg); }
.mc-hero--compact h2 { font-size: var(--mc-text-2xl); }
.mc-emblem { display: grid; width: 52px; height: 52px; overflow: hidden; border-radius: 15px; place-items: center; color: var(--mc-blue); background: var(--mc-mint); }
.mc-emblem img { width: 100%; height: 100%; object-fit: cover; }
.mc-emblem svg { width: 26px; height: 26px; }

/* One static finish for MindCoda artwork only; never provider or install icons.
   The source PNGs have an opaque white corner matte. A slightly inset mask
   clips that matte without changing the canonical files or stretching the mark. */
.mc-logo.mc-logo {
  position:relative;display:inline-grid;place-items:center;flex-shrink:0;
  width:var(--mc-logo-size,36px);height:var(--mc-logo-size,36px);
  padding:0;border:0;border-radius:27%;overflow:hidden;isolation:isolate;
  background:#062779;
  box-shadow:0 2px 3px rgba(3,15,46,.2),0 8px 20px rgba(3,15,46,.18);
}
.mc-logo.mc-logo > img {
  display:block;width:100%;height:100%;margin:0;border:0;border-radius:inherit;
  object-fit:contain;opacity:1;filter:none;
  clip-path:inset(1.5% round 27%);
}
.mc-logo::after {
  content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:linear-gradient(145deg,rgba(255,255,255,.13),transparent 38%),
    linear-gradient(180deg,transparent 74%,rgba(0,7,30,.12));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),inset 0 -1px 0 rgba(0,7,30,.24);
}
.mc-logo--31 {--mc-logo-size:31px;}
.mc-logo--40 {--mc-logo-size:40px;}
.mc-logo--48 {--mc-logo-size:48px;}
.mc-logo--52 {--mc-logo-size:52px;}
.mc-logo--56 {--mc-logo-size:56px;}
.mc-logo--64 {--mc-logo-size:64px;}
.mc-logo--28 {--mc-logo-size:28px;}
.mc-emblem.mc-logo {--mc-logo-size:52px;}
.welcome-phase__emblem .mc-logo {--mc-logo-size:100%;width:100%;height:100%;}
@media(forced-colors:active) {.mc-logo.mc-logo {box-shadow:none;}.mc-logo::after {display:none;}}


.mc-progress { height: 9px; overflow: hidden; border-radius: var(--mc-radius-pill); background: color-mix(in srgb, var(--mc-blue) 13%, transparent); }
.mc-progress > span { display: block; height: 100%; border-radius: inherit; background: var(--mc-blue); }
.mc-progress--mint { background: color-mix(in srgb, var(--mc-teal) 13%, transparent); }
.mc-progress--mint > span { background: var(--mc-teal); }
.progress-caption { display: flex; justify-content: space-between; gap: var(--mc-space-3); color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); font-weight: 650; }

.mc-input { display: grid; gap: 7px; color: var(--mc-ink); font-size: var(--mc-text-sm); font-weight: 750; }
.mc-input span small { color: var(--mc-ink-secondary); font-weight: 600; }
.mc-input input, .mc-input textarea, .mc-input select { width: 100%; min-height: var(--mc-input-min-height); padding: 12px 14px; border: 1px solid var(--mc-line-strong); border-radius: var(--mc-radius-sm); outline: none; color: var(--mc-ink); background: color-mix(in srgb, var(--mc-pearl) 64%, var(--mc-surface)); font-size: var(--mc-text-base); font-weight: 500; transition: border-color var(--mc-duration-standard) var(--mc-ease-standard), box-shadow var(--mc-duration-standard) var(--mc-ease-standard); }
.mc-input textarea { min-height: 92px; resize: vertical; }
.mc-input input::placeholder, .mc-input textarea::placeholder { color: var(--mc-ink-secondary); opacity: 1; }
.mc-input input:focus, .mc-input textarea:focus, .mc-input select:focus { border-color: var(--mc-blue); box-shadow: 0 0 0 4px color-mix(in srgb, var(--mc-blue) 18%, transparent); }

.mc-empty-state { display: grid; justify-items: start; gap: var(--mc-space-3); min-height: 230px; padding: 24px; border: 1px dashed var(--mc-line-strong); border-radius: var(--mc-radius-lg); background: color-mix(in srgb, var(--mc-surface) 72%, var(--mc-pearl)); }
.mc-empty-state h2 { margin: 3px 0 0; font-size: var(--mc-text-xl); letter-spacing: -.035em; }
.mc-empty-state p { max-width: 370px; margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); }
.mc-empty-state .mc-button { margin-top: auto; }

.mc-loading { display: flex; align-items: center; gap: 11px; min-height: 68px; padding: 16px; border-radius: var(--mc-radius-md); color: var(--mc-ink-secondary); background: color-mix(in srgb, var(--mc-mint) 35%, var(--mc-surface)); font-size: var(--mc-text-sm); font-weight: 700; }
.loading-spinner { width: 19px; height: 19px; border: 2px solid rgba(15, 79, 66, .18); border-top-color: var(--mc-teal); border-radius: 50%; animation: mc-spin 900ms linear infinite; }
@keyframes mc-spin { to { transform: rotate(1turn); } }

.mc-sheet { width: min(100% - 24px, 560px); max-height: min(86dvh, 800px); margin: auto; padding: 0; border: 1px solid var(--mc-glass-border); border-radius: var(--mc-radius-xl); color: var(--mc-ink); background: var(--mc-glass-strong); box-shadow: var(--mc-shadow-sheet), inset 0 1px 0 var(--mc-glass-highlight); -webkit-backdrop-filter: saturate(145%) blur(var(--mc-glass-blur-strong)); backdrop-filter: saturate(145%) blur(var(--mc-glass-blur-strong)); }
.mc-sheet::backdrop { background: rgba(5, 21, 92, .43); backdrop-filter: blur(4px); }
.sheet-surface { display: grid; gap: var(--mc-space-5); max-height: inherit; padding: 18px 24px 28px; overflow-y: auto; }
.sheet-surface > h2 { margin: -4px 0 0; font-size: var(--mc-text-2xl); letter-spacing: -.05em; line-height: 1; }
.sheet-copy { margin: -10px 0 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); }
.sheet-close { position: absolute; top: 14px; right: 14px; display: grid; width: 38px; height: 38px; border: 1px solid var(--mc-line); border-radius: 50%; place-items: center; color: var(--mc-ink-secondary); background: var(--mc-surface); }
.sheet-close svg { width: 18px; height: 18px; }
.sheet-handle { width: 38px; height: 4px; margin: 0 auto -4px; border-radius: var(--mc-radius-pill); background: color-mix(in srgb, var(--mc-ink-secondary) 22%, transparent); }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }



/* The public landing page and authenticated app share one document. The
   browser's hidden attribute can otherwise lose to the shell display rule. */
.app-shell[hidden] { display: none !important; }

.app-shell { display: grid; min-height: 100dvh; grid-template-columns: 264px minmax(0, 1fr); }
.app-sidebar { position: sticky; top: 0; display: flex; height: 100dvh; flex-direction: column; gap: 38px; padding: max(28px, env(safe-area-inset-top)) 18px max(20px, env(safe-area-inset-bottom)); border-right: 1px solid var(--mc-glass-border); background: var(--mc-glass-subtle); box-shadow: 8px 0 28px rgba(5,21,92,.035); -webkit-backdrop-filter: saturate(135%) blur(var(--mc-glass-blur-standard)); backdrop-filter: saturate(135%) blur(var(--mc-glass-blur-standard)); }
.brand { display: inline-flex; align-items: center; gap: 11px; color: var(--mc-ink); font-size: 1.16rem; font-weight: 850; letter-spacing: -.045em; }
.brand-icon { width: 36px; height: 36px; overflow: hidden; border-radius: 28%; object-fit: cover; box-shadow: 0 7px 16px rgba(5, 21, 92, .15); }
.brand-icon.small { width: 27px; height: 27px; border-radius: 28%; }

.mc-nav { display: grid; gap: 5px; }
.mc-nav__item { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 48px; padding: 10px 13px; border: 1px solid transparent; border-radius: var(--mc-radius-sm); color: var(--mc-ink-secondary); background: transparent; font-size: var(--mc-text-sm); font-weight: 720; text-align: left; transition: transform var(--mc-duration-standard) var(--mc-ease-standard), background var(--mc-duration-standard) var(--mc-ease-standard), color var(--mc-duration-standard) var(--mc-ease-standard), border-color var(--mc-duration-standard) var(--mc-ease-standard); }
.mc-nav__item svg { width: 20px; height: 20px; }
.mc-nav__item:hover { color: var(--mc-teal); background: rgba(15, 79, 66, .06); }
.mc-nav__item.is-active { border-color: color-mix(in srgb, var(--mc-teal) 14%, var(--mc-glass-border)); color: var(--mc-teal); background: color-mix(in srgb, var(--mc-mint) 46%, var(--mc-glass-standard)); box-shadow: var(--mc-shadow-subtle); }
.sidebar-bottom { display: grid; gap: 13px; margin-top: auto; }
.mc-install-card, .account-pill { display: flex; align-items: center; gap: 10px; width: 100%; padding: 11px; border: 1px solid var(--mc-glass-border); border-radius: var(--mc-radius-md); color: var(--mc-ink); background: var(--mc-glass-standard); box-shadow: var(--mc-shadow-subtle); -webkit-backdrop-filter: saturate(135%) blur(var(--mc-glass-blur-subtle)); backdrop-filter: saturate(135%) blur(var(--mc-glass-blur-subtle)); text-align: left; }
.mc-install-card { border-color: rgba(15, 79, 66, .18); background: color-mix(in srgb, var(--mc-mint) 29%, var(--mc-surface)); }
.mc-install-card img { width: 31px; height: 31px; border-radius: 9px; }
.mc-install-card span, .account-pill > span:nth-child(2) { display: grid; min-width: 0; gap: 1px; }
.mc-install-card strong, .account-pill strong { font-size: .76rem; line-height: 1.25; }
.mc-install-card small, .account-pill small { overflow: hidden; color: var(--mc-ink-secondary); font-size: .67rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.mc-install-card > svg, .account-pill > svg { flex: 0 0 auto; width: 17px; height: 17px; margin-left: auto; color: var(--mc-ink-secondary); }
.account-pill:hover { border-color: var(--mc-line-strong); background: color-mix(in srgb, var(--mc-surface) 72%, var(--mc-pearl)); }
.avatar { display: grid; width: 33px; height: 33px; flex: 0 0 auto; border-radius: 50%; place-items: center; color: var(--mc-on-accent); background: var(--mc-teal); font-size: .78rem; font-weight: 850; }
.avatar--button { border: 0; cursor: pointer; }
.avatar--large { width: 50px; height: 50px; font-size: 1rem; }

.app-main { width: min(100%, 1320px); padding: max(42px, env(safe-area-inset-top)) clamp(24px, 5vw, 72px) max(72px, env(safe-area-inset-bottom)); }
.app-view { display: grid; gap: var(--mc-space-6); animation: view-in .25s ease both; }
.app-view[hidden] { display: none; }
@keyframes view-in { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
.page-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 48px; }
.page-header h1 { margin: 3px 0 0; color: var(--mc-ink); font-size: var(--mc-text-2xl); letter-spacing: -.035em; line-height: 1; }
.page-header__actions { display: flex; align-items: center; gap: 12px; }

.today-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr); gap: 20px; }
.next-step-card, .study-tools-card { display: grid; align-content: start; gap: 15px; min-height: 369px; }
.card-label { display: flex; align-items: center; gap: 7px; }
.card-label svg { width: 16px; height: 16px; color: var(--mc-blue); }
.next-step-card h2 { max-width: 460px; font-size: var(--mc-text-2xl); }
.course-line { color: var(--mc-blue) !important; font-size: var(--mc-text-sm); font-weight: 780; }
.card-copy { max-width: 470px; font-size: var(--mc-text-sm); }
.next-step-card .mc-button--primary { width: min(100%, 240px); margin-top: auto; }
.next-step-card .mc-button--text { width: fit-content; margin-top: -7px; }
.section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.section-heading .eyebrow { margin-bottom: 5px; }
.study-tools-card { gap: 0; padding: 22px 22px 8px; }
.study-tools-card .section-heading { padding-bottom: 10px; }
.tool-row { display: grid; grid-template-columns: 42px minmax(0, 1fr) 20px; align-items: center; gap: 12px; width: 100%; min-height: 82px; padding: 11px 0; border: 0; border-top: 1px solid var(--mc-line); color: var(--mc-ink); background: transparent; text-align: left; }
.tool-row:first-of-type { border-top: 0; }
.tool-row:hover strong { color: var(--mc-blue); }
.tool-row > span:nth-child(2), .support-row > span:last-child { display: grid; gap: 3px; }
.tool-row strong, .support-row strong { font-size: var(--mc-text-sm); }
.tool-row small, .support-row small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.35; }
.tool-arrow { width: 17px; height: 17px; color: var(--mc-ink-secondary); }
.tool-icon { display: grid; width: 42px; height: 42px; border-radius: 13px; place-items: center; color: var(--mc-teal); }
.tool-icon svg { width: 21px; height: 21px; }
.tool-icon--mint { background: color-mix(in srgb, var(--mc-mint) 75%, var(--mc-surface)); }.tool-icon--cream { color: #866913; background: var(--mc-cream); }.tool-icon--blue { color: var(--mc-blue); background: rgba(9, 64, 196, .1); }

.dashboard-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.dashboard-grid .mc-card { display: grid; align-content: start; gap: 15px; min-height: 255px; }
.planner-total { display: grid; gap: 2px; }
.planner-total strong { color: var(--mc-ink); font-size: var(--mc-text-2xl); letter-spacing: -.06em; line-height: 1; }
.planner-total span { color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); }
.planner-time-summary { margin: 5px 0 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); font-weight: 680; line-height: 1.45; }
.planner-reminder-toggle { margin-top: 2px; }
.planner-availability-form { gap: 18px; }
.time-shortcuts { display: grid; gap: 8px; margin: 0; padding: 0; border: 0; }
.time-shortcuts legend, .planner-time-field > span { padding: 0; color: var(--mc-ink); font-size: var(--mc-text-sm); font-weight: 780; }
.time-shortcuts > div { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.time-shortcuts button { min-height: 48px; padding: 8px 6px; border: 1px solid var(--mc-line-strong); border-radius: var(--mc-radius-sm); color: var(--mc-teal); background: var(--mc-surface); font: inherit; font-size: var(--mc-text-xs); font-weight: 800; }
.time-shortcuts button:hover, .time-shortcuts button:focus-visible, .time-shortcuts button.is-selected { border-color: var(--mc-blue); color: var(--mc-blue); background: color-mix(in srgb, var(--mc-blue) 7%, var(--mc-surface)); box-shadow: 0 0 0 3px rgba(9,64,196,.1); }
.planner-time-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.planner-time-field { display: grid; gap: 8px; min-width: 0; }
.time-picker { display: grid; grid-template-columns: minmax(42px, 1fr) auto minmax(42px, 1fr) minmax(52px, 1fr); align-items: center; gap: 4px; min-height: 56px; padding: 5px; border: 1px solid var(--mc-line-strong); border-radius: var(--mc-radius-md); color: var(--mc-ink); background: var(--mc-surface); box-shadow: inset 0 1px 0 rgba(255,255,255,.75); }
.time-picker:focus-within { border-color: var(--mc-blue); box-shadow: 0 0 0 3px rgba(9,64,196,.15); }
.time-picker > span { color: var(--mc-ink-secondary); font-size: var(--mc-text-lg); font-weight: 800; }
.time-picker select { width: 100%; min-width: 0; height: 44px; padding: 0 3px; border: 0; border-radius: 9px; color: var(--mc-ink); background: transparent; font: inherit; font-size: var(--mc-text-sm); font-weight: 800; text-align: center; text-align-last: center; appearance: none; -webkit-appearance: none; }
.time-picker select:focus { outline: 0; color: var(--mc-blue); background: rgba(9,64,196,.08); }
@media (max-width: 640px) { .planner-time-grid { grid-template-columns: 1fr; }.time-shortcuts > div { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.week-bar { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; align-items: end; height: 32px; }
.week-bar span { height: 10px; border-radius: var(--mc-radius-pill); background: rgba(9, 64, 196, .11); }.week-bar .is-done { height: 22px; background: var(--mc-teal); }.week-bar .is-today { height: 30px; background: var(--mc-blue); }
.week-days { display: grid; grid-template-columns: repeat(7, 1fr); color: var(--mc-ink-secondary); font-size: .67rem; font-weight: 750; text-align: center; }.week-days .is-today { color: var(--mc-blue); }
.planner-card .mc-button { width: fit-content; margin-top: auto; }
.course-card__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }.course-code { color: var(--mc-blue); font-size: var(--mc-text-xs); font-weight: 850; letter-spacing: .1em; }.icon-button { display: grid; width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%; place-items: center; color: var(--mc-ink-secondary); background: transparent; }.icon-button:hover { color: var(--mc-blue); background: rgba(9,64,196,.07); }.icon-button svg { width: 18px; height: 18px; }
.course-card .mc-button--text { margin-top: auto; }
.task-card { padding-bottom: 13px !important; }
.task-row { display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: center; gap: 10px; width: 100%; min-height: 57px; padding: 5px 0; border: 0; border-top: 1px solid var(--mc-line); color: var(--mc-ink); background: transparent; text-align: left; }.task-row:hover strong { color: var(--mc-blue); }.task-row > span:last-child { display: grid; gap: 2px; }.task-row strong { font-size: var(--mc-text-sm); line-height: 1.25; }.task-row small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); }.task-check { display: grid; width: 19px; height: 19px; border: 1.5px solid rgba(9, 64, 196, .32); border-radius: 50%; place-items: center; }.task-row.is-complete { opacity: .55; }.task-row.is-complete .task-check { border-color: var(--mc-teal); background: var(--mc-teal); }.task-row.is-complete .task-check::after { width: 8px; height: 4px; border-bottom: 1.5px solid white; border-left: 1.5px solid white; content: ""; transform: rotate(-45deg) translateY(-1px); }.task-row.is-complete strong { text-decoration: line-through; }

.course-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }.course-library-card { --course-accent: var(--mc-teal); --course-tint: color-mix(in srgb, var(--mc-mint) 53%, var(--mc-surface)); display: grid; align-content: start; gap: 15px; min-height: 270px; }.course-tone-1 { --course-accent: var(--mc-blue); --course-tint: rgba(9, 64, 196, .08); }.course-tone-2 { --course-accent: #866913; --course-tint: var(--mc-cream); }.course-tone-3 { --course-accent: #3f5370; --course-tint: #e5f0ff; }.course-card__top, .course-card__identity { display: flex; align-items: center; gap: 9px; }.course-card__top { justify-content: space-between; }.course-mark { display: grid; width: 32px; height: 32px; flex: 0 0 auto; border-radius: 11px; place-items: center; color: var(--course-accent); background: var(--course-tint); }.course-mark svg { width: 17px; height: 17px; }.course-mark--large { width: 52px; height: 52px; border-radius: 17px; }.course-mark--large svg { width: 25px; height: 25px; }.course-card__progress { display: grid; gap: 7px; margin-top: 2px; }.course-card__progress > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); font-weight: 700; }.course-card__progress strong { color: var(--course-accent); }.course-card__progress .mc-progress { margin: 0; }.course-card__progress .mc-progress span { background: var(--course-accent); }.course-card__actions { display: flex; align-items: center; gap: 9px; margin-top: auto; }.course-card__actions .mc-button--text { margin-left: auto; }.course-library-card h2 { font-size: var(--mc-text-lg); line-height: 1.08; }.course-library-card > p { min-height: 40px; font-size: var(--mc-text-sm); line-height: 1.42; }.course-detail-hero { --course-accent: var(--mc-teal); --course-tint: color-mix(in srgb, var(--mc-mint) 50%, var(--mc-surface)); display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: clamp(22px, 4vw, 36px); border: 1px solid color-mix(in srgb, var(--course-accent) 18%, var(--mc-line)); border-radius: var(--mc-radius-xl); background: linear-gradient(125deg, var(--course-tint), var(--mc-surface) 70%); box-shadow: var(--mc-shadow-card); }.course-detail-hero__identity { display: flex; align-items: center; gap: 14px; min-width: 0; }.course-detail-hero h2 { margin: 2px 0 0; color: var(--mc-ink); font-size: clamp(1.9rem, 4vw, var(--mc-text-3xl)); letter-spacing: -.06em; line-height: 1; }.course-detail-hero .eyebrow { color: var(--course-accent); }.course-detail-hero__actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }.course-delete { color: #9b3144; }.course-back { display: inline-flex; align-items: center; gap: 7px; width: fit-content; padding-left: 0; }.course-back svg { width: 17px; transform: rotate(180deg); }.course-overview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }.course-overview-card { display: grid; align-content: start; gap: 9px; min-height: 174px; }.course-overview-card h3, .course-ai-card h3 { margin: 0; font-size: var(--mc-text-xl); letter-spacing: -.045em; }.course-overview-card > p:not(.eyebrow), .course-ai-card p:not(.eyebrow) { margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.5; }.course-overview-card .mc-progress { margin-top: auto; }.course-disclosures { display: grid; gap: 12px; }.course-disclosure { overflow: hidden; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-lg); background: var(--mc-surface); box-shadow: var(--mc-shadow-card); }.course-disclosure summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 77px; padding: 16px 19px; cursor: pointer; list-style: none; }.course-disclosure summary::-webkit-details-marker { display: none; }.course-disclosure summary > span { display: grid; gap: 3px; }.course-disclosure summary strong { color: var(--mc-ink); font-size: var(--mc-text-sm); }.course-disclosure summary small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); }.course-disclosure summary > svg { width: 18px; height: 18px; flex: 0 0 auto; color: var(--mc-ink-secondary); transition: transform .18s ease; }.course-disclosure[open] summary > svg { transform: rotate(90deg); }.course-disclosure__content { display: grid; gap: 0; padding: 0 19px 17px; border-top: 1px solid var(--mc-line); }.course-disclosure__content > .mc-button { width: fit-content; margin-top: 13px; }.course-list-row { display: flex; align-items: center; gap: 10px; min-height: 61px; padding: 10px 0; border-top: 1px solid var(--mc-line); }.course-disclosure__content > .course-list-row:first-child { border-top: 0; }.course-list-row > div { display: grid; gap: 3px; min-width: 0; }.course-list-row strong { color: var(--mc-ink); font-size: var(--mc-text-sm); line-height: 1.3; }.course-list-row small { overflow: hidden; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.4; text-overflow: ellipsis; }.course-list-row.is-complete strong { color: var(--mc-ink-secondary); text-decoration: line-through; }.course-ai-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 15px; }.course-ai-card .mc-button { white-space: nowrap; }.mc-input textarea { width: 100%; min-height: 116px; padding: 12px 13px; border: 1px solid var(--mc-line-strong); border-radius: var(--mc-radius-sm); color: var(--mc-ink); background: var(--mc-surface); font: inherit; line-height: 1.45; resize: vertical; }.mc-input textarea:focus { outline: 3px solid rgba(9, 64, 196, .18); outline-offset: 1px; border-color: var(--mc-blue); }

.course-syllabus-upload { display: grid; gap: 9px; margin: 0; padding: 15px; border: 1px dashed color-mix(in srgb, var(--mc-teal) 33%, var(--mc-line)); border-radius: var(--mc-radius-md); background: linear-gradient(135deg, color-mix(in srgb, var(--mc-mint) 32%, var(--mc-surface)), var(--mc-surface)); }.course-syllabus-upload legend { padding: 0 5px; color: var(--mc-ink); font-size: var(--mc-text-sm); font-weight: 780; }.course-syllabus-upload legend small, .course-syllabus-upload > small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); font-weight: 620; }.course-syllabus-upload p { margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.48; }.file-picker { display: inline-flex; width: fit-content; min-height: 42px; overflow: hidden; border: 1px solid color-mix(in srgb, var(--mc-blue) 26%, var(--mc-line)); border-radius: var(--mc-radius-sm); color: var(--mc-blue); background: var(--mc-surface); cursor: pointer; font-size: var(--mc-text-xs); font-weight: 800; }.file-picker:focus-within { outline: 3px solid rgba(9, 64, 196, .18); outline-offset: 2px; }.file-picker input { position: absolute; width: 1px; height: 1px; opacity: 0; }.file-picker span { display: grid; padding: 11px 14px; place-items: center; }
.syllabus-studio { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(220px, .9fr) minmax(190px, .68fr); align-items: center; gap: 22px; padding: clamp(22px, 4vw, 34px); border: 1px solid color-mix(in srgb, var(--mc-teal) 27%, var(--mc-line)); border-radius: var(--mc-radius-xl); background: radial-gradient(circle at 92% 8%, color-mix(in srgb, var(--mc-mint) 62%, transparent), transparent 38%), linear-gradient(135deg, color-mix(in srgb, var(--mc-mint) 45%, var(--mc-surface)), var(--mc-surface) 66%); box-shadow: var(--mc-shadow-card); }.syllabus-studio > div:first-child { display: grid; gap: 7px; }.syllabus-studio h2 { margin: 0; color: var(--mc-ink); font-family: var(--mc-font-display); font-size: clamp(1.65rem, 3.2vw, 2.35rem); letter-spacing: -.055em; line-height: 1.02; }.syllabus-studio > div:first-child > p:not(.eyebrow) { max-width: 480px; margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.5; }.syllabus-studio__steps { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }.syllabus-studio__steps li { display: grid; grid-template-columns: 26px minmax(0, 1fr); align-items: center; gap: 9px; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.35; }.syllabus-studio__steps span { display: grid; width: 25px; height: 25px; border-radius: 50%; place-items: center; color: var(--mc-teal); background: color-mix(in srgb, var(--mc-mint) 68%, var(--mc-surface)); font-size: .68rem; font-weight: 850; }.syllabus-studio__steps strong { color: var(--mc-ink); font-size: var(--mc-text-xs); }.syllabus-studio__actions { display: grid; justify-items: stretch; gap: 10px; }.syllabus-studio__actions .mc-button { width: 100%; }.syllabus-studio__actions small { color: var(--mc-ink-secondary); font-size: .69rem; line-height: 1.4; text-align: center; }.syllabus-course-sheet { justify-items: start; }.syllabus-course-sheet > h2 { padding-right: 38px; }.syllabus-course-choices { display: grid; width: 100%; gap: 9px; }.syllabus-course-choice { display: grid; gap: 3px; width: 100%; min-height: 66px; padding: 13px 14px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-md); color: var(--mc-ink); background: color-mix(in srgb, var(--mc-mint) 22%, var(--mc-surface)); text-align: left; }.syllabus-course-choice:hover, .syllabus-course-choice:focus-visible { border-color: color-mix(in srgb, var(--mc-teal) 50%, var(--mc-line)); background: color-mix(in srgb, var(--mc-mint) 46%, var(--mc-surface)); }.syllabus-course-choice strong { font-size: var(--mc-text-sm); }.syllabus-course-choice small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); }

/* AI Tutor is a calm study workspace: context, focused dialogue, and accountable usage. */
.ai-tutor-status { min-height: 0; margin: -8px 0 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.45; }.ai-tutor-status:empty { display: none; }.ai-tutor-layout { display: grid; grid-template-columns: minmax(245px, .7fr) minmax(420px, 1.5fr) minmax(230px, .6fr); align-items: start; gap: 20px; }.ai-tutor-sidebar, .ai-tutor-rail { display: grid; gap: 16px; }.ai-context-card, .ai-prompt-card, .ai-history-card, .ai-usage-card, .ai-safety-card { display: grid; align-content: start; gap: 14px; }.ai-context-card h2, .ai-history-card h2 { font-size: var(--mc-text-lg); }.ai-context-card .small-print { margin: 0; line-height: 1.45; }.ai-prompt-list { display: flex; flex-wrap: wrap; gap: 8px; }.ai-prompt-list button { min-height: 32px; padding: 7px 10px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-pill); color: var(--mc-teal); background: color-mix(in srgb, var(--mc-mint) 42%, var(--mc-surface)); font-size: var(--mc-text-xs); font-weight: 750; text-align: left; }.ai-prompt-list button:hover, .ai-prompt-list button:focus-visible { border-color: color-mix(in srgb, var(--mc-teal) 40%, var(--mc-line)); color: var(--mc-blue); background: var(--mc-surface); }.ai-history-card { padding-bottom: 13px; }.ai-history-list { display: grid; gap: 3px; }.ai-history-list > .small-print { margin: 3px 0 8px; }.ai-history-item { display: grid; gap: 2px; width: 100%; padding: 10px 9px; border: 0; border-radius: var(--mc-radius-sm); color: var(--mc-ink); background: transparent; text-align: left; }.ai-history-item:hover, .ai-history-item.is-active { background: color-mix(in srgb, var(--mc-mint) 52%, var(--mc-surface)); }.ai-history-item strong { overflow: hidden; font-size: var(--mc-text-sm); text-overflow: ellipsis; white-space: nowrap; }.ai-history-item small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); }.ai-conversation-card { display: grid; min-height: min(720px, calc(100dvh - 154px)); grid-template-rows: auto minmax(290px, 1fr) auto auto; gap: 15px; padding: 0; overflow: hidden; }.ai-conversation-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 25px 26px 18px; border-bottom: 1px solid var(--mc-line); background: linear-gradient(130deg, color-mix(in srgb, var(--mc-mint) 38%, var(--mc-surface)), var(--mc-surface) 70%); }.ai-conversation-header h2 { margin: 3px 0 5px; font-size: var(--mc-text-xl); letter-spacing: -.045em; }.ai-conversation-header > div > p:last-child { margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.4; }.ai-conversation-header .ai-orb { width: 44px; height: 44px; }.ai-message-list { display: grid; align-content: start; gap: 12px; min-height: 0; padding: 20px 26px; overflow: auto; overscroll-behavior: contain; }.ai-message { display: grid; gap: 4px; max-width: min(88%, 640px); padding: 13px 15px; border-radius: 19px; }.ai-message small { font-size: var(--mc-text-xs); font-weight: 820; }.ai-message p { margin: 0; white-space: pre-wrap; font-size: var(--mc-text-sm); line-height: 1.55; }.ai-message--student { justify-self: end; color: var(--mc-on-accent); background: var(--mc-teal); border-bottom-right-radius: 6px; }.ai-message--assistant { justify-self: start; border: 1px solid var(--mc-line); color: var(--mc-ink); background: var(--mc-pearl); border-bottom-left-radius: 6px; }.ai-message--assistant small { color: var(--mc-teal); }.ai-message--student small { color: rgba(255,255,255,.75); }.ai-message.is-pending { opacity: .72; }.ai-typing { color: var(--mc-ink-secondary); background: var(--mc-surface); }.ai-empty-conversation { display: grid; align-self: center; justify-items: center; gap: 9px; padding: 30px 16px; color: var(--mc-ink-secondary); text-align: center; }.ai-empty-conversation h3 { margin: 0; color: var(--mc-ink); font-size: var(--mc-text-lg); letter-spacing: -.035em; }.ai-empty-conversation p { max-width: 400px; margin: 0; font-size: var(--mc-text-sm); line-height: 1.5; }.ai-verify-note { display: flex; align-items: flex-start; gap: 8px; margin: 0 26px; padding: 12px 0; border-top: 1px solid var(--mc-line); color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.45; }.ai-verify-note svg { width: 16px; height: 16px; flex: 0 0 auto; color: var(--mc-teal); }.ai-composer { display: grid; gap: 10px; padding: 0 26px 24px; }.ai-composer textarea { width: 100%; min-height: 84px; padding: 13px 14px; border: 1px solid var(--mc-line-strong); border-radius: var(--mc-radius-md); color: var(--mc-ink); background: var(--mc-surface); font: inherit; font-size: var(--mc-text-sm); line-height: 1.5; resize: vertical; }.ai-composer textarea:focus { outline: 3px solid rgba(9, 64, 196, .18); outline-offset: 1px; border-color: var(--mc-blue); }.ai-composer__bottom { display: flex; align-items: center; justify-content: space-between; gap: 12px; }.ai-composer__bottom .small-print { max-width: 360px; line-height: 1.4; }.ai-composer__bottom .mc-button svg { width: 17px; height: 17px; }.ai-usage-card h2 { margin: 0; font-size: var(--mc-text-xl); letter-spacing: -.045em; }.ai-usage-card > p:not(.eyebrow):not(.small-print) { margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.48; }.ai-usage-card .mc-progress { margin-top: 4px; }.ai-usage-card .small-print { margin: 0; line-height: 1.45; }.ai-upgrade-note { display: grid; gap: 3px; padding: 12px; border-radius: var(--mc-radius-sm); color: var(--mc-blue); background: rgba(9, 64, 196, .07); font-size: var(--mc-text-xs); line-height: 1.45; }.ai-upgrade-note strong { font-size: var(--mc-text-sm); }.ai-safety-card { grid-template-columns: auto minmax(0, 1fr); gap: 12px; }.ai-safety-card h2 { margin: 2px 0 6px; font-size: var(--mc-text-lg); letter-spacing: -.035em; }.ai-safety-card p:not(.eyebrow) { margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.5; }
.calendar-layout, .focus-layout, .profile-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(290px, .8fr); gap: 20px; }.agenda-card { display: grid; gap: 5px; }.agenda-row { display: grid; grid-template-columns: 44px 12px minmax(0, 1fr); align-items: center; gap: 11px; min-height: 78px; border-top: 1px solid var(--mc-line); }.agenda-row time { color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); font-weight: 720; }.agenda-row div { display: grid; gap: 2px; }.agenda-row strong { font-size: var(--mc-text-sm); }.agenda-row small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); }.agenda-dot { width: 10px; height: 10px; border-radius: 50%; }.agenda-dot--blue { background: var(--mc-blue); }.agenda-dot--mint { background: var(--mc-teal); }.agenda-dot--cream { background: #ceb22d; }
.focus-layout { display: grid; grid-template-columns: minmax(0, 1.17fr) minmax(310px, .83fr); align-items: start; gap: 20px; }.focus-side-stack { display: grid; gap: 14px; }.focus-timer-card { display: grid; justify-items: center; gap: 17px; min-height: 558px; padding: clamp(26px, 5vw, 42px); overflow: hidden; text-align: center; background: radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--mc-mint) 54%, var(--mc-surface)) 0%, var(--mc-surface) 49%, color-mix(in srgb, var(--mc-pearl) 64%, var(--mc-surface)) 100%); }.focus-timer-card__top { display: flex; align-items: center; justify-content: space-between; width: 100%; gap: 12px; }.focus-session-pill { padding: 6px 10px; border-radius: var(--mc-radius-pill); color: var(--mc-teal); background: rgba(15, 79, 66, .09); font-size: var(--mc-text-xs); font-weight: 800; }.focus-dial { --focus-progress: 0deg; display: grid; width: min(65vw, 304px); aspect-ratio: 1; padding: 12px; border-radius: 50%; place-items: center; background: conic-gradient(var(--mc-teal) var(--focus-progress), rgba(15,79,66,.12) 0); box-shadow: 0 16px 34px rgba(15, 79, 66, .12); transition: background var(--mc-duration-standard) linear; }.focus-dial__inner { display: grid; width: 100%; height: 100%; align-content: center; justify-items: center; gap: 10px; border: 1px solid rgba(255,255,255,.8); border-radius: inherit; background: color-mix(in srgb, var(--mc-surface) 84%, var(--mc-pearl)); box-shadow: inset 0 0 0 7px rgba(255,255,255,.24); }.focus-dial__inner > span { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); font-weight: 730; }.focus-clock { color: var(--mc-ink); font-size: clamp(3.35rem, 7vw, 5.6rem); font-variant-numeric: tabular-nums; font-weight: 350; letter-spacing: -.08em; line-height: .9; }.focus-description { max-width: 420px; margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); font-weight: 720; line-height: 1.55; }.focus-actions { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; }.timer-note { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 22px; margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); }.timer-note svg { width: 16px; height: 16px; color: var(--mc-teal); }.focus-settings-card, .focus-ritual-card { display: grid; align-content: start; gap: 15px; }.focus-settings-card > div:first-child { display: grid; gap: 4px; }.focus-settings-card h2, .focus-ritual-card h2 { font-size: var(--mc-text-xl); }.focus-input-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--mc-space-3); }.focus-ritual-card { grid-template-columns: auto minmax(0, 1fr); }.focus-ritual-card > .focus-toggle, .focus-ritual-card > .focus-toggle + .focus-toggle { grid-column: 1 / -1; }.focus-ritual-card > div { display: grid; align-content: start; gap: 3px; }.focus-ritual-card > div > p:not(.eyebrow) { color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.45; }.focus-toggle { display: grid; grid-template-columns: var(--mc-touch-target) minmax(0, 1fr); align-items: start; gap: 9px; padding: 12px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-sm); cursor: pointer; }.focus-toggle:hover { border-color: var(--mc-line-strong); background: color-mix(in srgb, var(--mc-mint) 22%, var(--mc-surface)); }.focus-toggle input { width: 20px; height: 20px; margin: 2px auto 0; accent-color: var(--mc-teal); }.focus-toggle span { display: grid; gap: 2px; }.focus-toggle strong { font-size: var(--mc-text-sm); }.focus-toggle small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.4; }.focus-data-note { margin: 0 4px; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.45; }.breathing-sheet { justify-items: center; text-align: center; }.breathing-sheet > p:not(.eyebrow) { max-width: 380px; margin: 0; color: var(--mc-ink-secondary); line-height: 1.5; }.breathing-square { display: grid; width: 162px; height: 162px; margin: 8px 0 3px; padding: 10px; border: 2px solid rgba(15, 79, 66, .25); border-radius: var(--mc-radius-md); place-items: center; }.breathing-square span { width: 50px; height: 50px; border-radius: var(--mc-radius-sm); background: var(--mc-teal); animation: box-breathe 16s var(--mc-ease-standard) infinite; }.breathing-cue { color: var(--mc-teal) !important; font-size: var(--mc-text-sm); font-weight: 800; }.support-row { display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: 12px; padding-top: 13px; border-top: 1px solid var(--mc-line); }
@keyframes box-breathe { 0%, 100% { transform: scale(.72); border-radius: 50%; } 25%, 50% { transform: scale(1.65); border-radius: var(--mc-radius-sm); } 75% { transform: scale(1.65); border-radius: 50%; } }
.focus-timer-card { position: relative; gap: 14px; }.focus-timer-card__top > div { display: grid; gap: 3px; text-align: left; }.focus-pomodoro-cue { margin: 0; color: var(--mc-ink-secondary); font-size: .66rem; font-weight: 820; letter-spacing: .12em; }.focus-timer-summary { display: inline-flex; align-items: center; gap: 11px; margin-top: -3px; padding: 9px 13px; border: 1px solid color-mix(in srgb, var(--mc-teal) 17%, var(--mc-line)); border-radius: var(--mc-radius-pill); color: var(--mc-ink-secondary); background: color-mix(in srgb, var(--mc-surface) 78%, var(--mc-mint)); font-size: var(--mc-text-xs); font-weight: 730; }.focus-timer-summary strong { margin-right: 3px; color: var(--mc-teal); font-size: var(--mc-text-sm); font-variant-numeric: tabular-nums; }.focus-timer-summary i { width: 4px; height: 4px; border-radius: 50%; background: var(--mc-teal); }.focus-ritual-card .focus-breathing-preview { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(2, 1fr); min-height: 78px; padding: 13px; border: 1px dashed color-mix(in srgb, var(--mc-teal) 35%, var(--mc-line)); border-radius: var(--mc-radius-md); background: linear-gradient(135deg, color-mix(in srgb, var(--mc-mint) 34%, var(--mc-surface)), var(--mc-surface)); }.focus-breathing-preview span { width: 13px; height: 13px; border-radius: 5px; background: var(--mc-teal); box-shadow: 0 4px 10px rgba(15, 79, 66, .18); }.focus-breathing-preview span:nth-child(2), .focus-breathing-preview span:nth-child(4) { justify-self: end; }.focus-breathing-preview span:nth-child(3), .focus-breathing-preview span:nth-child(4) { align-self: end; }.focus-breathing-progress { display: grid; grid-column: 1 / -1; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: 10px; row-gap: 5px; padding: 4px 2px; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); }.focus-breathing-progress strong { color: var(--mc-ink); font-size: var(--mc-text-sm); }.focus-breathing-progress.is-disabled { opacity: .58; }.focus-pomodoro-dots { display: flex; grid-column: 1 / -1; gap: 7px; }.focus-pomodoro-dots i { width: 100%; height: 7px; border-radius: var(--mc-radius-pill); background: color-mix(in srgb, var(--mc-teal) 13%, var(--mc-line)); }.focus-pomodoro-dots i.is-complete { background: var(--mc-teal); box-shadow: 0 3px 8px rgba(15,79,66,.18); }
@media (prefers-reduced-motion: reduce) { .breathing-square span { animation: none; } }
@media (max-width: 640px) { .focus-timer-card__top { align-items: flex-start; }.focus-timer-summary { width: 100%; justify-content: center; }.focus-ritual-card .focus-breathing-preview { min-height: 68px; } }
.profile-layout { align-items: start; }.account-card { display: grid; gap: 20px; }.profile-person { display: flex; align-items: center; gap: 14px; }.profile-person h2 { margin: 0 0 5px; }.profile-person p { font-size: var(--mc-text-sm); }.profile-person .profile-experience { margin: 0 0 6px; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); font-weight: 600; }.account-card .mc-button { width: fit-content; }.profile-layout > .mc-card:last-child { display: grid; padding: 8px 22px; }.profile-layout .eyebrow { margin: 15px 0 5px; }.preference-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; min-height: 70px; padding: 11px 0; border: 0; border-top: 1px solid var(--mc-line); color: var(--mc-ink); background: transparent; text-align: left; }.preference-row span { display: grid; gap: 3px; }.preference-row strong { font-size: var(--mc-text-sm); }.preference-row small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); }.preference-row > svg { flex: 0 0 auto; color: var(--mc-ink-secondary); }

.time-choice { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }.time-choice__item { display: grid; gap: 1px; min-height: 73px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-md); color: var(--mc-ink-secondary); background: var(--mc-surface); font-size: 1.25rem; font-weight: 800; }.time-choice__item small { font-size: var(--mc-text-xs); font-weight: 650; }.time-choice__item.is-selected { border-color: var(--mc-blue); color: var(--mc-blue); background: rgba(9, 64, 196, .07); }.ai-sheet-heading { display: flex; align-items: center; gap: 13px; }.ai-sheet-heading h2 { margin: -1px 0 2px; font-size: var(--mc-text-xl); letter-spacing: -.04em; }.ai-sheet-heading .eyebrow { margin-bottom: 2px; }.ai-sheet-heading p:last-child { margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); }.ai-orb { display: grid; width: 52px; height: 52px; flex: 0 0 auto; border-radius: 50%; place-items: center; color: var(--mc-teal); background: rgba(15, 79, 66, .12); }.ai-orb svg { width: 23px; height: 23px; }.ai-answer { display: grid; gap: 10px; }.ai-answer .eyebrow { margin: 0; }.ai-answer h3 { font-size: var(--mc-text-lg); }.ai-answer p { font-size: var(--mc-text-sm); }.ai-check { display: grid; gap: 4px; padding-top: 10px; border-top: 1px solid var(--mc-line); }.ai-check strong { color: var(--mc-ink); font-size: var(--mc-text-sm); }.provider-stack { display: grid; gap: 10px; }.provider-button { display: inline-flex; align-items: center; justify-content: center; gap: 11px; min-height: 54px; padding: 14px 19px; border: 1px solid var(--mc-line-strong); border-radius: var(--mc-radius-md); color: var(--mc-ink); background: var(--mc-surface); font-weight: 760; }.provider-button:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 8px 16px rgba(5, 21, 92, .1); }.provider-button svg { width: 19px; height: 19px; }.apple-button { border-color: #101010; color: #fff; background: #101010; }.apple-button:hover:not(:disabled) { background: #262626; }.google-button { background: var(--mc-surface); }.auth-status { min-height: 20px; margin: -5px 3px 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.45; text-align: center; }.auth-status.error { color: #a22f43; }.auth-status.success { color: var(--mc-teal); }.account-sheet { gap: 18px; }

/* Legal and OAuth callback pages use the same token set. */
.topbar, .legal, footer { width: min(1120px, calc(100% - 48px)); margin-inline: auto; }.topbar { display: flex; align-items: center; justify-content: space-between; min-height: 84px; }.text-link { color: var(--mc-teal); font-size: var(--mc-text-sm); font-weight: 740; }.text-link:hover { color: var(--mc-blue); }.legal { max-width: 760px; padding: 72px 0 106px; }.legal h1 { margin: 0 0 28px; font-size: var(--mc-text-3xl); letter-spacing: -.06em; line-height: 1; }.legal h2 { margin: 42px 0 9px; font-size: var(--mc-text-xl); letter-spacing: -.04em; }.legal p, .legal li { color: var(--mc-ink-secondary); line-height: 1.67; }.legal ol { padding-left: 26px; }.legal li { margin-bottom: 11px; padding-left: 6px; }footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 120px; border-top: 1px solid var(--mc-line); color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); }footer .brand { font-size: 1rem; }footer p { margin: 0; }footer div { display: flex; gap: 18px; }footer a:hover { color: var(--mc-teal); }.auth-page { display: grid; min-height: 100vh; padding: 24px; background: var(--mc-background); place-items: center; }.callback-card { width: min(100%, 560px); padding: 42px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-xl); background: var(--mc-surface); box-shadow: var(--mc-shadow-sheet); }.callback-card .brand { margin-bottom: 50px; }.callback-card h1 { margin: 0 0 14px; font-size: var(--mc-text-2xl); letter-spacing: -.055em; }.callback-card p:not(.eyebrow) { color: var(--mc-ink-secondary); line-height: 1.55; }.callback-card .google-button { display: inline-flex; margin-top: 18px; padding: 13px 18px; border-radius: var(--mc-radius-md); font-weight: 750; }

.mc-nav--mobile { display: none; }
@media (max-width: 1120px) { .app-shell { grid-template-columns: 86px minmax(0, 1fr); }.app-sidebar { align-items: center; padding-inline: 13px; }.brand span, .mc-nav--sidebar .mc-nav__item span, .mc-install-card span, .account-pill > span:nth-child(2), .account-pill > svg { display: none; }.mc-nav--sidebar { width: 100%; }.mc-nav--sidebar .mc-nav__item { justify-content: center; padding-inline: 8px; }.mc-install-card, .account-pill { justify-content: center; padding: 8px; }.mc-install-card img { width: 31px; height: 31px; } }
@media (max-width: 900px) { .app-main { padding: 32px 28px 64px; }.today-layout, .calendar-layout, .focus-layout, .profile-layout { grid-template-columns: 1fr; }.dashboard-grid, .course-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.dashboard-grid > :last-child, .course-grid > :last-child { grid-column: span 2; }.study-tools-card { min-height: auto; }.next-step-card { min-height: 330px; } }
@media (max-width: 640px) { body { padding-bottom: 84px; }.app-shell { display: block; }.app-sidebar { display: none; }.app-main { width: 100%; padding: 23px 16px 34px; }.app-view { gap: 18px; }.page-header { align-items: flex-end; }.page-header__actions .mc-button--quiet { min-width: 42px; padding: 10px; }.page-header__actions .mc-button--quiet span { display: none; }.mc-hero { gap: 14px; padding: 20px; border-radius: 25px; }.mc-hero h2 { font-size: clamp(2rem, 10vw, 2.75rem); }.mc-emblem { width: 44px; height: 44px; border-radius: 13px; }.today-layout, .dashboard-grid, .course-grid, .calendar-layout, .focus-layout, .profile-layout { grid-template-columns: 1fr; gap: 14px; }.dashboard-grid > :last-child, .course-grid > :last-child { grid-column: auto; }.mc-card { padding: 20px; border-radius: 21px; }.next-step-card { min-height: 360px; }.next-step-card .mc-button--primary { width: 100%; }.study-tools-card { padding: 20px 20px 7px; }.mc-nav--mobile { position: fixed; z-index: var(--mc-z-navigation); right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; min-height: 72px; padding: 7px 6px max(7px, env(safe-area-inset-bottom)); border-top: 1px solid var(--mc-line); background: color-mix(in srgb, var(--mc-surface) 94%, transparent); box-shadow: 0 -6px 20px rgba(5,21,92,.06); backdrop-filter: blur(16px); }.mc-nav--mobile .mc-nav__item { display: grid; min-height: 54px; padding: 4px 2px; border-radius: 12px; place-items: center; gap: 3px; font-size: .63rem; text-align: center; }.mc-nav--mobile .mc-nav__item svg { width: 20px; height: 20px; }.mc-nav--mobile .mc-nav__item.is-active { background: transparent; }.mc-nav--mobile .mc-nav__item.is-active svg { color: var(--mc-blue); }.focus-timer-card { min-height: 0; padding: 25px 18px; }.focus-dial { width: min(74vw, 285px); }.focus-actions { width: 100%; }.focus-actions .mc-button { width: 100%; }.focus-input-grid { grid-template-columns: 1fr; }.calendar-layout .mc-empty-state { min-height: 210px; }.mc-sheet { width: 100%; max-height: min(88dvh, 800px); margin: auto 0 0; border-radius: 26px 26px 0 0; }.sheet-surface { padding: 16px 20px max(26px, env(safe-area-inset-bottom)); }.mc-empty-state { min-height: 205px; }.topbar, .legal, footer { width: min(100% - 32px, 1120px); }.topbar { min-height: 72px; }.legal { padding: 52px 0 78px; }footer { flex-wrap: wrap; padding: 22px 0; }footer p { order: 3; width: 100%; } }

@media (max-width: 720px) { .course-detail-hero { align-items: flex-start; flex-direction: column; }.course-detail-hero__actions { justify-content: flex-start; width: 100%; }.course-overview-grid { grid-template-columns: 1fr; gap: 14px; }.course-ai-card { grid-template-columns: auto minmax(0, 1fr); }.course-ai-card .mc-button { grid-column: 1 / -1; width: 100%; }.course-card__actions { align-items: stretch; flex-wrap: wrap; }.course-card__actions .mc-button--text { margin-left: 0; }.course-library-card > p { min-height: auto; }.syllabus-studio { grid-template-columns: 1fr; gap: 18px; padding: 22px; border-radius: 24px; }.syllabus-studio__steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }.syllabus-studio__steps li { grid-template-columns: 1fr; align-items: start; gap: 5px; }.syllabus-studio__steps strong { line-height: 1.35; }.syllabus-studio__actions small { text-align: left; } }

@media (max-width: 1180px) { .ai-tutor-layout { grid-template-columns: minmax(230px, .7fr) minmax(0, 1.35fr); }.ai-tutor-rail { grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }.ai-conversation-card { min-height: 630px; } }
@media (max-width: 760px) { .ai-tutor-layout { grid-template-columns: 1fr; gap: 14px; }.ai-tutor-sidebar { gap: 14px; }.ai-context-card { grid-template-columns: 1fr 1fr; }.ai-context-card .section-heading, .ai-context-card .small-print { grid-column: 1 / -1; }.ai-history-card { display: none; }.ai-tutor-rail { grid-column: auto; grid-template-columns: 1fr; gap: 14px; }.ai-safety-card { display: none; }.ai-conversation-card { min-height: 610px; }.ai-conversation-header { padding: 21px 20px 16px; }.ai-message-list { padding: 16px 20px; }.ai-verify-note { margin: 0 20px; }.ai-composer { padding: 0 20px 20px; }.ai-message { max-width: 94%; }.ai-composer__bottom { align-items: flex-end; }.ai-composer__bottom .small-print { font-size: .7rem; }.ai-composer__bottom .mc-button { flex: 0 0 auto; }.ai-context-card .mc-input { min-width: 0; } }

@media (max-width: 640px) { .marketing-nav { min-height: 78px; }.marketing-nav .brand span { display: none; }.marketing-nav__actions { gap: 7px; }.marketing-create, .marketing-signin { min-height: 39px; padding: 8px 10px; } }

/* On phones, the conversation is the first AI Tutor surface. Keep the composer
   inside that first viewport instead of making students scroll past setup cards. */
@media (max-width: 760px) {
  .ai-tutor-layout { display: flex; flex-direction: column; }
  .ai-conversation-card {
    order: -1;
    height: min(690px, calc(100dvh - 156px));
    min-height: min(610px, calc(100dvh - 156px));
    grid-template-rows: auto minmax(0, 1fr) auto auto;
  }
  .ai-message-list { min-height: 0; overscroll-behavior: contain; }
  .ai-composer {
    padding: 12px 20px max(16px, env(safe-area-inset-bottom));
    border-top: 1px solid var(--mc-line);
    background: var(--mc-surface);
    box-shadow: 0 -8px 20px rgba(5, 21, 92, .045);
  }
  .ai-composer textarea {
    min-height: 72px;
    max-height: 136px;
    resize: none;
  }
}

/* AI Tutor: one clear guided workspace, with the conversation always carrying
   the visual weight. These are presentation-only rules; course context,
   conversations, saved history, and AI requests retain their existing logic. */
.ai-tutor-layout { grid-template-columns: minmax(270px, .72fr) minmax(460px, 1.55fr) minmax(220px, .52fr); gap: 22px; }
.ai-tutor-sidebar { gap: 16px; }
.ai-context-card--premium, .ai-prompt-card--premium, .ai-history-card { border-color: color-mix(in srgb, var(--mc-line) 78%, white); box-shadow: var(--mc-shadow-glass); }
.ai-context-card--premium { background: linear-gradient(145deg, color-mix(in srgb, var(--mc-mint) 27%, var(--mc-surface)), color-mix(in srgb, var(--mc-surface) 95%, white)); }
.ai-prompt-card--premium { background: color-mix(in srgb, var(--mc-surface) 91%, var(--mc-pearl)); }
.ai-context-card--premium .section-heading, .ai-prompt-card--premium .section-heading { align-items: start; }
.ai-context-card--premium h2, .ai-prompt-card--premium h2, .ai-history-card h2 { margin: 2px 0 0; font-family: var(--mc-font-display); font-size: clamp(1.1rem, 1.6vw, 1.35rem); letter-spacing: -.04em; }
.ai-card-intro { margin: -3px 0 1px; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.45; }
.ai-prompt-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.ai-prompt-list button { display: flex; align-items: center; min-height: 46px; gap: 8px; padding: 9px 10px; border-color: color-mix(in srgb, var(--mc-teal) 14%, var(--mc-line)); border-radius: var(--mc-radius-sm); color: var(--mc-ink); background: color-mix(in srgb, var(--mc-mint) 25%, var(--mc-surface)); font-size: .75rem; font-weight: 780; line-height: 1.2; transition: transform var(--mc-duration-fast) var(--mc-ease-standard), border-color var(--mc-duration-fast) var(--mc-ease-standard), background var(--mc-duration-fast) var(--mc-ease-standard), box-shadow var(--mc-duration-fast) var(--mc-ease-standard); }
.ai-prompt-list button svg { width: 16px; height: 16px; flex: 0 0 auto; color: var(--mc-teal); }
.ai-prompt-list button:hover { transform: translateY(-1px); border-color: color-mix(in srgb, var(--mc-teal) 44%, var(--mc-line)); color: var(--mc-ink); background: color-mix(in srgb, var(--mc-mint) 53%, var(--mc-surface)); box-shadow: 0 8px 16px rgba(15, 79, 66, .08); }
.ai-prompt-list button:active { transform: translateY(0) scale(.985); }
.ai-history-card { gap: 12px; }
.ai-history-card .mc-button--text { min-height: 34px; padding-inline: 6px; font-size: var(--mc-text-xs); }
.ai-history-list { max-height: 214px; overflow-y: auto; overscroll-behavior: contain; }
.ai-conversation-card { min-height: min(620px, calc(100dvh - 148px)); border-color: color-mix(in srgb, var(--mc-line) 75%, white); background: color-mix(in srgb, var(--mc-surface) 92%, var(--mc-pearl)); box-shadow: var(--mc-shadow-glass); }
.ai-conversation-header { align-items: center; padding: 26px 28px 20px; border-bottom-color: color-mix(in srgb, var(--mc-line) 82%, white); background: radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--mc-mint) 52%, transparent), transparent 40%), linear-gradient(145deg, color-mix(in srgb, var(--mc-surface) 80%, white), color-mix(in srgb, var(--mc-pearl) 67%, var(--mc-surface))); }
.ai-conversation-header h2 { margin: 4px 0 6px; font-family: var(--mc-font-display); font-size: clamp(1.55rem, 2.7vw, 2.25rem); letter-spacing: -.06em; line-height: 1.04; }
.ai-conversation-actions { display: flex; align-items: center; gap: 10px; }
.ai-new-conversation { display: inline-flex; align-items: center; min-height: 38px; gap: 6px; padding: 8px 11px; border: 1px solid color-mix(in srgb, var(--mc-blue) 16%, var(--mc-line)); border-radius: var(--mc-radius-pill); color: var(--mc-blue); background: color-mix(in srgb, var(--mc-surface) 78%, white); box-shadow: 0 5px 14px rgba(4, 46, 134, .06); font: inherit; font-size: var(--mc-text-xs); font-weight: 800; white-space: nowrap; }
.ai-new-conversation:hover, .ai-new-conversation:focus-visible { border-color: color-mix(in srgb, var(--mc-blue) 44%, var(--mc-line)); background: var(--mc-surface); }
.ai-new-conversation svg { width: 15px; height: 15px; }
.ai-conversation-header .ai-orb { width: 46px; height: 46px; border: 1px solid rgba(255, 255, 255, .6); box-shadow: 0 10px 22px rgba(15, 79, 66, .12); }
.ai-message-list { align-content: end; padding: 26px 28px; background: radial-gradient(circle at 10% 15%, rgba(199, 252, 224, .16), transparent 34%); }
.ai-message { max-width: min(82%, 660px); padding: 14px 16px; border-radius: 19px; box-shadow: 0 6px 16px rgba(12, 25, 61, .035); }
.ai-message--student { background: linear-gradient(145deg, #123f93, var(--mc-blue)); border-bottom-right-radius: 6px; }
.ai-message--assistant { border-color: color-mix(in srgb, var(--mc-line) 84%, white); background: color-mix(in srgb, var(--mc-surface) 93%, var(--mc-pearl)); border-bottom-left-radius: 6px; }
.ai-empty-conversation { align-self: center; max-width: 500px; margin: 0 auto; padding: 38px 24px; border: 1px dashed color-mix(in srgb, var(--mc-teal) 24%, var(--mc-line)); border-radius: var(--mc-radius-lg); background: color-mix(in srgb, var(--mc-mint) 18%, transparent); }
.ai-empty-conversation h3 { font-family: var(--mc-font-display); font-size: clamp(1.35rem, 2.1vw, 1.8rem); }
.ai-verify-note { margin-inline: 28px; padding-top: 14px; }
.ai-composer { gap: 11px; padding: 0 28px 27px; }
.ai-composer textarea { min-height: 94px; border-color: color-mix(in srgb, var(--mc-line-strong) 70%, white); border-radius: var(--mc-radius-lg); background: color-mix(in srgb, var(--mc-surface) 90%, var(--mc-pearl)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .72); }
.ai-composer textarea::placeholder { color: color-mix(in srgb, var(--mc-ink-secondary) 74%, transparent); }
.ai-composer__bottom .small-print { color: var(--mc-ink-secondary); }

@media (max-width: 1180px) {
  .ai-tutor-layout { grid-template-columns: minmax(264px, .76fr) minmax(0, 1.5fr); }
  .ai-tutor-rail { grid-column: 1 / -1; }
  .ai-conversation-card { min-height: min(590px, calc(100dvh - 148px)); }
}
@media (max-width: 700px) {
  .ai-tutor-layout { display: flex; flex-direction: column; gap: 15px; }
  .ai-conversation-card { order: -1; width: 100%; min-height: min(590px, calc(100dvh - 148px)); }
  .ai-tutor-sidebar, .ai-tutor-rail { width: 100%; }
  .ai-context-card--premium { grid-template-columns: 1fr 1fr; }
  .ai-context-card--premium .section-heading, .ai-context-card--premium .ai-card-intro, .ai-context-card--premium .small-print { grid-column: 1 / -1; }
  .ai-history-card { display: none; }
}
@media (max-width: 560px) {
  .ai-conversation-header { align-items: flex-start; padding: 21px 20px 17px; }
  .ai-conversation-actions { gap: 7px; }
  .ai-new-conversation span { display: none; }
  .ai-new-conversation { width: 40px; justify-content: center; padding: 0; }
  .ai-conversation-header .ai-orb { width: 40px; height: 40px; }
  .ai-message-list { padding: 18px 20px; }
  .ai-message { max-width: 93%; }
  .ai-verify-note { margin-inline: 20px; }
  .ai-composer { padding: 0 20px 20px; }
  .ai-context-card--premium { display: grid; grid-template-columns: 1fr; }
  .ai-prompt-list { grid-template-columns: 1fr 1fr; }
  .ai-prompt-list button { min-height: 44px; font-size: .72rem; }
}

/* Mind Maps — a focused visual study workspace. Content remains on readable
   opaque surfaces; glass is reserved for the compact editing toolbar. */
.study-section-nav { display: inline-flex; width: fit-content; gap: 4px; padding: 4px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-pill); background: var(--mc-surface); box-shadow: var(--mc-shadow-subtle); }
.study-section-nav button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 44px; padding: 9px 18px; border: 0; border-radius: var(--mc-radius-pill); color: var(--mc-ink-secondary); background: transparent; font: inherit; font-size: var(--mc-text-sm); font-weight: 750; cursor: pointer; transition: color var(--mc-duration-fast) var(--mc-ease-standard), background var(--mc-duration-fast) var(--mc-ease-standard); }
.study-section-nav button svg { width: 18px; height: 18px; }
.study-section-nav button.is-active { color: var(--mc-blue); background: color-mix(in srgb, var(--mc-blue) 10%, var(--mc-surface)); }
.study-section-nav button:hover { color: var(--mc-blue); }
.study-section-nav button:focus-visible { outline: 3px solid var(--mc-blue); outline-offset: 2px; }
.study-maps-action svg { width: 18px; height: 18px; }
.mind-map-library__header { display: flex; align-items: end; justify-content: space-between; gap: 24px; padding: 10px 0 4px; }
.mind-map-library__header h2 { margin: 3px 0 6px; color: var(--mc-ink); font-family: var(--mc-font-display); font-size: clamp(2rem, 4vw, 3.3rem); letter-spacing: -.065em; }
.mind-map-library__header p:last-child { margin: 0; color: var(--mc-ink-secondary); }
.mind-map-loading { min-height: 150px; display: grid; place-items: center; color: var(--mc-ink-secondary); }
.mind-map-upgrade { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 20px; border-color: color-mix(in srgb, var(--mc-blue) 22%, var(--mc-line)); background: linear-gradient(130deg, color-mix(in srgb, var(--mc-blue) 8%, var(--mc-surface)), var(--mc-surface) 62%); }
.mind-map-upgrade h2 { margin: 3px 0 7px; font-family: var(--mc-font-display); font-size: var(--mc-text-xl); letter-spacing: -.045em; }
.mind-map-upgrade p:not(.eyebrow) { max-width: 680px; margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.5; }
.mind-map-create { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 16px; padding: 24px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-lg); background: var(--mc-surface); }
.mind-map-create > div:first-child { grid-column: 1 / -1; }
.mind-map-create h3 { margin: 3px 0 0; font-family: var(--mc-font-display); font-size: var(--mc-text-lg); letter-spacing: -.035em; }
.mind-map-create .mc-input { gap: 6px; }
.mind-map-create .mc-button { justify-self: start; min-height: 48px; }
.mind-map-create__options { grid-column: 1 / -1; }
.mind-map-create__options > summary { width: fit-content; min-height: 44px; padding: 11px 0; color: var(--mc-blue); font-size: var(--mc-text-sm); font-weight: 750; cursor: pointer; }
.mind-map-create__options > summary:focus-visible { outline: 3px solid var(--mc-blue); outline-offset: 2px; border-radius: 3px; }
.mind-map-create__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding-top: 8px; }
.mind-map-create .mc-input select { min-height: 48px; padding-right: 36px; border-radius: var(--mc-radius-sm); color: var(--mc-ink); background-color: var(--mc-surface); }
.mind-map-template-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.mind-map-template { display: grid; gap: 4px; min-height: 76px; padding: 14px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-md); color: var(--mc-ink); background: var(--mc-surface); text-align: left; transition: transform var(--mc-duration-fast) var(--mc-ease-standard), border-color var(--mc-duration-fast) var(--mc-ease-standard), background var(--mc-duration-fast) var(--mc-ease-standard); }
.mind-map-template:hover, .mind-map-template:focus-visible { border-color: color-mix(in srgb, var(--mc-blue) 42%, var(--mc-line)); background: color-mix(in srgb, var(--mc-blue) 5%, var(--mc-surface)); transform: translateY(-1px); }
.mind-map-template strong { font-size: var(--mc-text-sm); }
.mind-map-template small { color: var(--mc-ink-secondary); line-height: 1.35; }
.mind-map-library__section { margin-top: 10px; }
.mind-map-library-search, .mind-map-toolbar input[type=search] { min-height: 44px; padding: 10px 13px; border: 1px solid var(--mc-line-strong); border-radius: var(--mc-radius-pill); color: var(--mc-ink); background: var(--mc-surface); font: inherit; }
.mind-map-library-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.mind-map-card { display: grid; align-content: start; gap: 12px; min-height: 176px; padding: 18px; }
.mind-map-card__open { display: grid; width: 100%; min-height: 98px; gap: 8px; padding: 6px 0 0; border: 0; color: var(--mc-ink); background: transparent; text-align: left; cursor: pointer; }
.mind-map-card__open strong { font-family: var(--mc-font-display); font-size: var(--mc-text-xl); letter-spacing: -.045em; }
.mind-map-card__open small { color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.4; }
.mind-map-card__open .mind-map-card__link { margin-top: auto; color: var(--mc-blue); font-size: var(--mc-text-sm); font-weight: 800; }
.mind-map-card__open:hover .mind-map-card__link { text-decoration: underline; }
.mind-map-card__open:focus-visible { outline: 3px solid var(--mc-blue); outline-offset: 4px; border-radius: var(--mc-radius-sm); }
.mind-map-card__top, .mind-map-card__actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.mind-map-card__badge { padding: 5px 8px; border-radius: var(--mc-radius-pill); color: var(--mc-blue); background: color-mix(in srgb, var(--mc-blue) 8%, var(--mc-surface)); font-size: var(--mc-text-xs); font-weight: 780; }
.mind-map-card h3 { margin: 2px 0 0; font-family: var(--mc-font-display); font-size: var(--mc-text-xl); letter-spacing: -.045em; }
.mind-map-card > p { margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.5; }
.mind-map-card__actions { margin-top: auto; }
.mind-map-workspace { display: grid; gap: 14px; }
.mind-map-workspace__header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 18px; }
.mind-map-workspace__header h2 { margin: 2px 0 3px; font-family: var(--mc-font-display); font-size: clamp(1.7rem, 3vw, 2.6rem); letter-spacing: -.06em; }
.mind-map-workspace__context { margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); }
.mind-map-next { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px 24px; padding: 18px 20px; border: 1px solid color-mix(in srgb, var(--mc-blue) 22%, var(--mc-line)); border-radius: var(--mc-radius-lg); background: var(--mc-surface); box-shadow: var(--mc-shadow-card); }
.mind-map-next__copy h3 { margin: 3px 0 5px; color: var(--mc-ink); font-family: var(--mc-font-display); font-size: var(--mc-text-xl); letter-spacing: -.04em; }
.mind-map-next__copy > p:last-child { max-width: 58ch; margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.5; }
.mind-map-next__actions, .mind-map-assist__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.mind-map-next__actions .mc-button, .mind-map-assist__actions .mc-button { min-height: 44px; }
.mind-map-next__hint { grid-column: 1 / -1; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); }
.mind-map-assist { grid-column: 1 / -1; display: grid; gap: 12px; padding-top: 12px; border-top: 1px solid var(--mc-line); }
.mind-map-assist__message { margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); }
.mind-map-assist__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.mind-map-assist__choice { display: flex; gap: 12px; align-items: start; min-height: 58px; padding: 12px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-md); color: var(--mc-ink); cursor: pointer; }
.mind-map-assist__choice:focus-within { outline: 3px solid var(--mc-blue); outline-offset: 2px; }
.mind-map-assist__choice input { width: 20px; height: 20px; flex: 0 0 auto; margin: 2px 0 0; accent-color: var(--mc-blue); }
.mind-map-assist__choice span { display: grid; gap: 3px; }
.mind-map-assist__choice strong { font-size: var(--mc-text-sm); }
.mind-map-assist__choice small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.4; }
.mind-map-toolbar { display: flex; align-items: center; gap: 8px; padding: 10px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-lg); }
.mind-map-toolbar input { width: min(250px, 26vw); margin-right: auto; }
.mind-map-toolbar .mc-button { min-height: 42px; padding: 9px 12px; }
.mind-map-status { min-height: 19px; margin: -2px 2px 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); }
.mind-map-status.success { color: var(--mc-teal); }
.mind-map-status.error { color: var(--mc-danger); }
.mind-map-workspace__body { display: grid; grid-template-columns: minmax(0, 1fr) 290px; min-height: min(700px, calc(100dvh - 260px)); gap: 14px; }
.mind-map-canvas-wrap { position: relative; min-width: 0; min-height: 560px; overflow: hidden; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-xl); background-color: color-mix(in srgb, var(--mc-pearl) 70%, var(--mc-surface)); background-image: radial-gradient(circle, color-mix(in srgb, var(--mc-blue) 18%, transparent) 1px, transparent 1px); background-size: 24px 24px; box-shadow: var(--mc-shadow-card); touch-action: none; }
.mind-map-canvas { display: block; width: 100%; height: 100%; min-height: 560px; outline: 0; }
.mind-map-canvas:focus-visible { box-shadow: inset 0 0 0 3px color-mix(in srgb, var(--mc-blue) 45%, transparent); }
.mind-map-edge { fill: none; stroke: color-mix(in srgb, var(--mc-blue) 34%, var(--mc-line)); stroke-width: 3; vector-effect: non-scaling-stroke; }
.mind-map-node { cursor: grab; outline: none; }
.mind-map-node:active { cursor: grabbing; }
.mind-map-node rect { fill: var(--mc-surface); stroke: var(--mc-line-strong); stroke-width: 2; filter: drop-shadow(0 8px 14px rgba(10, 28, 72, .08)); transition: stroke var(--mc-duration-fast), fill var(--mc-duration-fast); }
.mind-map-node text { fill: var(--mc-ink); font: 760 15px var(--mc-font-body); pointer-events: none; }
.mind-map-node.is-central rect { fill: var(--mc-blue); stroke: var(--mc-blue); }
.mind-map-node.is-central text { fill: #fff; font-size: 16px; }
.mind-map-node.is-selected rect { stroke: var(--mc-teal); stroke-width: 4; }
.mind-map-node.is-match rect { fill: color-mix(in srgb, var(--mc-cream) 65%, var(--mc-surface)); stroke: var(--mc-blue); }
.mind-map-node:focus rect { stroke: var(--mc-blue); stroke-width: 4; }
.mind-map-inspector { display: grid; align-content: start; gap: 12px; max-height: min(700px, calc(100dvh - 260px)); padding: 18px; overflow-y: auto; }
.mind-map-inspector h3 { margin: -5px 0 2px; font-family: var(--mc-font-display); font-size: var(--mc-text-lg); letter-spacing: -.04em; }
.mind-map-inspector .mc-input { gap: 5px; }
.mind-map-inspector textarea { resize: vertical; }
.mind-map-image-field small { color: var(--mc-ink-secondary); font-size: .68rem; line-height: 1.35; }
.mind-map-inspector__actions { display: grid; gap: 8px; margin-top: 4px; }
.mind-map-export-menu { position: relative; }
.mind-map-export-menu > summary { display: inline-flex; min-height: 42px; align-items: center; padding: 9px 13px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-pill); color: var(--mc-ink); background: var(--mc-surface); font-size: var(--mc-text-xs); font-weight: 800; cursor: pointer; list-style: none; }
.mind-map-export-menu > summary::-webkit-details-marker { display: none; }
.mind-map-export-menu__options { position: absolute; z-index: var(--mc-z-overlay); top: calc(100% + 7px); right: 0; display: grid; width: 170px; padding: 7px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-md); background: var(--mc-surface); box-shadow: var(--mc-shadow-modal); }
.mind-map-export-menu__options .mc-button { justify-content: flex-start; width: 100%; }
.mind-map-outline { border: 1px solid var(--mc-line); border-radius: var(--mc-radius-md); background: var(--mc-surface); }
.mind-map-outline > summary { padding: 12px 14px; color: var(--mc-ink); font-size: var(--mc-text-sm); font-weight: 800; cursor: pointer; }
.mind-map-outline ol { display: grid; gap: 3px; margin: 0; padding: 0 14px 14px 32px; }
.mind-map-outline li { padding-left: calc(var(--map-depth, 0) * 18px); }
.mind-map-outline .mc-button { min-height: 34px; }
.mind-map-workspace.is-focus-mode .mind-map-inspector, .mind-map-workspace.is-focus-mode .mind-map-upgrade, .mind-map-workspace.is-focus-mode .mind-map-outline { display: none; }
.mind-map-workspace.is-focus-mode .mind-map-workspace__body { grid-template-columns: 1fr; }
.mind-map-workspace.is-readonly .mind-map-node { cursor: pointer; }
.theme-dark .today-next .mc-button--primary, .theme-dark .today-next .mc-button--primary:active, .theme-dark .today-next .mc-button--primary:focus-visible { color: #fff; background: #2f6fec; }
.theme-dark .mind-map-canvas-wrap { background-color: color-mix(in srgb, var(--mc-surface) 92%, #0a1530); }
.theme-dark .mind-map-node rect { fill: #17233f; stroke: #42547a; }
.theme-dark .mind-map-node text { fill: #f7f9ff; }
.theme-dark .mind-map-node.is-central rect { fill: #2f6fec; stroke: #7ea6ff; }
.theme-dark .mind-map-edge { stroke: #526b9d; }

@media (max-width: 1120px) {
  .mind-map-library-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mind-map-workspace__body { grid-template-columns: minmax(0, 1fr) 260px; }
}
@media (max-width: 820px) {
  .mind-map-upgrade { grid-template-columns: auto minmax(0, 1fr); }
  .mind-map-upgrade .mc-button { grid-column: 1 / -1; justify-self: stretch; }
  .mind-map-template-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mind-map-workspace__body { grid-template-columns: 1fr; }
  .mind-map-inspector { max-height: none; }
  .mind-map-toolbar { overflow-x: auto; overscroll-behavior-inline: contain; }
  .mind-map-toolbar input { width: 190px; min-width: 190px; }
  .mind-map-toolbar .mc-button, .mind-map-export-menu { flex: 0 0 auto; }
}
@media (max-width: 640px) {
  .mind-map-next { grid-template-columns: 1fr; padding: 16px; }
  .mind-map-next__actions { display: grid; grid-template-columns: 1fr 1fr; }
  .mind-map-next__actions .mc-button { padding-inline: 8px; }
  .mind-map-assist__list { grid-template-columns: 1fr; }
  .study-section-nav { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .study-section-nav button { padding-inline: 10px; }
  .mind-map-library__header { align-items: start; flex-direction: column-reverse; gap: 12px; }
  .mind-map-create { grid-template-columns: 1fr; padding: 18px; }
  .mind-map-create > div:first-child, .mind-map-create .mc-button, .mind-map-create__options { grid-column: auto; }
  .mind-map-create__fields { grid-template-columns: 1fr; }
  .mind-map-template-strip, .mind-map-library-grid { grid-template-columns: 1fr; }
  .mind-map-upgrade { grid-template-columns: 1fr; padding: 18px; }
  .mind-map-upgrade .tool-icon { width: 42px; height: 42px; }
  .mind-map-workspace__header { grid-template-columns: 1fr auto; gap: 10px; }
  .mind-map-workspace__header > .mc-button:first-child { grid-column: 1 / -1; justify-self: start; }
  .mind-map-workspace__header > div { min-width: 0; }
  .mind-map-workspace__header h2 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .mind-map-canvas-wrap, .mind-map-canvas { min-height: 62dvh; }
  .mind-map-inspector { padding: 16px; }
  .mind-map-export-menu__options { right: auto; left: 0; }
}

/* Public access page — the PWA itself stays hidden until authentication resolves. */
.marketing-page { min-height: 100dvh; background: linear-gradient(150deg, #f4fcf8 0%, var(--mc-pearl) 58%, #fff 100%); }
.welcome-phase { position: fixed; z-index: 50; inset: 0; display: grid; padding: 24px; place-items: center; opacity: 0; background: linear-gradient(150deg, #ecfbf4 0%, var(--mc-pearl) 65%, #fff 100%); pointer-events: none; transform: scale(1.015); transition: opacity .62s ease, transform .68s cubic-bezier(.2,.75,.25,1); }
.welcome-phase.is-visible { opacity: 1; transform: scale(1); }
.welcome-phase.is-leaving { opacity: 0; transform: scale(.985); }
.welcome-phase__copy { display: grid; width: min(100%, 670px); justify-items: center; gap: 14px; text-align: center; }
.welcome-phase__copy .tool-icon { width: 56px; height: 56px; border-radius: 18px; }
.welcome-phase__copy h2 { margin: 0; color: var(--mc-ink); font-size: clamp(2.4rem, 6vw, 4.8rem); letter-spacing: -.045em; line-height: .95; }
.welcome-phase__copy h2 em { color: var(--mc-teal); font-family: var(--mc-font-serif); font-weight: 500; }
.welcome-phase__copy > p:last-child { max-width: 390px; margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.5; }
.marketing-nav, .marketing-page main, .marketing-footer { width: min(1120px, calc(100% - 48px)); margin-inline: auto; }
.marketing-nav { display: flex; align-items: center; justify-content: space-between; min-height: 92px; }
.marketing-nav__actions { display: flex; align-items: center; gap: 9px; }
.marketing-create { min-height: 42px; padding: 10px 14px; border: 1px solid var(--mc-teal); border-radius: var(--mc-radius-sm); color: #fff; background: var(--mc-teal); font-size: var(--mc-text-sm); font-weight: 780; }
.marketing-create:hover { background: #0a3d33; }
.marketing-signin { min-height: 42px; padding: 10px 14px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-sm); color: var(--mc-teal); background: rgba(255,255,255,.68); font-size: var(--mc-text-sm); font-weight: 780; }
.marketing-hero { max-width: 760px; padding: clamp(58px, 10vw, 126px) 0 clamp(48px, 8vw, 96px); }
.marketing-hero h1 { margin: 13px 0 21px; color: var(--mc-ink); font-size: clamp(3.2rem, 7.5vw, 6.3rem); letter-spacing: -.045em; line-height: .92; }
.marketing-hero h1 em { color: var(--mc-teal); font-family: var(--mc-font-serif); font-size: 1.03em; font-weight: 500; letter-spacing: -.035em; }
.marketing-hero > p:not(.eyebrow):not(.marketing-note) { max-width: 620px; margin: 0; color: var(--mc-ink-secondary); font-size: clamp(1.05rem, 2vw, 1.25rem); line-height: 1.55; }
.marketing-actions { display: flex; align-items: center; gap: 22px; margin-top: 16px; }
.marketing-actions > a { color: var(--mc-teal); font-size: var(--mc-text-sm); font-weight: 800; }
.marketing-note { margin: 16px 0 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); }
.marketing-hero--access { padding-bottom: clamp(44px, 7vw, 76px); }
.marketing-auth-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 270px)); gap: 10px; max-width: 550px; margin-top: 31px; }
.marketing-auth-actions .provider-button { min-height: 56px; }
.marketing-auth-status { max-width: 550px; margin: 14px 0 0; text-align: left; }
.access-note { display: flex; align-items: flex-start; gap: 18px; max-width: 740px; margin-bottom: clamp(72px, 14vw, 160px); padding: 24px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-lg); background: rgba(255,255,255,.72); box-shadow: var(--mc-shadow-card); }
.access-note h2 { margin: 1px 0 7px; color: var(--mc-ink); font-size: var(--mc-text-xl); letter-spacing: -.035em; }
.access-note p { max-width: 560px; margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.5; }
.marketing-footer { display: flex; align-items: center; justify-content: flex-start; gap: 22px; min-height: 95px; border-top: 1px solid var(--mc-line); color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); font-weight: 660; }
.marketing-footer span { margin-right: auto; color: var(--mc-ink); font-weight: 800; }
.marketing-footer a:hover { color: var(--mc-teal); }

/* Authenticated Home is intentionally a calm, card-first surface rather than a dashboard. */
.plan-badge { display: inline-flex; align-items: center; min-height: 30px; padding: 6px 10px; border-radius: var(--mc-radius-pill); color: var(--mc-teal); background: color-mix(in srgb, var(--mc-mint) 65%, var(--mc-surface)); font-size: var(--mc-text-xs); font-weight: 840; }
.home-quick-actions { display: grid; gap: 12px; padding: 4px 0 2px; }
.home-quick-actions .section-heading h2 { margin: 2px 0 0; font-size: var(--mc-text-lg); }
.home-quick-actions__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.quick-action { display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: center; gap: 9px; min-height: 76px; padding: 12px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-md); color: var(--mc-ink); background: color-mix(in srgb, var(--mc-surface) 90%, var(--mc-mint)); text-align: left; box-shadow: var(--mc-shadow-card); transition: transform var(--mc-duration-standard) var(--mc-ease-standard), border-color var(--mc-duration-standard) var(--mc-ease-standard), background var(--mc-duration-standard) var(--mc-ease-standard); }
.quick-action:hover { border-color: color-mix(in srgb, var(--mc-teal) 44%, var(--mc-line)); background: color-mix(in srgb, var(--mc-mint) 44%, var(--mc-surface)); transform: translateY(-2px); }
.quick-action svg { width: 21px; height: 21px; color: var(--mc-teal); }
.quick-action span { display: grid; min-width: 0; gap: 2px; }
.quick-action strong { color: var(--mc-ink); font-size: var(--mc-text-sm); line-height: 1.15; }
.quick-action small { color: var(--mc-ink-secondary); font-size: .69rem; line-height: 1.25; }
.home-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: 20px; }
.home-grid > .mc-card { display: grid; align-content: start; gap: 14px; }
.home-summary { min-height: 224px; }
.home-next { min-height: 224px; background: color-mix(in srgb, var(--mc-mint) 23%, var(--mc-surface)); }
.home-next .mc-button { width: fit-content; margin-top: auto; }
.home-tasks { min-height: 260px; }
.home-planner { min-height: 260px; }
.home-planner .mc-button { width: fit-content; margin-top: auto; }
.home-tools { min-height: 286px; padding-bottom: 8px !important; }
.home-progress { min-height: 186px; background: color-mix(in srgb, var(--mc-cream) 60%, var(--mc-surface)); }
.home-progress .mc-button { width: fit-content; margin-top: auto; }
.course-home-section { display: grid; grid-column: 1 / -1; gap: 14px; }
.course-home-section .course-grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.course-home-section .mc-empty-state { min-height: 210px; }
.task-list { display: grid; }
.task-list .task-row:first-child { border-top: 0; }

/* Today is the student command center: one clear next step, a compact plan,
   and contextual tools rather than a dashboard of unrelated features. */
.today-header { align-items: flex-end; }
.today-header h1 { margin-bottom: 2px; font-size: clamp(2rem, 3.7vw, 3rem); letter-spacing: -.06em; }
.today-header__copy { max-width: 560px; margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.48; }
.today-layout { display: grid; grid-template-columns: minmax(0, 1.28fr) minmax(285px, .72fr); align-items: start; gap: 20px; }
.today-main, .today-rail { display: grid; gap: 20px; min-width: 0; }
.today-next { display: grid; gap: 19px; min-height: 250px; padding: clamp(24px, 4vw, 34px); border-color: color-mix(in srgb, var(--mc-blue) 42%, var(--mc-line)); color: #fffbe8; background: linear-gradient(135deg, #1450c8, #102f7d 74%); box-shadow: 0 18px 36px rgba(13, 48, 123, .2); }
.today-next .card-label { color: #c9ffe0; }
.today-next__body { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.today-next__body > div { display: grid; gap: 7px; min-width: 0; }
.today-next__context { margin: 0; color: #c9ffe0; font-size: var(--mc-text-xs); font-weight: 820; letter-spacing: .1em; }
.today-next h2 { margin: 0; color: inherit; font-size: clamp(1.85rem, 4vw, 2.85rem); letter-spacing: -.065em; line-height: .98; }
.today-next p:not(.today-next__context) { margin: 0; color: rgba(255, 251, 232, .82); font-size: var(--mc-text-sm); line-height: 1.45; }
.today-next .mc-button--primary { flex: 0 0 auto; color: #fff; background: var(--mc-blue); box-shadow: 0 8px 18px rgba(9, 64, 196, .24); }
.today-next .mc-button--primary:hover { color: #fff; background: color-mix(in srgb, var(--mc-blue) 84%, #000); transform: translateY(-1px); }
.today-next .mc-button--primary:active, .today-next .mc-button--primary:focus-visible { color: #fff; background: var(--mc-blue); }
.today-next__link { display: inline-flex; align-items: center; justify-content: space-between; gap: 8px; width: fit-content; min-height: 34px; padding: 0; border: 0; color: rgba(255, 251, 232, .88); background: transparent; font: inherit; font-size: var(--mc-text-xs); font-weight: 760; }
.today-next__link:hover, .today-next__link:focus-visible { color: #fff; }
.today-next__link svg { width: 16px; height: 16px; }
.today-plan, .today-priorities, .today-progress, .today-ai-insight { display: grid; gap: 16px; }
.today-plan .section-heading, .today-priorities .section-heading, .today-progress .section-heading { align-items: start; }
.today-plan h2, .today-priorities h2, .today-progress h2, .today-ai-insight h2 { margin: 2px 0 0; font-size: var(--mc-text-xl); letter-spacing: -.045em; }
.today-plan__summary { margin: 6px 0 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.45; }
.today-timeline { display: grid; }
.today-timeline__row { display: grid; grid-template-columns: 66px minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 64px; border-top: 1px solid var(--mc-line); }
.today-timeline__row:first-child { border-top: 0; }
.today-timeline__row time { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); font-weight: 800; }
.today-timeline__row > div { display: grid; gap: 3px; min-width: 0; }
.today-timeline__row strong { overflow: hidden; font-size: var(--mc-text-sm); text-overflow: ellipsis; white-space: nowrap; }
.today-timeline__row small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); }
.today-timeline__row--study time { color: var(--mc-blue); }
.today-timeline__action, .task-row__focus { min-height: 34px; padding: 7px 9px; border: 0; border-radius: 9px; color: var(--mc-teal); background: color-mix(in srgb, var(--mc-mint) 45%, var(--mc-surface)); font: inherit; font-size: var(--mc-text-xs); font-weight: 800; }
.today-timeline__action:hover, .task-row__focus:hover { color: var(--mc-blue); background: color-mix(in srgb, var(--mc-mint) 72%, var(--mc-surface)); }
.today-timeline__empty { display: grid; gap: 14px; padding: 3px 0 1px; }
.today-timeline__empty p { margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.5; }
.today-timeline__empty .mc-button { width: fit-content; }
.today-priorities .task-row { grid-template-columns: 26px minmax(0, 1fr) auto; gap: 11px; min-height: 68px; }
.task-check { padding: 0; background: var(--mc-surface); cursor: pointer; }
.task-check svg { width: 13px; height: 13px; opacity: 0; }
.task-check:hover svg, .task-check:focus-visible svg { opacity: 1; }
.today-quick-actions { display: grid; gap: 11px; }
.today-quick-actions .section-heading h2 { margin: 2px 0 0; font-size: var(--mc-text-lg); }
.today-quick-action { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 10px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-sm); color: var(--mc-ink); background: var(--mc-surface); font: inherit; font-size: var(--mc-text-xs); font-weight: 780; text-align: left; transition: transform var(--mc-duration-standard) var(--mc-ease-standard), border-color var(--mc-duration-standard) var(--mc-ease-standard), background var(--mc-duration-standard) var(--mc-ease-standard); }
.today-quick-action:hover, .today-quick-action:focus-visible { border-color: color-mix(in srgb, var(--mc-teal) 38%, var(--mc-line)); background: color-mix(in srgb, var(--mc-mint) 28%, var(--mc-surface)); transform: translateY(-1px); }
.today-quick-action--focus { min-height: 74px; padding: 13px; border-color: color-mix(in srgb, var(--mc-teal) 24%, var(--mc-line)); background: linear-gradient(135deg, color-mix(in srgb, var(--mc-mint) 60%, var(--mc-surface)), var(--mc-surface)); }
.today-quick-action--focus > span:nth-child(2) { display: grid; gap: 2px; min-width: 0; }
.today-quick-action--focus strong { font-size: var(--mc-text-sm); }
.today-quick-action--focus small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); font-weight: 650; }
.today-quick-action--focus > svg { width: 17px; height: 17px; margin-left: auto; color: var(--mc-teal); }
.today-quick-actions__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.today-quick-actions__grid .today-quick-action { min-height: 55px; justify-content: flex-start; }
.today-quick-actions__grid svg { width: 16px; height: 16px; color: var(--mc-blue); }
.today-ai-insight { border-color: color-mix(in srgb, var(--mc-teal) 22%, var(--mc-line)); background: linear-gradient(145deg, color-mix(in srgb, var(--mc-mint) 40%, var(--mc-surface)), var(--mc-surface) 72%); }
.today-ai-insight > p:not(.card-label) { margin: -7px 0 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.48; }
.today-ai-insight__actions { display: flex; align-items: center; gap: 7px; margin-top: auto; }
.today-progress { background: color-mix(in srgb, var(--mc-cream) 52%, var(--mc-surface)); }
.today-progress__metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.today-progress__metrics > span { display: grid; gap: 2px; min-width: 0; padding-right: 7px; border-right: 1px solid color-mix(in srgb, var(--mc-ink-secondary) 16%, transparent); }
.today-progress__metrics > span:last-child { border-right: 0; }
.today-progress__metrics strong { overflow: hidden; color: var(--mc-teal); font-size: var(--mc-text-lg); letter-spacing: -.04em; text-overflow: ellipsis; white-space: nowrap; }
.today-progress__metrics small, .today-progress__note { color: var(--mc-ink-secondary); font-size: .68rem; line-height: 1.35; }
.today-progress__note { margin: 0; }
.today-skeleton { display: grid; grid-template-columns: minmax(0, 1.28fr) minmax(285px, .72fr); gap: 20px; }
.today-skeleton i { display: block; min-height: 176px; border-radius: var(--mc-radius-lg); background: linear-gradient(90deg, color-mix(in srgb, var(--mc-pearl) 80%, var(--mc-surface)), color-mix(in srgb, var(--mc-surface) 88%, var(--mc-mint)), color-mix(in srgb, var(--mc-pearl) 80%, var(--mc-surface))); background-size: 200% 100%; animation: today-shimmer 1.25s ease-in-out infinite; }
.today-skeleton i:first-of-type { min-height: 250px; }.today-skeleton i:last-of-type { display: none; }
@keyframes today-shimmer { from { background-position: 100% 0; } to { background-position: -100% 0; } }
@media (max-width: 1080px) {
  .today-layout { grid-template-columns: minmax(0, 1.15fr) minmax(245px, .85fr); gap: 16px; }
  .today-main, .today-rail { gap: 16px; }
  .today-next__body { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 820px) {
  .today-layout { grid-template-columns: 1fr; }
  .today-rail { grid-template-columns: 1fr 1fr; align-items: start; }
  .today-quick-actions, .daily-reflection-card { grid-column: 1 / -1; }
  .today-skeleton { grid-template-columns: 1fr 1fr; }
  .today-skeleton i:first-of-type { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .today-header { align-items: flex-start; gap: 14px; }
  .today-header h1 { font-size: clamp(1.9rem, 9vw, 2.35rem); }
  .today-header__copy { max-width: 330px; }
  .today-layout, .today-main, .today-rail { gap: 14px; }
  .today-rail { grid-template-columns: 1fr; }
  .today-next { min-height: 0; padding: 23px 20px; border-radius: 24px; }
  .today-next h2 { font-size: clamp(2rem, 10vw, 2.55rem); }
  .today-next__body { gap: 16px; }
  .today-next .mc-button--primary { width: 100%; min-height: 50px; }
  .today-next__link { min-height: 40px; }
  .today-plan, .today-priorities, .today-progress, .today-ai-insight { gap: 14px; }
  .today-timeline__row { grid-template-columns: 55px minmax(0, 1fr) auto; gap: 9px; min-height: 62px; }
  .today-timeline__row strong { white-space: normal; }
  .today-timeline__action { min-height: 38px; }
  .today-priorities .task-row { grid-template-columns: 26px minmax(0, 1fr); align-items: start; padding: 12px 0; }
  .task-row__focus { grid-column: 2; justify-self: start; margin-top: -4px; }
  .today-quick-actions__grid { grid-template-columns: 1fr 1fr; }
  .today-quick-actions__grid .today-quick-action { min-height: 58px; }
  .today-progress__metrics strong { font-size: var(--mc-text-base); }
  .today-skeleton { grid-template-columns: 1fr; gap: 14px; }
  .today-skeleton i:first-of-type { grid-column: auto; min-height: 218px; }
  .today-skeleton i:last-of-type { display: block; }
}
.ai-usage { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 7px 12px; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--mc-line); color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); font-weight: 700; }
.ai-usage strong { color: var(--mc-ink); font-size: var(--mc-text-xs); text-align: right; }
.ai-usage .mc-progress { grid-column: 1 / -1; height: 7px; }
.home-error { margin: 0; padding: 14px 16px; border: 1px solid rgba(162,47,67,.22); border-radius: var(--mc-radius-md); color: #8b2339; background: #fff6f7; font-size: var(--mc-text-sm); font-weight: 680; }
.progress-summary { display: grid; gap: 10px; max-width: 620px; }
.progress-dashboard { display: grid; gap: 16px; }
.progress-meter-card { display: grid; gap: 16px; }
.progress-meter-card__percent { color: var(--mc-blue); font-size: clamp(2rem, 5vw, 3.4rem); letter-spacing: -.08em; line-height: 1; }
.progress-meter { display: grid; gap: 9px; }
.progress-meter__labels { display: flex; justify-content: space-between; gap: 12px; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); font-weight: 720; }
.mc-progress--large { height: 16px; background: rgba(9, 64, 196, .1); }
.mc-progress--large > span { background: linear-gradient(90deg, var(--mc-teal), var(--mc-blue)); transition: width .35s ease; }
.progress-meter-card__copy { max-width: 62ch; margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.5; }
.progress-stat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.progress-stat-card { display: grid; gap: 6px; }
.progress-stat-card strong { color: var(--mc-ink); font-size: var(--mc-text-2xl); letter-spacing: -.06em; line-height: 1; }
.progress-stat-card span { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); }
.progress-summary p:not(.eyebrow) { color: var(--mc-ink-secondary); }
.admin-copy { margin: 7px 0 0 !important; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); }
.tier-toggle { display: flex; gap: 10px; margin-top: 16px; }
.tier-toggle .mc-button { flex: 1; min-height: 46px; padding: 11px; }
.tier-toggle .mc-button.is-selected { color: var(--mc-on-accent); border-color: var(--mc-blue); background: var(--mc-blue); }
.beta-tester { display: grid; gap: 12px; margin-top: 8px; padding-top: 20px; border-top: 1px solid var(--mc-line); }
.beta-tester .eyebrow { margin: 0; }
.beta-tester .tier-toggle { margin-top: 0; }
.onboarding { display: grid; gap: 17px; padding-top: 22px; }
.onboarding-step { display: grid; gap: 13px; }
.onboarding-step h2 { margin: 1px 0 0; color: var(--mc-ink); font-size: var(--mc-text-2xl); letter-spacing: -.05em; line-height: 1; }
.onboarding-step p { margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.55; }
.onboarding-choice-grid { display: grid; gap: 9px; }
.onboarding-choice { display: grid; grid-template-columns: 42px minmax(0, 1fr) 18px; align-items: center; gap: 12px; width: 100%; min-height: 78px; padding: 11px 12px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-md); color: var(--mc-ink); background: var(--mc-surface); text-align: left; transition: border-color var(--mc-duration-standard) var(--mc-ease-standard), background var(--mc-duration-standard) var(--mc-ease-standard), transform var(--mc-duration-standard) var(--mc-ease-standard); }
.onboarding-choice:hover { border-color: color-mix(in srgb, var(--mc-teal) 42%, var(--mc-line)); background: color-mix(in srgb, var(--mc-mint) 28%, var(--mc-surface)); }
.onboarding-choice:focus-visible { outline: 3px solid rgba(9,64,196,.18); outline-offset: 2px; }
.onboarding-choice.is-selected { border-color: var(--mc-teal); background: color-mix(in srgb, var(--mc-mint) 48%, var(--mc-surface)); box-shadow: 0 8px 18px rgba(15,79,66,.08); }
.onboarding-choice > span:nth-child(2) { display: grid; gap: 3px; min-width: 0; }
.onboarding-choice strong { color: var(--mc-ink); font-size: var(--mc-text-sm); }
.onboarding-choice small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.35; }
.onboarding-choice > i { width: 16px; height: 16px; border: 1.5px solid var(--mc-line-strong); border-radius: 50%; }
.onboarding-choice.is-selected > i { border: 5px solid var(--mc-teal); background: var(--mc-surface); }
.onboarding-choice--goal { grid-template-columns: minmax(0, 1fr) 18px; min-height: 72px; padding-inline: 15px; }
.onboarding-choice--goal > span:first-child { display: grid; gap: 3px; min-width: 0; }
.onboarding-plan-card { display: grid; gap: 5px; padding: 15px; border: 1px solid color-mix(in srgb, var(--mc-teal) 22%, var(--mc-line)); border-radius: var(--mc-radius-md); background: linear-gradient(130deg, color-mix(in srgb, var(--mc-mint) 43%, var(--mc-surface)), var(--mc-surface)); }
.onboarding-plan-card .eyebrow { margin: 0; }
.onboarding-plan-card strong { color: var(--mc-teal); font-size: var(--mc-text-lg); letter-spacing: -.035em; }
.onboarding-plan-card small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.45; }
.onboarding-status { min-height: 19px !important; margin: -7px 0 -2px !important; color: #8b2339 !important; font-size: var(--mc-text-xs) !important; line-height: 1.45 !important; }
.onboarding-actions { display: flex; justify-content: space-between; gap: 12px; margin-top: 5px; }
.onboarding-actions .mc-button:last-child { margin-left: auto; }
.security-sheet { gap: 18px; }
.security-stage { display: grid; gap: 14px; justify-items: start; }
.security-stage > .tool-icon { margin-bottom: 2px; }
.security-stage h2 { margin: 0; color: var(--mc-ink); font-size: var(--mc-text-2xl); letter-spacing: -.05em; line-height: 1; }
.security-stage > p:not(.eyebrow):not(.small-print):not(.mfa-secret) { margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.55; }
.security-stage .mc-button { width: 100%; }
.mfa-qr { width: min(100%, 226px); padding: 12px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-md); background: #fff; }
.mfa-secret { margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.55; word-break: break-word; }
.mfa-secret code { color: var(--mc-ink); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .72rem; }
.security-status { min-height: 20px; margin: -2px 0 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.45; text-align: center; }

@media (max-width: 1050px) { .home-quick-actions__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px) { .home-grid { grid-template-columns: 1fr; }.course-home-section { grid-column: auto; }.home-summary, .home-next, .home-tasks, .home-planner { min-height: auto; } }
@media (max-width: 640px) {
  body.is-marketing { padding-bottom: 0; }
  .marketing-nav, .marketing-page main, .marketing-footer { width: min(100% - 32px, 1120px); }
  .marketing-nav { min-height: 76px; }
  .marketing-hero { padding-top: 62px; }
  .welcome-phase__copy h2 { font-size: clamp(2.35rem, 12vw, 3.65rem); }
  .marketing-hero h1 { font-size: clamp(3rem, 16vw, 4.6rem); }
  .marketing-actions .mc-button, .marketing-auth-actions .provider-button { width: 100%; }
  .marketing-auth-actions { grid-template-columns: 1fr; }
  .access-note { gap: 14px; margin-bottom: 72px; padding: 20px; }
  .marketing-footer { flex-wrap: wrap; gap: 13px 18px; min-height: 112px; padding: 22px 0; }
  .marketing-footer span { width: 100%; }
  .home-grid { gap: 14px; }
  .home-quick-actions { gap: 10px; }
  .home-quick-actions__grid { display: flex; gap: 9px; padding-bottom: 2px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; }
  .home-quick-actions__grid::-webkit-scrollbar { display: none; }
  .quick-action { min-width: 176px; min-height: 70px; scroll-snap-align: start; }
  .home-next .mc-button, .home-progress .mc-button { width: 100%; }
  .course-home-section .course-grid { grid-template-columns: 1fr; }
  .mc-nav--mobile { grid-template-columns: repeat(6, minmax(0, 1fr)); padding-inline: 4px; }
  .mc-nav--mobile .mc-nav__item { font-size: .62rem; }
  .tier-toggle { flex-direction: column; }
  .onboarding-choice { min-height: 74px; }
}

/* Daily Planner — a calm, native-shaped working surface. */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.planner-page-header { align-items: center; }
.planner-date-nav { display: flex; align-items: center; gap: 8px; }
.planner-date-nav__arrow { width: 44px; padding: 10px; }
.planner-date-nav__arrow:first-child svg { transform: rotate(180deg); }
.planner-date-picker { display: grid; }
.planner-date-picker input { min-height: 44px; padding: 9px 10px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-sm); color: var(--mc-ink); background: var(--mc-surface); font: inherit; font-size: var(--mc-text-sm); font-weight: 720; }
.planner-hero { position: relative; overflow: hidden; }
.planner-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 3px; }
.planner-plan-button { position: relative; display: inline-grid; grid-template-columns: auto auto; align-items: center; column-gap: 8px; min-height: 58px; padding: 11px 17px; text-align: left; }
.planner-plan-button svg { grid-row: 1 / span 2; }
.planner-plan-button span { font-size: var(--mc-text-sm); }
.planner-plan-button small { grid-column: 2; color: color-mix(in srgb, var(--mc-on-accent) 72%, transparent); font-size: .66rem; font-weight: 650; }
.planner-hero__actions .mc-button--quiet { color: var(--mc-hero-heading); border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.11); }
.planner-hero__actions .mc-button--quiet:hover:not(:disabled) { background: rgba(255,255,255,.19); }
.planner-status { min-height: 0; margin: -8px 1px 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.5; }
.planner-status:not(:empty) { min-height: 21px; }
.planner-status.error { color: #8b2339; }
.planner-status.success { color: var(--mc-teal); }
.planner-command-strip { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 18px; border-radius: var(--mc-radius-lg); }
.planner-command-strip > div:first-child { display: grid; gap: 3px; min-width: 0; }
.planner-command-strip h2 { margin: 0; color: var(--mc-ink); font-size: var(--mc-text-lg); letter-spacing: -.04em; }
.planner-command-strip p:not(.eyebrow) { max-width: 530px; margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.45; }
.planner-command-strip__actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.planner-command-strip__actions .mc-button { min-height: 42px; padding: 10px 12px; font-size: var(--mc-text-sm); }
.planner-workspace { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(320px, .82fr); align-items: start; gap: 20px; }
.planner-timeline-card, .planner-tasks-card, .planner-availability-card, .planner-calendar-card { display: grid; gap: 16px; }
.planner-calendar-card { position: relative; overflow: hidden; border-color: color-mix(in srgb, var(--mc-teal) 20%, var(--mc-line)); background: linear-gradient(145deg, color-mix(in srgb, var(--mc-mint) 38%, var(--mc-surface)), var(--mc-surface) 70%); }
.calendar-connection-list { display: grid; border-top: 1px solid var(--mc-line); }
.calendar-connection-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 13px; min-height: 76px; padding: 13px 0; border-top: 1px solid var(--mc-line); }
.calendar-connection-row:first-child { border-top: 0; }
.calendar-connection-row > div { display: grid; gap: 4px; min-width: 0; }
.calendar-connection-row strong { font-size: var(--mc-text-sm); }
.calendar-connection-row small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.42; }
.calendar-connection-row .mc-button { min-height: 42px; padding-inline: 13px; white-space: nowrap; }
.calendar-connection-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--mc-space-2); }
.calendar-connection-actions .mc-button { text-decoration: none; }
.calendar-device-badge { display: inline-flex; min-height: 29px; padding: 6px 9px; border: 1px solid var(--mc-line-strong); border-radius: 999px; color: var(--mc-teal); background: color-mix(in srgb, var(--mc-surface) 76%, transparent); font-size: var(--mc-text-xs); font-weight: 760; white-space: nowrap; }
.planner-side-stack { display: grid; gap: 20px; }
.planner-section-heading { align-items: center; }
.planner-section-heading .mc-button { flex: 0 0 auto; }
.planner-actions { display: flex; gap: 8px; }
.planner-add-task { min-height: 44px; padding: 10px 13px; font-size: var(--mc-text-sm); }
.planner-timeline { position: relative; display: grid; }
.planner-timeline-row { display: grid; grid-template-columns: 62px 14px minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 88px; padding: 12px 8px; border-top: 1px solid var(--mc-line); border-radius: var(--mc-radius-sm); transition: background var(--mc-duration-standard) var(--mc-ease-standard), transform var(--mc-duration-standard) var(--mc-ease-standard); }
.planner-timeline-row:first-child { border-top: 0; }
.planner-timeline-row:hover { background: color-mix(in srgb, var(--mc-mint) 20%, transparent); transform: translateX(2px); }
.planner-timeline-row time { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); font-weight: 760; line-height: 1.45; white-space: pre-line; }
.planner-timeline-marker { width: 10px; height: 10px; border: 2px solid var(--mc-surface); border-radius: 50%; background: var(--mc-blue); box-shadow: 0 0 0 1px rgba(9,64,196,.18); }
.planner-timeline-row > div:nth-of-type(1) { display: grid; gap: 4px; min-width: 0; }
.planner-timeline-row strong { overflow: hidden; font-size: var(--mc-text-sm); text-overflow: ellipsis; white-space: nowrap; }
.planner-timeline-row small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.4; }
.planner-timeline-row--availability { background: linear-gradient(90deg, rgba(199,252,224,.28), transparent); }
.planner-timeline-row--availability .planner-timeline-marker { background: var(--mc-teal); box-shadow: 0 0 0 1px rgba(15,79,66,.18); }
.planner-timeline-row--time_block .planner-timeline-marker { background: #b1872f; box-shadow: 0 0 0 1px rgba(177,135,47,.2); }
.planner-row-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 7px; }
.planner-row-actions button { min-height: 36px; padding: 7px 8px; border: 0; border-radius: 9px; color: var(--mc-teal); background: transparent; font-size: var(--mc-text-xs); font-weight: 790; }
.planner-row-actions button:hover:not(:disabled) { background: rgba(15,79,66,.09); }
.planner-row-actions button:disabled { color: var(--mc-ink-secondary); opacity: .65; }
.planner-task-list { display: grid; }
.planner-task-row { display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: center; gap: 11px; padding: 14px 8px; border-top: 1px solid var(--mc-line); border-radius: var(--mc-radius-sm); transition: background var(--mc-duration-standard) var(--mc-ease-standard), transform var(--mc-duration-standard) var(--mc-ease-standard); }
.planner-task-row:first-child { border-top: 0; }
.planner-task-row:hover { background: color-mix(in srgb, var(--mc-mint) 17%, transparent); transform: translateX(2px); }
.planner-task-row > div { display: grid; gap: 4px; min-width: 0; }
.planner-task-row .planner-row-actions { grid-column: 2; justify-content: flex-start; margin-top: -4px; }
.planner-task-row strong { overflow: hidden; font-size: var(--mc-text-sm); text-overflow: ellipsis; white-space: nowrap; }
.planner-task-row small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.4; }
.planner-task-check { display: grid; width: 26px; height: 26px; padding: 0; border: 1.5px solid var(--mc-line-strong); border-radius: 50%; place-items: center; color: transparent; background: var(--mc-surface); }
.planner-task-check:hover { border-color: var(--mc-teal); color: var(--mc-teal); background: rgba(199,252,224,.4); }
.planner-task-check svg { width: 14px; height: 14px; }
.planner-overdue { display: grid; gap: 0; padding: 13px 15px; border: 1px solid rgba(177,135,47,.22); border-radius: var(--mc-radius-md); background: #fffaf0; }
.planner-overdue > p { margin: 0 0 5px; color: #6d5623; font-size: var(--mc-text-xs); font-weight: 750; }
.planner-overdue .planner-task-row { border-color: rgba(177,135,47,.16); }
.planner-overdue .planner-task-row.is-overdue small { color: #77612d; }
.planner-muted-copy { margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.5; }
.planner-availability-intro { margin: -8px 0 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.5; }
.planner-availability-map { display: grid; gap: 7px; }
.planner-availability-scale { display: grid; grid-template-columns: repeat(5, 1fr); padding-left: 61px; color: var(--mc-ink-secondary); font-size: .61rem; font-weight: 730; letter-spacing: .01em; }
.planner-availability-scale span:nth-child(2), .planner-availability-scale span:nth-child(3), .planner-availability-scale span:nth-child(4) { text-align: center; }
.planner-availability-scale span:last-child { text-align: right; }
.planner-week-availability { display: grid; gap: 4px; }
.planner-week-day { display: grid; grid-template-columns: 52px minmax(0, 1fr); align-items: center; column-gap: 9px; width: 100%; min-height: 51px; padding: 7px 8px; border: 1px solid transparent; border-radius: var(--mc-radius-sm); color: var(--mc-ink); background: transparent; text-align: left; transition: border-color var(--mc-duration-standard) var(--mc-ease-standard), background var(--mc-duration-standard) var(--mc-ease-standard), transform var(--mc-duration-standard) var(--mc-ease-standard); }
.planner-week-day:hover { border-color: color-mix(in srgb, var(--mc-teal) 25%, var(--mc-line)); background: rgba(255,255,255,.48); }
.planner-week-day:focus-visible { outline: 3px solid rgba(9,64,196,.2); outline-offset: 2px; }
.planner-week-day.is-selected { border-color: color-mix(in srgb, var(--mc-teal) 52%, var(--mc-line)); background: color-mix(in srgb, var(--mc-mint) 48%, var(--mc-surface)); box-shadow: 0 6px 14px rgba(15,79,66,.07); }
.planner-week-day__label { display: grid; gap: 1px; }
.planner-week-day__label strong { font-size: var(--mc-text-xs); line-height: 1.1; }
.planner-week-day__label small { color: var(--mc-ink-secondary); font-size: .62rem; font-weight: 690; line-height: 1.2; }
.planner-availability-rail { position: relative; display: block; height: 15px; overflow: hidden; border: 1px solid color-mix(in srgb, var(--mc-teal) 12%, var(--mc-line)); border-radius: var(--mc-radius-pill); background: repeating-linear-gradient(90deg, color-mix(in srgb, var(--mc-pearl) 72%, var(--mc-surface)) 0, color-mix(in srgb, var(--mc-pearl) 72%, var(--mc-surface)) calc(25% - 1px), color-mix(in srgb, var(--mc-line) 74%, transparent) calc(25% - 1px), color-mix(in srgb, var(--mc-line) 74%, transparent) 25%); }
.planner-availability-rail__segment { position: absolute; top: 2px; bottom: 2px; left: var(--availability-start); width: max(5px, var(--availability-length)); border-radius: inherit; background: linear-gradient(90deg, var(--mc-teal), color-mix(in srgb, var(--mc-teal) 58%, var(--mc-mint))); box-shadow: 0 1px 3px rgba(15,79,66,.2); }
.planner-calendar-sync { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; width: 100%; min-height: 64px; padding: 12px 0; border: 0; border-top: 1px solid var(--mc-line); color: var(--mc-ink); background: transparent; text-align: left; }
.planner-calendar-sync > span:first-child { display: grid; gap: 3px; min-width: 0; }
.planner-calendar-sync strong { font-size: var(--mc-text-sm); }
.planner-calendar-sync small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.35; }
.planner-calendar-sync__action { color: var(--mc-teal); font-size: var(--mc-text-xs); font-weight: 780; white-space: nowrap; }
.planner-calendar-sync:not(:disabled):hover strong, .planner-calendar-sync:not(:disabled):focus-visible strong { color: var(--mc-teal); }
.planner-calendar-sync:focus-visible { outline: 3px solid rgba(9,64,196,.2); outline-offset: 2px; border-radius: var(--mc-radius-sm); }
.planner-calendar-sync:disabled { cursor: not-allowed; opacity: .78; }
.planner-calendar-sync:disabled .planner-calendar-sync__action { color: var(--mc-ink-secondary); }
.planner-sync-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 16px; align-items: center; margin: 0 0 18px; padding: 14px 16px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-md); background: color-mix(in srgb, var(--mc-mint) 38%, var(--mc-surface)); color: var(--mc-ink); }
.planner-sync-card strong { font-size: var(--mc-text-sm); }
.planner-sync-card p { grid-column: 1; margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.45; }
.planner-sync-card .mc-button { grid-column: 2; grid-row: 1 / span 2; min-height: 38px; }
.planner-sync-card.is-conflict { border-color: color-mix(in srgb, var(--mc-warning) 45%, var(--mc-line)); background: color-mix(in srgb, var(--mc-cream) 70%, var(--mc-surface)); }
@media (max-width: 620px) { .planner-sync-card { grid-template-columns: 1fr; gap: 8px; } .planner-sync-card .mc-button { grid-column: 1; grid-row: auto; justify-self: start; } }
.planner-week-day__summary { grid-column: 2; overflow: hidden; color: var(--mc-ink-secondary); font-size: .66rem; font-weight: 690; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.planner-week-day.is-selected .planner-week-day__summary { color: var(--mc-teal); font-weight: 780; }
.planner-availability-detail { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin: 2px 0 -7px; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.35; }
.planner-availability-detail strong { color: var(--mc-ink); font-size: var(--mc-text-sm); }
.planner-availability-detail span { text-align: right; }
.planner-availability-list { display: grid; }
.planner-availability-list > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 42px; padding: 7px 0; border-top: 1px solid var(--mc-line); color: var(--mc-ink); font-size: var(--mc-text-sm); font-weight: 740; }
.planner-availability-list > div:first-child { border-top: 0; }
.planner-availability-list button { min-height: 34px; padding: 7px; border: 0; border-radius: 9px; color: var(--mc-teal); background: transparent; font-size: var(--mc-text-xs); font-weight: 780; }
.planner-availability-list button:hover { background: rgba(15,79,66,.09); }
.protected-time-meter { display: grid; gap: 8px; }
.protected-time-meter__graphic { display: grid; grid-template-columns: repeat(17, minmax(0, 1fr)); gap: 3px; min-height: 17px; padding: 3px; border: 1px solid color-mix(in srgb, var(--mc-teal) 18%, var(--mc-line)); border-radius: 999px; background: color-mix(in srgb, var(--mc-mint) 22%, var(--mc-surface)); }
.protected-time-meter__slot { min-width: 0; border-radius: 999px; background: color-mix(in srgb, var(--mc-ink-secondary) 13%, transparent); transition: background .2s ease, transform .2s ease; }
.protected-time-meter__slot.is-protected { background: var(--mc-teal); }
.protected-time-meter__slot.is-protected.is-busy { background: repeating-linear-gradient(135deg, var(--mc-teal) 0 4px, color-mix(in srgb, var(--mc-blue) 65%, var(--mc-teal)) 4px 8px); }
.protected-time-meter__slot:hover { transform: scaleY(1.15); }
.protected-time-meter__labels { display: flex; justify-content: space-between; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); font-weight: 720; }
.protected-time-cta { justify-self: start; margin-top: 2px; }
.availability-presets { display: grid; gap: 9px; margin: 0; padding: 0; border: 0; }
.availability-presets legend { padding: 0; color: var(--mc-ink); font-size: var(--mc-text-sm); font-weight: 760; }
.availability-presets > div { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.availability-preset { min-height: 42px; padding: 8px 6px; border: 1px solid var(--mc-line-strong); border-radius: 12px; color: var(--mc-teal); background: var(--mc-surface); font: inherit; font-size: var(--mc-text-xs); font-weight: 760; cursor: pointer; transition: border-color .2s ease, background .2s ease, color .2s ease; }
.availability-preset:hover, .availability-preset:focus-visible { border-color: var(--mc-teal); background: color-mix(in srgb, var(--mc-mint) 52%, var(--mc-surface)); outline: 0; }
.availability-preset.is-selected { border-color: var(--mc-teal); color: var(--mc-on-accent); background: var(--mc-teal); }
.availability-protection-note { display: flex; align-items: flex-start; gap: 9px; margin: -2px 0 0; padding: 11px 12px; border: 1px solid color-mix(in srgb, var(--mc-teal) 15%, var(--mc-line)); border-radius: 12px; color: var(--mc-ink-secondary); background: color-mix(in srgb, var(--mc-mint) 24%, var(--mc-surface)); font-size: var(--mc-text-xs); line-height: 1.45; }
.availability-protection-note svg { width: 16px; height: 16px; flex: 0 0 auto; color: var(--mc-teal); }
.planner-form { gap: 16px; }
.planner-form__intro { margin: -7px 0 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.55; }
.planner-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.planner-form__note { min-height: 18px; margin: -4px 0 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.45; }
.planner-form__actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 2px; }
.planner-form__actions .mc-button { min-height: 46px; padding: 12px 15px; }
.planner-form__actions--stack { display: grid; grid-template-columns: 1fr; }
.planner-suggestions-sheet { gap: 17px; }
.planner-suggestions-heading { display: flex; align-items: center; gap: 13px; padding-right: 38px; }
.planner-suggestions-heading .tool-icon { flex: 0 0 auto; }
.planner-suggestions-heading .eyebrow { margin: 0 0 3px; }
.planner-suggestions-heading h2 { margin: 0; font-size: var(--mc-text-2xl); letter-spacing: -.05em; }
.planner-suggestion-list { display: grid; gap: 10px; }
.planner-no-fit { display: grid; gap: 15px; padding: 17px; border: 1px solid color-mix(in srgb, var(--mc-teal) 26%, var(--mc-line)); border-radius: var(--mc-radius-md); background: linear-gradient(135deg, color-mix(in srgb, var(--mc-mint) 42%, var(--mc-surface)), var(--mc-surface)); }.planner-no-fit > div:first-child { display: grid; gap: 5px; }.planner-no-fit h3 { margin: 0; color: var(--mc-ink); font-size: var(--mc-text-lg); letter-spacing: -.035em; }.planner-no-fit p { margin: 0; color: var(--mc-ink); font-size: var(--mc-text-sm); font-weight: 720; line-height: 1.4; }.planner-no-fit small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.45; }.planner-no-fit__actions { display: flex; flex-wrap: wrap; gap: 9px; }.planner-no-fit__actions .mc-button { min-height: 42px; }
.planner-suggestion { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; padding: 14px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-md); background: color-mix(in srgb, var(--mc-mint) 20%, var(--mc-surface)); }
.planner-suggestion > div:first-child { display: grid; gap: 4px; }
.planner-suggestion strong { font-size: var(--mc-text-sm); }
.planner-suggestion small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.4; }
.planner-suggestion-editor { display: none; grid-column: 1 / -1; grid-template-columns: 1fr 1fr auto; gap: 8px; padding-top: 2px; }
.planner-suggestion.is-editing .planner-suggestion-editor { display: grid; }
.planner-suggestion-editor input { min-height: 40px; min-width: 0; padding: 8px; border: 1px solid var(--mc-line-strong); border-radius: 9px; color: var(--mc-ink); background: var(--mc-surface); font: inherit; font-size: var(--mc-text-sm); }
.planner-suggestion-editor button { min-height: 40px; padding: 9px 10px; border: 0; border-radius: 9px; color: var(--mc-on-accent); background: var(--mc-blue); font-size: var(--mc-text-xs); font-weight: 780; }
.confirm-sheet { justify-items: start; }
.confirm-sheet > p:not(.eyebrow) { margin: -7px 0 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.55; }
.account-card__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.appearance-card { display: grid; gap: 10px; }.appearance-card h2 { margin: 0; font-size: var(--mc-text-xl); letter-spacing: -.045em; }.appearance-card > p:not(.eyebrow) { margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.5; }.appearance-choice { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 3px; }.appearance-choice__button { display: grid; gap: 3px; min-height: 74px; padding: 12px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-md); color: var(--mc-ink-secondary); background: var(--mc-surface); text-align: left; }.appearance-choice__button strong { color: var(--mc-ink); font-size: var(--mc-text-sm); }.appearance-choice__button small { font-size: var(--mc-text-xs); }.appearance-choice__button.is-selected { border-color: color-mix(in srgb, var(--mc-teal) 60%, var(--mc-line)); color: var(--mc-teal); background: color-mix(in srgb, var(--mc-mint) 46%, var(--mc-surface)); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--mc-teal) 22%, transparent); }

/* Dark mode is a purpose-designed night-study surface, not a color inversion. */
.theme-dark .app-sidebar { background: color-mix(in srgb, var(--mc-pearl) 78%, var(--mc-surface)); }.theme-dark .mc-nav__item:hover { background: color-mix(in srgb, var(--mc-mint) 34%, var(--mc-surface)); }.theme-dark .mc-nav__item.is-active { color: var(--mc-teal); background: color-mix(in srgb, var(--mc-mint) 70%, var(--mc-surface)); }.theme-dark .mc-hero { border-color: color-mix(in srgb, var(--mc-blue) 24%, var(--mc-surface)); background: linear-gradient(135deg, #2c447f, var(--mc-deep-blue) 72%); }.theme-dark .today-next { border-color: color-mix(in srgb, var(--mc-blue) 38%, var(--mc-surface)); background: linear-gradient(135deg, #254b91, #102253 74%); box-shadow: 0 18px 36px rgba(0,0,0,.24); }.theme-dark .today-next .mc-button--primary { color: #091914; background: #d7f8e4; }.theme-dark .today-ai-insight, .theme-dark .planner-command-strip { background: color-mix(in srgb, var(--mc-mint) 32%, var(--mc-surface)); }.theme-dark .tool-icon--blue, .theme-dark .time-choice__item.is-selected { background: color-mix(in srgb, var(--mc-blue) 17%, var(--mc-surface)); }.theme-dark .tool-icon--cream { color: #f0ce76; background: color-mix(in srgb, var(--mc-cream) 78%, var(--mc-surface)); }.theme-dark .course-tone-1 { --course-tint: color-mix(in srgb, var(--mc-blue) 18%, var(--mc-surface)); }.theme-dark .course-tone-2 { --course-accent: #efcf7b; --course-tint: color-mix(in srgb, var(--mc-cream) 58%, var(--mc-surface)); }.theme-dark .course-tone-3 { --course-accent: #a0c7ff; --course-tint: #212d3f; }.theme-dark .time-picker { box-shadow: inset 0 1px 0 rgba(255,255,255,.07); }.theme-dark .time-picker select:focus, .theme-dark .time-choice__item.is-selected { color: var(--mc-blue); }.theme-dark .focus-dial { background: conic-gradient(var(--mc-teal) var(--focus-progress), color-mix(in srgb, var(--mc-teal) 18%, transparent) 0); box-shadow: 0 16px 34px rgba(0, 0, 0, .28); }.theme-dark .focus-dial__inner { border-color: color-mix(in srgb, var(--mc-ink) 13%, transparent); box-shadow: inset 0 0 0 7px rgba(255,255,255,.025); }.theme-dark .focus-timer-card.is-break .focus-dial { background: conic-gradient(var(--mc-blue) var(--focus-progress), color-mix(in srgb, var(--mc-blue) 18%, transparent) 0); }.theme-dark .focus-timer-card.is-break .focus-dial__inner { background: color-mix(in srgb, var(--mc-surface) 84%, #18244a); }.theme-dark .ai-message--assistant { background: color-mix(in srgb, var(--mc-pearl) 74%, var(--mc-surface)); }.theme-dark .planner-timeline-row--availability { background: linear-gradient(90deg, color-mix(in srgb, var(--mc-mint) 33%, transparent), transparent); }.theme-dark .planner-week-day:hover { background: color-mix(in srgb, var(--mc-surface) 82%, var(--mc-mint)); }.theme-dark .planner-overdue { background: color-mix(in srgb, var(--mc-warning-surface) 78%, var(--mc-surface)); }.theme-dark .planner-overdue > p { color: var(--mc-warning); }.theme-dark .home-error, .theme-dark .onboarding-status { color: var(--mc-danger) !important; background: color-mix(in srgb, var(--mc-danger-surface) 82%, var(--mc-surface)); }.theme-dark .mfa-qr { background: #fff; }

@media (max-width: 900px) { .planner-command-strip { align-items: flex-start; flex-direction: column; } .planner-command-strip__actions { justify-content: flex-start; } .planner-workspace { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
  .planner-page-header { align-items: flex-start; gap: 13px; }
  .planner-date-nav { width: 100%; flex-wrap: wrap; }
  .planner-date-picker { flex: 1 1 150px; }
  .planner-date-picker input { width: 100%; }
  .planner-hero__actions { display: grid; grid-template-columns: 1fr; }
  .planner-hero__actions .mc-button { width: 100%; }
  .planner-command-strip { gap: 14px; padding: 16px; }
  .planner-command-strip__actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .planner-command-strip__actions .mc-button:last-child { grid-column: 1 / -1; }
  .planner-command-strip__actions .mc-button { width: 100%; }
  .planner-timeline-row { grid-template-columns: 50px 12px minmax(0, 1fr); gap: 9px; min-height: 82px; padding-inline: 4px; }
  .planner-timeline-row .planner-row-actions { grid-column: 3; justify-content: flex-start; }
  .planner-timeline-row strong, .planner-task-row strong { white-space: normal; }
  .planner-availability-scale { padding-left: 55px; font-size: .56rem; }
  .planner-week-day { grid-template-columns: 46px minmax(0, 1fr); column-gap: 8px; }
  .planner-week-day__summary { font-size: .62rem; }
  .planner-availability-detail { align-items: flex-start; flex-direction: column; gap: 2px; }
  .planner-availability-detail span { text-align: left; }
  .planner-form__grid { grid-template-columns: 1fr; }
  .planner-form__actions { display: grid; grid-template-columns: 1fr 1fr; }
  .planner-form__actions .mc-button { width: 100%; }
  .planner-suggestion { grid-template-columns: 1fr; }
  .planner-suggestion .planner-row-actions { justify-content: flex-start; }
  .planner-suggestion-editor { grid-template-columns: 1fr 1fr; }
  .planner-suggestion-editor button { grid-column: 1 / -1; }
  .availability-presets > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .protected-time-cta { width: 100%; justify-content: center; }
  .planner-add-task span, .planner-actions .mc-button span { display: inline; }
  .calendar-connection-row { grid-template-columns: 1fr; gap: 10px; align-items: start; }
  .calendar-connection-row .mc-button { width: 100%; }
  .calendar-connection-actions { width: 100%; justify-content: stretch; }
  .calendar-connection-actions .mc-button { flex: 1 1 100%; }
  .calendar-device-badge { justify-self: start; }
}

/* Account setup keeps identity and security actions clear without adding clutter. */
.account-sheet > section { display: grid; gap: 14px; }
.google-button[data-provider="google"] > svg { display: none; }
.google-button[data-provider="google"]::before { content: ""; display: block; width: 34px; height: 34px; flex: 0 0 34px; background: url("/google-g-mark-v1.svg") center / contain no-repeat; }
.account-sheet__links { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.account-form { display: grid; gap: 13px; }
.account-form .mc-button--primary { width: 100%; margin-top: 2px; }
.account-form .mc-button--text { justify-self: start; padding-left: 0; }
.profile-form { gap: 15px; }
.security-option { display: grid; grid-template-columns: minmax(0, 1fr) minmax(160px, .7fr); align-items: center; gap: 14px; width: 100%; padding: 15px 0; border-top: 1px solid var(--mc-line); }
.security-option > div { display: grid; gap: 4px; }
.security-option strong { color: var(--mc-ink); font-size: var(--mc-text-sm); }
.security-option small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.4; }
.security-option .mc-button { width: 100%; }
.security-option .mc-button--text { grid-column: 2; margin-top: -8px; }
@media (max-width: 640px) { .account-sheet__links { align-items: flex-start; flex-direction: column; }.security-option { grid-template-columns: 1fr; }.security-option .mc-button--text { grid-column: auto; margin-top: -8px; } }

/* MindCoda public landing: a calm product welcome, not an invite-only gate. */
.marketing-page { position: relative; overflow: clip; background: radial-gradient(circle at 82% 12%, rgba(160, 246, 215, .36), transparent 29%), linear-gradient(145deg, #f5fcf8 0%, var(--mc-pearl) 56%, #fff 100%); }
.welcome-phase { background: radial-gradient(circle at 50% 38%, rgba(163, 244, 216, .42), transparent 34%), linear-gradient(150deg, #eefbf5 0%, var(--mc-pearl) 68%, #fff 100%); }
.welcome-phase__emblem { display: grid; width: 72px; height: 72px; padding: 8px; border: 0; border-radius: 24px; place-items: center; background: transparent; box-shadow: none; }
.welcome-phase__emblem img { width: 100%; height: 100%; border-radius: 17px; object-fit: cover; }
.welcome-phase__copy { gap: 16px; }
.welcome-phase__copy h2 { font-size: clamp(3rem, 7vw, 5.6rem); }
.marketing-landing { display: grid; grid-template-columns: minmax(0, 1.06fr) minmax(360px, .8fr); align-items: center; column-gap: clamp(36px, 7vw, 112px); row-gap: 32px; min-height: calc(100dvh - 187px); padding: clamp(34px, 4vw, 62px) 0 clamp(52px, 7vw, 92px); }
.marketing-hero--landing { max-width: 680px; padding: 0; }
.marketing-hero--landing h1 { margin: 14px 0 21px; font-size: clamp(4rem, 7.35vw, 7.05rem); }
.marketing-hero--landing > p:not(.eyebrow):not(.marketing-note) { max-width: 560px; font-size: clamp(1.06rem, 1.45vw, 1.22rem); }
.marketing-actions { gap: 12px; margin-top: 30px; }
.marketing-cta { display: inline-flex; align-items: center; gap: 10px; min-height: 53px; padding-inline: 21px; box-shadow: 0 13px 28px rgba(9, 64, 196, .22); }
.marketing-cta svg { width: 18px; height: 18px; }
.marketing-note { margin-top: 14px; }
.marketing-motion { position: relative; display: grid; gap: 26px; min-width: 0; padding: clamp(24px, 3vw, 35px); border: 1px solid rgba(9, 64, 196, .17); border-radius: 33px; background: linear-gradient(145deg, rgba(255,255,255,.88), rgba(236,250,244,.74)); box-shadow: 0 28px 65px rgba(5, 21, 92, .12), inset 0 1px rgba(255,255,255,.85); backdrop-filter: blur(20px); animation: landing-rise .75s .16s cubic-bezier(.2,.75,.25,1) both; }
.marketing-motion::before { position: absolute; z-index: 0; width: 200px; height: 200px; border-radius: 50%; background: rgba(162, 246, 214, .42); content: ""; filter: blur(8px); inset: 18% auto auto -13%; }
.marketing-motion > * { position: relative; z-index: 1; }
.marketing-motion__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.marketing-motion__top .eyebrow { margin: 0; }
.marketing-motion__pulse { width: 11px; height: 11px; border-radius: 50%; background: var(--mc-teal); box-shadow: 0 0 0 7px rgba(15, 79, 66, .1); animation: landing-pulse 2.2s ease-in-out infinite; }
.motion-orbit { position: relative; display: grid; min-height: 300px; place-items: center; isolation: isolate; }
.motion-orbit::before, .motion-orbit::after { position: absolute; border: 1px solid rgba(9, 64, 196, .15); border-radius: 50%; content: ""; }
.motion-orbit::before { width: min(100%, 274px); aspect-ratio: 1; }
.motion-orbit::after { width: min(74%, 204px); aspect-ratio: 1; border-color: rgba(15, 79, 66, .15); }
.motion-timer { z-index: 2; display: grid; width: 178px; aspect-ratio: 1; padding: 21px; border: 8px solid rgba(9, 64, 196, .11); border-top-color: var(--mc-blue); border-radius: 50%; place-items: center; color: var(--mc-ink); background: rgba(255,255,255,.78); box-shadow: 0 17px 34px rgba(5, 21, 92, .14); text-align: center; animation: landing-float 4.4s ease-in-out infinite; }
.motion-timer__icon { display: grid; width: 30px; height: 30px; margin-bottom: -9px; border-radius: 10px; place-items: center; color: var(--mc-blue); background: rgba(9, 64, 196, .09); }
.motion-timer__icon svg { width: 16px; height: 16px; }
.motion-timer small, .motion-preview small { color: var(--mc-ink-secondary); font-size: .62rem; font-weight: 840; letter-spacing: .12em; }
.motion-timer strong { margin: -7px 0; color: var(--mc-ink); font-size: 2.5rem; letter-spacing: -.08em; line-height: 1; }
.motion-timer > span:last-child { color: var(--mc-teal); font-size: .68rem; font-weight: 750; }
.motion-orbit__tag { position: absolute; z-index: 3; padding: 8px 10px; border: 1px solid rgba(9, 64, 196, .13); border-radius: var(--mc-radius-pill); color: var(--mc-ink-secondary); background: rgba(255,255,255,.77); box-shadow: 0 9px 18px rgba(5,21,92,.07); font-size: .63rem; font-weight: 840; letter-spacing: .11em; }
.motion-orbit__tag--plan { top: 15px; left: 12%; color: var(--mc-blue); }.motion-orbit__tag--learn { top: 30%; right: 0; color: var(--mc-teal); }.motion-orbit__tag--focus { bottom: 16px; left: 5%; color: #7e6315; }
.motion-preview { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 13px; border: 1px solid rgba(15, 79, 66, .13); border-radius: 18px; background: rgba(255,255,255,.68); }
.motion-preview > span:nth-child(2) { display: grid; min-width: 0; gap: 3px; }.motion-preview strong { overflow: hidden; color: var(--mc-ink); font-size: var(--mc-text-sm); text-overflow: ellipsis; white-space: nowrap; }.motion-preview > svg { width: 18px; height: 18px; color: var(--mc-teal); }
.marketing-steps { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding-top: 4px; }
.marketing-steps article { display: grid; gap: 8px; padding: 18px 2px; border-top: 1px solid var(--mc-line); }.marketing-steps span { color: var(--mc-teal); font-size: .68rem; font-weight: 850; letter-spacing: .13em; }.marketing-steps h2 { margin: 0; color: var(--mc-ink); font-size: clamp(1.02rem, 1.5vw, 1.22rem); letter-spacing: -.035em; }.marketing-steps p { max-width: 275px; margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.45; }
.marketing-footer span { letter-spacing: -.015em; }
.marketing-product, .marketing-bridge { width: min(1120px, calc(100% - 48px)); margin-inline: auto; }
.marketing-product { padding: clamp(74px, 10vw, 132px) 0 clamp(54px, 8vw, 96px); }
.marketing-product__intro { display: flex; align-items: end; justify-content: space-between; gap: 42px; margin-bottom: 28px; }
.marketing-product__intro > div { max-width: 600px; }.marketing-product__intro .eyebrow { margin-bottom: 12px; }
.marketing-product__intro h2, .marketing-bridge h2 { margin: 0; color: var(--mc-ink); font-size: clamp(2.25rem, 4.7vw, 4.45rem); letter-spacing: -.07em; line-height: .98; }
.marketing-product__intro > p { max-width: 390px; margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-lg); line-height: 1.55; }
.marketing-feature-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.marketing-feature { display: grid; align-content: start; gap: 12px; min-height: 282px; padding: clamp(22px, 3vw, 31px); border: 1px solid rgba(9, 64, 196, .13); border-radius: var(--mc-radius-xl); background: rgba(255,255,255,.72); box-shadow: 0 15px 38px rgba(5,21,92,.06), inset 0 1px rgba(255,255,255,.9); backdrop-filter: blur(18px); }
.marketing-feature--wide { grid-column: 1 / -1; grid-template-columns: auto minmax(0, 1fr) minmax(180px, .42fr); align-items: start; min-height: 214px; gap: 20px; }
.marketing-feature h3 { margin: 0; color: var(--mc-ink); font-size: clamp(1.4rem, 2vw, 1.85rem); letter-spacing: -.05em; line-height: 1.06; }
.marketing-feature p:not(.eyebrow) { max-width: 560px; margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.55; }
.marketing-feature .eyebrow { margin: 0; }.marketing-feature__icon { display: grid; width: 48px; height: 48px; border-radius: 16px; place-items: center; }.marketing-feature__icon svg { width: 23px; height: 23px; }
.marketing-feature__icon--blue { color: var(--mc-blue); background: rgba(9,64,196,.1); }.marketing-feature__icon--mint { color: var(--mc-teal); background: color-mix(in srgb, var(--mc-mint) 75%, white); }.marketing-feature__icon--cream { color: #866913; background: var(--mc-cream); }.marketing-feature__icon--teal { color: white; background: var(--mc-teal); }
.marketing-feature ul { display: grid; gap: 9px; margin: 0; padding: 3px 0 0; list-style: none; color: var(--mc-ink); font-size: var(--mc-text-sm); font-weight: 750; }.marketing-feature li { display: flex; align-items: center; gap: 8px; }.marketing-feature li::before { width: 6px; height: 6px; border-radius: 50%; background: var(--mc-mint); content: ""; box-shadow: 0 0 0 4px rgba(15,79,66,.08); }
.marketing-feature--progress { grid-template-columns: auto minmax(0, 1fr) minmax(230px, .62fr); align-items: center; }.marketing-rhythm { display: grid; grid-template-columns: repeat(5, 1fr); align-items: end; gap: 7px; min-height: 102px; padding: 15px; border: 1px solid rgba(15,79,66,.12); border-radius: 20px; background: rgba(234,251,243,.65); }.marketing-rhythm span { grid-row: 2; color: var(--mc-ink-secondary); font-size: .59rem; font-weight: 800; letter-spacing: .05em; text-align: center; }.marketing-rhythm i { display: block; grid-row: 1; align-self: end; min-height: 22px; border-radius: 9px 9px 4px 4px; background: linear-gradient(180deg, var(--mc-mint), var(--mc-teal)); }.marketing-rhythm i:nth-of-type(2) { min-height: 54px; }.marketing-rhythm i:nth-of-type(3) { min-height: 36px; }.marketing-rhythm i:nth-of-type(4) { min-height: 74px; background: linear-gradient(180deg, #9fbdfd, var(--mc-blue)); }.marketing-rhythm i:nth-of-type(5) { min-height: 45px; }
.marketing-bridge { display: grid; grid-template-columns: minmax(0, .95fr) minmax(330px, .75fr); gap: clamp(36px, 7vw, 105px); align-items: center; padding: clamp(50px, 7vw, 88px); border: 1px solid rgba(9,64,196,.16); border-radius: 36px; background: linear-gradient(135deg, var(--mc-deep-blue), #083695 58%, #0d5a56); box-shadow: 0 27px 60px rgba(5,21,92,.17); }.marketing-bridge .eyebrow { color: var(--mc-mint); margin-bottom: 14px; }.marketing-bridge h2 { color: white; }.marketing-bridge h2 em { color: var(--mc-mint); font-family: var(--mc-font-serif); font-weight: 500; }.marketing-bridge__copy > p:not(.eyebrow) { max-width: 540px; margin: 19px 0 24px; color: rgba(255,255,255,.76); font-size: var(--mc-text-lg); line-height: 1.5; }.marketing-bridge .marketing-cta { color: var(--mc-ink); background: var(--mc-mint); box-shadow: none; }.marketing-bridge .marketing-cta:hover:not(:disabled) { background: #aaf4d2; }.marketing-bridge__list { display: grid; gap: 11px; }.marketing-bridge__list > div { display: grid; grid-template-columns: 33px minmax(0,1fr); column-gap: 12px; padding: 16px; border: 1px solid rgba(255,255,255,.16); border-radius: 18px; background: rgba(255,255,255,.09); }.marketing-bridge__list span { grid-row: span 2; color: var(--mc-mint); font-size: .72rem; font-weight: 850; letter-spacing: .08em; }.marketing-bridge__list strong { color: white; font-size: var(--mc-text-sm); }.marketing-bridge__list small { margin-top: 4px; color: rgba(255,255,255,.68); font-size: var(--mc-text-xs); line-height: 1.4; }
@keyframes landing-rise { from { opacity: 0; transform: translateY(14px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes landing-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
@keyframes landing-pulse { 0%, 100% { transform: scale(1); box-shadow: 0 0 0 7px rgba(15, 79, 66, .1); } 50% { transform: scale(1.08); box-shadow: 0 0 0 11px rgba(15, 79, 66, .04); } }
@media (prefers-reduced-motion: reduce) { .marketing-motion, .motion-timer, .marketing-motion__pulse { animation: none; } }
@media (max-width: 840px) { .marketing-landing { grid-template-columns: 1fr; min-height: auto; padding-top: 54px; }.marketing-hero--landing { max-width: 650px; }.marketing-motion { max-width: 620px; }.marketing-steps { grid-template-columns: 1fr; gap: 0; }.marketing-steps article { padding: 16px 0; }.marketing-steps p { max-width: 480px; }.marketing-product, .marketing-bridge { width: min(100% - 32px, 1120px); }.marketing-product__intro { display: grid; gap: 17px; }.marketing-product__intro > p { max-width: 610px; }.marketing-feature--wide, .marketing-feature--progress { grid-template-columns: auto minmax(0, 1fr); }.marketing-feature--wide ul, .marketing-rhythm { grid-column: 2; }.marketing-bridge { grid-template-columns: 1fr; gap: 32px; } }
@media (max-width: 640px) { .marketing-landing { padding-top: 36px; padding-bottom: 52px; gap: 28px; }.marketing-hero--landing h1 { font-size: clamp(3.45rem, 16vw, 4.8rem); }.marketing-actions { display: grid; grid-template-columns: 1fr; margin-top: 24px; }.marketing-actions .mc-button { width: 100%; }.marketing-motion { gap: 20px; padding: 21px; border-radius: 27px; }.motion-orbit { min-height: 255px; }.motion-timer { width: 154px; padding: 18px; }.motion-timer strong { font-size: 2.22rem; }.motion-orbit__tag--plan { left: 0; }.motion-orbit__tag--learn { right: -2px; }.motion-orbit__tag--focus { left: 1px; }.marketing-steps { display: none; }.marketing-product { padding-top: 62px; }.marketing-product__intro h2, .marketing-bridge h2 { font-size: clamp(2.4rem, 12vw, 3.65rem); }.marketing-feature-grid { grid-template-columns: 1fr; }.marketing-feature { min-height: 0; padding: 23px; border-radius: 24px; }.marketing-feature--wide, .marketing-feature--progress { grid-column: auto; grid-template-columns: 1fr; }.marketing-feature--wide ul, .marketing-rhythm { grid-column: auto; }.marketing-feature ul { padding-top: 6px; }.marketing-rhythm { min-height: 92px; }.marketing-bridge { width: calc(100% - 32px); padding: 31px 23px; border-radius: 28px; }.marketing-bridge__copy > p:not(.eyebrow) { font-size: var(--mc-text-base); }.marketing-bridge .marketing-cta { width: 100%; }.marketing-footer { margin-top: 0; } }

/* Public launch surface — a direct, app-first route with honest mobile availability. */
html { scroll-behavior: smooth; }
.marketing-nav__actions { display: flex; align-items: center; gap: 19px; }
.marketing-nav__actions > a { color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); font-weight: 760; }
.marketing-nav__actions > a:hover { color: var(--mc-teal); }
.marketing-explore { display: inline-flex; align-items: center; gap: 7px; min-height: 46px; color: var(--mc-teal); font-size: var(--mc-text-sm); font-weight: 820; }
.marketing-explore svg { width: 17px; height: 17px; transition: transform .25s ease; }
.marketing-explore:hover svg { transform: translateX(4px); }
.platform-status { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 14px; border-top: 1px solid rgba(9,64,196,.12); color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); font-weight: 730; }
.platform-status__web { display: inline-flex; align-items: center; gap: 7px; color: var(--mc-teal); }
.platform-status__web i { width: 7px; height: 7px; border-radius: 50%; background: var(--mc-teal); box-shadow: 0 0 0 4px rgba(15,79,66,.09); }
.marketing-platforms { display: grid; grid-template-columns: minmax(0, .8fr) minmax(420px, 1fr); gap: clamp(38px, 7vw, 98px); align-items: center; width: min(1120px, calc(100% - 48px)); margin: 0 auto; padding: clamp(68px, 10vw, 126px) 0; }
.marketing-platforms__copy { max-width: 540px; }
.marketing-platforms__copy .eyebrow { margin-bottom: 14px; }
.marketing-platforms h2 { margin: 0; color: var(--mc-ink); font-size: clamp(2.25rem, 4.7vw, 4.45rem); letter-spacing: -.07em; line-height: .98; }
.marketing-platforms h2 em { color: var(--mc-teal); font-family: var(--mc-font-serif); font-weight: 500; }
.marketing-platforms__copy > p:not(.eyebrow) { max-width: 490px; margin: 20px 0 25px; color: var(--mc-ink-secondary); font-size: var(--mc-text-lg); line-height: 1.55; }
.platform-grid { display: grid; gap: 11px; }
.platform-card { display: grid; grid-template-columns: 45px minmax(0, 1fr) auto; align-items: center; gap: 14px; min-height: 126px; padding: 20px; border: 1px solid rgba(9,64,196,.12); border-radius: 24px; background: rgba(255,255,255,.7); box-shadow: 0 15px 36px rgba(5,21,92,.055), inset 0 1px rgba(255,255,255,.92); backdrop-filter: blur(18px); transition: transform .25s ease, box-shadow .25s ease; }
.platform-card:hover { transform: translateY(-2px); box-shadow: 0 20px 43px rgba(5,21,92,.09), inset 0 1px rgba(255,255,255,.92); }
.platform-card--available { border-color: rgba(15,79,66,.24); background: linear-gradient(135deg, rgba(224,252,238,.76), rgba(255,255,255,.87)); }
.platform-card__icon { display: grid; width: 45px; height: 45px; border-radius: 15px; place-items: center; color: var(--mc-teal); background: color-mix(in srgb, var(--mc-mint) 70%, white); }
.platform-card__icon svg { width: 21px; height: 21px; }
.platform-card .eyebrow { margin: 0 0 5px; font-size: .61rem; }
.platform-card h3 { margin: 0; color: var(--mc-ink); font-size: var(--mc-text-lg); letter-spacing: -.04em; }
.platform-card p:not(.eyebrow) { margin: 4px 0 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.42; }
.platform-card__status { align-self: start; display: inline-flex; min-height: 28px; padding: 6px 9px; border: 1px solid var(--mc-line); border-radius: 999px; color: var(--mc-ink-secondary); background: rgba(255,255,255,.56); font-size: .64rem; font-weight: 800; white-space: nowrap; }
.platform-card--available .platform-card__status { border-color: rgba(15,79,66,.17); color: var(--mc-teal); background: rgba(255,255,255,.74); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; }.marketing-explore svg, .platform-card { transition: none; }.platform-card:hover { transform: none; } }
@media (max-width: 840px) { .marketing-platforms { grid-template-columns: 1fr; gap: 30px; }.marketing-platforms__copy { max-width: 650px; } }
@media (max-width: 640px) { .marketing-nav__actions { gap: 11px; }.marketing-nav__actions > a { display: none; }.marketing-signin { min-height: 40px; padding-inline: 12px; }.marketing-explore { justify-content: center; min-height: 42px; }.platform-status { align-items: flex-start; flex-direction: column; }.marketing-platforms { width: min(100% - 32px, 1120px); padding: 62px 0; }.marketing-platforms h2 { font-size: clamp(2.4rem, 12vw, 3.65rem); }.marketing-platforms__copy > p:not(.eyebrow) { font-size: var(--mc-text-base); }.marketing-platforms .marketing-cta { width: 100%; }.platform-card { grid-template-columns: 43px minmax(0, 1fr); min-height: 0; padding: 19px; border-radius: 21px; }.platform-card__status { grid-column: 2; justify-self: start; }.platform-card__icon { width: 43px; height: 43px; } }

/* Student Life: private campus portal and syllabus controls. */
.campus-portal-card { display: grid; align-content: start; gap: 13px; }.campus-portal-card > p { max-width: 48ch; margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.5; }.campus-portal-card__actions { display: flex; flex-wrap: wrap; gap: 9px; }.profile-campus-fields { display: grid; gap: 12px; padding: 15px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-md); background: color-mix(in srgb, var(--mc-mint) 20%, var(--mc-surface)); }.profile-campus-fields .eyebrow { margin: 0; }.profile-campus-fields .planner-form__intro { margin: -4px 0 0; }.profile-campus-fields .mc-input { display: grid; gap: 6px; }
@media (max-width: 640px) { .campus-portal-card__actions .mc-button { width: 100%; } }

.calendar-lookahead { display: grid; gap: 0; padding-top: 5px; border-top: 1px solid var(--mc-line); }.calendar-lookahead .eyebrow { margin: 10px 0 3px; }.calendar-lookahead-row { display: grid; grid-template-columns: 116px minmax(0, 1fr); gap: 12px; align-items: center; min-height: 58px; border-top: 1px solid var(--mc-line); }.calendar-lookahead-row time { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); font-weight: 760; line-height: 1.35; }.calendar-lookahead-row > div { display: grid; gap: 2px; min-width: 0; }.calendar-lookahead-row strong { overflow: hidden; font-size: var(--mc-text-sm); text-overflow: ellipsis; white-space: nowrap; }.calendar-lookahead-row small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); }
@media (max-width: 640px) { .calendar-lookahead-row { grid-template-columns: 104px minmax(0, 1fr); gap: 9px; } }

/* Focus is a dedicated, native-feeling space rather than a small shortcut. */
.focus-layout--pwa { grid-template-columns: minmax(0, 1.08fr) minmax(310px, .76fr); align-items: start; }
.focus-timer-card--glass { position: relative; min-height: 610px; overflow: hidden; isolation: isolate; border-color: rgba(9, 64, 196, .2); background: linear-gradient(145deg, rgba(6, 40, 130, .98), rgba(9, 64, 196, .96) 52%, rgba(15, 79, 66, .97)); box-shadow: 0 28px 66px rgba(5, 21, 92, .24), inset 0 1px rgba(255, 255, 255, .28); color: white; }
.focus-timer-card--glass::before, .focus-timer-card--glass::after { position: absolute; z-index: -1; border-radius: 50%; content: ""; filter: blur(2px); pointer-events: none; }
.focus-timer-card--glass::before { width: 430px; height: 430px; top: -250px; right: -110px; background: rgba(170, 255, 211, .17); }
.focus-timer-card--glass::after { width: 270px; height: 270px; bottom: -142px; left: -105px; background: rgba(255, 247, 189, .14); }
.focus-timer-card__top { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; color: rgba(255, 255, 255, .86); font-size: var(--mc-text-xs); font-weight: 820; letter-spacing: .08em; text-transform: uppercase; }
.focus-timer-card__top > span:last-child { padding: 5px 8px; border: 1px solid rgba(255, 255, 255, .2); border-radius: var(--mc-radius-pill); background: rgba(255, 255, 255, .1); letter-spacing: .04em; }
.focus-live-dot { width: 7px; height: 7px; border-radius: 50%; background: rgba(255, 255, 255, .52); box-shadow: 0 0 0 4px rgba(255, 255, 255, .08); }
.focus-live-dot.is-running { background: var(--mc-mint); box-shadow: 0 0 0 4px rgba(175, 249, 210, .17), 0 0 16px rgba(175, 249, 210, .56); }
.focus-ring { --focus-progress: 0%; display: grid; width: min(100%, 370px); aspect-ratio: 1; padding: 12px; border-radius: 50%; background: conic-gradient(from -90deg, var(--mc-mint) var(--focus-progress), rgba(255, 255, 255, .14) 0); box-shadow: 0 20px 42px rgba(0, 0, 0, .2), inset 0 0 0 1px rgba(255, 255, 255, .2); transition: background .35s linear, transform .3s ease; }
.focus-ring.is-running { box-shadow: 0 21px 47px rgba(0, 0, 0, .22), 0 0 0 8px rgba(175, 249, 210, .06), inset 0 0 0 1px rgba(255, 255, 255, .2); }
.focus-ring.is-complete { background: conic-gradient(from -90deg, #fff7bd 100%, #fff7bd 0); }
.focus-ring__inner { display: grid; align-content: center; justify-items: center; gap: 10px; min-width: 0; border: 1px solid rgba(255, 255, 255, .17); border-radius: 50%; background: radial-gradient(circle at 35% 25%, rgba(255, 255, 255, .15), rgba(1, 18, 77, .68) 64%, rgba(0, 20, 70, .83)); box-shadow: inset 0 1px rgba(255, 255, 255, .16); }
.focus-ring__inner > span { color: var(--mc-mint); font-size: var(--mc-text-xs); font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.focus-ring__inner small { color: rgba(255, 255, 255, .72); font-size: var(--mc-text-xs); font-weight: 690; }
.focus-timer-card--glass .focus-clock { color: white; font-size: clamp(4.55rem, 9vw, 7.35rem); font-weight: 700; letter-spacing: -.105em; text-shadow: 0 2px 22px rgba(0, 0, 0, .18); }
.focus-timer-copy { max-width: 34ch; margin: 0; color: rgba(255, 255, 255, .83); font-size: var(--mc-text-sm); font-weight: 620; line-height: 1.5; }
.focus-timer-card--glass .mc-button--primary { color: var(--mc-ink); background: var(--mc-mint); box-shadow: 0 10px 20px rgba(0, 0, 0, .14); }
.focus-timer-card--glass .mc-button--primary:hover:not(:disabled) { background: #b7f9d7; }
.focus-timer-card--glass .mc-button--secondary, .focus-timer-card--glass .mc-button--quiet { border-color: rgba(255, 255, 255, .24); color: white; background: rgba(255, 255, 255, .11); }
.focus-timer-card--glass .mc-button--secondary:hover:not(:disabled), .focus-timer-card--glass .mc-button--quiet:hover:not(:disabled) { background: rgba(255, 255, 255, .19); }
.focus-side-stack { display: grid; gap: 16px; }
.focus-choice-card, .focus-breathe-card, .focus-sound-card, .focus-note-card { display: grid; gap: 15px; }
.focus-choice-card h2, .focus-breathe-card h2, .focus-sound-card h2, .focus-note-card h2 { margin: 0; font-size: var(--mc-text-xl); letter-spacing: -.045em; }
.focus-presets { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.focus-preset { display: grid; justify-items: start; gap: 3px; min-height: 100px; padding: 16px; border: 1px solid var(--mc-line); border-radius: 19px; color: var(--mc-ink); background: color-mix(in srgb, var(--mc-mint) 14%, var(--mc-surface)); text-align: left; transition: border-color .18s ease, transform .18s ease, background .18s ease; }
.focus-preset:hover, .focus-preset:focus-visible { border-color: rgba(15, 79, 66, .5); transform: translateY(-1px); }
.focus-preset.is-selected { border-color: var(--mc-teal); background: linear-gradient(135deg, color-mix(in srgb, var(--mc-mint) 68%, var(--mc-surface)), var(--mc-surface)); box-shadow: inset 0 0 0 1px rgba(15, 79, 66, .1); }
.focus-preset strong { color: var(--mc-teal); font-size: 2rem; letter-spacing: -.07em; line-height: 1; }
.focus-preset span { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); font-weight: 720; line-height: 1.35; }
.focus-custom { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; padding-top: 2px; }
.focus-breathe-card { grid-template-columns: minmax(0, 1fr) auto; align-items: start; }
.focus-breathe-card > div { display: grid; gap: 7px; }.focus-breathe-card > div > p:not(.eyebrow), .focus-note-card p:not(.eyebrow) { margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.48; }
.focus-toggle { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 5px 8px 5px 5px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-pill); background: var(--mc-surface); font-size: var(--mc-text-xs); }
.focus-toggle input { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; }.focus-toggle span { position: relative; width: 35px; height: 21px; border-radius: var(--mc-radius-pill); background: #cbd7d2; transition: background .2s ease; }.focus-toggle span::after { position: absolute; top: 3px; left: 3px; width: 15px; height: 15px; border-radius: 50%; background: white; box-shadow: 0 1px 3px rgba(5,21,92,.22); content: ""; transition: transform .2s ease; }.focus-toggle input:checked + span { background: var(--mc-teal); }.focus-toggle input:checked + span::after { transform: translateX(14px); }.focus-toggle input:focus-visible + span { outline: 3px solid rgba(9,64,196,.25); outline-offset: 2px; }
.focus-breathe-card > .small-print { grid-column: 1 / -1; margin: 0; line-height: 1.45; }
.focus-sound-intro { margin: -3px 0 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.48; }
.focus-sound-controls { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; }
.focus-sound-controls .mc-input { display: grid; gap: 6px; }
.focus-sound-controls select { min-height: 42px; }
.focus-sound-controls .mc-button { min-height: 42px; }
.focus-sound-card > .focus-toggle { justify-self: start; }
.focus-sound-card > .small-print { margin: 0; line-height: 1.45; }
.focus-note-card { grid-template-columns: auto minmax(0, 1fr); align-items: start; }.focus-note-card > div { display: grid; gap: 5px; }
.focus-music-card { display: grid; gap: var(--mc-space-4); max-width: 760px; margin-top: var(--mc-space-4); background: var(--mc-surface-primary); }
.focus-music-card h2 { margin: 0; font-size: var(--mc-text-xl); }
.focus-music-card > .small-print { max-width: 70ch; margin: 0; color: var(--mc-text-secondary); line-height: 1.5; }
.focus-music-form { display: grid; grid-template-columns: minmax(150px, .6fr) minmax(0, 1.4fr) auto; align-items: end; gap: var(--mc-space-3); }
.focus-music-form .mc-input { min-width: 0; }
.focus-music-form input { width: 100%; }
.focus-music-form .mc-button, .focus-music-actions .mc-button { min-height: var(--mc-touch-target); }
.focus-music-actions { display: flex; flex-wrap: wrap; gap: var(--mc-space-2); }
.focus-music-card [data-focus-music-status] { min-height: 1.5em; }
.focus-side-stack .focus-music-card { max-width: none; min-width: 0; margin: 0; }
.focus-side-stack .focus-music-form { grid-template-columns: minmax(0, 1fr); }
.focus-side-stack .focus-music-form .mc-button { justify-self: start; }
.focus-music-preview { min-width: 0; overflow: hidden; border: 1px solid var(--mc-border-subtle); border-radius: var(--mc-radius-medium); background: var(--mc-surface-primary); }
.focus-music-preview iframe { display: block; width: 100%; min-height: 352px; border: 0; }
.focus-music-limit { font-size: var(--mc-text-xs); }
@media (min-width: 641px) and (max-width: 900px) { .focus-side-stack .focus-music-card { grid-column: 1 / -1; } }
@media (max-width: 760px) { .focus-music-form { grid-template-columns: 1fr; }.focus-music-form .mc-button, .focus-music-actions .mc-button { width: 100%; }.focus-music-actions { display: grid; } }
.profile-ai-usage-card { display: grid; align-content: start; gap: 13px; }.profile-ai-usage-card > p:not(.small-print) { margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.45; }.profile-ai-usage-card .mc-progress, .profile-ai-usage-card .small-print { margin: 0; }
@media (max-width: 900px) { .focus-layout--pwa { grid-template-columns: 1fr; }.focus-timer-card--glass { min-height: 540px; }.focus-side-stack { grid-template-columns: repeat(2, minmax(0, 1fr)); }.focus-note-card { grid-column: 1 / -1; } }
@media (max-width: 640px) { .mc-nav--mobile { grid-template-columns: repeat(5, minmax(0, 1fr)); }.mc-nav--mobile .mc-nav__item { min-height: 56px; font-size: .55rem; }.mc-nav--mobile .mc-nav__item svg { width: 18px; height: 18px; }.focus-timer-card--glass { min-height: 500px; padding: 24px 17px; }.focus-ring { width: min(100%, 305px); }.focus-timer-card--glass .focus-clock { font-size: clamp(4.1rem, 18vw, 5.3rem); }.focus-actions { display: grid; grid-template-columns: 1fr 1fr; }.focus-actions .mc-button { width: 100%; }.focus-actions .mc-button--primary { grid-column: 1 / -1; }.focus-side-stack { grid-template-columns: 1fr; }.focus-custom { grid-template-columns: 1fr; }.focus-custom .mc-button { width: 100%; }.focus-breathe-card, .focus-sound-card { grid-template-columns: 1fr; }.focus-sound-controls { grid-template-columns: 1fr; }.focus-sound-controls .mc-button { width: 100%; }.focus-toggle { justify-self: start; }.focus-note-card { grid-column: auto; }.focus-hero h2 { font-size: clamp(2rem, 10.5vw, 2.7rem); } }
@media (prefers-reduced-motion: reduce) { .focus-ring, .focus-preset, .focus-toggle span, .focus-toggle span::after { transition: none; } }
.ai-message-actions { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; padding-top: 7px; border-top: 1px solid rgba(15, 79, 66, .12); }
.ai-message-actions .mc-button { min-height: 28px; padding: 4px 7px; font-size: var(--mc-text-xs); }
@media (max-width: 640px) { .progress-stat-grid { grid-template-columns: 1fr; gap: 10px; }.progress-meter__labels { align-items: flex-start; flex-direction: column; gap: 3px; } }

/* MCBottomNav: one contained, app-like glass surface above the Home Screen inset. */
@media (max-width: 640px) {
  body { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
  .app-main { padding-top: max(23px, env(safe-area-inset-top)); padding-bottom: calc(24px + env(safe-area-inset-bottom)); }
  .mc-nav--mobile { right: 12px; bottom: max(10px, env(safe-area-inset-bottom)); left: 12px; min-height: 68px; padding: 6px; border: 1px solid var(--mc-glass-border); border-radius: 22px; background: var(--mc-glass-standard); box-shadow: 0 14px 34px rgba(5,21,92,.14); -webkit-backdrop-filter: saturate(145%) blur(var(--mc-glass-blur-standard)); backdrop-filter: saturate(145%) blur(var(--mc-glass-blur-standard)); }
  .mc-nav--mobile .mc-nav__item { min-height: 52px; border: 1px solid transparent; }
  .mc-nav--mobile .mc-nav__item.is-active { border-color: color-mix(in srgb, var(--mc-teal) 12%, transparent); background: color-mix(in srgb, var(--mc-mint) 38%, transparent); box-shadow: none; }
}
@media (prefers-reduced-transparency: reduce) {
  .app-sidebar, .mc-install-card, .account-pill, .mc-nav--mobile { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--mc-surface-elevated); }
}

/* Premium glass refinement — reserve translucent materials for hierarchy,
   controls, and moments of attention. Study content remains crisp and solid. */
.app-shell { position: relative; isolation: isolate; }
.app-shell::before { position: fixed; z-index: -1; inset: 0; background: radial-gradient(circle at 74% 0%, color-mix(in srgb, var(--mc-mint) 28%, transparent), transparent 29%), radial-gradient(circle at 24% 86%, color-mix(in srgb, var(--mc-blue) 10%, transparent), transparent 26%); content: ""; pointer-events: none; }
.app-sidebar { border-right-color: color-mix(in srgb, var(--mc-glass-border) 76%, var(--mc-line)); box-shadow: 10px 0 36px rgba(5, 21, 92, .055), inset -1px 0 0 var(--mc-glass-highlight); }
.app-sidebar .brand-icon { box-shadow: 0 10px 22px rgba(5, 21, 92, .18), inset 0 1px 0 rgba(255,255,255,.28); }
.mc-nav__item { border-color: transparent; }
.mc-nav__item:hover { border-color: color-mix(in srgb, var(--mc-teal) 13%, var(--mc-glass-border)); background: color-mix(in srgb, var(--mc-glass-standard) 70%, var(--mc-mint)); }
.mc-nav__item.is-active { box-shadow: 0 8px 20px rgba(15,79,66,.07), inset 0 1px 0 rgba(255,255,255,.58); }
.page-header { position: relative; }
.page-header::after { position: absolute; right: 0; bottom: -13px; left: 0; height: 1px; background: linear-gradient(90deg, color-mix(in srgb, var(--mc-line) 86%, transparent), transparent); content: ""; }
.mc-card { transition: border-color var(--mc-duration-standard) var(--mc-ease-standard), box-shadow var(--mc-duration-standard) var(--mc-ease-standard), transform var(--mc-duration-standard) var(--mc-ease-standard); }
.mc-card:hover { border-color: color-mix(in srgb, var(--mc-line-strong) 68%, var(--mc-glass-border)); box-shadow: 0 14px 34px rgba(5,21,92,.075), inset 0 1px 0 var(--mc-glass-highlight); }
.mc-button--primary { background: linear-gradient(135deg, color-mix(in srgb, var(--mc-blue) 88%, #fff), var(--mc-blue)); box-shadow: 0 10px 22px color-mix(in srgb, var(--mc-blue) 24%, transparent), inset 0 1px 0 rgba(255,255,255,.22); }
.mc-button--primary:active:not(:disabled), .mc-button--secondary:active:not(:disabled), .mc-button--quiet:active:not(:disabled) { transform: translateY(1px) scale(.985); }
.mc-input input, .mc-input textarea, .mc-input select, .ai-composer textarea { background: color-mix(in srgb, var(--mc-glass-subtle) 85%, var(--mc-surface)); box-shadow: inset 0 1px 0 var(--mc-glass-highlight); }
.planner-command-strip, .planner-sync-card, .today-ai-insight, .ai-context-card, .ai-prompt-card, .ai-usage-card, .ai-safety-card, .account-card, .sync-card { border-color: color-mix(in srgb, var(--mc-glass-border) 78%, var(--mc-line)); background: var(--mc-glass-standard); box-shadow: var(--mc-shadow-card), inset 0 1px 0 var(--mc-glass-highlight); -webkit-backdrop-filter: saturate(135%) blur(var(--mc-glass-blur-subtle)); backdrop-filter: saturate(135%) blur(var(--mc-glass-blur-subtle)); }
.planner-command-strip, .today-ai-insight { background: linear-gradient(135deg, color-mix(in srgb, var(--mc-glass-standard) 80%, var(--mc-mint)), var(--mc-glass-standard)); }
.ai-conversation-card { border-color: color-mix(in srgb, var(--mc-glass-border) 70%, var(--mc-line)); background: var(--mc-glass-standard); box-shadow: var(--mc-shadow-elevated), inset 0 1px 0 var(--mc-glass-highlight); -webkit-backdrop-filter: saturate(140%) blur(var(--mc-glass-blur-standard)); backdrop-filter: saturate(140%) blur(var(--mc-glass-blur-standard)); }
.ai-conversation-header { background: linear-gradient(130deg, color-mix(in srgb, var(--mc-glass-standard) 74%, var(--mc-mint)), var(--mc-glass-standard) 74%); }
.ai-message--assistant { background: color-mix(in srgb, var(--mc-glass-subtle) 80%, var(--mc-pearl)); box-shadow: inset 0 1px 0 var(--mc-glass-highlight); }
.course-detail-hero, .course-syllabus-upload, .planner-no-fit { box-shadow: var(--mc-shadow-card), inset 0 1px 0 var(--mc-glass-highlight); }
.focus-choice-card, .focus-breathe-card, .focus-sound-card, .focus-note-card { background: linear-gradient(145deg, color-mix(in srgb, var(--mc-glass-standard) 72%, var(--mc-surface)), var(--mc-surface)); }
.mc-nav--mobile { box-shadow: 0 18px 44px rgba(5,21,92,.16), inset 0 1px 0 var(--mc-glass-highlight); }
.mc-sheet::backdrop { background: rgba(5, 21, 92, .36); -webkit-backdrop-filter: blur(10px) saturate(110%); backdrop-filter: blur(10px) saturate(110%); }

.course-note-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 0; border-top: 1px solid var(--mc-line); }
.course-card__note-action { min-height: 44px; padding: 8px 12px; border: 1px solid color-mix(in srgb, var(--course-accent) 28%, var(--mc-line)); border-radius: 999px; color: var(--course-accent); background: var(--course-tint); font: inherit; font-size: var(--mc-text-xs); font-weight: 800; white-space: nowrap; cursor: pointer; }
.course-card__note-action:hover { border-color: var(--course-accent); }
.course-card__note-action:focus-visible { outline: 3px solid var(--mc-blue); outline-offset: 2px; }
.course-note-row:first-child { border-top: 0; }
.course-note-row > div { display: grid; gap: 4px; min-width: 0; }
.course-note-row__title { width: fit-content; padding: 0; border: 0; color: var(--mc-blue); background: transparent; font: inherit; font-weight: 700; text-align: left; cursor: pointer; }
.course-note-row__title:hover { text-decoration: underline; }
.course-note-row__title:focus-visible { outline: 3px solid var(--mc-blue); outline-offset: 3px; border-radius: 3px; }
.course-note-row small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); }
.course-note-row a { flex: 0 0 auto; }
.note-form { width: min(100%, 720px); }
.note-form [data-note-content] { min-height: 230px; }
.course-note-actions, .note-cloud-choice__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.course-note-actions .mc-button, .note-cloud-choice__actions .mc-button { min-height: 44px; font-size: var(--mc-text-sm); }
.course-note-actions__hint { margin: 8px 0 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.45; }
.note-cloud-choice { display: grid; gap: 10px; padding: 16px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-md); background: var(--mc-surface); }
.note-cloud-choice > span { color: var(--mc-ink); font-size: var(--mc-text-sm); font-weight: 750; }
.note-cloud-choice__browse { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.note-cloud-choice__browse a { color: var(--mc-blue); font-size: var(--mc-text-sm); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.note-cloud-choice__browse a:focus-visible { outline: 3px solid var(--mc-blue); outline-offset: 3px; border-radius: 2px; }
.note-cloud-choice small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.45; }
@media (max-width: 640px) { .course-note-row { align-items: flex-start; flex-direction: column; } .note-form [data-note-content] { min-height: 200px; } .course-note-actions { display: grid; grid-template-columns: 1fr 1fr; } .course-note-actions .mc-button:first-child { grid-column: 1 / -1; } .note-cloud-choice__actions { display: grid; grid-template-columns: 1fr; } }

@media (hover: none) { .mc-card:hover { border-color: color-mix(in srgb, var(--mc-line) 72%, var(--mc-glass-border)); box-shadow: var(--mc-shadow-card); transform: none; } }
@media (prefers-reduced-transparency: reduce) { .planner-command-strip, .planner-sync-card, .today-ai-insight, .ai-context-card, .ai-prompt-card, .ai-usage-card, .ai-safety-card, .account-card, .sync-card, .ai-conversation-card { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--mc-surface-elevated); } }
.theme-dark .app-shell::before { background: radial-gradient(circle at 72% 0%, rgba(58, 112, 206, .19), transparent 30%), radial-gradient(circle at 15% 86%, rgba(71, 101, 171, .14), transparent 28%); }
.theme-dark .mc-card { background: linear-gradient(145deg, color-mix(in srgb, var(--mc-surface) 91%, #2b457e), var(--mc-surface)); }
.theme-dark .mc-button--secondary, .theme-dark .mc-button--quiet { color: var(--mc-ink); border-color: var(--mc-line); background: color-mix(in srgb, var(--mc-glass-standard) 92%, var(--mc-surface)); }
.theme-dark .ai-message--assistant { color: var(--mc-ink); background: color-mix(in srgb, var(--mc-glass-subtle) 82%, var(--mc-surface)); }

/* A manual Home Screen path is always available, including on iPhone where
   beforeinstallprompt does not exist. Keep this quieter than the main CTA. */
.marketing-install-link { display: inline-flex; align-items: center; min-height: 44px; margin-top: 8px; padding: 8px 0; border: 0; color: var(--mc-blue); background: transparent; font: inherit; font-size: var(--mc-text-sm); font-weight: 760; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.marketing-install-link:hover { color: var(--mc-teal); }
.mc-install-dialog { width: min(calc(100% - 32px), 440px); max-height: min(90dvh, 720px); padding: 0; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-lg); color: var(--mc-ink); background: var(--mc-surface-elevated); box-shadow: var(--mc-shadow-elevated); overflow: auto; }
.mc-install-dialog::backdrop { background: rgba(5, 21, 47, .52); }
.mc-install-dialog__content { position: relative; display: grid; gap: 14px; padding: 30px; }
.mc-install-dialog__content > img { border-radius: 12px; }
.mc-install-dialog__content .eyebrow { margin: 0; }
.mc-install-dialog__content h2 { margin: 0; font-size: clamp(1.6rem, 5vw, 2rem); line-height: 1.12; }
.mc-install-dialog__intro, .mc-install-dialog__note { margin: 0; color: var(--mc-ink-secondary); line-height: 1.5; }
.mc-install-dialog__steps { display: grid; gap: 10px; margin: 2px 0; padding-left: 24px; line-height: 1.45; }
.mc-install-dialog__steps li { padding-left: 4px; }
.mc-install-dialog__steps li::marker { color: var(--mc-blue); font-weight: 800; }
.mc-install-dialog__note { font-size: var(--mc-text-sm); }
.mc-install-dialog__close { position: absolute; top: 18px; right: 18px; display: grid; width: 44px; height: 44px; padding: 0; place-items: center; border: 1px solid var(--mc-line); border-radius: 50%; color: var(--mc-ink); background: var(--mc-surface); font: inherit; font-size: 1.6rem; cursor: pointer; }
.mc-install-dialog__prompt { width: fit-content; min-height: 44px; }
.marketing-install-link:focus-visible, .mc-install-dialog button:focus-visible { outline: 3px solid var(--mc-blue); outline-offset: 3px; }
@media (max-width: 640px) { .mc-install-dialog { width: 100%; max-height: min(88dvh, 720px); margin: auto 0 0; border-radius: 24px 24px 0 0; }.mc-install-dialog__content { padding: 24px 22px max(28px, env(safe-area-inset-bottom)); } }
@media (prefers-reduced-transparency: reduce) { .mc-install-dialog { background: var(--mc-surface); } }
.mc-home-install { display: none; }
@media (max-width: 640px) {
  .mc-home-install:not([hidden]) { display: grid; grid-template-columns: 40px minmax(0, 1fr) 44px; align-items: center; gap: 10px 12px; margin: 0 0 var(--mc-space-4); padding: 13px; border: 1px solid var(--mc-line-strong); border-radius: var(--mc-radius-md); color: var(--mc-ink); background: var(--mc-surface-elevated); box-shadow: var(--mc-shadow-subtle); }
  .mc-home-install > img { width: 40px; height: 40px; border-radius: 11px; }
  .mc-home-install > div { display: grid; gap: 3px; min-width: 0; }
  .mc-home-install strong { font-size: var(--mc-text-sm); }
  .mc-home-install span { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.35; }
  .mc-home-install [data-home-install-action] { grid-column: 1 / 3; width: 100%; min-height: 44px; }
  .mc-home-install__dismiss { grid-column: 3; grid-row: 1; width: 44px; height: 44px; padding: 0; border: 0; border-radius: var(--mc-radius-pill); color: var(--mc-ink-secondary); background: transparent; font: inherit; font-size: 1.5rem; cursor: pointer; }
  .mc-home-install__dismiss:focus-visible { outline: 3px solid var(--mc-blue); outline-offset: 2px; }
}

/* AI Tutor flagship refinement. The workspace stays calm and readable: the
   conversation gets the visual priority, while context and study moves remain
   quiet, tactile controls rather than a field of competing cards. */
.ai-tutor-status:not(:empty) {
  width: fit-content;
  max-width: min(100%, 640px);
  margin: -4px 0 0;
  padding: 9px 12px;
  border: 1px solid color-mix(in srgb, var(--mc-warning) 24%, var(--mc-line));
  border-radius: var(--mc-radius-pill);
  color: var(--mc-ink-secondary);
  background: color-mix(in srgb, var(--mc-warning-surface) 62%, var(--mc-glass-standard));
  box-shadow: inset 0 1px 0 var(--mc-glass-highlight);
}
.ai-tutor-layout { gap: clamp(18px, 2vw, 28px); }
.ai-tutor-sidebar { gap: 14px; }
.ai-context-card--premium,
.ai-prompt-card--premium,
.ai-history-card {
  border-color: color-mix(in srgb, var(--mc-glass-border) 64%, var(--mc-line));
  border-radius: calc(var(--mc-radius-lg) - 2px);
  box-shadow: 0 10px 24px rgba(5, 21, 92, .045), inset 0 1px 0 var(--mc-glass-highlight);
}
.ai-context-card--premium {
  background: linear-gradient(145deg, color-mix(in srgb, var(--mc-ai-surface-soft) 74%, var(--mc-glass-standard)), var(--mc-ai-surface));
}
.ai-prompt-card--premium,
.ai-history-card { background: color-mix(in srgb, var(--mc-ai-surface) 88%, var(--mc-glass-subtle)); }
.ai-context-card--premium .section-heading,
.ai-prompt-card--premium .section-heading { gap: 16px; }
.ai-context-card--premium h2,
.ai-prompt-card--premium h2,
.ai-history-card h2 { letter-spacing: -.045em; }
.ai-card-intro { max-width: 31ch; color: var(--mc-text-secondary); }
.ai-context-card--premium .mc-input { gap: 6px; }
.ai-context-card--premium .mc-input input,
.ai-context-card--premium .mc-input select {
  border-color: color-mix(in srgb, var(--mc-line-strong) 72%, var(--mc-glass-border));
  background: color-mix(in srgb, var(--mc-surface) 72%, var(--mc-glass-subtle));
}
.ai-prompt-list { gap: 7px; }
.ai-prompt-list button {
  min-height: 43px;
  padding: 8px 9px;
  border-color: color-mix(in srgb, var(--mc-teal) 11%, var(--mc-line));
  border-radius: 13px;
  background: color-mix(in srgb, var(--mc-ai-surface-soft) 48%, var(--mc-surface));
  font-size: .73rem;
  letter-spacing: -.01em;
}
.ai-prompt-list button:hover,
.ai-prompt-list button:focus-visible {
  border-color: color-mix(in srgb, var(--mc-teal) 42%, var(--mc-line));
  background: color-mix(in srgb, var(--mc-mint) 44%, var(--mc-surface));
  box-shadow: 0 7px 17px rgba(15, 79, 66, .08);
}
.ai-history-item { border: 1px solid transparent; border-radius: 12px; }
.ai-history-item:hover,
.ai-history-item.is-active { border-color: color-mix(in srgb, var(--mc-teal) 12%, var(--mc-line)); background: color-mix(in srgb, var(--mc-mint) 32%, var(--mc-surface)); }
.ai-conversation-card {
  border-color: color-mix(in srgb, var(--mc-glass-border) 70%, var(--mc-line));
  border-radius: calc(var(--mc-radius-xl) - 2px);
  background: var(--mc-ai-surface);
  box-shadow: 0 20px 44px rgba(5, 21, 92, .095), inset 0 1px 0 var(--mc-glass-highlight);
}
.ai-conversation-header {
  padding: 27px 30px 21px;
  border-bottom-color: color-mix(in srgb, var(--mc-line) 70%, var(--mc-glass-border));
  background: linear-gradient(128deg, color-mix(in srgb, var(--mc-glass-standard) 78%, var(--mc-mint)), var(--mc-ai-surface) 66%);
}
.ai-conversation-header h2 { font-size: clamp(1.45rem, 2.4vw, 2.05rem); letter-spacing: -.06em; }
.ai-conversation-header > div > p:last-child { max-width: 42ch; }
.ai-new-conversation {
  min-height: 40px;
  border-color: color-mix(in srgb, var(--mc-blue) 16%, var(--mc-glass-border));
  background: color-mix(in srgb, var(--mc-glass-standard) 88%, var(--mc-surface));
  box-shadow: inset 0 1px 0 var(--mc-glass-highlight), 0 5px 13px rgba(5, 21, 92, .04);
}
.ai-conversation-header .ai-orb {
  width: 42px;
  height: 42px;
  border-color: color-mix(in srgb, var(--mc-teal) 14%, var(--mc-glass-border));
  background: color-mix(in srgb, var(--mc-mint) 52%, var(--mc-surface));
  box-shadow: inset 0 1px 0 var(--mc-glass-highlight), 0 7px 16px rgba(15, 79, 66, .08);
}
.ai-message-list {
  padding: 28px 30px;
  background: radial-gradient(circle at 12% 10%, color-mix(in srgb, var(--mc-mint) 19%, transparent), transparent 31%);
}
.ai-message {
  padding: 13px 15px;
  border-radius: 17px;
  box-shadow: 0 7px 18px rgba(5, 21, 92, .035);
}
.ai-message small { letter-spacing: .01em; }
.ai-message--student { background: linear-gradient(145deg, color-mix(in srgb, var(--mc-ai-message-user) 82%, var(--mc-deep-blue)), var(--mc-ai-message-user)); }
.ai-message--assistant {
  border-color: color-mix(in srgb, var(--mc-line) 74%, var(--mc-glass-border));
  background: var(--mc-ai-message-assistant);
  box-shadow: inset 0 1px 0 var(--mc-glass-highlight), 0 7px 18px rgba(5, 21, 92, .035);
}
.ai-message--assistant small { color: var(--mc-teal); }
.ai-message.is-pending { transform: translateY(1px); }
.ai-typing {
  min-width: 144px;
  color: var(--mc-ink-secondary);
  border-color: transparent;
  background: linear-gradient(105deg, var(--mc-ai-stream) 0%, color-mix(in srgb, var(--mc-ai-stream) 70%, var(--mc-surface)) 44%, var(--mc-ai-stream) 82%);
  background-size: 200% 100%;
  animation: ai-stream-sheen 1.6s var(--mc-ease-standard) infinite;
}
@keyframes ai-stream-sheen { from { background-position: 100% 0; } to { background-position: -100% 0; } }
.ai-empty-conversation {
  border-style: solid;
  border-color: color-mix(in srgb, var(--mc-teal) 13%, var(--mc-glass-border));
  background: linear-gradient(145deg, color-mix(in srgb, var(--mc-ai-surface-soft) 48%, transparent), transparent);
  box-shadow: inset 0 1px 0 var(--mc-glass-highlight);
}
.ai-verify-note { border-top-color: color-mix(in srgb, var(--mc-line) 70%, var(--mc-glass-border)); color: var(--mc-text-muted); }
.ai-composer {
  margin: 0 18px 18px;
  padding: 12px;
  border: 1px solid color-mix(in srgb, var(--mc-line-strong) 68%, var(--mc-glass-border));
  border-radius: calc(var(--mc-radius-lg) - 2px);
  background: color-mix(in srgb, var(--mc-glass-standard) 80%, var(--mc-surface));
  box-shadow: 0 10px 24px rgba(5, 21, 92, .05), inset 0 1px 0 var(--mc-glass-highlight);
}
.ai-composer textarea {
  min-height: 84px;
  padding: 11px 12px;
  border-color: transparent;
  border-radius: 14px;
  background: transparent;
  box-shadow: none;
}
.ai-composer textarea:focus { border-color: color-mix(in srgb, var(--mc-blue) 42%, transparent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--mc-blue) 16%, transparent); }
.ai-composer__bottom { padding: 0 2px 1px; }
.ai-composer__bottom .mc-button { min-height: 44px; padding-inline: 16px; border-radius: 14px; }
.ai-message-actions { border-top-color: color-mix(in srgb, var(--mc-teal) 10%, var(--mc-line)); }
.ai-message-actions .mc-button { color: var(--mc-teal); }

/* AI Tutor learning states stay compact: the student keeps their place in the
   conversation while MindCoda works, instead of seeing a blocking overlay. */
.ai-tutor-status:not([hidden]) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 2px;
  padding: 10px 13px;
  border: 1px solid color-mix(in srgb, var(--mc-glass-border) 72%, var(--mc-line));
  border-radius: var(--mc-radius-md);
  color: var(--mc-ink-secondary);
  background: color-mix(in srgb, var(--mc-glass-subtle) 82%, var(--mc-surface));
  box-shadow: inset 0 1px 0 var(--mc-glass-highlight);
}
.ai-tutor-status[data-state="processing"] { color: var(--mc-teal); }
.ai-tutor-status[data-state="offline"],
.ai-tutor-status[data-state="unavailable"] { border-color: color-mix(in srgb, var(--mc-warning) 28%, var(--mc-line)); background: color-mix(in srgb, var(--mc-warning-surface) 62%, var(--mc-surface)); }
.ai-tutor-status[data-state="error"] { border-color: color-mix(in srgb, var(--mc-danger) 28%, var(--mc-line)); background: color-mix(in srgb, var(--mc-danger-surface) 58%, var(--mc-surface)); }
.ai-tutor-status[data-state="limit"] { border-color: color-mix(in srgb, var(--mc-blue) 22%, var(--mc-line)); background: color-mix(in srgb, var(--mc-blue) 7%, var(--mc-surface)); }
.ai-status-retry { flex: 0 0 auto; min-height: 34px; padding: 5px 8px; color: var(--mc-blue); }
.ai-learning-context { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.ai-context-badge { max-width: 100%; overflow: hidden; padding: 5px 8px; border: 1px solid color-mix(in srgb, var(--mc-teal) 16%, var(--mc-glass-border)); border-radius: var(--mc-radius-pill); color: var(--mc-teal); background: color-mix(in srgb, var(--mc-mint) 35%, var(--mc-surface)); font-size: var(--mc-text-xs); font-weight: 750; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.ai-context-badge--topic { color: var(--mc-ink-secondary); border-color: color-mix(in srgb, var(--mc-line) 76%, var(--mc-glass-border)); background: color-mix(in srgb, var(--mc-surface) 86%, var(--mc-pearl)); }
.ai-context-badge--deadline { color: var(--mc-blue); border-color: color-mix(in srgb, var(--mc-blue) 18%, var(--mc-glass-border)); background: color-mix(in srgb, var(--mc-blue) 7%, var(--mc-surface)); }
.ai-message__content { display: grid; gap: 10px; min-width: 0; }
.ai-message__content p { overflow-wrap: anywhere; }
.ai-answer-section { display: grid; gap: 4px; padding-top: 10px; border-top: 1px solid color-mix(in srgb, var(--mc-line) 76%, transparent); }
.ai-answer-section:first-child { padding-top: 0; border-top: 0; }
.ai-answer-section strong { color: var(--mc-teal); font-size: var(--mc-text-xs); font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.ai-message--student .ai-answer-section strong { color: currentColor; }
.ai-processing-copy { display: flex; align-items: center; gap: 9px; }
.ai-processing-indicator { display: inline-flex; width: 17px; height: 17px; flex: 0 0 auto; border: 2px solid color-mix(in srgb, var(--mc-teal) 20%, transparent); border-top-color: var(--mc-teal); border-radius: 50%; animation: ai-processing-spin .85s linear infinite; }
.ai-typing { min-width: min(236px, 88%); }
.ai-typing .ai-processing-copy p { color: inherit; }
@keyframes ai-processing-spin { to { transform: rotate(1turn); } }

.theme-dark .ai-tutor-status:not(:empty) { border-color: color-mix(in srgb, var(--mc-warning) 28%, var(--mc-line)); background: color-mix(in srgb, var(--mc-warning-surface) 65%, var(--mc-surface)); }
.theme-dark .ai-context-card--premium,
.theme-dark .ai-prompt-card--premium,
.theme-dark .ai-history-card { border-color: color-mix(in srgb, var(--mc-glass-border) 80%, var(--mc-line)); background: color-mix(in srgb, var(--mc-ai-surface) 92%, var(--mc-surface)); }
.theme-dark .ai-context-card--premium { background: linear-gradient(145deg, color-mix(in srgb, var(--mc-mint) 45%, var(--mc-surface)), var(--mc-ai-surface)); }
.theme-dark .ai-prompt-list button { color: var(--mc-ink); border-color: color-mix(in srgb, var(--mc-teal) 18%, var(--mc-line)); background: color-mix(in srgb, var(--mc-mint) 31%, var(--mc-surface)); }
.theme-dark .ai-prompt-list button:hover,
.theme-dark .ai-prompt-list button:focus-visible { background: color-mix(in srgb, var(--mc-mint) 53%, var(--mc-surface)); }
.theme-dark .ai-conversation-card { border-color: color-mix(in srgb, var(--mc-glass-border) 85%, var(--mc-line)); background: var(--mc-ai-surface); box-shadow: 0 22px 48px rgba(0, 0, 0, .28), inset 0 1px 0 var(--mc-glass-highlight); }
.theme-dark .ai-conversation-header { background: linear-gradient(128deg, color-mix(in srgb, var(--mc-mint) 34%, var(--mc-ai-surface)), var(--mc-ai-surface) 68%); }
.theme-dark .ai-message-list { background: radial-gradient(circle at 12% 10%, rgba(92, 140, 224, .11), transparent 31%); }
.theme-dark .ai-message--student { color: #0b2046; background: linear-gradient(145deg, #d3e0ff, var(--mc-ai-message-user)); }
.theme-dark .ai-message--student small { color: rgba(11, 32, 70, .72); }
.theme-dark .ai-message--assistant { color: var(--mc-ink); border-color: color-mix(in srgb, var(--mc-glass-border) 75%, var(--mc-line)); background: var(--mc-ai-message-assistant); }
.theme-dark .ai-composer { border-color: color-mix(in srgb, var(--mc-glass-border) 76%, var(--mc-line)); background: color-mix(in srgb, var(--mc-ai-surface) 87%, var(--mc-surface)); }
.theme-dark .ai-composer textarea { color: var(--mc-ink); }
.theme-dark .ai-tutor-status:not([hidden]) { color: var(--mc-ink-secondary); border-color: color-mix(in srgb, var(--mc-glass-border) 72%, var(--mc-line)); background: color-mix(in srgb, var(--mc-ai-surface) 88%, var(--mc-surface)); }
.theme-dark .ai-tutor-status[data-state="error"] { background: color-mix(in srgb, var(--mc-danger-surface) 60%, var(--mc-surface)); }
.theme-dark .ai-context-badge--topic { color: var(--mc-ink-secondary); background: color-mix(in srgb, var(--mc-ai-surface) 82%, var(--mc-surface)); }
.theme-dark .ai-answer-section { border-top-color: color-mix(in srgb, var(--mc-glass-border) 45%, var(--mc-line)); }

@media (max-width: 700px) {
  .ai-tutor-layout { gap: 14px; }
  .ai-conversation-card { border-radius: var(--mc-radius-lg); }
  .ai-conversation-header { padding: 22px 20px 17px; }
  .ai-message-list { padding: 20px; }
  .ai-composer { margin: 0 12px 12px; }
  .ai-verify-note { margin-inline: 20px; }
  .ai-tutor-status:not([hidden]) { align-items: flex-start; padding: 10px 12px; }
  .ai-status-retry { margin-top: -2px; }
  .ai-learning-context { margin-top: 10px; }
  .ai-message__content { gap: 9px; }
}
@media (prefers-reduced-motion: reduce) { .ai-typing, .ai-processing-indicator { animation: none; } }
@media (prefers-reduced-transparency: reduce) {
  .ai-context-card--premium,
  .ai-prompt-card--premium,
  .ai-history-card,
  .ai-conversation-card,
  .ai-composer { background: var(--mc-surface-elevated); -webkit-backdrop-filter: none; backdrop-filter: none; }
}

/* First visit: one calm, useful route into an otherwise empty study space. */
.welcome-study-guide { display: grid; grid-template-columns: minmax(190px, .7fr) minmax(0, 1.3fr); gap: clamp(20px, 4vw, 38px); align-items: center; padding: clamp(22px, 4vw, 34px); border-radius: var(--mc-radius-xl); }
.welcome-study-guide__intro { display: grid; gap: 9px; }
.welcome-study-guide__intro h2 { margin: 0; color: var(--mc-ink); font-size: clamp(1.7rem, 3vw, 2.35rem); letter-spacing: -.055em; line-height: 1; }
.welcome-study-guide__intro p:not(.eyebrow) { max-width: 30ch; margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.52; }
.welcome-study-guide__steps { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.welcome-study-guide__steps li { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 68px; padding: 10px 10px 10px 12px; border: 1px solid color-mix(in srgb, var(--mc-line) 86%, transparent); border-radius: var(--mc-radius-lg); background: color-mix(in srgb, var(--mc-surface) 72%, transparent); }
.welcome-study-guide__steps li > div { display: grid; gap: 2px; min-width: 0; }
.welcome-study-guide__steps strong { color: var(--mc-ink); font-size: var(--mc-text-sm); }
.welcome-study-guide__steps small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); line-height: 1.35; }
.welcome-study-guide__number { display: grid; width: 28px; height: 28px; border-radius: 50%; place-items: center; color: var(--mc-deep-blue); background: color-mix(in srgb, var(--mc-mint) 76%, var(--mc-surface)); font-size: var(--mc-text-xs); font-weight: 850; }
.welcome-study-guide__steps .mc-button { min-height: 42px; padding-inline: 14px; white-space: nowrap; }
.theme-dark .welcome-study-guide__steps li { border-color: color-mix(in srgb, var(--mc-line) 74%, transparent); background: color-mix(in srgb, var(--mc-surface) 78%, transparent); }
.theme-dark .welcome-study-guide__number { color: #d9ffea; background: color-mix(in srgb, var(--mc-teal) 54%, var(--mc-surface)); }
@media (max-width: 920px) { .welcome-study-guide { grid-template-columns: 1fr; gap: 18px; } .welcome-study-guide__intro p:not(.eyebrow) { max-width: 52ch; } }
@media (max-width: 640px) { .welcome-study-guide { gap: 17px; padding: 21px 18px; border-radius: 23px; } .welcome-study-guide__intro h2 { font-size: clamp(1.8rem, 9vw, 2.3rem); } .welcome-study-guide__steps { gap: 9px; } .welcome-study-guide__steps li { grid-template-columns: 27px minmax(0, 1fr); gap: 10px; min-height: 0; padding: 13px 12px; } .welcome-study-guide__steps .mc-button { grid-column: 2; width: 100%; margin-top: 2px; } }
/* The public site shares the app's appearance preference. Its light glass
   surfaces must not remain pale when the semantic text palette turns dark. */
.theme-dark .marketing-page {
  background: radial-gradient(circle at 80% 14%, rgba(43, 88, 171, .23), transparent 32%),
    linear-gradient(150deg, #0d1e43 0%, var(--mc-pearl) 62%, #09142c 100%);
}
.theme-dark .welcome-phase {
  background: radial-gradient(circle at 50% 38%, rgba(43, 88, 171, .24), transparent 36%), var(--mc-pearl);
}
.theme-dark .marketing-motion,
.theme-dark .marketing-feature,
.theme-dark .platform-card {
  border-color: var(--mc-line);
  background: color-mix(in srgb, var(--mc-surface) 94%, var(--mc-mint));
  box-shadow: var(--mc-shadow-card), inset 0 1px 0 var(--mc-glass-highlight);
}
.theme-dark .marketing-motion::before { background: rgba(69, 123, 207, .12); }
.theme-dark .motion-timer,
.theme-dark .motion-orbit__tag,
.theme-dark .motion-preview,
.theme-dark .platform-card__status {
  border-color: var(--mc-line);
  background: var(--mc-surface-elevated);
}
.theme-dark .marketing-rhythm { border-color: var(--mc-line); background: var(--mc-surface-elevated); }
.theme-dark .marketing-signin { border-color: var(--mc-line-strong); color: var(--mc-teal); background: var(--mc-surface-elevated); }
.theme-dark .marketing-signin:hover { background: color-mix(in srgb, var(--mc-mint) 42%, var(--mc-surface)); }
.theme-dark .motion-orbit__tag--focus { color: var(--mc-warning); }
.theme-dark .platform-card--available { border-color: color-mix(in srgb, var(--mc-teal) 36%, var(--mc-line)); background: color-mix(in srgb, var(--mc-mint) 30%, var(--mc-surface)); }
.theme-dark .platform-card__icon { background: color-mix(in srgb, var(--mc-mint) 60%, var(--mc-surface)); }
.theme-dark .marketing-feature__icon--mint { background: color-mix(in srgb, var(--mc-mint) 55%, var(--mc-surface)); }
.theme-dark .marketing-feature__icon--cream { color: var(--mc-warning); background: var(--mc-warning-surface); }
.theme-dark .marketing-feature__icon--teal { color: #081914; }
.theme-dark .marketing-bridge .marketing-cta { color: #081914; }

/* Public entrance: a short, self-contained scene, never a translucent veil
   left over the readable site. The hero uses the same type and green palette. */
body.is-intro-active { overflow: hidden; }
.marketing-page > :not(.welcome-phase) {
  transition: opacity .8s ease, transform .85s cubic-bezier(.2, .75, .25, 1);
}
.marketing-page.is-intro-playing > :not(.welcome-phase) {
  opacity: 0;
  transform: translateY(14px);
  pointer-events: none;
}
.welcome-phase,
.welcome-phase.is-visible { opacity: 1; transform: none; }
.welcome-phase { overflow: hidden; pointer-events: auto; transition: opacity .85s cubic-bezier(.2, .75, .25, 1); }
.welcome-phase.is-leaving { opacity: 0; transform: none; pointer-events: none; }
.welcome-phase__copy { position: relative; z-index: 1; gap: 13px; }
.welcome-phase__emblem { width: 96px; height: 96px; opacity: 0; transform: scale(.88); transition: opacity .85s ease .18s, transform 1.05s cubic-bezier(.2, .75, .25, 1) .18s; }
.welcome-phase__emblem img { border-radius: 20px; }
.welcome-phase__copy .eyebrow { margin: 7px 0 0; opacity: 0; transform: translateY(8px); transition: opacity .85s ease .62s, transform .85s ease .62s; }
.welcome-phase__copy h2 { max-width: 680px; opacity: 0; transform: translateY(17px); transition: opacity 1s ease .85s, transform 1s cubic-bezier(.2, .75, .25, 1) .85s; }
.welcome-phase__copy > p:last-child { opacity: 0; transform: translateY(9px); transition: opacity .9s ease 1.25s, transform .9s ease 1.25s; }
.welcome-phase.is-visible .welcome-phase__emblem,
.welcome-phase.is-visible .welcome-phase__copy .eyebrow,
.welcome-phase.is-visible .welcome-phase__copy h2,
.welcome-phase.is-visible .welcome-phase__copy > p:last-child { opacity: 1; transform: none; }
.welcome-phase__skip { position: absolute; z-index: 3; top: max(20px, env(safe-area-inset-top)); right: max(20px, env(safe-area-inset-right)); min-height: 44px; padding: 8px 15px; border: 1px solid var(--mc-line-strong); border-radius: var(--mc-radius-pill); color: var(--mc-ink); background: var(--mc-surface-elevated); font-size: var(--mc-text-sm); font-weight: 740; }
.welcome-phase__skip:hover { border-color: var(--mc-teal); }
.welcome-phase__birds { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.welcome-phase__dove { position: absolute; width: clamp(78px, 10vw, 132px); height: 66px; color: var(--mc-teal); fill: currentColor; stroke: none; opacity: 0; filter: drop-shadow(0 7px 7px rgba(15, 79, 66, .12)); transform-origin: center; }
.welcome-phase__dove:nth-child(1) { top: 19%; left: 5%; }
.welcome-phase__dove:nth-child(2) { top: 30%; right: 7%; width: clamp(65px, 8vw, 104px); }
.welcome-phase__dove:nth-child(3) { bottom: 17%; left: 20%; width: clamp(58px, 7vw, 91px); }
.welcome-phase.is-visible .welcome-phase__dove:nth-child(1) { animation: welcome-dove-rise 4.3s cubic-bezier(.33, .02, .6, .95) both; }
.welcome-phase.is-visible .welcome-phase__dove:nth-child(2) { animation: welcome-dove-return 3.9s .36s cubic-bezier(.33, .02, .6, .95) both; }
.welcome-phase.is-visible .welcome-phase__dove:nth-child(3) { animation: welcome-dove-distant 3.3s .82s cubic-bezier(.33, .02, .6, .95) both; }
.welcome-phase.is-leaving .welcome-phase__dove { animation: none; opacity: 0; }
@keyframes welcome-dove-rise {
  0% { opacity: 0; transform: translate(-11vw, 18px) scale(.74) rotate(-12deg); }
  30% { opacity: .19; transform: translate(-3vw, -2px) scale(.85) rotate(-2deg); }
  59% { opacity: .23; transform: translate(5vw, -14px) scale(.94) rotate(5deg); }
  84% { opacity: .14; transform: translate(15vw, -35px) scale(1.03) rotate(-3deg); }
  100% { opacity: 0; transform: translate(23vw, -50px) scale(1.1) rotate(2deg); }
}
@keyframes welcome-dove-return {
  0% { opacity: 0; transform: translate(12vw, 15px) scaleX(-1) scale(.72) rotate(9deg); }
  35% { opacity: .18; transform: translate(2vw, -5px) scaleX(-1) scale(.83) rotate(-3deg); }
  67% { opacity: .21; transform: translate(-9vw, -24px) scaleX(-1) scale(.96) rotate(4deg); }
  100% { opacity: 0; transform: translate(-23vw, -43px) scaleX(-1) scale(1.08) rotate(-2deg); }
}
@keyframes welcome-dove-distant {
  0% { opacity: 0; transform: translate(-7vw, 16px) scale(.53) rotate(-9deg); }
  43% { opacity: .1; transform: translate(4vw, -12px) scale(.64) rotate(3deg); }
  72% { opacity: .15; transform: translate(12vw, -36px) scale(.72) rotate(-2deg); }
  100% { opacity: 0; transform: translate(22vw, -62px) scale(.83) rotate(4deg); }
}
.marketing-signin { background: color-mix(in srgb, var(--mc-surface) 94%, var(--mc-pearl)); }
.marketing-motion,
.marketing-feature,
.platform-card { background: color-mix(in srgb, var(--mc-surface) 94%, var(--mc-pearl)); }
.motion-timer,
.motion-orbit__tag,
.motion-preview,
.platform-card__status { background: color-mix(in srgb, var(--mc-surface) 96%, var(--mc-pearl)); }
.theme-dark .marketing-motion,
.theme-dark .marketing-feature,
.theme-dark .platform-card { background: color-mix(in srgb, var(--mc-surface) 94%, var(--mc-mint)); }
.theme-dark .marketing-signin,
.theme-dark .motion-timer,
.theme-dark .motion-orbit__tag,
.theme-dark .motion-preview,
.theme-dark .platform-card__status { background: var(--mc-surface-elevated); }

/* Message copy must not inherit the global paragraph color over the blue bubble. */
.ai-tutor-layout[hidden], .ai-access-note[hidden] { display: none !important; }
.ai-access-note { display: grid; justify-items: start; gap: 12px; max-width: 650px; padding: var(--mc-space-5, 20px); color: var(--mc-ink); font-size: 1rem; line-height: 1.6; }
.ai-access-note h2, .ai-access-note p { margin: 0; }
.ai-access-note .small-print { color: var(--mc-ink-secondary); }
.ai-access-benefits { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 24px; margin: 0; padding-left: 1.25rem; color: var(--mc-ink); }
.ai-access-benefits[hidden] { display: none; }
@media (max-width: 560px) { .ai-access-benefits { grid-template-columns: 1fr; } }
.ai-tutor-layout.is-readonly [data-ai-prompt], .ai-tutor-layout.is-readonly [data-ai-new] { opacity: .55; cursor: not-allowed; }
.ai-tutor-layout.is-readonly .ai-composer textarea { background: var(--mc-surface-secondary, var(--mc-pearl)); }
.ai-source-links { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; margin: 2px 0 18px; color: var(--mc-ink-secondary); }
.ai-source-links > span { color: var(--mc-ink); font-weight: 720; }
.ai-source-links .mc-button { min-height: 44px; }
.ai-source-links > small { flex-basis: 100%; max-width: 900px; font-size: .8rem; line-height: 1.45; }
.ai-message .ai-message__content p { font-size: 1rem; line-height: 1.6; opacity: 1; }
.ai-message--assistant .ai-message__content p { color: var(--mc-ink); }
.ai-message--student { background: #123f93; }
.ai-message--student .ai-message__content p {
  color: #fff;
  opacity: 1;
}
.theme-dark .ai-message--student .ai-message__content p {
  color: #0b2046;
}
/* The Planner stays compact: task controls do not become a vertical stack. */
.planner-task-row { position: relative; grid-template-columns: 30px minmax(0, 1fr) auto; min-height: 68px; }
.planner-task-row .planner-row-actions { display: flex; grid-column: 3; align-items: center; justify-content: flex-end; gap: 2px; margin: 0; }
.planner-task-row .planner-row-actions > button { min-height: 40px; }
.planner-task-more { position: relative; }
.planner-task-more summary { display: grid; min-height: 40px; padding: 8px 10px; border-radius: var(--mc-radius-sm); place-items: center; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); font-weight: 760; cursor: pointer; list-style: none; }
.planner-task-more summary::-webkit-details-marker { display: none; }
.planner-task-more summary:hover, .planner-task-more[open] summary { color: var(--mc-ink); background: color-mix(in srgb, var(--mc-blue) 12%, var(--mc-surface)); }
.planner-task-more summary:focus-visible { outline: 3px solid var(--mc-blue); outline-offset: 2px; }
.planner-task-more__menu { position: absolute; z-index: 4; top: 100%; right: 0; display: grid; min-width: 150px; padding: 5px; border: 1px solid var(--mc-line-strong); border-radius: var(--mc-radius-sm); background: var(--mc-surface-elevated); box-shadow: var(--mc-shadow-float); }
.planner-task-more__menu button { width: 100%; min-height: 40px; padding: 9px 12px; border: 0; border-radius: 9px; color: var(--mc-ink); background: transparent; text-align: left; font-size: var(--mc-text-sm); }
.planner-task-more__menu button:hover { background: color-mix(in srgb, var(--mc-blue) 12%, var(--mc-surface)); }
.planner-task-more__menu button:last-child { color: var(--mc-danger); }
.planner-overdue { gap: 0; padding: 9px 14px; border-color: var(--mc-line); background: var(--mc-surface-elevated); }
.planner-overdue > p { margin: 3px 8px 5px; color: var(--mc-ink-secondary); }
.planner-overdue .planner-task-row { border-color: var(--mc-line); }
.planner-overdue .planner-task-row.is-overdue small { color: var(--mc-ink-secondary); }
.planner-task-empty-note { margin: 0; padding: 15px 8px 3px; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); }
.theme-dark .planner-overdue { background: var(--mc-surface-elevated); }
.theme-dark .planner-overdue > p, .theme-dark .planner-overdue .planner-task-row.is-overdue small { color: var(--mc-ink-secondary); }
.today-next .home-start-focus,
.theme-dark .today-next .home-start-focus {
  color: #fff;
  border-color: rgba(255,255,255,.34);
  background: #2d6df6;
  box-shadow: 0 10px 24px rgba(2, 30, 88, .26);
  -webkit-tap-highlight-color: transparent;
}
.today-next .home-start-focus:hover,
.theme-dark .today-next .home-start-focus:hover { color: #fff; background: #3f7cff; }
.today-next .home-start-focus:active:not(:disabled),
.theme-dark .today-next .home-start-focus:active:not(:disabled),
.today-next .home-start-focus:focus-visible,
.theme-dark .today-next .home-start-focus:focus-visible {
  color: #fff;
  border-color: rgba(255,255,255,.68);
  background: #245fdc;
}
.today-next .home-start-focus:focus-visible,
.theme-dark .today-next .home-start-focus:focus-visible {
  outline: 3px solid color-mix(in srgb, #76a4ff 72%, #fff);
  outline-offset: 3px;
}
.today-quick-action--focus {
  color: #fff;
  border-color: rgba(75,132,255,.72);
  background: linear-gradient(135deg, #2d6df6, #1542a3);
  box-shadow: 0 12px 26px rgba(13,58,150,.19);
  -webkit-tap-highlight-color: transparent;
}
.today-quick-action--focus:hover,
.today-quick-action--focus:active,
.today-quick-action--focus:focus-visible,
.theme-dark .today-quick-action--focus:hover,
.theme-dark .today-quick-action--focus:active,
.theme-dark .today-quick-action--focus:focus-visible {
  color: #fff;
  border-color: #7aa6ff;
  background: linear-gradient(135deg, #3f7cff, #194aaa);
}
.today-quick-action--focus:focus-visible {
  outline: 3px solid color-mix(in srgb, #76a4ff 72%, #fff);
  outline-offset: 3px;
}
.today-quick-action--focus strong,
.today-quick-action--focus small,
.today-quick-action--focus > svg { color: #fff; }
.today-quick-action--focus .tool-icon { color: #174bb8; background: #fff; }
.task-row__study,
.planner-task-study {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 6px 8px;
  border: 0;
  border-radius: 10px;
  color: var(--mc-ink);
  background: transparent;
  text-align: left;
  font: inherit;
  cursor: pointer;
}
.task-row__study:hover,
.planner-task-study:hover { color: var(--mc-blue); background: color-mix(in srgb, var(--mc-blue) 10%, transparent); }
.task-row__study:focus-visible,
.planner-task-study:focus-visible { outline: 3px solid color-mix(in srgb, var(--mc-blue) 55%, transparent); outline-offset: 2px; }
.task-row__study strong,
.planner-task-study strong { color: inherit; }
.task-row__study small,
.planner-task-study small { color: var(--mc-ink-secondary); }
.field-help { display: block; margin-top: 6px; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); font-weight: 560; line-height: 1.45; }
.ai-context-add-course { width: fit-content; margin-top: -5px; }
[data-syllabus-new-course-field][hidden] { display: none !important; }
@media (max-width: 420px) {
  .planner-task-row { gap: 8px; padding-inline: 2px; }
  .planner-task-row .planner-row-actions > button { padding-inline: 7px; }
  .planner-task-more summary { padding-inline: 7px; }
}
/* A quiet task list: one primary path into Focus, with editing behind one menu. */
.planner-task-list, .planner-overdue { gap: 0; }
.planner-overdue[hidden] { display: none; }
.planner-overdue, .theme-dark .planner-overdue {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.planner-overdue > p, .theme-dark .planner-overdue > p {
  margin: 14px 0 4px;
  color: var(--mc-warning);
  font-size: var(--mc-text-xs);
  font-weight: 800;
  letter-spacing: .04em;
}
.planner-task-row {
  grid-template-columns: 44px minmax(0, 1fr) 44px;
  gap: 5px;
  min-height: 70px;
  padding: 9px 0;
  border-radius: 0;
  transition: background var(--mc-duration-standard) var(--mc-ease-standard);
}
.planner-task-row:hover { background: color-mix(in srgb, var(--mc-blue) 4%, transparent); transform: none; }
.planner-task-row:first-child { border-top: 1px solid var(--mc-line); }
.planner-task-row .planner-row-actions { display: flex; grid-column: 3; justify-content: center; }
.planner-task-row strong { color: var(--mc-ink); font-size: var(--mc-text-sm); font-weight: 760; line-height: 1.35; }
.planner-task-row small, .planner-overdue .planner-task-row.is-overdue small,
.theme-dark .planner-overdue .planner-task-row.is-overdue small { color: var(--mc-ink-secondary); line-height: 1.45; }
.planner-task-check, .task-check {
  display: grid;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: var(--mc-radius-sm);
  place-items: center;
  color: transparent;
  background: transparent;
  cursor: pointer;
}
.planner-task-check::before, .task-check::before {
  grid-area: 1 / 1;
  width: 20px;
  height: 20px;
  border: 1.5px solid var(--mc-line-strong);
  border-radius: 50%;
  content: "";
  background: var(--mc-surface);
}
.planner-task-check svg, .task-check svg { grid-area: 1 / 1; position: relative; width: 14px; height: 14px; }
.planner-task-check:hover, .task-check:hover { color: var(--mc-blue); background: color-mix(in srgb, var(--mc-blue) 8%, transparent); }
.planner-task-check:hover::before, .task-check:hover::before { border-color: var(--mc-blue); }
.planner-task-check:focus-visible, .task-check:focus-visible { outline: 3px solid var(--mc-blue); outline-offset: 1px; }
.planner-task-study { min-height: 48px; padding: 5px 4px; }
.planner-task-more summary {
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: var(--mc-radius-sm);
  color: var(--mc-ink-secondary);
}
.planner-task-more summary svg { width: 19px; height: 19px; }
.planner-task-more__menu { z-index: 12; min-width: 164px; padding: 6px; }
.planner-task-more__menu button { min-height: 44px; }
.planner-task-more__menu button:focus-visible { outline: 2px solid var(--mc-blue); outline-offset: -2px; }
.task-row { grid-template-columns: 44px minmax(0, 1fr); gap: 4px; min-height: 62px; padding: 4px 0; }
.task-row__study { min-height: 48px; }
@media (max-width: 420px) {
  .planner-task-row { grid-template-columns: 44px minmax(0, 1fr) 44px; gap: 3px; padding-inline: 0; }
  .planner-task-more summary { padding: 0; }
}
/* Study and calendar actions remain legible on compact screens. */
.study-page-header .page-header__actions { flex-wrap: wrap; }
.study-upload-action { min-height: 48px; }
.course-empty-actions { display: flex; align-items: center; gap: var(--mc-space-2); flex-wrap: wrap; margin-top: var(--mc-space-2); }
.course-empty-actions .mc-button { margin-top: 0; }
@media (max-width: 420px) { .course-empty-actions { align-items: stretch; flex-direction: column; width: 100%; }.course-empty-actions .mc-button { width: 100%; } }
.syllabus-file-field input[type="file"] { width: 100%; min-height: 76px; padding: 13px; border: 1px dashed var(--mc-line-strong); border-radius: var(--mc-radius-md); color: var(--mc-ink); background: var(--mc-surface); font: inherit; }
.syllabus-file-field input[type="file"]::file-selector-button { min-height: 42px; margin-right: 12px; padding: 9px 13px; border: 1px solid var(--mc-line-strong); border-radius: var(--mc-radius-sm); color: var(--mc-ink); background: var(--mc-background-secondary); font: inherit; font-weight: 700; cursor: pointer; }
.syllabus-file-field small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); }
.planner-calendar-card { background: var(--mc-surface); }
.calendar-connection-row--google,
.calendar-connection-row--apple { border: 1px solid var(--mc-line-strong); border-radius: var(--mc-radius-md); padding: 16px; background: color-mix(in srgb, var(--mc-mint) 12%, var(--mc-surface)); }
.calendar-connection-row--apple { margin-top: var(--mc-space-3); background: color-mix(in srgb, var(--mc-blue) 7%, var(--mc-surface)); }
.calendar-connection-row--google:first-child { border-top: 1px solid var(--mc-line-strong); }
.calendar-connection-row--google .mc-button,
.calendar-connection-row--apple .mc-button { min-height: 46px; }
.calendar-connection-status { margin: 0; padding: 10px 12px; border-radius: var(--mc-radius-sm); color: var(--mc-ink-secondary); background: var(--mc-background-secondary); font-size: var(--mc-text-xs); line-height: 1.45; }
.calendar-connection-status.is-error { color: var(--mc-danger); background: var(--mc-danger-surface); }
.calendar-connection-status.is-success { color: var(--mc-success); background: var(--mc-success-surface); }
.calendar-other-connections { border-top: 1px solid var(--mc-line); }
.calendar-other-connections summary { display: flex; align-items: center; min-height: 44px; color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); font-weight: 740; cursor: pointer; }
.calendar-other-connections summary:focus-visible { outline: 3px solid var(--mc-blue); outline-offset: 2px; }
.calendar-other-connections .calendar-connection-row:last-child { border-bottom: 1px solid var(--mc-line); }
.calendar-source-picker { margin: 8px 0 16px; padding: 12px 16px; border: 1px solid var(--mc-line-strong); border-radius: var(--mc-radius-md); background: var(--mc-surface); }
.calendar-source-picker > summary { min-height: 44px; display: flex; align-items: center; color: var(--mc-ink); font-weight: 720; cursor: pointer; }
.calendar-source-picker > summary:focus-visible, .calendar-source-picker input:focus-visible, .calendar-source-picker button:focus-visible { outline: 3px solid var(--mc-blue); outline-offset: 3px; }
.calendar-source-picker [data-google-calendar-choices] { display: grid; gap: 6px; padding-block: 8px 14px; max-height: 240px; overflow-y: auto; }
.calendar-source-choice { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 6px 9px; border-radius: var(--mc-radius-sm); color: var(--mc-ink); cursor: pointer; overflow-wrap: anywhere; }
.calendar-source-choice:hover { background: var(--mc-surface-elevated); }
.calendar-source-choice input { width: 18px; height: 18px; flex: none; accent-color: var(--mc-blue); }
.calendar-source-picker .mc-button { min-height: 44px; }
@media (max-width: 760px) {
  .study-page-header { align-items: stretch; }
  .study-page-header .page-header__actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; width: 100%; }
  .study-page-header .page-header__actions .mc-button { justify-content: center; min-height: 48px; }
  .study-page-header .page-header__actions .mc-button span { display: inline; }
  .calendar-connection-row--google,
  .calendar-connection-row--apple { grid-template-columns: 1fr; }
  .calendar-connection-row--google .mc-button,
  .calendar-connection-row--apple .mc-button { width: 100%; }
}
@media (max-width: 360px) {
  .study-page-header .page-header__actions { grid-template-columns: 1fr; }
}
/* Give the study question room to breathe, without changing the Tutor flow. */
.ai-context-card--premium .section-heading { display: block; }
.ai-context-card--premium h2 { max-width: 24ch; line-height: 1.2; }
.welcome-study-guide__intro > .mc-button { justify-self: start; margin-top: 6px; }
@media (min-width: 1181px) {
  .ai-tutor-layout { grid-template-columns: minmax(300px, 340px) minmax(0, 1fr); }
  .ai-tutor-rail { grid-column: 1 / -1; }
  .ai-safety-card { max-width: none; }
}
@media (max-width: 640px) {
  .welcome-study-guide__intro > .mc-button { width: 100%; }
}
@media (max-width: 760px) {
  .ai-source-links { padding-inline: 4px; }
  .ai-source-links > span { flex-basis: 100%; }
  .ai-source-links .mc-button { flex: 1 1 auto; justify-content: center; }
  .ai-tutor-layout.is-readonly .ai-history-card { display: grid; }
  .ai-tutor-layout.is-readonly .ai-context-card, .ai-tutor-layout.is-readonly .ai-prompt-card { display: none; }
  .ai-tutor-layout.is-readonly .ai-tutor-sidebar { order: -1; }
  .ai-tutor-layout.is-readonly .ai-conversation-card { order: 0; }
}
@media (max-width: 640px) {
  .welcome-phase__emblem { width: 82px; height: 82px; }
  .welcome-phase__copy { width: min(100%, 360px); padding-inline: 8px; }
  .welcome-phase__dove:nth-child(1) { top: 18%; left: -10%; }
  .welcome-phase__dove:nth-child(2) { top: 66%; right: 0; }
  .welcome-phase__dove:nth-child(3) { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .marketing-page > :not(.welcome-phase), .welcome-phase, .welcome-phase__emblem,
  .welcome-phase__copy .eyebrow, .welcome-phase__copy h2,
  .welcome-phase__copy > p:last-child { transition: none !important; transform: none !important; }
  .welcome-phase__birds { display: none; }
  .welcome-phase__emblem, .welcome-phase__copy .eyebrow,
  .welcome-phase__copy h2, .welcome-phase__copy > p:last-child { opacity: 1; }
}

/* Optional lifestyle moments live after the useful actions, never behind text. */
.mc-context-scene { display: block; position: relative; height: clamp(150px, 13vw, 205px); margin: 0; overflow: hidden; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-lg); background: var(--mc-surface-elevated); }
.mc-context-scene[hidden] { display: none; }
.mc-context-scene img { display: block; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 200ms var(--mc-ease-standard); }
.mc-context-scene.is-ready img { opacity: .94; }
.mc-context-scene--focus { width: min(100%, 420px); margin: 20px 0 20px auto; }
.theme-dark .mc-context-scene { border-color: var(--mc-line); background: var(--mc-surface); }
.theme-dark .mc-context-scene.is-ready img { opacity: .78; }
@media (max-width: 760px) { .mc-context-scene { display: none; } }
@media (prefers-reduced-motion: reduce) { .mc-context-scene img { transition: none; } }

/* Mobile landing follows the single-action preview, not the desktop orbit. */
.marketing-motion .motion-preview { grid-template-columns: auto minmax(0, 1fr); }
@media (max-width: 640px) {
  .marketing-nav { min-height: 68px; }
  .marketing-landing { padding-top: 14px; padding-bottom: 25px; gap: 24px; }
  .marketing-hero--landing h1 { margin-block: 10px 15px; font-size: clamp(3rem, 13vw, 4.1rem); }
  .marketing-hero--landing > p:not(.eyebrow):not(.marketing-note) { font-size: 1rem; line-height: 1.45; }
  .marketing-actions { gap: 6px; margin-top: 20px; }
  .marketing-actions .marketing-explore { justify-content: flex-start; min-height: 42px; }
  .marketing-motion { display: grid; }
  .marketing-product { padding-top: 42px; }
}

/* The mobile dock is a single quiet material; selection carries the hierarchy. */
@media (max-width: 640px) {
  body:not(.is-marketing) { padding-bottom: calc(108px + env(safe-area-inset-bottom)); }
  .mc-nav--mobile {
    right: auto;
    bottom: max(10px, env(safe-area-inset-bottom));
    left: 50%;
    width: min(520px, calc(100% - 20px - env(safe-area-inset-left) - env(safe-area-inset-right)));
    min-height: 72px;
    padding: 7px;
    gap: 3px;
    border: 1px solid color-mix(in srgb, var(--mc-line-strong) 46%, var(--mc-glass-border));
    border-radius: 25px;
    background: color-mix(in srgb, var(--mc-glass-strong) 86%, var(--mc-surface));
    box-shadow: 0 14px 35px rgba(5, 21, 92, .17), 0 2px 8px rgba(5, 21, 92, .06), inset 0 1px 0 var(--mc-glass-highlight);
    -webkit-backdrop-filter: saturate(125%) blur(22px);
    backdrop-filter: saturate(125%) blur(22px);
    transform: translateX(-50%);
  }
  .mc-nav--mobile .mc-nav__item {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 3px;
    min-width: 0;
    min-height: 56px;
    padding: 5px 2px;
    border: 1px solid transparent;
    border-radius: 18px;
    color: var(--mc-ink-secondary);
    background: transparent;
    box-shadow: none;
    font-size: var(--mc-text-xs);
    font-weight: 680;
    line-height: 1.15;
    white-space: nowrap;
  }
  .mc-nav--mobile .mc-nav__item svg { width: 21px; height: 21px; flex: none; stroke-width: 1.9; }
  .mc-nav--mobile .mc-nav__item.is-active,
  .mc-nav--mobile .mc-nav__item.is-active:hover {
    border-color: rgba(255, 255, 255, .12);
    color: #fff;
    background: linear-gradient(145deg, #1643a4, var(--mc-deep-blue));
    box-shadow: 0 4px 12px rgba(5, 21, 92, .18), inset 0 1px 0 rgba(255, 255, 255, .18);
  }
  .mc-nav--mobile .mc-nav__item.is-active svg { color: inherit; }
  .mc-nav--mobile .mc-nav__item:active { transform: scale(.97); }
  .mc-nav--mobile .mc-nav__item:focus-visible { outline: 2px solid var(--mc-blue); outline-offset: 2px; }
}
@media (max-width: 640px) and (hover: hover) {
  .mc-nav--mobile .mc-nav__item:not(.is-active):hover {
    border-color: transparent;
    color: var(--mc-ink);
    background: color-mix(in srgb, var(--mc-blue) 7%, transparent);
  }
}
@media (max-width: 640px) and (prefers-reduced-motion: reduce) {
  .mc-nav--mobile .mc-nav__item { transition: none; }
  .mc-nav--mobile .mc-nav__item:active { transform: none; }
}
@media (max-width: 640px) and (prefers-reduced-transparency: reduce) {
  .mc-nav--mobile { background: var(--mc-surface-elevated); -webkit-backdrop-filter: none; backdrop-filter: none; }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  @media (max-width: 640px) { .mc-nav--mobile { background: var(--mc-surface-elevated); } }
}

/* Course maps: restrained glass with readable, explicit study states. */
.mind-map-progress { display:flex; align-items:center; justify-content:space-between; gap:1.25rem; padding:1.25rem; margin:1rem 0; border:1px solid var(--mc-border); border-radius:24px; }
.mind-map-progress > div { flex:1; min-width:0; }
.mind-map-progress strong { font-size:1.35rem; }
.mind-map-progress p { font-size:1rem; margin:.4rem 0; }
.mind-map-progress small { display:block; font-size:.875rem; margin-top:.5rem; }
.mind-map-progress progress { width:100%; height:.65rem; appearance:none; border:0; border-radius:1rem; overflow:hidden; background:var(--mc-border); accent-color:var(--mc-teal); }
.mind-map-progress progress::-webkit-progress-bar { background:var(--mc-border); }
.mind-map-progress progress::-webkit-progress-value { background:linear-gradient(90deg,var(--mc-blue),var(--mc-teal)); border-radius:1rem; }
.mind-map-progress progress::-moz-progress-bar { background:var(--mc-teal); }
.mind-map-node[data-study-status="complete"] rect { stroke:var(--mc-teal); stroke-width:3; }
.mind-map-node[data-study-status="review"] rect { stroke:#bf7b16; stroke-width:3; stroke-dasharray:6 3; }
.mind-map-node.is-selected rect, .mind-map-node:focus-visible rect { stroke:var(--mc-blue); stroke-width:5; }
.mind-map-node .mind-map-state-marker { font-size:14px; font-weight:800; }
@media(max-width:600px) { .mind-map-progress { align-items:stretch; flex-direction:column; padding:1rem; } .mind-map-progress button { width:100%; } }
@media(prefers-reduced-motion:reduce) { .mind-map-workspace *, .mind-map-workspace *::before, .mind-map-workspace *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }

.mind-map-study-result { grid-column:1/-1; width:100%; min-width:0; padding:1rem; border-radius:1.25rem; border:1px solid var(--mc-border); background:var(--mc-surface); overflow-wrap:anywhere; }
.mind-map-study-result p { white-space:pre-wrap; }
.mind-map-study-result fieldset { min-width:0; margin:1rem 0; border:1px solid var(--mc-border); border-radius:1rem; padding:1rem; }
.mind-map-study-result legend { font-weight:600; font-size:1rem; }
.mind-map-quiz-choice { display:flex; gap:.75rem; align-items:center; min-height:44px; padding:.5rem; cursor:pointer; }
.mind-map-study-result blockquote { margin:1rem 0; padding:.75rem 1rem; border-left:3px solid var(--mc-teal); font-size:1rem; }

.focus-settings-form { display: grid; gap: 16px; padding: 24px 0; border-top: 1px solid var(--border, #9eb4d033); }
.focus-settings-form .focus-custom { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.settings-check { display: flex; align-items: flex-start; gap: 12px; line-height: 1.5; }
.settings-check input { flex: 0 0 auto; margin-top: 6px; width: 18px; height: 18px; }
.focus-partner { margin-top: 24px; padding-top: 20px; border-top: 1px solid #9eb4d033; }
.focus-music-card { container-type:inline-size; }
.focus-music-card .focus-music-form { display:grid;grid-template-columns:minmax(0,1fr);align-items:end;gap:12px; }
.focus-music-card .focus-music-form > * { min-width:0; }
.focus-music-actions:not(:has(> :not([hidden]))) { display:none; }
.focus-music-card:not(:has([data-focus-music-preview]:not([hidden]),[data-focus-music-open]:not([hidden]))) .focus-music-limit { display:none; }
@container(min-width:600px) { .focus-music-card .focus-music-form { grid-template-columns:minmax(130px,.65fr) minmax(0,1.35fr) auto; } }
.focus-brainfm-card { display:grid;gap:10px;margin-top:20px;padding:24px 0 0;border:0;border-top:1px solid var(--mc-line);border-radius:0;background:none; }
.focus-brainfm-header { display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:8px; }
.focus-brainfm-card h3 { margin:0; font-size:var(--mc-text-lg); letter-spacing:-.02em; color:var(--mc-ink); }
.focus-brainfm-brand { display:flex;align-items:center;max-width:100%;padding:0;background:none; }
.focus-brainfm-brand img { display:block;width:150px;max-width:100%;height:auto;filter:brightness(0); }
.theme-dark .focus-brainfm-brand img { filter:none; }
.focus-brainfm-offer { padding:6px 10px;border:1px solid var(--mc-line);border-radius:999px;background:var(--mc-glass-subtle);color:var(--mc-teal);font-size:.75rem;font-weight:650;white-space:nowrap; }
.focus-brainfm-card p { margin:0; color:var(--mc-ink-secondary); line-height:1.6; }
.focus-brainfm-card .focus-brainfm-title { color:var(--mc-ink);font-size:1.25rem;font-weight:650;letter-spacing:-.025em;line-height:1.3; }
.focus-brainfm-copy { font-size:.875rem;max-width:42ch; }
.focus-brainfm-card > a { justify-content:center;width:100%;min-height:48px;margin-top:6px;border:1px solid var(--mc-line-strong);border-radius:14px;color:var(--mc-ink);background:linear-gradient(145deg,var(--mc-glass-highlight),transparent 65%),var(--mc-glass-standard);box-shadow:inset 0 1px 0 var(--mc-glass-highlight);font-size:.9375rem;font-weight:650; }
.focus-brainfm-card .focus-brainfm-handoff { font-size:.75rem;text-align:center; }
.focus-brainfm-card .focus-brainfm-disclosure { font-size:.75rem;line-height:1.55;margin-top:6px; }
@media(max-width:360px) { .focus-brainfm-brand img { width:126px; }.focus-brainfm-header { gap:8px; } }
@media(forced-colors:active) { .focus-brainfm-offer,.focus-brainfm-card > a { color:ButtonText;background:ButtonFace;border-color:ButtonText;box-shadow:none; }.focus-brainfm-brand { forced-color-adjust:none;background:var(--mc-deep-blue);padding:8px; }.focus-brainfm-brand img { filter:none; } }
.account-delete-dialog { width: min(520px, calc(100% - 32px)); max-height: calc(100dvh - 48px); overflow: auto; border: 1px solid #adc5ec55; border-radius: 24px; padding: 28px; color: #f6f8ff; background: #132448; }
.account-delete-dialog::backdrop { background: #071126bb; }
.account-delete-dialog form { display: grid; gap: 18px; }
.account-delete-dialog .account-card__actions { flex-wrap: wrap; }
.account-delete-dialog .mc-input input { color: #f6f8ff; }
.account-deleted-message { padding: 24px; text-align: center; }
@media (max-width: 420px) { .focus-settings-form .focus-custom { grid-template-columns: 1fr; } }

@media (max-width: 640px) { .mc-nav--mobile { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.study-section-nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* Profile settings: shared MindCoda materials, quieter labels, clear controls. */
.profile-layout > .profile-settings-card:last-child {
  min-width: 0;
  grid-template-columns: minmax(0, 1fr);
  padding: 12px 24px 8px;
  border-color: var(--mc-line);
  background: linear-gradient(145deg, var(--mc-glass-strong), var(--mc-surface));
  box-shadow: var(--mc-shadow-card), inset 0 1px 0 var(--mc-glass-highlight);
}
.profile-settings-card .preference-row { gap: 12px; min-height: 76px; padding: 16px 0; font-family: var(--mc-font); }
.profile-settings-card .preference-row > span,
.profile-settings-card .preference-row--appearance > div:first-child { display: grid; gap: 5px; min-width: 0; }
.profile-settings-card .preference-row strong { font-size: 1rem; line-height: 1.35; font-weight: 600; letter-spacing: -.015em; }
.profile-settings-card .preference-row small { font-size: .875rem; line-height: 1.45; font-weight: 400; }
.profile-settings-card .preference-row--appearance { flex-wrap: wrap; }
.profile-settings-card .theme-picker { display: flex; flex-wrap: wrap; max-width: 100%; gap: 6px; }
.profile-settings-card .theme-choice { min-width: 0; min-height: 44px; }
.profile-settings-card .preference-row > svg { width: 20px; height: 20px; opacity: .65; }
.profile-settings-card .preference-row--delete strong { color: var(--mc-danger); }
.profile-settings-card .preference-row:focus-visible { outline: 3px solid var(--mc-blue); outline-offset: 3px; border-radius: 8px; }
.profile-settings-card .focus-settings-form {
  min-width: 0;
  gap: 20px;
  margin: 8px 0 20px;
  padding: 24px 20px 20px;
  border: 1px solid var(--mc-line);
  border-radius: var(--mc-radius-lg);
  background: linear-gradient(150deg, color-mix(in srgb, var(--mc-mint) 22%, var(--mc-surface)), var(--mc-surface) 62%);
  box-shadow: inset 0 1px 0 var(--mc-glass-highlight), var(--mc-shadow-subtle);
  font-family: var(--mc-font);
}
.focus-settings-heading { display: flex; align-items: center; gap: 12px; }
.focus-settings-heading > div { min-width: 0; }
.focus-settings-icon { display: grid; flex: 0 0 44px; width: 44px; height: 44px; place-items: center; border: 1px solid color-mix(in srgb, var(--mc-teal) 12%, transparent); border-radius: 14px; color: var(--mc-teal); background: color-mix(in srgb, var(--mc-mint) 50%, var(--mc-surface)); }
.focus-settings-icon svg { width: 22px; height: 22px; }
.focus-settings-heading h3 { margin: 0; color: var(--mc-ink); font-family: var(--mc-font-display); font-size: 1.25rem; font-weight: 700; letter-spacing: -.025em; line-height: 1.25; }
.focus-settings-heading p { margin: 5px 0 0; color: var(--mc-ink-secondary); font-size: .875rem; line-height: 1.45; }
.focus-settings-durations { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.focus-settings-form .mc-input { min-width: 0; gap: 8px; font-family: var(--mc-font); font-size: .875rem; font-weight: 600; line-height: 1.4; }
.focus-settings-value { position: relative; display: block; }
.focus-settings-form .focus-settings-value input { min-height: 68px; padding: 14px 46px 14px 16px; border-color: var(--mc-line); border-radius: 16px; background: var(--mc-surface); font-family: var(--mc-font-display); font-size: 1.75rem; font-weight: 600; line-height: 1.25; font-variant-numeric: tabular-nums; appearance: textfield; -moz-appearance: textfield; }
.focus-settings-value input::-webkit-inner-spin-button,
.focus-settings-value input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.focus-settings-value > span { position: absolute; top: 50%; right: 14px; color: var(--mc-ink-secondary); font-family: var(--mc-font); font-size: .875rem; font-weight: 400; transform: translateY(-50%); pointer-events: none; }
.focus-settings-breathing > span { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; }
.focus-settings-breathing > span small { font-size: .875rem; font-weight: 400; }
.focus-settings-form .focus-settings-breathing select { min-height: 50px; border-color: var(--mc-line); border-radius: 14px; background: var(--mc-surface); font-family: var(--mc-font); font-size: 1rem; font-weight: 500; }
.focus-settings-switches { display: grid; border: 1px solid var(--mc-line); border-radius: 18px; background: color-mix(in srgb, var(--mc-glass-strong) 78%, var(--mc-surface)); }
.focus-settings-switch { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 80px; margin: 0 16px; padding: 16px 0; cursor: pointer; }
.focus-settings-switch + .focus-settings-switch { border-top: 1px solid var(--mc-line); }
.focus-settings-switch-copy { display: grid; min-width: 0; gap: 5px; }
.focus-settings-switch-copy strong { color: var(--mc-ink); font-size: 1rem; font-weight: 600; letter-spacing: -.015em; line-height: 1.35; }
.focus-settings-switch-copy small { color: var(--mc-ink-secondary); font-size: .875rem; font-weight: 400; line-height: 1.45; }
.focus-settings-switch input { position: absolute; width: 1px; height: 1px; padding: 0; border: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.focus-settings-switch-track { position: relative; flex: 0 0 48px; width: 48px; height: 28px; border: 1px solid var(--mc-line-strong); border-radius: var(--mc-radius-pill); background: color-mix(in srgb, var(--mc-ink-secondary) 20%, var(--mc-surface)); transition: background var(--mc-duration-standard), border-color var(--mc-duration-standard); }
.focus-settings-switch-track::after { position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgba(5,21,92,.18); content: ""; transition: transform var(--mc-duration-standard); }
.focus-settings-switch input:checked + .focus-settings-switch-track { border-color: var(--mc-teal); background: var(--mc-teal); }
.focus-settings-switch input:checked + .focus-settings-switch-track::after { transform: translateX(20px); }
.focus-settings-switch input:focus-visible + .focus-settings-switch-track { outline: 3px solid var(--mc-blue); outline-offset: 4px; }
.focus-settings-help { min-width: 0; color: var(--mc-ink-secondary); font-size: .875rem; line-height: 1.5; }
.focus-settings-help summary { display: list-item; min-height: 44px; padding: 11px 0; color: var(--mc-ink-secondary); cursor: pointer; }
.focus-settings-help summary:focus-visible { outline: 3px solid var(--mc-blue); outline-offset: 3px; border-radius: 6px; }
.focus-settings-help p { margin: 4px 0 8px; font-size: .875rem; line-height: 1.6; }
.focus-settings-footer { display: grid; gap: 10px; }
.focus-settings-footer .mc-button { width: 100%; min-height: 48px; border-radius: 14px; font-family: var(--mc-font); font-size: 1rem; font-weight: 600; }
.focus-settings-footer .small-print { margin: 0; color: var(--mc-ink-secondary); font-size: .875rem; font-weight: 400; line-height: 1.5; text-align: center; }
.theme-dark .profile-settings-card { background: linear-gradient(145deg, color-mix(in srgb, var(--mc-surface) 91%, #2b457e), var(--mc-surface)); }
@media (max-width: 640px) {
  .profile-layout > .profile-settings-card:last-child { padding: 10px 18px 6px; }
  .profile-settings-card .focus-settings-form { padding: 20px 16px 16px; margin-right: -6px; margin-left: -6px; border-radius: 20px; }
  .focus-settings-switch { margin: 0 12px; }
  .profile-settings-card .preference-row--appearance { align-items: flex-start; flex-wrap: wrap; }
}
@media (max-width: 360px) {
  .focus-settings-durations { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .focus-settings-switch-track, .focus-settings-switch-track::after { transition: none; }
}
@media (prefers-reduced-transparency: reduce) {
  .profile-layout > .profile-settings-card:last-child { background: var(--mc-surface); }
}
@media (forced-colors: active) {
  .focus-settings-switch-track { background: Canvas; border-color: ButtonText; }
  .focus-settings-switch-track::after { background: ButtonText; }
  .focus-settings-switch input:checked + .focus-settings-switch-track { background: Highlight; border-color: Highlight; }
  .focus-settings-switch input:checked + .focus-settings-switch-track::after { background: HighlightText; }
}

/* Music uses the same glass tokens as floating MindCoda controls. Provider
   artwork, metadata, progress and playback stay in the real embedded player. */
.focus-music-card.mc-glass-standard {
  position: relative;
  isolation: isolate;
  gap: var(--mc-space-3);
  border-color: var(--mc-glass-border);
  background: linear-gradient(145deg, var(--mc-glass-highlight), transparent 42%), var(--mc-glass-standard);
  box-shadow: var(--mc-shadow-card), inset 0 1px 0 var(--mc-glass-highlight), inset 0 -1px 0 color-mix(in srgb, var(--mc-blue) 10%, transparent);
  -webkit-backdrop-filter: saturate(145%) blur(var(--mc-glass-blur-standard));
  backdrop-filter: saturate(145%) blur(var(--mc-glass-blur-standard));
}
.focus-music-card .eyebrow { color: var(--mc-text-secondary); font-size: var(--mc-text-xs); }
.focus-music-card .focus-music-actions {
  padding: var(--mc-space-2);
  border: 1px solid var(--mc-glass-border);
  border-radius: var(--mc-radius-large);
  background: var(--mc-glass-subtle);
  box-shadow: var(--mc-shadow-subtle), inset 0 1px 0 var(--mc-glass-highlight);
}
.focus-music-actions .mc-button { flex: 1 1 auto; min-width: 0; }
.focus-music-actions .mc-button:active { transform: translateY(1px); }
.focus-music-actions .is-opening { opacity: .65; cursor: progress; }
.focus-music-card .focus-music-preview {
  border-color: var(--mc-glass-border);
  border-radius: var(--mc-radius-large);
  box-shadow: var(--mc-shadow-subtle), inset 0 1px 0 var(--mc-glass-highlight);
}
.focus-music-card .focus-music-preview iframe { min-height: 450px; }
.focus-music-card .focus-music-limit { line-height: 1.6; }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .focus-music-card.mc-glass-standard { background: var(--mc-surface-elevated); }
}
@media (prefers-reduced-transparency: reduce) {
  .focus-music-card.mc-glass-standard { background: var(--mc-surface-elevated); backdrop-filter: none; -webkit-backdrop-filter: none; }
}
@media (prefers-reduced-motion: reduce) {
  .focus-music-card .mc-button { transition: none; transform: none; }
}
/* MindCoda Maps: restrained local previews and five-action mobile toolbar. */
.mind-map-template-preview { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:16px; border:1px solid var(--border, #8da8a833); border-radius:18px; }
.mind-map-template-preview strong { grid-column:1/-1; text-align:center; color:var(--accent, #176d61); }
.mind-map-template-preview span { padding:8px; border-radius:10px; background:var(--surface, #8da8a812); font-size:.82rem; text-align:center; }
.mind-map-template h3 { margin:16px 0 6px; }
.mind-map-templates > summary { cursor:pointer; min-height:44px; font-weight:650; padding:12px 0; }
.mind-map-toolbar { display:flex; flex-wrap:wrap; gap:8px; }
.mind-map-toolbar > .mc-button, .mind-map-toolbar > details > summary { min-height:44px; }
.mind-map-workspace > input[type=search] { width:100%; min-height:44px; padding:12px 16px; border-radius:16px; color:inherit; background:var(--surface); border:1px solid var(--border); }
.mind-map-progress details > .mc-button { display:flex; width:100%; text-align:left; min-height:44px; }
.mind-map-node:focus-visible rect { stroke-width:4px; }
@media(max-width:600px) { .mind-map-toolbar { gap:4px; } .mind-map-toolbar > .mc-button { flex:1; padding:10px 5px; font-size:.8rem; } .mind-map-toolbar > details > summary { padding:10px 8px; } }
@media(prefers-reduced-motion:reduce) { .mind-map-node, .mind-map-workspace * { transition:none!important; animation:none!important; } }
/* Calendar controls extend the established glass surfaces. */
.plan-view-controls { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0 0 18px; }
.plan-view-controls .mc-button { min-height:44px; }
.plan-view-controls .is-selected { background:var(--accent-soft,rgba(28,164,139,.16)); box-shadow:inset 0 0 0 1px currentColor; }
.plan-undo { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 14px; margin-bottom:14px; border-radius:16px; background:var(--surface,rgba(255,255,255,.9)); }
.plan-undo[hidden] { display:none; }
.plan-overview-day { display:flex; flex-direction:column; gap:6px; padding:12px 8px; border-bottom:1px solid var(--line,rgba(100,120,140,.18)); }
.plan-overview-day small { color:var(--muted); font-size:.8rem; }
.plan-month-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; }
.plan-month-grid .plan-overview-day { border:0; padding:4px 0; min-width:0; }
.plan-month-grid small { font-size:.65rem; text-align:center; overflow-wrap:anywhere; }
.plan-quick-form { display:flex; flex-direction:column; gap:16px; max-height:85dvh; overflow-y:auto; width:min(100%,540px); }
.plan-quick-input { min-height:48px; width:100%; border:1px solid var(--line,rgba(100,120,140,.25)); border-radius:14px; padding:12px; background:var(--surface,#fff); color:var(--text,#152342); font:inherit; }
.plan-quick-preview details > div { display:grid; gap:12px; padding-top:12px; }
.plan-quick-preview select { min-height:44px; font:inherit; max-width:100%; }
.plan-quick-preview summary, .planner-overdue summary { min-height:44px; display:flex; align-items:center; cursor:pointer; font-weight:600; }
@media (max-width:600px) { .plan-view-controls > :last-child { margin-left:auto; } .planner-row-actions { flex-wrap:wrap; } .plan-quick-form { padding:20px; } }
@media (prefers-reduced-motion:reduce) { .plan-view-controls *, .plan-overview-day * { transition:none!important; } }

/* Frequent study actions belong above the content, with independent tap targets. */
.home-planning-actions { display:flex; gap:10px; margin:0 0 20px; flex-wrap:wrap; }
.home-planning-actions > button { min-height:48px; flex:1 1 150px; }
.planning-mode-option { display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; min-height:72px; padding:18px; margin-top:12px; text-align:start; color:var(--mc-ink); background:var(--mc-surface); border:1px solid var(--mc-glass-border); border-radius:20px; }
.planning-mode-option span { display:grid; gap:4px; }
.planning-mode-option strong { font-size:1rem; font-weight:650; }
.planning-mode-option small { color:var(--mc-ink-secondary); line-height:1.4; }
.planning-mode-option svg { width:20px; height:20px; flex-shrink:0; }
.planning-choice { display:flex; gap:10px; flex-wrap:wrap; border:0; padding:16px 0 0; margin:0; }
.planning-choice legend { font-weight:600; padding-top:16px; }
.planning-choice legend small { font-weight:400; color:var(--mc-ink-secondary); }
.planning-choice button { flex:1 1 160px; min-height:48px; }
.task-more-details { border-top:1px solid var(--mc-glass-border); margin-top:6px; }
.task-more-details summary { min-height:44px; padding:12px 0; cursor:pointer; font-weight:600; }
/* Both optional groups use the same native disclosure. */
#planner-task-form .task-more-details {
  border: 1px solid var(--mc-line-strong);
  border-radius: 16px;
  background: color-mix(in srgb, var(--mc-surface) 96%, var(--mc-ink));
}
#planner-task-form .task-options-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  min-height: 48px;
  list-style: none;
  border-radius: 15px;
}
.task-options-heading::-webkit-details-marker { display: none; }
.task-options-heading > span { flex: 1; }
.task-options-heading > small {
  color: var(--mc-ink-secondary);
  font-size: .8rem;
  font-weight: 500;
}
details[open] > .task-options-heading > small { display: none; }
.task-options-heading::after, .task-select-wrap::after {
  content: "";
  width: 7px;
  height: 7px;
  border: solid currentColor;
  border-width: 0 1.5px 1.5px 0;
  transform: rotate(45deg);
  flex: none;
}
details[open] > .task-options-heading::after { transform: rotate(225deg); }
.task-options-fields {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr));
  gap: 14px;
  padding: 4px 16px 16px;
  align-items: start;
}
.task-options-fields .task-course-field { grid-column: 1 / -1; }
.task-options-fields .mc-input { min-width: 0; align-content: start; gap: 6px; }
.task-options-fields .task-select-wrap { position: relative; display: block; }
.task-select-wrap::after {
  position: absolute;
  right: 16px;
  top: calc(50% - 5px);
  pointer-events: none;
}
#planner-task-form .task-options-fields :is(select, input) {
  appearance: none;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: 46px;
  min-height: 46px;
  margin: 0;
  padding: 0 12px;
  border: 1px solid var(--mc-line-strong);
  border-radius: 10px;
  background: var(--mc-surface);
  color: var(--mc-ink);
  font: inherit;
  font-size: 1rem;
  font-weight: 500;
}
#planner-task-form .task-select-wrap select { padding-right: 36px; text-overflow: ellipsis; }
#planner-task-form :is(.task-options-heading, .task-options-fields select, .task-options-fields input):focus-visible {
  outline: 2px solid var(--mc-blue);
  outline-offset: 2px;
}
.task-options-fields [data-task-duration]:empty { display: none; }
#planner-task-form > .mc-input { min-width: 0; gap: 6px; }
#planner-task-form > .mc-input input {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 46px;
  padding: 10px 12px;
  border-radius: 10px;
}
#planner-task-form .planner-form__note:empty {
  position: absolute;
  width: 1px;
  height: 1px;
  min-height: 0;
  overflow: hidden;
}
#planner-task-form .planner-form__actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  gap: 10px;
  margin: 0;
}
#planner-task-form .planner-form__actions button { border-radius: 12px; }
#planner-task-form .task-plan-details { margin-top: 0; }
.task-schedule-choices {
  display: grid;
  gap: 8px;
  padding: 0 16px 16px;
}
.task-schedule-choices p {
  margin: 0 0 4px;
  color: var(--mc-ink-secondary);
  font-size: .875rem;
}
.task-schedule-choices button {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  min-height: 48px;
  border: 1px solid var(--mc-line-strong);
  border-radius: 10px;
  color: var(--mc-ink);
  background: var(--mc-surface);
  text-align: start;
  font: inherit;
  cursor: pointer;
}
.task-schedule-choices svg {
  flex: none;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  color: var(--mc-ink-secondary);
}
.task-schedule-choices button span { display: grid; gap: 2px; }
.task-schedule-choices strong { font-size: .95rem; }
.task-schedule-choices small { color: var(--mc-ink-secondary); font-size: .8rem; }
.task-schedule-choices button:enabled:hover { border-color: var(--mc-blue); }
.task-schedule-choices button:disabled { opacity: .65; cursor: wait; }
#planner-task-form :is(button, input):focus-visible {
  outline: 2px solid var(--mc-blue);
  outline-offset: 2px;
}
.planner-task-form .field-help { display:none; }

/* Scheduling sheets share the task form's field rhythm and quiet secondary actions. */
#planner-availability-form, .planner-suggestions-sheet { gap: 14px; }
#planner-availability-form .availability-presets,
#planner-suggestions-sheet .planner-suggestion {
  padding: 12px 16px;
  border: 1px solid var(--mc-line-strong);
  border-radius: 16px;
  background: color-mix(in srgb, var(--mc-surface) 96%, var(--mc-ink));
}
#planner-availability-form .availability-presets legend { padding-inline: 5px; }
#planner-availability-form .availability-preset { min-height: 44px; border-radius: 10px; }
#planner-availability-form input, .study-block-options input {
  min-width: 0; width: 100%; box-sizing: border-box; min-height: 46px; border-radius: 10px;
}
#planner-availability-form .availability-protection-note {
  border: 0; background: transparent; margin: 0; padding: 0; align-items: baseline;
}
#planner-availability-form .availability-protection-note svg { align-self: center; }
#planner-suggestions-sheet .planner-suggestion { grid-template-columns: 1fr; gap: 4px; }
#planner-suggestions-sheet .planner-suggestion strong { font-size: 1rem; overflow-wrap: anywhere; }
.study-block-options summary { width: fit-content; min-height: 44px; align-content: center; cursor: pointer; color: var(--mc-ink-secondary); font-size: .875rem; }
.study-block-options p { margin: 0 0 8px; font-size: .875rem; color: var(--mc-ink-secondary); }
.study-block-options .planner-row-actions { justify-content: start; flex-wrap: wrap; gap: 6px; }
.study-block-options .planner-row-actions button, .study-block-options .planner-suggestion-editor button {
  min-height: 44px; padding-inline: 12px; border-radius: 10px;
}
.study-block-options .planner-suggestion-editor { grid-template-columns: repeat(2,minmax(0,1fr)); }
.study-block-options .planner-suggestion-editor label { display: grid; gap: 4px; font-size: .85rem; }
.study-block-options .planner-suggestion-editor button { grid-column: 1/-1; }
:is(#planner-availability-form, #planner-suggestions-sheet) .planner-form__actions button { min-height: 46px; border-radius: 12px; }
:is(#planner-availability-form, #planner-suggestions-sheet) :is(button, input, summary):focus-visible {
  outline: 2px solid var(--mc-blue); outline-offset: 2px;
}
:is(#planner-availability-form, #planner-suggestions-sheet) .planner-form__note:empty {
  position: absolute; width: 1px; height: 1px; min-height: 0; overflow: hidden;
}
#planner-suggestions-sheet [hidden] { display: none; }
#planner-suggestions-sheet .planner-form__actions, #planner-availability-form .planner-form__actions {
  display: grid; grid-auto-columns: minmax(0,1fr); grid-auto-flow: column; align-items: stretch;
}
@media (max-width: 440px) {
  #planner-suggestions-sheet .planner-form__actions { grid-auto-flow: row; }
}
.focus-music-card .focus-brainfm-card {
  margin: 12px 0; padding: 14px; border: 1px solid var(--mc-line-strong); border-radius: 14px;
}
.focus-brainfm-header a { min-height: 44px; }
.focus-music-card .focus-brainfm-card .focus-brainfm-handoff { display: block; text-align: start; }
.focus-music-card .focus-brainfm-header { margin: 0; }

/* Tutor shares existing glass surfaces; suggestions remain compact and readable. */
.tutor-next-row { display:flex; align-items:center; gap:12px; padding:12px 0; }
.tutor-next-row + .tutor-next-row { border-top:1px solid var(--border,rgba(120,140,150,.22)); }
.tutor-next-row > div { flex:1; min-width:0; }
.tutor-next-row .mc-button--text { text-align:left; justify-content:flex-start; white-space:normal; min-height:44px; padding-left:0; line-height:1.35; }
.tutor-next-row .small-print { margin:0; line-height:1.5; }
.tutor-next-row > button { min-width:44px; min-height:44px; flex-shrink:0; }
.tutor-next-actions h2 { margin-bottom:0; }

.tutor-source-list summary { min-height:44px; display:flex; align-items:center; cursor:pointer; font-weight:600; }
.tutor-source-list section { padding-block:12px; border-top:1px solid var(--border); }
.tutor-source-list small { display:block; }
.tutor-source-list p { white-space:pre-wrap; overflow-wrap:anywhere; max-height:22rem; overflow:auto; }

.tutor-more-actions summary,.tutor-next-row summary { min-height:44px; display:flex; align-items:center; cursor:pointer; }

/* Tutor keeps the next action, chosen course and composer close together. */
.tutor-introduction h2 { margin-bottom:8px; }
.tutor-introduction-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.tutor-introduction .mc-button { white-space:normal; min-height:44px; }
.tutor-context-options { grid-column:1 / -1; }
.tutor-context-options > summary { min-height:44px; display:flex; align-items:center; cursor:pointer; font-weight:600; }
.tutor-context-options .mc-input { margin-top:12px; }
@media (max-width:700px) {
 .ai-tutor-sidebar { display:contents; }
 .ai-tutor-layout > .ai-conversation-card { order:2; min-height:0; }
 .ai-tutor-sidebar > .tutor-next-actions { order:0; }
 .ai-tutor-sidebar > .ai-context-card { order:1; }
 .ai-tutor-sidebar > .ai-history-card { order:3; display:block; }
 .ai-tutor-sidebar > .ai-prompt-card { order:4; }
 .ai-tutor-sidebar > [data-tutor-jobs] { order:5; }
 .ai-context-card--premium { display:block; }
 .ai-source-links { gap:8px; margin-bottom:14px; }
 .ai-source-links small { display:none; }
}
@media (max-width:360px) { .tutor-introduction-actions { grid-template-columns:1fr; } }

.ai-tutor-status:empty { display:none; }
.ai-message-list:empty { min-height:0; padding-block:0; }
.ai-empty-conversation { min-height:0; padding-block:14px; }
.ai-conversation-card:not(:has(.ai-message)) .ai-message-list { min-height:0; max-height:none; }
@media (max-width:700px) {
 .ai-tutor-sidebar > .ai-context-card { order:0; }
 .ai-tutor-layout > .ai-conversation-card { order:1; }
 .ai-tutor-sidebar > .tutor-next-actions { order:2; }
 .ai-composer { padding:16px; }
 .ai-verify-note { padding-block:10px; font-size:.75rem; }
 .ai-conversation-header { padding-block:16px; }
 .ai-source-links small { display:block; }
}
.ai-conversation-card:not(:has(.ai-message)) { min-height:0; grid-template-rows:auto auto auto auto; }

/* Empty Tutor stays compact; the input takes precedence over decoration. */
.ai-conversation-card:not(:has(.ai-message)) .ai-message-list { padding:0; }
.ai-conversation-card:not(:has(.ai-message)) .ai-empty-conversation { display:none; }
.ai-conversation-card:not(:has(.ai-message)) .ai-conversation-header .eyebrow { display:none; }
.ai-conversation-card:not(:has(.ai-message)) .ai-verify-note { grid-row:4; padding-bottom:12px; }
.ai-conversation-card:not(:has(.ai-message)) .ai-composer { grid-row:3; margin-top:12px; }
@media(max-width:700px) {
 .ai-context-card--premium { padding:16px 20px; gap:8px; }
 .ai-context-card--premium .ai-card-intro { display:none; }
 .ai-conversation-header { padding:16px 20px; }
 .ai-conversation-header h2 { font-size:1.2rem; letter-spacing:-.025em; }
 .ai-conversation-header .ai-orb { display:none; }
 .ai-composer textarea { min-height:70px; }
}
.ai-tutor-layout > .ai-conversation-card:not(:has(.ai-message)) {
 height:auto; min-height:0; padding:0; align-content:start; grid-template-rows:auto auto auto; gap:12px;
}
.ai-tutor-layout > .ai-conversation-card:not(:has(.ai-message)) .ai-message-list { display:none; }
.ai-tutor-layout > .ai-conversation-card:not(:has(.ai-message)) .ai-composer { grid-row:2; margin-top:0; }
.ai-tutor-layout > .ai-conversation-card:not(:has(.ai-message)) .ai-verify-note { grid-row:3; margin-bottom:8px; }

/* Keep navigation crisp without delaying any study action. */
.app-view.is-active{animation:view-in 180ms ease-out both}
@media(prefers-reduced-motion:reduce){.app-view.is-active{animation:none!important}}

/* Notes reuses the existing account-owned note editor and external documents. */
.notes-document-tools { display: grid; gap: 20px; }
.notes-document-tools__heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.notes-document-tools__heading h2 { margin: 5px 0 0; font-size: var(--mc-text-xl); }
.notes-document-tools__heading > svg { width: 26px; height: 26px; color: var(--mc-ink-secondary); flex: 0 0 auto; }
.notes-document-tools__providers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.notes-document-provider { display: flex; align-items: center; gap: 12px; min-height: 88px; padding: 16px; border: 1px solid var(--mc-glass-border); border-radius: var(--mc-radius-md); color: var(--mc-ink); background: var(--mc-glass-standard); box-shadow: var(--mc-shadow-subtle); text-decoration: none; }
.notes-document-provider:hover { border-color: var(--mc-line-strong); background: var(--mc-surface); }
.notes-document-provider:focus-visible { outline: 3px solid var(--mc-blue); outline-offset: 3px; }
.notes-document-provider__icon { display: grid; place-items: center; flex: 0 0 auto; width: 42px; height: 48px; border: 1px solid var(--mc-line); border-radius: 10px; color: var(--mc-blue); background: var(--mc-surface); font-size: var(--mc-text-lg); font-weight: 800; }
.notes-document-provider > span:nth-child(2) { display: grid; gap: 4px; min-width: 0; }
.notes-document-provider strong { font-size: var(--mc-text-sm); }
.notes-document-provider small { color: var(--mc-ink-secondary); font-size: var(--mc-text-xs); }
.notes-document-provider > span:last-child { margin-left: auto; color: var(--mc-ink-secondary); }
.notes-document-tools__footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.notes-document-tools__footer p { margin: 0; color: var(--mc-ink-secondary); font-size: var(--mc-text-sm); line-height: 1.5; }
.notes-document-tools__footer .mc-button { flex-shrink: 0; min-height: 44px; }
.notes-document-tools > .small-print { margin: 0; padding-top: 16px; border-top: 1px solid var(--mc-line); }
.notes-library-card { display: grid; gap: 20px; }
@media (max-width: 640px) { .notes-document-provider { padding: 12px; gap: 8px; }.notes-document-provider__icon { display: none; }.notes-document-tools__footer { align-items: stretch; flex-direction: column; }.notes-document-tools__footer .mc-button { width: 100%; } }


/* Source: marketing-harmony-v1.css */
/* Public MindCoda surfaces. Existing app theme and account state stay separate. */
body.is-marketing {
  color-scheme: dark;
  --mc-ink: #f4f6ff;
  --mc-ink-secondary: #b9c4dc;
  --mc-teal: #a1eed1;
  --mc-on-accent: #ffffff;
  --mc-blue: #9eb9ff;
  --mc-deep-blue: #121e49;
  --mc-surface: #142039;
  --mc-pearl: #0b1225;
  --mc-mint: #a1eed1;
  --mc-cream: #c9dfff;
  --mc-line: rgba(184, 204, 255, .15);
  --mc-line-strong: rgba(184, 204, 255, .3);
  --mc-glass-subtle: rgba(25, 38, 65, .6);
  --mc-glass-standard: rgba(27, 40, 68, .78);
  --mc-glass-strong: #16223b;
  --mc-glass-border: rgba(197, 213, 255, .18);
  --mc-glass-highlight: rgba(225, 236, 255, .1);
  --mc-shadow-subtle: 0 8px 24px rgba(2, 6, 19, .16);
  --mc-shadow-elevated: 0 20px 48px rgba(2, 6, 19, .24);
  --mc-shadow-sheet: 0 24px 70px rgba(2, 6, 19, .42);
  --mc-success: #a1eed1;
  --mc-danger: #ffbac7;
  --mc-danger-surface: #48202a;
  --mc-warning: #f8d878;
  --mc-warning-surface: #463a12;
  --mc-background: #0b1225;
  --mc-marketing-primary: linear-gradient(120deg, #3867e8, #6552d7);
  --mc-marketing-canvas: #0b1225;
  --mc-marketing-card: #142039;
  --mc-marketing-selected: rgba(113, 140, 240, .22);
  background: var(--mc-marketing-canvas);
}

body.is-marketing .marketing-page {
  color: var(--mc-ink);
  background: radial-gradient(ellipse at 85% 8%, rgba(65, 95, 138, .15), transparent 30%),
    radial-gradient(ellipse at 5% 25%, rgba(39, 107, 119, .1), transparent 26%), var(--mc-marketing-canvas);
}
body.is-marketing .marketing-page > :not(.welcome-phase) { opacity: 1; transform: none; }
body.is-marketing .marketing-nav { min-height: 88px; gap: 20px; }
body.is-marketing .brand { color: var(--mc-ink); }
body.is-marketing .brand-icon { width: 38px; height: 38px; box-shadow: 0 5px 18px rgba(0, 0, 0, .2); }
body.is-marketing .marketing-signin {
  min-height: 44px; padding: 9px 19px; border: 1px solid var(--mc-line);
  border-radius: var(--mc-radius-pill); color: var(--mc-ink); background: rgba(166, 189, 241, .06);
  box-shadow: inset 0 1px 0 var(--mc-glass-highlight);
  transition: background 180ms ease, border-color 180ms ease;
}
body.is-marketing .marketing-signin:hover { border-color: var(--mc-line-strong); color: var(--mc-ink); background: rgba(166, 189, 241, .12); }
body.is-marketing .marketing-landing {
  grid-template-columns: minmax(0, 1.06fr) minmax(340px, .88fr);
  column-gap: clamp(32px, 5vw, 72px); row-gap: 40px;
  min-height: 0; padding-block: clamp(40px, 5vw, 72px) 48px;
}
body.is-marketing .marketing-hero--landing { max-width: 680px; padding: 0; }
body.is-marketing .marketing-hero--landing::before { display: none; }
body.is-marketing .marketing-hero--landing h1 {
  margin: 18px 0 24px; color: var(--mc-ink); font-size: clamp(4rem, 7.1vw, 6.4rem);
  letter-spacing: -.055em; line-height: .99;
}
body.is-marketing .marketing-hero--landing h1 em { color: #b9eedb; letter-spacing: -.045em; }
body.is-marketing .marketing-hero--landing > p:not(.eyebrow):not(.marketing-note) {
  max-width: 49ch; color: var(--mc-ink-secondary); font-size: 1.125rem; line-height: 1.65;
}
body.is-marketing .eyebrow { color: #a1eed1; font-size: .75rem; letter-spacing: .16em; }
body.is-marketing .marketing-actions { gap: 16px; margin-top: 28px; flex-wrap: wrap; }
body.is-marketing .mc-button--primary {
  min-height: 54px; border-color: rgba(186, 199, 255, .25); color: #fff;
  background: var(--mc-marketing-primary); box-shadow: 0 8px 24px rgba(31, 49, 140, .24), inset 0 1px 0 rgba(255, 255, 255, .16);
}
body.is-marketing .mc-button--primary:hover:not(:disabled) {
  color: #fff; background: linear-gradient(120deg, #3d6be4, #6c58d9);
  box-shadow: 0 12px 28px rgba(31, 49, 140, .3), inset 0 1px 0 rgba(255, 255, 255, .2);
}
body.is-marketing .mc-button:active:not(:disabled), body.is-marketing .marketing-signin:active { transform: translateY(1px); box-shadow: inset 0 2px 6px rgba(0, 0, 0, .15); }
body.is-marketing .mc-button:disabled { opacity: .5; cursor: not-allowed; transform: none; }
body.is-marketing .mc-button[aria-busy="true"] { cursor: wait; }
body.is-marketing .mc-button--secondary { color: var(--mc-ink); background: var(--mc-glass-standard); border-color: var(--mc-line-strong); }
body.is-marketing .marketing-explore { color: #d5def4; min-height: 44px; padding-inline: 4px; font-size: .875rem; }
body.is-marketing .marketing-explore:hover { color: #a1eed1; }
body.is-marketing .marketing-cta svg, body.is-marketing .marketing-explore svg { display: none; }
body.is-marketing :is(button, a, input, [role="tabpanel"]):focus-visible { outline: 3px solid #a1eed1; outline-offset: 4px; }
body.is-marketing .skip-link { color: #081b20; background: #a1eed1; }
body.is-marketing .marketing-today-preview {
  width: min(100%, 405px); margin-top: 24px; padding: 18px 20px;
  border: 1px solid var(--mc-line); border-radius: var(--mc-radius-md);
  background: rgba(21, 34, 57, .75); box-shadow: inset 0 1px 0 var(--mc-glass-highlight);
}
body.is-marketing .marketing-today-preview__head .eyebrow { font-size: .75rem; }
body.is-marketing .marketing-today-preview__sample { font-size: .75rem; }
body.is-marketing .marketing-today-preview__body span { font-size: .875rem; }
body.is-marketing .marketing-today-preview__body small { font-size: .8125rem; color: #a1eed1; }
body.is-marketing .marketing-today-preview__ring { background: conic-gradient(#a1eed1 0 37%, #2e3d59 37% 100%); }
body.is-marketing .marketing-today-preview__ring span { background: #152239; }
body.is-marketing .marketing-note { color: #b9c4dc; font-size: .8125rem; }

/* The existing hero preview now shows small, clearly labeled student moments. */
body.is-marketing .marketing-motion {
  display: grid; opacity: 1; transform: none; gap: 20px; padding: 24px;
  border: 1px solid rgba(186, 205, 255, .22); border-radius: var(--mc-radius-xl);
  color: var(--mc-ink); background: linear-gradient(145deg, rgba(34, 47, 78, .9), rgba(20, 31, 53, .95));
  box-shadow: var(--mc-shadow-elevated), inset 0 1px 0 rgba(227, 237, 255, .12);
  backdrop-filter: none; -webkit-backdrop-filter: none; animation: none;
}
body.is-marketing .marketing-motion::before { display: none; }
.mc-preview-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.mc-preview-heading > span { color: #b9c4dc; font-size: .75rem; }
.mc-preview-scene { position: relative; overflow: hidden; margin: 0; border-radius: 18px; background: #17253b; }
.mc-preview-scene img { display: block; width: 100%; height: 166px; object-fit: cover; object-position: 50% 52%; }
.mc-preview-scene figcaption {
  position: absolute; inset: auto 0 0; padding: 24px 18px 14px;
  color: #fff; background: linear-gradient(transparent, rgba(7, 14, 25, .95));
  font-family: var(--mc-font-serif); font-size: 1.375rem; font-style: italic; line-height: 1.3;
}
.mc-preview-tabs {
  position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px;
  padding: 4px; border: 1px solid var(--mc-line); border-radius: 16px; background: rgba(7, 15, 32, .5);
  box-shadow: inset 0 1px 0 var(--mc-glass-highlight);
}
.mc-preview-tabs::before {
  position: absolute; inset: 4px auto 4px 4px; width: calc((100% - 16px) / 3);
  border: 1px solid rgba(169, 188, 255, .22); border-radius: 12px;
  background: linear-gradient(135deg, rgba(76, 112, 217, .38), rgba(67, 105, 159, .3));
  content: ""; pointer-events: none; transform: translateX(calc(var(--mc-preview-index, 0) * (100% + 4px)));
  transition: transform 180ms var(--mc-ease-standard);
}
.mc-preview-tabs[data-selected="1"] { --mc-preview-index: 1; }
.mc-preview-tabs[data-selected="2"] { --mc-preview-index: 2; }
.mc-preview-tabs button {
  position: relative; z-index: 1; min-height: 44px; padding: 10px 8px;
  border: 0; border-radius: 12px; color: #b9c4dc; background: transparent; font-size: .875rem; font-weight: 700;
}
.mc-preview-tabs button[aria-selected="true"] { color: #fff; }
.mc-preview-tabs button:hover { color: #fff; }
.mc-preview-panels { min-height: 205px; }
.mc-preview-panel { display: grid; align-content: start; gap: 16px; }
.mc-preview-panel h2 { margin: 0; color: #f4f6ff; font-size: 1.125rem; letter-spacing: -.025em; line-height: 1.4; }
.mc-preview-panel > p { margin: 0; color: #b9c4dc; font-size: .875rem; line-height: 1.55; }
.mc-preview-plan { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.mc-preview-plan li { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 12px; padding-block: 12px; border-top: 1px solid var(--mc-line); }
.mc-preview-plan time { color: #a8bcf1; font-size: .8125rem; font-variant-numeric: tabular-nums; }
.mc-preview-plan li > div { display: grid; gap: 3px; }
.mc-preview-plan strong { color: #f4f6ff; font-size: .875rem; font-weight: 650; }
.mc-preview-plan small { color: #b9c4dc; font-size: .8125rem; }
.mc-preview-plan .mc-preview-break strong { color: #a1eed1; }
.mc-preview-focus { display: flex; align-items: center; gap: 20px; padding: 16px; border: 1px solid var(--mc-line); border-radius: 18px; background: rgba(8, 17, 36, .35); }
.mc-preview-focus > span { display: grid; width: 86px; height: 86px; flex: 0 0 auto; place-items: center; border: 3px solid #384567; border-top-color: #a1eed1; border-right-color: #a1eed1; border-radius: 50%; color: #fff; font-size: 1.5rem; font-weight: 650; font-variant-numeric: tabular-nums; }
.mc-preview-focus > div { display: grid; gap: 5px; }
.mc-preview-focus strong, .mc-preview-note strong { color: #f4f6ff; font-size: .875rem; }
.mc-preview-focus small, .mc-preview-note span { color: #b9c4dc; font-size: .8125rem; line-height: 1.5; }
.mc-preview-note { display: grid; gap: 8px; padding: 16px; border: 1px solid var(--mc-line); border-radius: 18px; background: rgba(8, 17, 36, .35); }
.mc-preview-note .mc-preview-note__label { color: #98c3ff; font-size: .75rem; font-weight: 700; letter-spacing: .06em; }

body.is-marketing .marketing-steps { gap: 24px; }
body.is-marketing .marketing-steps article { padding-block: 20px; }
body.is-marketing .marketing-steps span { color: #a1eed1; font-size: .75rem; }
body.is-marketing .marketing-steps h2 { font-size: 1.125rem; line-height: 1.4; }
body.is-marketing .marketing-steps p { font-size: .9375rem; line-height: 1.6; }
body.is-marketing .marketing-product { padding-block: 80px 72px; scroll-margin-top: 24px; }
body.is-marketing .marketing-product__intro { align-items: center; gap: 40px; }
body.is-marketing .marketing-product__intro h2,
body.is-marketing .marketing-platforms h2,
body.is-marketing .marketing-bridge h2 { font-size: clamp(2.25rem, 4.5vw, 3.75rem); line-height: 1.06; letter-spacing: -.05em; }
body.is-marketing .marketing-product__intro > p { font-size: 1.0625rem; line-height: 1.65; }
body.is-marketing .marketing-feature-grid { gap: 16px; }
body.is-marketing .marketing-feature {
  min-height: 250px; gap: 16px; padding: 28px; border: 1px solid var(--mc-line); border-radius: var(--mc-radius-lg);
  color: var(--mc-ink); background: var(--mc-marketing-card); box-shadow: inset 0 1px 0 rgba(227, 237, 255, .06);
  backdrop-filter: none; -webkit-backdrop-filter: none;
}
body.is-marketing .marketing-feature--wide { min-height: 190px; gap: 20px; }
body.is-marketing .marketing-feature h3 { font-size: clamp(1.375rem, 2vw, 1.75rem); line-height: 1.2; letter-spacing: -.035em; }
body.is-marketing .marketing-feature p:not(.eyebrow) { font-size: 1rem; line-height: 1.6; }
body.is-marketing .marketing-feature__icon { width: 44px; height: 44px; border-radius: 14px; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08); }
body.is-marketing .marketing-feature__icon--blue { color: #a8bdff; background: rgba(91, 119, 209, .18); }
body.is-marketing .marketing-feature__icon--mint { color: #a1eed1; background: rgba(94, 174, 150, .15); }
body.is-marketing .marketing-feature__icon--cream { color: #b0d1ff; background: rgba(83, 133, 204, .17); }
body.is-marketing .marketing-feature__icon--teal { color: #a1eed1; background: rgba(94, 174, 150, .15); }
body.is-marketing .marketing-feature ul { font-size: .9375rem; gap: 12px; }
body.is-marketing .marketing-feature li::before { width: 5px; height: 5px; box-shadow: none; }
body.is-marketing .marketing-rhythm { border-color: var(--mc-line); background: #101b30; border-radius: 18px; }
body.is-marketing .marketing-rhythm span { font-size: .75rem; color: #b9c4dc; }
body.is-marketing .marketing-rhythm i { background: linear-gradient(#a1eed1, #3b947e); }
body.is-marketing .marketing-rhythm i:nth-of-type(4) { background: linear-gradient(#a8bdff, #6364d4); }
body.is-marketing .marketing-platforms { padding-block: 48px 80px; }
body.is-marketing .marketing-platforms h2 em { color: #b9eedb; }
body.is-marketing .marketing-platforms__copy > p:not(.eyebrow) { font-size: 1.0625rem; line-height: 1.65; }
body.is-marketing .platform-availability { border-color: var(--mc-line); color: var(--mc-ink); background: #142039; box-shadow: inset 0 1px 0 var(--mc-glass-highlight); }
body.is-marketing .platform-availability strong { color: #f4f6ff; }
body.is-marketing .platform-availability span { color: #b9c4dc; font-size: .9375rem; }
body.is-marketing .platform-availability small { color: #b9c4dc; font-size: .875rem; line-height: 1.6; }
/* The public page uses the same quiet edge light and layered glass material
   as the workspace, without adding blur layers to every scrolling card. */
body.is-marketing :is(.marketing-feature,.platform-availability,.marketing-today-preview) {
  border-color:rgba(197,213,255,.18);
  background:linear-gradient(145deg,rgba(32,48,78,.9),rgba(20,32,57,.8));
  box-shadow:0 8px 24px rgba(2,6,19,.1),inset 0 1px 0 rgba(227,237,255,.12);
}
body.is-marketing .marketing-bridge {
  padding: clamp(32px, 5vw, 64px); gap: 48px; border-color: rgba(157, 179, 245, .24);
  border-radius: var(--mc-radius-xl); background: linear-gradient(130deg, #1b2c57, #232d56 57%, #193e42);
  box-shadow: inset 0 1px 0 var(--mc-glass-highlight), var(--mc-shadow-subtle);
}
body.is-marketing .marketing-bridge h2 { color: #fff; }
body.is-marketing .marketing-bridge h2 em { color: #b9eedb; }
body.is-marketing .marketing-bridge__copy > p:not(.eyebrow) { color: #d2dcf0; font-size: 1rem; line-height: 1.65; }
body.is-marketing .marketing-bridge__list > div { padding: 18px; border-color: rgba(199, 213, 255, .18); background: rgba(255, 255, 255, .05); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06); }
body.is-marketing .marketing-bridge__list span { font-size: .8125rem; }
body.is-marketing .marketing-bridge__list strong { font-size: .9375rem; }
body.is-marketing .marketing-bridge__list small { color: #d2dcf0; font-size: .875rem; line-height: 1.5; }
body.is-marketing .marketing-bridge .marketing-cta { color: #0b2524; border-color: #a1eed1; background: #a1eed1; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3); }
body.is-marketing .marketing-bridge .marketing-cta:hover { color: #0b2524; background: #b9f7df; }
body.is-marketing .marketing-footer { gap: 8px 20px; padding-block: 32px; font-size: .8125rem; color: #b9c4dc; }
body.is-marketing .marketing-footer span { color: #b9c4dc; }
body.is-marketing .marketing-footer a { display: inline-flex; align-items: center; min-height: 44px; padding-inline: 4px; }
body.is-marketing .marketing-footer a:hover { color: #a1eed1; }

/* Account entry presentation lives in signin-box-v1.css. */
body.is-public-document { padding-bottom: 0; }
body.is-public-document .legal { max-width: 760px; }
body.is-public-document .legal h1 { line-height: 1.15; }
body.is-public-document .legal p, body.is-public-document .legal li { font-size: 1rem; }
body.is-public-document .legal a { color: #a1eed1; text-decoration: underline; text-underline-offset: 3px; }
body.is-public-document .topbar .text-link, body.is-public-document footer a { display: inline-flex; align-items: center; min-height: 44px; }

@media (max-width: 1000px) and (min-width: 841px) {
  body.is-marketing .marketing-landing { grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr); gap: 28px; }
  body.is-marketing .marketing-hero--landing h1 { font-size: clamp(3.5rem, 6.6vw, 4.6rem); }
  body.is-marketing .marketing-motion { padding: 20px; }
}
@media (max-width: 840px) {
  body.is-marketing .marketing-landing { grid-template-columns: 1fr; gap: 24px; padding-block: 28px 24px; }
  body.is-marketing .marketing-motion { width: 100%; max-width: 650px; }
  body.is-marketing .marketing-product { padding-block: 32px; }
  body.is-marketing .marketing-product__intro { gap: 16px; }
  body.is-marketing .marketing-feature--wide, body.is-marketing .marketing-feature--progress { grid-template-columns: auto minmax(0, 1fr); }
  body.is-marketing .marketing-bridge { gap: 28px; }
}
@media (max-width: 640px) {
  body.is-marketing .marketing-nav { min-height: 76px; }
  body.is-marketing .marketing-nav .brand span { display: inline; font-size: 1rem; }
  body.is-marketing .marketing-signin { padding-inline: 14px; }
  body.is-marketing .marketing-landing { padding-top: 20px; gap: 24px; }
  body.is-marketing .marketing-hero--landing h1 { font-size: clamp(2.875rem, 12vw, 4.1rem); margin-block: 16px 22px; }
  body.is-marketing .marketing-hero--landing > p:not(.eyebrow):not(.marketing-note) { font-size: 1rem; line-height: 1.65; }
  body.is-marketing .marketing-actions { gap: 8px; margin-top: 24px; }
  body.is-marketing .marketing-explore { justify-content: flex-start; }
  body.is-marketing .marketing-motion { display: grid; gap: 14px; padding: 18px; border-radius: 24px; }
  .mc-preview-scene img { height: 120px; }
  .mc-preview-heading > span { font-size: .75rem; }
  .mc-preview-heading .eyebrow { font-size: .6875rem; letter-spacing: .1em; }
  .mc-preview-panels { min-height: 0; }
  .mc-preview-panel { gap: 12px; }
  .mc-preview-focus { gap: 12px; padding: 14px; }
  .mc-preview-focus > span { width: 74px; height: 74px; font-size: 1.25rem; }
  body.is-marketing .marketing-product__intro h2,
  body.is-marketing .marketing-platforms h2,
  body.is-marketing .marketing-bridge h2 { font-size: clamp(2.125rem, 9.5vw, 3.2rem); }
  body.is-marketing .marketing-product { padding-block: 28px; }
  body.is-marketing .marketing-feature { min-height: 0; gap: 12px; padding: 20px; }
  body.is-marketing .marketing-feature :is(h3,p,ul) { margin: 0; }
  body.is-marketing .marketing-feature p:not(.eyebrow) { line-height: 1.55; }
  body.is-marketing .marketing-feature--wide, body.is-marketing .marketing-feature--progress { grid-template-columns: 1fr; }
  body.is-marketing .marketing-feature h3 { font-size: 1.375rem; line-height: 1.25; }
  body.is-marketing .marketing-feature-grid { gap: 14px; }
  body.is-marketing .marketing-platforms { padding-block: 24px 32px; gap: 20px; }
  body.is-marketing .marketing-bridge { padding: 24px 20px; gap: 24px; }
  body.is-marketing .study-sample__card label { margin-top: 16px; }
  body.is-marketing .study-sample__answers { margin-block: 16px; }
  body.is-marketing .marketing-footer { padding-top: 24px; }
}
@media (max-width: 360px) {
  body.is-marketing .marketing-motion { padding: 16px; }
  body.is-marketing .marketing-today-preview { padding: 16px; }
  body.is-marketing .marketing-today-preview__head { align-items: flex-start; gap: 8px; }
  body.is-marketing .marketing-today-preview__head .eyebrow { font-size: .6875rem; }
  body.is-marketing .marketing-hero--landing h1 { font-size: 2.625rem; }
}
@media (prefers-reduced-motion: reduce) {
  body.is-marketing *, body.is-marketing *::before, body.is-marketing *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media (prefers-reduced-transparency: reduce) {
  body.is-marketing .marketing-motion, body.is-marketing .marketing-today-preview { background: #142039; }
}
@media (forced-colors: active) {
  .mc-preview-tabs::before { background: Highlight; border-color: Highlight; }
  .mc-preview-tabs button[aria-selected="true"] { color: HighlightText; }
  body.is-marketing :is(button, a, input, [role="tabpanel"]):focus-visible { outline-color: Highlight; }
}

/* A quiet shortcut to the existing server-authorized owner workspace. */
body.is-marketing .marketing-nav__actions .owner-entry {
  display: inline-flex;
  flex: 0 0 44px;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 50%;
  color: var(--mc-ink-secondary);
  background: transparent;
  text-decoration: none;
  transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease;
}
body.is-marketing .owner-entry svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
body.is-marketing .marketing-nav__actions .owner-entry:is(:hover, :focus-visible) {
  color: var(--mc-teal);
  background: var(--mc-surface);
  border-color: var(--mc-line);
}
body.is-marketing .marketing-nav__actions .owner-entry:focus-visible {
  outline: 2px solid var(--mc-teal);
  outline-offset: 3px;
}
@media (forced-colors: active) {
  body.is-marketing .marketing-nav__actions .owner-entry { border-color: ButtonText; }
}

/* Consumer homepage pass: clear study benefit and the existing account-free demo. */
body.is-marketing .marketing-hero--landing h1 {
  font-size: clamp(3rem, 5.4vw, 5.5rem);
  overflow-wrap: normal;
}
body.is-marketing .marketing-demo-benefits {
  display: flex; flex-wrap: wrap; gap: .5rem 1.1rem;
  list-style: none; padding: 0; margin: 16px 0 0;
  color: var(--mc-ink-secondary); font-size: .8125rem; line-height: 1.5;
}
body.is-marketing .marketing-demo-benefits li { display: inline-flex; align-items: center; gap: .4rem; }
body.is-marketing .marketing-demo-benefits li::before { content: "✓"; color: var(--mc-teal); }
@media (max-width: 640px) {
  body.is-marketing .marketing-hero--landing h1 { font-size: clamp(2.55rem, 10.9vw, 4rem); }
  body.is-marketing .marketing-demo-benefits { gap: .45rem 1rem; }
}


/* Source: study-sample-v1.css */
.study-sample { scroll-margin-top: 2rem; }
.study-sample__card { max-width: 760px; padding: clamp(20px, 4vw, 40px); border: 1px solid #bbcee2; border-radius: 24px; background: #f4f8ff; color: #152d48; }
.study-sample__card [hidden] { display: none !important; }
.study-sample__card h3 { margin: 12px 0; font-size: clamp(1.3rem, 3vw, 1.8rem); line-height: 1.3; }
.study-sample__card p { line-height: 1.65; color: #334c66; }
.study-sample__card label { display: block; font-weight: 650; margin: 24px 0 8px; }
.study-sample__card select { font: inherit; color: #152d48; background: #fff; border: 1px solid #829ab4; border-radius: 12px; padding: 12px; min-height: 48px; max-width: 100%; }
.study-sample__card .mc-button { min-height: 48px; height: auto; white-space: normal; text-align: left; padding: 12px 20px; }
.study-sample__answers { display: grid; gap: 10px; margin: 24px 0; }
.study-sample__answers .mc-button { color: #152d48; background: #fff; border: 1px solid #829ab4; justify-content: flex-start; }
.study-sample__answers [aria-pressed="true"] { border: 2px solid #1859af; background: #e3eeff; }
.study-sample__card :focus-visible { outline: 3px solid #216ac5; outline-offset: 4px; }
.study-sample__card [data-sample-feedback]:empty { display: none; }
.study-sample__takeaway { max-width: 65ch; line-height: 1.65; margin-top: 24px; }


/* Source: tutor-glass-v1.css */
/* Tutor refinements use MindCoda's existing palette and dimensional icon system. */
.app-view[data-view="ai"] {
  --tutor-edge: color-mix(in srgb, var(--mc-glass-border) 80%, var(--mc-blue));
  --tutor-film: color-mix(in srgb, var(--mc-glass-standard) 92%, var(--mc-mint));
  min-width: 0;
}
.app-view[data-view="ai"] .ai-tutor-layout {
  grid-template-columns: minmax(240px, .55fr) minmax(0, 1.6fr);
  gap: 22px;
  align-items: start;
}
.app-view[data-view="ai"] .ai-tutor-rail { grid-column: 1 / -1; }
.app-view[data-view="ai"] .ai-safety-card { display: flex; align-items: center; padding: 16px 20px; }
.app-view[data-view="ai"] .ai-safety-card h2 { font-size: 1rem; }
.app-view[data-view="ai"] .ai-safety-card p { margin: 0; font-size: .85rem; }
.app-view[data-view="ai"] .ai-conversation-card {
  position: relative;
  isolation: isolate;
  height: clamp(580px, calc(100dvh - 210px), 820px);
  min-height: 0;
  grid-template-rows: auto minmax(0, 1fr) auto auto;
  gap: 0;
  padding: 0;
  border: 1px solid var(--tutor-edge);
  border-radius: var(--mc-radius-xl);
  background: radial-gradient(ellipse at 4% 0%, color-mix(in srgb, var(--mc-mint) 24%, transparent), transparent 48%), linear-gradient(155deg, var(--mc-glass-highlight), transparent 35%), var(--tutor-film);
  box-shadow: 0 24px 60px color-mix(in srgb, var(--mc-deep-blue) 13%, transparent), 0 3px 10px color-mix(in srgb, var(--mc-deep-blue) 7%, transparent), inset 0 1px 0 var(--mc-glass-highlight), inset 1px 0 0 var(--mc-glass-highlight);
  -webkit-backdrop-filter: blur(var(--mc-glass-blur-strong)) saturate(145%);
  backdrop-filter: blur(var(--mc-glass-blur-strong)) saturate(145%);
}
.app-view[data-view="ai"] .ai-conversation-header {
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 22px 24px;
  border-bottom: 1px solid var(--tutor-edge);
  background: linear-gradient(130deg, color-mix(in srgb, var(--mc-glass-highlight) 50%, transparent), transparent), var(--mc-glass-subtle);
  box-shadow: inset 0 1px 0 var(--mc-glass-highlight), 0 4px 16px color-mix(in srgb, var(--mc-deep-blue) 4%, transparent);
}
.app-view[data-view="ai"] .ai-conversation-header h2 { margin: 3px 0 6px; font-size: clamp(1.25rem, 2vw, 1.7rem); line-height: 1.15; letter-spacing: -.04em; overflow-wrap: anywhere; }
.app-view[data-view="ai"] .ai-conversation-header .eyebrow { font-size: .62rem; letter-spacing: .13em; color: var(--mc-ink-secondary); }
.app-view[data-view="ai"] .ai-conversation-header p:last-child { font-size: .8rem; line-height: 1.45; }
.app-view[data-view="ai"] .ai-orb,
.app-view[data-view="ai"] .ai-message__avatar,
.app-view[data-view="ai"] .ai-empty-icon {
  display: grid;
  place-items: center;
  color: var(--mc-blue);
  border: 1px solid var(--tutor-edge);
  background: radial-gradient(ellipse at 24% 8%, var(--mc-glass-highlight), transparent 62%), linear-gradient(145deg, color-mix(in srgb, var(--mc-mint) 54%, var(--mc-surface)), color-mix(in srgb, var(--mc-blue) 12%, var(--mc-surface)));
  box-shadow: inset 0 2px 0 var(--mc-glass-highlight), inset 0 -3px 5px color-mix(in srgb, var(--mc-blue) 12%, transparent), 0 7px 14px color-mix(in srgb, var(--mc-deep-blue) 13%, transparent);
}
.app-view[data-view="ai"] .ai-orb { width: 50px; height: 50px; border-radius: 17px; }
.app-view[data-view="ai"] .ai-orb svg { width: 25px; height: 25px; filter: drop-shadow(0 1px 0 var(--mc-glass-highlight)) drop-shadow(0 2px 2px color-mix(in srgb, var(--mc-blue) 25%, transparent)); }
.app-view[data-view="ai"] .ai-new-conversation { min-height: 48px; border-radius: 15px; color: var(--mc-ink); background: var(--mc-glass-standard); border-color: var(--tutor-edge); box-shadow: inset 0 1px 0 var(--mc-glass-highlight), 0 4px 8px color-mix(in srgb, var(--mc-deep-blue) 8%, transparent); }
.app-view[data-view="ai"] .ai-new-conversation svg { width: 18px; height: 18px; filter: drop-shadow(0 1px 0 var(--mc-glass-highlight)); }
.app-view[data-view="ai"] .ai-message-list { align-content: start; gap: 20px; padding: 24px; background: transparent; scrollbar-width: thin; }
.app-view[data-view="ai"] .ai-message { width: fit-content; max-width: 88%; padding: 17px 19px; border-radius: 22px; gap: 10px; }
.app-view[data-view="ai"] .ai-message--assistant {
  color: var(--mc-ink);
  border: 1px solid var(--tutor-edge);
  border-bottom-left-radius: 8px;
  background: linear-gradient(145deg, color-mix(in srgb, var(--mc-glass-highlight) 25%, transparent), transparent 60%), var(--mc-ai-message-assistant);
  box-shadow: inset 0 1px 0 var(--mc-glass-highlight), 0 8px 20px color-mix(in srgb, var(--mc-deep-blue) 6%, transparent);
}
.app-view[data-view="ai"] .ai-message--student { border: 1px solid rgba(255,255,255,.22); border-bottom-right-radius: 8px; background: linear-gradient(145deg, #2459c6, #123f93); color: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.26), 0 8px 18px rgba(9,64,196,.14); }
.app-view[data-view="ai"] .ai-message--student .ai-message__content p { color: #fff; }
.app-view[data-view="ai"] .ai-message__identity { display: flex; align-items: center; gap: 8px; font-size: .71rem; font-weight: 750; letter-spacing: .015em; }
.app-view[data-view="ai"] .ai-message--student .ai-message__identity { color: rgba(255,255,255,.85); }
.app-view[data-view="ai"] .ai-message__avatar { width: 25px; height: 25px; border-radius: 9px; box-shadow: inset 0 1px 0 var(--mc-glass-highlight), 0 3px 6px color-mix(in srgb, var(--mc-blue) 10%, transparent); }
.app-view[data-view="ai"] .ai-message__avatar svg { width: 13px; height: 13px; }
.app-view[data-view="ai"] .ai-message--student .ai-message__avatar { color: white; border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.12); box-shadow: inset 0 1px 0 rgba(255,255,255,.25); }
.app-view[data-view="ai"] .ai-message .ai-message__content p { font-size: .95rem; line-height: 1.7; }
.app-view[data-view="ai"] .ai-answer-section { padding-top: 13px; gap: 6px; }
.app-view[data-view="ai"] .ai-message-actions .mc-button { min-height: 44px; padding: 7px 10px; border-radius: 12px; }
.app-view[data-view="ai"] .ai-empty-conversation { align-self: center; justify-self: center; gap: 13px; margin: auto; max-width: 430px; padding: 24px 16px; border: 0; background: transparent; box-shadow: none; }
.app-view[data-view="ai"] .ai-empty-conversation h3 { font-size: clamp(1.3rem, 2vw, 1.65rem); letter-spacing: -.04em; }
.app-view[data-view="ai"] .ai-empty-icon { width: 68px; height: 68px; margin-bottom: 8px; border-radius: 23px; transform: rotate(-5deg); }
.app-view[data-view="ai"] .ai-empty-icon svg { width: 32px; height: 32px; filter: drop-shadow(0 2px 1px var(--mc-glass-highlight)); transform: rotate(5deg); }
.app-view[data-view="ai"] .ai-verify-note { margin: 0 24px; padding: 12px 0; font-size: .7rem; line-height: 1.45; border-top: 1px solid var(--tutor-edge); }
.app-view[data-view="ai"] .ai-composer {
  margin: 0 16px 16px;
  padding: 12px;
  gap: 8px;
  border: 1px solid var(--tutor-edge);
  border-radius: 24px;
  background: var(--mc-surface-elevated);
  box-shadow: 0 12px 28px color-mix(in srgb, var(--mc-deep-blue) 10%, transparent), inset 0 1px 0 var(--mc-glass-highlight), inset 0 -1px 0 color-mix(in srgb, var(--mc-blue) 8%, transparent);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.app-view[data-view="ai"] .ai-composer textarea { min-height: 72px; max-height: 150px; padding: 9px 10px; border-radius: 14px; background: transparent; color: var(--mc-ink); resize: vertical; }
.app-view[data-view="ai"] .ai-composer__bottom { align-items: center; gap: 10px; padding-inline: 6px; }
.app-view[data-view="ai"] .ai-composer__bottom .mc-button { min-height: 46px; border-radius: 16px; border: 1px solid rgba(255,255,255,.25); background: linear-gradient(150deg, #3268d8, #0940c4); color: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.35), inset 0 -2px 0 rgba(5,21,92,.22), 0 5px 12px rgba(9,64,196,.17); }
.app-view[data-view="ai"] .ai-context-card--premium,
.app-view[data-view="ai"] .ai-prompt-card--premium,
.app-view[data-view="ai"] .ai-history-card { border: 1px solid var(--tutor-edge); background: linear-gradient(145deg, var(--mc-glass-highlight), transparent 65%), var(--tutor-film); box-shadow: inset 0 1px 0 var(--mc-glass-highlight), var(--mc-shadow-subtle); }
.app-view[data-view="ai"] .ai-prompt-list {display:grid;grid-template-columns:minmax(0,1fr);gap:8px;}
.app-view[data-view="ai"] .ai-prompt-list button {display:flex;align-items:center;gap:10px;min-width:0;min-height:var(--mc-action-height,48px);padding:10px 12px;border-radius:var(--mc-action-radius);font:inherit;font-size:.875rem;line-height:1.4;text-align:left;color:var(--mc-ink);background:var(--mc-glass-subtle);border:1px solid var(--tutor-edge);box-shadow:inset 0 1px 0 var(--mc-glass-highlight);transition:background var(--mc-duration-fast) var(--mc-ease-standard),border-color var(--mc-duration-fast) var(--mc-ease-standard);}
.app-view[data-view="ai"] .ai-prompt-list button svg {width:18px;height:18px;flex-shrink:0;color:var(--mc-blue);}
.app-view[data-view="ai"] .ai-prompt-list button:hover {transform:none;background:var(--mc-glass-standard);border-color:var(--mc-blue);}
.app-view[data-view="ai"] .ai-prompt-list button:active {background:var(--mc-glass-strong);}
.app-view[data-view="ai"] :is(.ai-prompt-card,.tutor-introduction)>summary {display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;cursor:pointer;list-style:none;}
.app-view[data-view="ai"] :is(.ai-prompt-card,.tutor-introduction)>summary::-webkit-details-marker {display:none;}
.app-view[data-view="ai"] :is(.ai-prompt-card,.tutor-introduction)>summary::after {content:"+";font-size:1.25rem;color:var(--mc-ink-secondary);}
.app-view[data-view="ai"] :is(.ai-prompt-card,.tutor-introduction)[open]>summary::after {content:"−";}
.app-view[data-view="ai"] :is(.ai-prompt-card,.tutor-introduction)>summary h2 {margin:0;font-size:1rem;}
.app-view[data-view="ai"] .tutor-introduction[open]>p {margin-top:12px;}
.app-view[data-view="ai"] .ai-prompt-card[open]>.ai-prompt-list {margin-top:14px;}
.app-view[data-view="ai"] :is(.tutor-context-options,.tutor-more-actions,.ai-history-card) > summary {display:flex;align-items:center;min-height:44px;padding-block:10px;cursor:pointer;color:var(--mc-ink);font-size:.875rem;line-height:1.4;}
.app-view[data-view="ai"] :is(button,summary,textarea,select):focus-visible {outline:3px solid var(--mc-blue);outline-offset:3px;}
.app-view[data-view="ai"] button:disabled {opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;}
.ai-source-options { margin-bottom: 18px; }
.ai-source-options > summary { display: flex; align-items: center; gap: 8px; width: fit-content; min-height: 44px; padding: 8px 13px; border: 1px solid var(--mc-glass-border); border-radius: 14px; background: var(--mc-glass-standard); box-shadow: inset 0 1px 0 var(--mc-glass-highlight); font-size: .85rem; font-weight: 720; cursor: pointer; }
.ai-source-options > summary::after { content: '+'; margin-left: 16px; }
.ai-source-options[open] > summary::after { content: '−'; }
.ai-source-options > summary svg { width: 18px; height: 18px; color: var(--mc-blue); }
.ai-source-options .ai-source-links { margin: 12px 0 0; }
@media (max-width: 760px) {
  .app-view[data-view="ai"] .ai-tutor-layout { display: flex; flex-direction: column; }
  .app-view[data-view="ai"] .ai-conversation-card { width: 100%; order: -1; height: max(370px, calc(100dvh - 300px)); border-radius: 25px; }
  .app-view[data-view="ai"] .ai-conversation-header { grid-template-columns: 42px minmax(0, 1fr) auto; padding: 16px; gap: 10px; }
  .app-view[data-view="ai"] .ai-orb { width: 42px; height: 42px; border-radius: 14px; }
  .app-view[data-view="ai"] .ai-conversation-header h2 { font-size: 1.18rem; }
  .app-view[data-view="ai"] .ai-conversation-header p:last-child { max-height: 2.9em; overflow: hidden; }
  .app-view[data-view="ai"] .ai-new-conversation { min-width: 48px; width: 48px; padding: 0; }
  .app-view[data-view="ai"] .ai-new-conversation span { display: none; }
  .app-view[data-view="ai"] .ai-message-list { padding: 18px 14px; gap: 15px; }
  .app-view[data-view="ai"] .ai-message { max-width: 95%; padding: 14px; border-radius: 19px; }
  .app-view[data-view="ai"] .ai-composer { margin: 0 10px 10px; padding: 9px; border-radius: 20px; }
  .app-view[data-view="ai"] .ai-composer textarea { min-height: 60px; resize: none; }
  .app-view[data-view="ai"] .ai-verify-note { margin: 0 16px; font-size: .65rem; padding: 9px 0; }
  .app-view[data-view="ai"] .ai-composer__bottom .small-print { max-width: 20ch; font-size: .65rem; }
  .app-view[data-view="ai"] .ai-tutor-sidebar, .app-view[data-view="ai"] .ai-tutor-rail { width: 100%; }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .app-view[data-view="ai"] .ai-conversation-card { background: var(--mc-surface-elevated); }
}
@media (prefers-reduced-transparency: reduce) {
  .app-view[data-view="ai"] .ai-conversation-card,
  .app-view[data-view="ai"] .ai-conversation-header,
  .app-view[data-view="ai"] .ai-context-card--premium,
  .app-view[data-view="ai"] .ai-prompt-card--premium,
  .app-view[data-view="ai"] .ai-history-card { background: var(--mc-surface-elevated); backdrop-filter: none; -webkit-backdrop-filter: none; }
}
@media (prefers-reduced-motion: reduce) {
  .app-view[data-view="ai"] button { transition: none; }
  .app-view[data-view="ai"] .ai-message.is-pending { transform: none; }
}
:root[data-reduced-motion=true] .app-view[data-view="ai"] button {transition:none;}

/* Device choice is explicit, even when the browser has an install prompt. */
.mc-install-dialog { width: min(calc(100% - 32px), 490px); border-color: var(--mc-glass-border); background: linear-gradient(145deg, var(--mc-glass-highlight), transparent 60%), var(--mc-glass-strong); -webkit-backdrop-filter: blur(var(--mc-glass-blur-strong)); backdrop-filter: blur(var(--mc-glass-blur-strong)); box-shadow: var(--mc-shadow-elevated), inset 0 1px 0 var(--mc-glass-highlight); }
.mc-install-dialog__content > img { border: 1px solid var(--mc-glass-border); box-shadow: 0 7px 15px color-mix(in srgb, var(--mc-blue) 15%, transparent), inset 0 1px 0 var(--mc-glass-highlight); border-radius: 16px; }
.mc-install-devices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin: 4px 0 8px; }
.mc-install-devices button { display: grid; place-items: center; gap: 10px; min-height: 102px; padding: 13px 6px; border: 1px solid var(--mc-glass-border); border-radius: 18px; color: var(--mc-ink-secondary); background: var(--mc-glass-subtle); font: inherit; font-size: .78rem; font-weight: 730; box-shadow: inset 0 1px 0 var(--mc-glass-highlight); cursor: pointer; }
.mc-install-devices button[aria-pressed="true"] { color: var(--mc-blue); border-color: color-mix(in srgb, var(--mc-blue) 55%, var(--mc-glass-border)); background: color-mix(in srgb, var(--mc-mint) 25%, var(--mc-glass-standard)); box-shadow: 0 5px 14px color-mix(in srgb, var(--mc-blue) 10%, transparent), inset 0 1px 0 var(--mc-glass-highlight); }
.mc-install-device-icon { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--mc-glass-border); border-radius: 13px; background: linear-gradient(145deg, var(--mc-glass-highlight), transparent), var(--mc-glass-standard); box-shadow: inset 0 1px 0 var(--mc-glass-highlight), inset 0 -2px 0 color-mix(in srgb, var(--mc-blue) 9%, transparent), 0 4px 8px color-mix(in srgb, var(--mc-blue) 12%, transparent); }
.mc-install-device-icon svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 1px 0 var(--mc-glass-highlight)); }
.mc-install-dialog__device-title { margin: 0; font-size: 1rem; letter-spacing: -.025em; }
@media (max-width: 640px) { .mc-install-dialog { width: 100%; margin: auto 0 0; } }
@media (prefers-reduced-transparency: reduce) { .mc-install-dialog { background: var(--mc-surface-elevated); -webkit-backdrop-filter: none; backdrop-filter: none; } }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { .mc-install-dialog { background: var(--mc-surface-elevated); } }

/* Recover conversation space on small screens without hiding its composer. */
.app-view[data-view="ai"] { gap: 16px; }
.app-view[data-view="ai"] .ai-source-options { margin-bottom: 0; }
@media (max-width: 760px) {
  .app-view[data-view="ai"] { gap: 10px; }
  .app-view[data-view="ai"] > .page-header .page-kicker { display: none; }
  .app-view[data-view="ai"] > .page-header::after { display: none; }
  .app-view[data-view="ai"] .ai-conversation-card { height: max(400px, calc(100dvh - 225px)); }
  .app-view[data-view="ai"] .ai-conversation-header { padding: 12px 14px; grid-template-columns: 38px minmax(0, 1fr) auto; }
  .app-view[data-view="ai"] .ai-orb { width: 38px; height: 38px; }
  .app-view[data-view="ai"] .ai-conversation-header p:last-child { max-height: 1.45em; }
  .app-view[data-view="ai"] .ai-conversation-header .eyebrow { font-size: .56rem; letter-spacing: .08em; }
  .app-view[data-view="ai"] .ai-composer textarea { min-height: 50px; }
}

/* The current header has a title group and actions, not a leading icon column. */
.app-view[data-view="ai"] .ai-conversation-header {
  grid-template-columns: minmax(0, 1fr) auto;
}
.app-view[data-view="ai"] .ai-conversation-header > div { min-width: 0; }
.app-view[data-view="ai"] .ai-conversation-header h2 { overflow-wrap: normal; }
.app-view[data-view="ai"] .ai-conversation-card:not(:has(.ai-message)) {
  height: auto; min-height: 0; grid-template-rows: auto auto auto; gap: 12px;
}
.app-view[data-view="ai"] .ai-conversation-card:not(:has(.ai-message)) .ai-message-list { display: none; }
.app-view[data-view="ai"] .ai-conversation-card:not(:has(.ai-message)) .ai-composer {
  grid-row: 2; margin-top: 0; align-content: start; grid-template-rows: auto auto;
}
.app-view[data-view="ai"] .ai-conversation-card:not(:has(.ai-message)) .ai-verify-note { grid-row: 3; margin-bottom: 8px; }
.app-view[data-view="ai"] .ai-conversation-card:not(:has(.ai-message)) .ai-composer textarea { height: 76px; min-height: 76px; }
@media (max-width: 760px) {
  .app-view[data-view="ai"] .ai-tutor-sidebar { display: contents; }
  .app-view[data-view="ai"] .ai-tutor-sidebar > .ai-context-card { order: 0; display: block; }
  .app-view[data-view="ai"] .ai-tutor-layout > .ai-conversation-card { order: 1; }
  .app-view[data-view="ai"] .ai-tutor-sidebar > .tutor-next-actions { order: 2; }
  .app-view[data-view="ai"] .ai-conversation-header { padding: 16px; gap: 12px; }
  .app-view[data-view="ai"] .ai-conversation-header .ai-orb { display: none; }
  .app-view[data-view="ai"] .ai-conversation-header h2 { font-size: 1.2rem; line-height: 1.25; }
  .app-view[data-view="ai"] .ai-conversation-header p:last-child { max-height: none; overflow: visible; }
}
@media (max-width: 440px) {
  .app-view[data-view="ai"] > .page-header {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;min-width:0;}
  .app-view[data-view="ai"] > .page-header > div {grid-column:1 / -1;min-width:0;}
  .app-view[data-view="ai"] > .page-header h1 {font-size:clamp(1.4rem,7vw,1.75rem);overflow-wrap:anywhere;}
  .app-view[data-view="ai"] > .page-header > .back-button {justify-self:start;}
  .app-view[data-view="ai"] :is(.ai-conversation-card,.ai-context-card,.ai-history-card,.ai-prompt-card,.tutor-introduction) {min-width:0;max-width:100%;box-sizing:border-box;}
}


/* Source: verification-ui-v1.css */
/* Compact email verification: one calm surface, shared MindCoda tokens. */
#account-sheet[data-auth-mode="verify"] { max-width: 480px; }
#account-sheet[data-auth-mode="verify"] .sheet-surface { gap: 20px; }
#account-sheet[data-auth-mode="verify"] .mc-hero--compact {
  padding: 0; background: none; border: 0; box-shadow: none; gap: 12px;
}
#account-sheet[data-auth-mode="verify"] .mc-hero__top { margin-bottom: 8px; }
#account-sheet[data-auth-mode="verify"] .mc-hero__top p { color: var(--mc-text-primary); }
#account-sheet[data-auth-mode="verify"] .mc-emblem { width: 40px; height: 40px; }
#account-sheet[data-auth-mode="verify"] .mc-hero--compact h2 {
  color: var(--mc-text-primary); font-size: 1.75rem; line-height: 1.2; letter-spacing: -.025em;
}
#account-sheet[data-auth-mode="verify"] .mc-hero--compact > p:last-child {
  color: var(--mc-text-secondary); font-size: 1rem; line-height: 1.5;
}
#account-sheet[data-auth-mode="verify"] .verification-pane:not([hidden]) { display: grid; gap: 16px; }
.verification-email { margin: -12px 0 0; color: var(--mc-text-primary); font-size: 1rem; font-weight: 650; overflow-wrap: anywhere; }
.verification-help { margin: 0 0 4px; color: var(--mc-text-secondary); font-size: 1rem; line-height: 1.5; }
.verification-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; }
.verification-links .mc-button { min-height: 44px; font-size: .875rem; }
.verification-spam { margin: 0; color: var(--mc-text-secondary); font-size: .875rem; line-height: 1.5; }
#account-sheet[data-auth-mode="verify"] .auth-status { font-size: .875rem; line-height: 1.5; margin: 0; text-align: left; }
#account-sheet[data-auth-mode="verify"] .auth-status:empty { display: none; }


/* Source: signout-transition-v1.css */
/* A quiet glass farewell, isolated from app cards and public landing styles. */
.mc-farewell {
  position: fixed; inset: 0; width: 100%; height: 100%; height: 100dvh;
  max-width: none; max-height: none; margin: 0; padding: 24px;
  border: 0; background: transparent; color: #10223a;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  opacity: 1; transition: opacity 180ms ease;
}
.mc-farewell[open] { display: grid; place-items: center; }
.mc-farewell__flight { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.mc-farewell__dove { position: absolute; top: calc(50% - 205px); left: 0; width: 64px; height: auto; opacity: .9; animation: mc-farewell-flight 4s -.7s linear both; }
.mc-farewell__dove--distant { top: calc(50% + 178px); width: 48px; opacity: .65; animation-duration: 5s; animation-delay: -1.6s; }
.mc-farewell::backdrop {
  background: rgba(12, 27, 44, .28);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
.mc-farewell__glass {
  position: relative;
  box-sizing: border-box; width: min(100%, 380px); padding: 34px 26px 20px;
  border: 1px solid rgba(255, 255, 255, .9); border-radius: 30px;
  background: linear-gradient(145deg, rgba(255, 255, 255, .94), rgba(238, 249, 248, .9));
  box-shadow: inset 0 1px 0 #fff, 0 18px 60px rgba(8, 25, 42, .14);
  -webkit-backdrop-filter: blur(24px) saturate(1.15); backdrop-filter: blur(24px) saturate(1.15);
  text-align: center; animation: mc-farewell-arrive 260ms ease-out both;
}
.mc-farewell__mark { display: block; margin: 0 auto 16px; border-radius: 15px; }
.mc-farewell__brand { margin: 0 0 14px; font-size: 11px; font-weight: 650; letter-spacing: .19em; text-transform: uppercase; color: #436270; }
.mc-farewell h2 { margin: 0; font-size: clamp(25px, 6vw, 30px); font-weight: 600; line-height: 1.15; letter-spacing: -.045em; }
.mc-farewell h2:focus { outline: none; }
.mc-farewell [data-farewell-copy] { margin: 12px auto 0; max-width: 29ch; color: #4f6172; font-size: 14px; line-height: 1.6; }
.mc-farewell__line { display: block; width: 48px; height: 2px; margin: 24px auto 12px; border-radius: 2px; background: linear-gradient(90deg, #a1d9c4, #adc5ec); }
.mc-farewell__skip { min-height: 44px; min-width: 130px; padding: 8px 16px; border: 1px solid transparent; border-radius: 999px; background: transparent; color: #4f6172; font: inherit; font-size: 12px; cursor: pointer; }
.mc-farewell__skip:hover { background: rgba(255, 255, 255, .45); }
.mc-farewell__skip:focus-visible { outline: 2px solid #286bb5; outline-offset: 2px; }
.mc-farewell.is-leaving { opacity: 0; }
.mc-farewell.is-leaving::backdrop { background: rgba(12, 27, 44, .14); }
.mc-farewell[data-theme="dark"] { color: #f2f8f7; }
.mc-farewell[data-theme="dark"]::backdrop { background: rgba(3, 12, 25, .4); }
.mc-farewell[data-theme="dark"] .mc-farewell__glass { border-color: rgba(201, 225, 240, .2); background: linear-gradient(145deg, rgba(27, 48, 66, .94), rgba(13, 30, 47, .94)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .09), 0 18px 60px rgba(0, 0, 0, .23); }
.mc-farewell[data-theme="dark"] .mc-farewell__brand { color: #acd6ce; }
.mc-farewell[data-theme="dark"] [data-farewell-copy], .mc-farewell[data-theme="dark"] .mc-farewell__skip { color: #bdcdd8; }
.mc-farewell[data-theme="dark"] .mc-farewell__skip:hover { background: rgba(255, 255, 255, .06); }
.mc-farewell[data-theme="dark"] .mc-farewell__skip:focus-visible { outline-color: #acd6ce; }
@keyframes mc-farewell-arrive { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes mc-farewell-flight { from { transform: translate3d(-80px, 14px, 0) rotate(-6deg); } to { transform: translate3d(110vw, -18px, 0) rotate(3deg); } }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .mc-farewell__glass { background: #f5faf8; }
  .mc-farewell[data-theme="dark"] .mc-farewell__glass { background: #142b40; }
}
@media (prefers-reduced-motion: reduce) { .mc-farewell, .mc-farewell__glass { animation: none; transition: none; } .mc-farewell__flight { display: none; } }
@media (prefers-reduced-transparency: reduce) { .mc-farewell::backdrop { -webkit-backdrop-filter: none; backdrop-filter: none; } .mc-farewell__glass { -webkit-backdrop-filter: none; backdrop-filter: none; background: #f5faf8; } .mc-farewell[data-theme="dark"] .mc-farewell__glass { background: #142b40; } }

.mc-farewell[data-reduced-motion="true"], .mc-farewell[data-reduced-motion="true"] .mc-farewell__glass { animation: none; transition: none; }
.mc-farewell[data-reduced-motion="true"] .mc-farewell__flight { display: none; }

/* Account transitions stay still; only a brief opacity fade remains. */
.mc-farewell__flight{display:none;}
.mc-farewell__glass{animation:mc-farewell-still 120ms ease-out both;}
@keyframes mc-farewell-still{from{opacity:0;}to{opacity:1;}}
@media(prefers-reduced-motion:reduce){.mc-farewell__glass{animation:none;}}
.mc-farewell[data-reduced-motion="true"] .mc-farewell__glass{animation:none;}


/* Source: maps-v1.css */
.maps-head,
.maps-toolbar,
.maps-controls {
  display: flex;
  gap: 0.65rem;
  align-items: center;
  flex-wrap: wrap;
}
.maps-head {
  justify-content: space-between;
}
.maps-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin: 1rem 0;
}
.maps-card {
  border: 1px solid var(--mc-border, #ccdcd5);
  border-radius: 24px;
  padding: 1.3rem;
  background: linear-gradient(145deg, #ffffffdb, #e4f3eedb);
  box-shadow: 0 12px 36px #164c4310;
  /* Reading cards stay sharp without a blur layer per template. */
  backdrop-filter: none;
  text-align: left;
  color: #153e39;
  cursor: pointer;
}
.maps-card:hover {
  box-shadow: 0 14px 40px #164c4325;
}
.maps-preview {
  height: 125px;
  position: relative;
  display: grid;
  place-items: center;
  background: radial-gradient(ellipse, #d3e9e680, transparent);
  margin-bottom: 1rem;
}
.maps-preview span {
  padding: 0.45rem 0.7rem;
  border-radius: 12px;
  background: #ffffffc9;
  border: 1px solid #74978d;
  z-index: 1;
  font-size: 0.85rem;
}
.maps-preview i {
  position: absolute;
  width: 38%;
  height: 1px;
  background: currentColor;
  transform: rotate(30deg);
}
.maps-preview i:nth-child(2) {
  transform: rotate(-30deg);
}
.maps-card h2 {
  font-size: 1.15rem;
}
.maps-editor {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 290px;
  gap: 1rem;
  margin-top: 1rem;
}
.maps-tree-tools {padding:14px;margin-bottom:18px;border:1px solid var(--mc-line,#c4d9d3);border-radius:18px;background:var(--mc-surface,#f4faf7);}
.maps-tree-tools h2 {margin:0 0 6px;font-size:1rem;}
.maps-tree-tools p {margin:0 0 12px;font-size:.8rem;line-height:1.5;}
.maps-tree-actions {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.maps-inspector .maps-tree-actions > .mc-button {min-height:44px;min-width:0;width:100%;padding:10px 8px;font-size:.8rem;white-space:normal;}
.maps-tree-actions button:first-child {grid-column:1/-1;}
.maps-tree-tools .maps-tree-hint {margin:10px 0 0;font-size:.75rem;}
.maps-tree-actions button:focus-visible {outline:3px solid #3c68c4;outline-offset:2px;}
.maps-stage {
  height: 65vh;
  min-height: 380px;
  overflow: hidden;
  border-radius: 24px;
  border: 1px solid #c4d9d3;
  position: relative;
  background: radial-gradient(circle at 50% 40%, #d9f1ec, #f4f8f6);
  touch-action: none;
}
.maps-stage:focus-visible {
  outline: 3px solid #166d68;
}
.maps-world {
  position: absolute;
  left: 50%;
  top: 50%;
  transform-origin: 0 0;
}
.maps-world svg {
  position: absolute;
  overflow: visible;
  pointer-events: none;
}
.maps-node {
  position: absolute;
  width: 170px;
  min-height: 64px;
  border-radius: 18px;
  border: 1px solid #769c90;
  background: #ffffffef;
  box-shadow: 0 8px 24px #1e5a4c18;
  color: #123e36;
  padding: 0.7rem;
  transform: translate(-50%, -50%);
  white-space: normal;
  overflow-wrap: anywhere;
  cursor: grab;
  touch-action: none;
  font: inherit;
}
.maps-node[aria-pressed="true"] {
  outline: 3px solid #216f67;
}
.maps-node.root {
  background: #145c55;
  color: white;
}
.maps-node small {
  display: block;
  font-size: 0.75rem;
  opacity: 0.9;
}
.maps-inspector {
  background: #ffffffd9;
  border: 1px solid #c4d9d3;
  border-radius: 24px;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  align-self: start;
}
.maps-inspector label {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.maps-inspector input,
.maps-inspector textarea,
.maps-controls input,
.maps-controls select {
  padding: 0.65rem;
  border: 1px solid #87a99e;
  border-radius: 10px;
  background: #fff;
  color: #153e39;
  font: inherit;
  max-width: 100%;
}
.maps-inspector textarea {
  min-height: 100px;
}
.maps-inspector label.maps-check {
  flex-direction: row;
}
.maps-help {
  padding: 1rem;
  background: #e0eee9;
  border-radius: 16px;
  margin: 1rem 0;
}
.maps-result {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  max-height: 400px;
  overflow: auto;
}
.maps-status {
  min-height: 1.5em;
  color: #235b51;
}
.maps-list {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin: 1rem 0;
}
.maps-progress {
  accent-color: #166d68;
  width: 100%;
  height: 6px;
}
.maps-outline {
  max-height: 65vh;
  overflow: auto;
  padding: 1rem;
}
.maps-outline button {
  display: block;
  margin: 0.4rem 0;
  padding: 0.7rem;
  border-radius: 12px;
  border: 1px solid #769c90;
  background: white;
  color: #153e39;
  text-align: left;
  font: inherit;
}
.maps-card:focus-visible,
.maps-toolbar button:focus-visible {
  outline: 3px solid #166d68;
  outline-offset: 3px;
}
@media (max-width: 800px) {
  .maps-editor {
    grid-template-columns: 1fr;
  }
  .maps-stage {
    height: 50vh;
  }
  .maps-inspector {
    width: 100%;
  }
  .maps-node {
    width: 155px;
  }
  .maps-toolbar .mc-button {
    padding: 0.6rem;
  }
  .maps-inspector input {
    font-size: 1rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  [data-view="maps"] * {
    transition: none !important;
    animation: none !important;
  }
}
@media print {
  body * {
    visibility: hidden;
  }
  [data-view="maps"],
  [data-view="maps"] * {
    visibility: visible;
  }
  [data-view="maps"] {
    position: absolute;
    inset: 0;
  }
  .maps-toolbar,
  .maps-help,
  .maps-inspector {
    display: none !important;
  }
  .maps-editor {
    display: block;
  }
  .maps-stage {
    height: 85vh;
  }
}

/* Shared semantic tokens also follow MindCoda's existing dark preference. */
.maps-card,
.maps-node,
.maps-inspector,
.maps-outline button {
  color: var(--mc-text-primary, #153e39);
  border-color: var(--mc-border-subtle, #c4d9d3);
  background: var(--mc-glass-strong, #ffffffef);
  box-shadow: var(--mc-shadow-card, 0 8px 24px #1e5a4c18);
}
.maps-stage {
  background: var(--mc-background-primary, radial-gradient(circle, #d9f1ec, #f4f8f6));
  border-color: var(--mc-border-subtle, #c4d9d3);
}
.maps-card {
  background: linear-gradient(
    145deg,
    var(--mc-glass-strong, #fff),
    var(--mc-surface-elevated, #e4f3ee)
  );
}
.maps-node.root {
  background: var(--mc-accent-secondary, #145c55);
  color: var(--mc-on-accent, white);
}
.maps-preview span,
.maps-inspector input,
.maps-inspector textarea,
.maps-controls input,
.maps-controls select,
.maps-inspector select {
  color: var(--mc-text-primary, #153e39);
  background: var(--mc-surface-primary, white);
  border-color: var(--mc-border-subtle, #87a99e);
}
.maps-help {
  background: var(--mc-surface-elevated, #e0eee9);
  color: var(--mc-text-primary, #153e39);
}
.maps-status {
  color: var(--mc-text-secondary, #235b51);
}
.maps-menu {
  position: relative;
}
.maps-menu summary {
  cursor: pointer;
  min-height: 44px;
  display: flex;
  align-items: center;
  padding: 0.6rem 1rem;
  border: 1px solid var(--mc-border-subtle, #87a99e);
  border-radius: 14px;
  font-weight: 600;
}
.maps-menu[open] {
  padding: 0.5rem;
  background: var(--mc-surface-primary, white);
  border-radius: 16px;
  box-shadow: var(--mc-shadow-card, 0 10px 28px #164c4320);
  z-index: 2;
}
.maps-menu[open] button {
  margin: 0.3rem;
}
@media (prefers-reduced-transparency: reduce) {
  .maps-card,
  .maps-inspector,
  .maps-node {
    backdrop-filter: none;
    background: var(--mc-surface-primary, white);
  }
}

/* Quiet surfaces, precise edges, and glass only on floating controls. */
.maps-card {
  padding: 1.5rem;
  box-shadow: 0 2px 8px #102c3506, inset 0 1px 0 #ffffff70;
}
.maps-card:hover {
  border-color: var(--mc-accent-secondary, #166d68);
  box-shadow: 0 6px 20px #102c3510;
}
.maps-card h2 { letter-spacing: -0.025em; margin: 0 0 0.5rem; }
.maps-card p { color: var(--mc-text-secondary, #235b51); line-height: 1.5; }
.maps-preview { background: none; height: 140px; }
.maps-preview i { width: 70%; opacity: 0.3; }
.maps-preview span { max-width: 65%; text-align: center; box-shadow: 0 3px 12px #102c3508; }
.maps-preview::before,
.maps-preview::after {
  content: "";
  position: absolute;
  inset: 18px auto auto 12%;
  width: 26px;
  height: 16px;
  border: 1px solid currentColor;
  border-radius: 6px;
  opacity: 0.45;
  background: var(--mc-surface-primary, white);
}
.maps-preview::after { inset: auto 12% 18px auto; }
.maps-inspector { box-shadow: 0 2px 12px #102c3508; }
.maps-node { box-shadow: 0 3px 12px #102c3510; }
.maps-node[aria-pressed="true"] { outline-width: 2px; outline-offset: 3px; }
.maps-toolbar { padding: 0.5rem 0; gap: 0.5rem; }
.maps-menu summary {
  background: var(--mc-glass-strong, #fffffff0);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  box-shadow: inset 0 1px 0 #ffffff60;
}
@media (prefers-reduced-transparency: reduce) {
  .maps-menu summary { backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--mc-surface-primary, white); }
}

@media (max-width: 1000px) { .maps-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .maps-gallery { grid-template-columns: minmax(0, 1fr); } }
.maps-course-entry{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;padding:.75rem;border:1px solid var(--mc-border-subtle);border-radius:16px}.maps-course-entry strong{flex:1 1 180px}.maps-course-entry small{opacity:.8}.maps-course-entry button{min-height:44px}

/* Document learning maps use the same semantic glass, not another blur layer. */
.maps-document-start,.maps-walkthrough {display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1rem 1.2rem;border:1px solid var(--mc-border-subtle,#c4d9d3);border-radius:20px;background:var(--mc-glass-strong,#ffffffef);}
.maps-document-start {margin:1rem 0;}
.maps-walkthrough span {flex:1 1 12rem;color:var(--mc-text-primary,#153e39);}
.maps-walkthrough button,.maps-toolbar button {min-height:44px;}
.maps-world.is-depth .maps-node {cursor:pointer;box-shadow:0 12px 24px #071a2c20,inset 0 1px 0 #ffffff70;border-color:var(--mc-border-subtle,#b1d1e0);}
.maps-world.is-depth .maps-node[aria-pressed="true"] {outline-color:var(--mc-accent-primary,#426dcc);box-shadow:0 16px 32px #071a2c30,inset 0 1px 0 #ffffff80;}
.maps-reading h2 {font-size:1.2rem;line-height:1.35;margin:0 0 .75rem;overflow-wrap:anywhere;}
.maps-reading p,.maps-reading blockquote {line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;}
.maps-reading blockquote {margin:.75rem 0;padding-left:.8rem;border-left:2px solid var(--mc-accent-secondary,#166d68);}
.maps-reading small {display:block;color:var(--mc-text-secondary,#235b51);line-height:1.5;margin-top:.75rem;}
.maps-reading summary,.maps-edit-details summary,.maps-camera summary {cursor:pointer;min-height:44px;padding:.65rem 0;}
.maps-edit-details[open] {display:flex;flex-direction:column;gap:.8rem;}
.maps-edit-details[open]>* {margin-bottom:.6rem;}
.maps-camera label {display:flex;align-items:center;gap:.8rem;padding:.5rem;}
.maps-camera input {min-height:44px;max-width:140px;}
.maps-source-dialog {max-width:min(680px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border:1px solid var(--mc-border-subtle,#c4d9d3);border-radius:24px;background:var(--mc-surface-primary,#fff);color:var(--mc-text-primary,#153e39);}
.maps-source-form {display:flex;flex-direction:column;gap:1rem;max-height:calc(100dvh - 28px);overflow:auto;padding:clamp(1rem,4vw,2rem);}
.maps-source-form h2 {margin:0;font-size:1.65rem;letter-spacing:-.03em;}
.maps-source-form p {line-height:1.55;}
.maps-source-form label {display:flex;flex-direction:column;gap:.45rem;}
.maps-source-form input:not([type="checkbox"]),.maps-source-form select {width:100%;min-height:48px;border-radius:12px;border:1px solid var(--mc-border-subtle,#c4d9d3);background:var(--mc-surface-primary,#fff);color:inherit;padding:.65rem;font:inherit;}
.maps-source-list {min-width:0;border:0;padding:0;}
.maps-source-list legend {font-weight:650;margin-bottom:.65rem;}
.maps-source-row {padding:.65rem .8rem;border:1px solid var(--mc-border-subtle,#c4d9d3);border-radius:14px;margin:.5rem 0;}
.maps-source-row label {flex-direction:row;align-items:center;min-height:44px;overflow-wrap:anywhere;}
.maps-source-row input {width:22px;height:22px;flex-shrink:0;}
.maps-source-row summary {min-height:44px;padding:.6rem 0;cursor:pointer;color:var(--mc-text-secondary,#235b51);}
.maps-source-row p {white-space:pre-wrap;overflow-wrap:anywhere;font-size:.9rem;}
.maps-document-preview {border-top:1px solid var(--mc-border-subtle,#c4d9d3);padding-top:1rem;}
.maps-source-form small {line-height:1.5;color:var(--mc-text-secondary,#235b51);}
.maps-source-form button {min-height:48px;}
.maps-source-form [hidden] {display:none!important;}
.maps-source-form button:focus-visible,.maps-source-form summary:focus-visible,.maps-node:focus-visible,.maps-reading summary:focus-visible {outline:3px solid var(--mc-accent-primary,#426dcc);outline-offset:3px;}
@media(max-width:600px){.maps-document-start button{width:100%;}.maps-walkthrough{gap:.5rem;padding:.75rem;}.maps-walkthrough span{order:-1;flex-basis:100%;}.maps-source-form{padding:1rem;}.maps-camera[open]{width:100%;}.maps-reading{scroll-margin-top:1rem;}}
.maps-creation-stage{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--mc-text-secondary,#526a70);margin:.25rem 0}.maps-focus-options summary{min-height:44px;display:flex;align-items:center;cursor:pointer}.maps-focus-options label{padding:.5rem 0}.maps-source-form .maps-document-preview{padding:1rem;border:1px solid var(--mc-border-subtle,#c4d9d3);border-radius:18px}.maps-source-form .maps-document-preview h3{margin-top:0}.maps-source-form .maps-document-preview h4{margin-bottom:.4rem}.maps-source-form .maps-document-preview p{margin-top:.4rem}


/* Source: pwa-polish-v1.css */
/* 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;}
}


/* Source: button-sizing-v1.css */
/* All action buttons share geometry. Importance prevents older screen-specific
   sizing rules from changing the standard; colors and interaction states remain
   controlled by each button's existing semantic variant. */
:root {
  --mc-action-height: 48px;
  --mc-action-padding: 16px;
  --mc-action-font-size: .9375rem;
  --mc-action-radius: 12px;
  --mc-action-group-width: 160px;
}
:is(.mc-button:not(.ai-new-conversation),.provider-button,.course-card__note-action,.availability-preset,
    .icon-button,.sheet-close,.mc-home-install__dismiss,
    .marketing-signin,.welcome-phase__skip,.focus-preset,
    .time-shortcuts button,.planner-row-actions button,
    .planner-availability-list button,.planner-suggestion-editor button,
    .planner-task-more__menu button,.study-section-nav button,
    .study-entry-tabs button,.planner-view-toggle button,.mc-preview-tabs button,
    .mc-onboarding__tutorial-nav button,.maps-menu summary,.maps-outline button) {
  box-sizing: border-box;
  min-height: var(--mc-action-height) !important;
  height: auto !important;
  max-height: none !important;
  padding: 12px var(--mc-action-padding) !important;
  border-radius: var(--mc-action-radius) !important;
  font-family: var(--mc-font) !important;
  font-size: var(--mc-action-font-size) !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  letter-spacing: -.012em;
  text-align: center;
  flex-shrink: 0;
}
.mc-button:not(.planner-date-nav__arrow):not(.back-button),
.course-card__note-action {min-width:128px;}
.provider-button {width:100%;}
.planner-plan-button {display:inline-flex;align-items:center;justify-content:center;}
.planner-plan-button small {display:none;}
:is(.mc-button,.provider-button,.icon-button,.sheet-close) > svg {width:18px;height:18px;flex-shrink:0;}
:is(.icon-button,.sheet-close,.mc-home-install__dismiss,.planner-date-nav__arrow,
    .mc-button[aria-label="Zoom out"],.mc-button[aria-label="Zoom in"],
    .mc-button[title="−"],.mc-button[title="+"]) {
  width:var(--mc-action-height) !important;
  min-width:var(--mc-action-height) !important;
  padding:12px !important;
  display:inline-flex;align-items:center;justify-content:center;
}
.welcome-study-guide__steps li {grid-template-columns:30px minmax(0,1fr) var(--mc-action-group-width);}
.welcome-study-guide__steps .mc-button,
.welcome-study-guide__intro > .mc-button {width:var(--mc-action-group-width);min-width:0;}
:is(.planner-command-strip__actions,.course-empty-actions,.course-note-actions,
    .note-cloud-choice__actions,.focus-actions,.focus-music-actions,
    .planner-form__actions,.onboarding-actions,.account-card__actions) > .mc-button {
  flex:1 1 auto;
  min-width:0;
}
.planner-command-strip__actions > .mc-button {width:var(--mc-action-group-width);}
.focus-preset {display:flex;align-items:center;justify-content:space-between;gap:8px;}
.focus-preset strong {font-size:1.25rem;line-height:1.1;}
.focus-preset span {font-size:.8125rem;line-height:1.3;}
.syllabus-file-field input[type=file]::file-selector-button {
  box-sizing:border-box;min-height:var(--mc-action-height);padding:12px var(--mc-action-padding);
  border-radius:var(--mc-action-radius);font-family:var(--mc-font);font-size:var(--mc-action-font-size);font-weight:600;
}
@media(max-width:640px) {
  .welcome-study-guide__steps li {grid-template-columns:28px minmax(0,1fr);}
  .welcome-study-guide__steps .mc-button {grid-column:2;width:100%;}
  .welcome-study-guide__intro > .mc-button {width:100%;}
  .planner-command-strip__actions > .mc-button {width:auto;}
}


/* Source: signin-transition-v1.css */
/* A brief glass entrance: a personal hello, a daily thought, then the study space. */
.mc-arrival {
  position: fixed;
  inset: 0;
  z-index: 1500;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: 24px;
  pointer-events: none;
  color: var(--mc-ink);
  font-family: var(--mc-font);
  background: linear-gradient(160deg, rgba(245, 253, 247, .97), rgba(239, 246, 253, .96));
  -webkit-backdrop-filter: blur(28px);
  backdrop-filter: blur(28px);
  isolation: isolate;
}
.mc-arrival::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: radial-gradient(ellipse at 50% 35%, rgba(97, 177, 156, .09), transparent 50%);
}
.mc-arrival__light { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; stroke: var(--mc-teal); stroke-width: .6; opacity: .075; }
.mc-arrival__caption {
  box-sizing: border-box;
  width: min(100%, 720px);
  max-height: calc(100dvh - 112px);
  overflow-y: auto;
  padding: 16px;
  margin-top: -8px;
  text-align: center;
}
.mc-arrival__mark.mc-logo { --mc-logo-size:58px; display:block; margin:0 auto 12px; }
.mc-arrival__brand { margin: 0 0 26px; color: var(--mc-ink); font-size: 1rem; font-weight: 600; letter-spacing: -.01em; line-height: 1.4; }
.mc-arrival h2 { margin: 0; font-family: var(--mc-font-display); text-wrap: balance; overflow-wrap: anywhere; }
.mc-arrival__hello { display: block; margin-bottom: 6px; color: var(--mc-ink-secondary); font-size: 1.375rem; font-weight: 450; letter-spacing: -.015em; line-height: 1.3; }
.mc-arrival__name { display: block; color: var(--mc-ink); font-size: clamp(2.5rem, 6.6vw, 4rem); font-weight: 650; letter-spacing: -.035em; line-height: 1.08; }
.mc-arrival__name--generic { font-size: clamp(1.75rem, 5vw, 2.75rem); }
.mc-arrival__copy { margin: 18px 0 0; color: var(--mc-ink-secondary); font-size: 1.0625rem; font-weight: 400; letter-spacing: -.005em; line-height: 1.5; text-wrap: balance; }
.mc-arrival__reminder { max-width: 420px; margin: 32px auto 0; padding-top: 22px; position: relative; }
.mc-arrival__reminder::before { content: ""; position: absolute; width: 48px; height: 1px; top: 0; left: calc(50% - 24px); background: linear-gradient(90deg, transparent, var(--mc-teal), transparent); opacity: .6; }
.mc-arrival__reminder-label { margin: 0 0 10px; color: var(--mc-ink-secondary); font-size: .6875rem; line-height: 1.5; font-weight: 600; letter-spacing: .11em; text-transform: uppercase; }
.mc-arrival__reminder-text { margin: 0; color: var(--mc-ink); font-size: 1.0625rem; font-weight: 450; letter-spacing: -.005em; line-height: 1.55; text-wrap: balance; }
.mc-arrival__source { margin: 12px 0 0; color: var(--mc-ink-secondary); font-size: .75rem; line-height: 1.5; text-wrap: balance; }
.mc-arrival__source cite { font-style: normal; }
.mc-arrival__weather { position: absolute; top: max(24px, env(safe-area-inset-top)); right: max(28px, env(safe-area-inset-right)); display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 14px; row-gap: 2px; padding: 12px 16px; max-width: min(320px, calc(100% - 40px)); border: 1px solid var(--mc-polish-edge); border-radius: 16px; background: color-mix(in srgb, var(--mc-surface) 24%, transparent); box-shadow: inset 0 1px 0 var(--mc-polish-highlight); }
.mc-arrival__weather-city { min-width: 0; font-size: .8125rem; color: var(--mc-ink-secondary); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.mc-arrival__weather strong { grid-row: 1 / 3; grid-column: 2; font-size: 1.5rem; line-height: 1.2; font-weight: 600; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.mc-arrival__weather a { width: fit-content; font-size: .625rem; color: var(--mc-ink-secondary); text-decoration: none; pointer-events: auto; }
.mc-arrival__weather a:focus-visible { outline: 2px solid var(--mc-blue); outline-offset: 3px; }
.mc-arrival .mc-arrival__continue { position: absolute; bottom: max(24px, env(safe-area-inset-bottom)); right: max(28px, env(safe-area-inset-right)); pointer-events: auto; color: var(--mc-ink-secondary); border: 1px solid transparent; background: transparent; box-shadow: none; gap: 12px; }
.mc-arrival .mc-arrival__continue:hover { background: color-mix(in srgb, var(--mc-ink) 5%, transparent); border-color: transparent; }
.mc-arrival__birds { position: absolute; inset: 0; pointer-events: none; z-index: -1; }
.mc-arrival__bird { position: absolute; left: 0; top: 18%; width: 22px; height: 18px; }
.mc-arrival__bird svg { display: block; width: 100%; height: 100%; transform-origin: 50% 75%; }
.mc-arrival__wing-left { fill: #7fe0ac; }
.mc-arrival__wing-right { fill: #d9f78e; }
.mc-arrival__bird--1 { top: 22%; width: 17px; height: 14px; }
.mc-arrival__bird--1 .mc-arrival__wing-left { fill: #2e74e9; }
.mc-arrival__bird--1 .mc-arrival__wing-right { fill: #7fe0ac; }
.mc-arrival__bird--2 { top: 15%; width: 14px; height: 12px; }
.mc-arrival__bird--2 .mc-arrival__wing-left { fill: #d9f78e; }
.mc-arrival__bird--2 .mc-arrival__wing-right { fill: #2e74e9; }
.theme-dark .mc-arrival { background: linear-gradient(160deg, rgba(18, 39, 65, .97), rgba(8, 18, 36, .96)); }
.theme-dark .mc-arrival::before { background: radial-gradient(ellipse at 50% 35%, rgba(114, 174, 189, .12), transparent 50%); }
.theme-dark .mc-arrival__light { stroke: #b4dfd4; opacity: .07; }
.theme-dark .mc-arrival__name { color: #e2f5ee; }
@media (max-width: 640px) {
  .mc-arrival { padding: 20px; }
  .mc-arrival__caption { padding: 8px; }
  .mc-arrival__hello { font-size: 1.25rem; }
  .mc-arrival__copy { font-size: 1rem; }
  .mc-arrival__reminder { margin-top: 26px; padding-top: 20px; }
  .mc-arrival__reminder-text { font-size: 1rem; }
  .mc-arrival .mc-arrival__continue { bottom: max(16px, env(safe-area-inset-bottom)); right: max(16px, env(safe-area-inset-right)); }
  .mc-arrival__weather { top: max(16px, env(safe-area-inset-top)); right: max(16px, env(safe-area-inset-right)); padding: 8px 12px; border-radius: 12px; }
  .mc-arrival__weather strong { font-size: 1.25rem; }
}
@media (max-height: 600px) {
  .mc-arrival__caption { max-height: calc(100dvh - 144px); margin-top: 16px; padding-block: 4px; }
  .mc-arrival__mark.mc-logo { --mc-logo-size:44px; margin-bottom:8px; }
  .mc-arrival__brand { margin-bottom: 14px; font-size: .875rem; }
  .mc-arrival__hello { font-size: 1.125rem; margin-bottom: 2px; }
  .mc-arrival__name { font-size: 2.25rem; }
  .mc-arrival__copy { margin-top: 12px; font-size: .9375rem; }
  .mc-arrival__reminder { margin-top: 18px; padding-top: 14px; }
  .mc-arrival__reminder-label { margin-bottom: 6px; }
  .mc-arrival__reminder-text { font-size: .9375rem; }
  .mc-arrival__source { margin-top: 8px; }
}
@media (prefers-reduced-transparency: reduce) {
  :is(.mc-arrival, .theme-dark .mc-arrival) { background: var(--mc-surface); -webkit-backdrop-filter: none; backdrop-filter: none; }
}
:root[data-reduced-transparency=true] .mc-arrival { background: var(--mc-surface); -webkit-backdrop-filter: none; backdrop-filter: none; }
@media (forced-colors: active) {
  :is(.mc-arrival, .theme-dark .mc-arrival) { background: Canvas; color: CanvasText; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .mc-arrival::before, .mc-arrival__light, .mc-arrival__birds { display: none; }
  .mc-arrival :is(.mc-arrival__brand, .mc-arrival__hello, .mc-arrival__name, .mc-arrival__copy, .mc-arrival__reminder-label, .mc-arrival__reminder-text, .mc-arrival__source) { color: CanvasText; }
  .mc-arrival .mc-arrival__continue { background: ButtonFace; color: ButtonText; border-color: ButtonText; }
}

.mc-arrival__birds{display:none;}


/* Source: signin-box-v1.css */
/* One glass surface; existing app tokens keep every account form consistent. */
#account-sheet, #account-sheet[open] {
  --account-padding: 24px;
  --mc-action-height: 48px;
  --mc-action-font-size: 1rem;
  --mc-action-radius: 16px;
  width: min(440px, calc(100% - 24px - var(--mc-safe-left, 0px) - var(--mc-safe-right, 0px)));
  max-width: none;
  inset-inline: var(--mc-safe-left, 0px) var(--mc-safe-right, 0px);
  inset-block: max(12px, var(--mc-safe-top, 0px)) max(12px, var(--mc-safe-bottom, 0px));
  max-height: min(840px, calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));
  margin: auto; padding: 0; overflow: hidden;
  border: 1px solid var(--mc-polish-edge); border-radius: 30px;
  color: var(--mc-ink);
  background: linear-gradient(145deg, color-mix(in srgb, var(--mc-surface) 96%, transparent), color-mix(in srgb, var(--mc-surface) 90%, transparent));
  box-shadow: var(--mc-shadow-sheet), inset 0 1px 0 var(--mc-polish-highlight);
  -webkit-backdrop-filter: saturate(120%) blur(24px); backdrop-filter: saturate(120%) blur(24px);
}
#account-sheet::backdrop { background: rgba(5,14,35,.4); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
#account-sheet .account-sheet {
  display: grid; gap: 0; padding: 0; max-height: inherit;
  overflow-y: auto; overscroll-behavior: contain; scroll-padding-block: 120px 18px;
}
#account-sheet .account-sheet__header {
  position: sticky; top: 0; z-index: 2;
  padding: 20px var(--account-padding) 16px;
  border-bottom: 1px solid var(--mc-polish-edge); background: var(--mc-surface);
}
#account-sheet .sheet-handle { display: none; }
#account-sheet .sheet-close {
  --mc-action-height: 44px; --mc-action-radius: 999px;
  top: 12px; right: 12px; width: 44px; height: 44px; min-height: 44px; padding: 12px;
  border: 0; border-radius: 50%; background: color-mix(in srgb, var(--mc-ink) 5%, transparent); color: var(--mc-ink-secondary);
}
#account-sheet .mc-hero { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 6px 12px; padding: 0; border: 0; border-radius: 0; color: var(--mc-ink); background: transparent; box-shadow: none; }
/* Shared hero decoration otherwise leaves a square blue panel inside glass. */
#account-sheet .mc-hero::before, #account-sheet .mc-hero::after { display: none; }
#account-sheet .mc-hero__top { grid-row: 1 / 3; align-self: center; gap: 0; padding: 0; margin: 0; }
#account-sheet .mc-emblem { width: 36px; height: 36px; border-radius: 10px; flex-shrink: 0; }
#account-sheet .mc-hero__top p { display: none; }
#account-sheet .mc-hero h2 { margin: 0; padding-right: 24px; color: var(--mc-ink); font-family: var(--mc-font); font-size: clamp(1.25rem,4.5vw,1.5rem); font-weight: 650; line-height: 1.2; letter-spacing: -.035em; }
#account-sheet .mc-hero h2:focus { outline: none; }
#account-sheet .mc-hero > p { grid-column: 2; max-width: none; margin: 0; color: var(--mc-ink-secondary); font-size: .875rem; line-height: 1.45; }
#account-sheet [data-auth-pane] { min-width: 0; padding: 16px var(--account-padding) 8px; animation: account-pane-in 160ms ease-out; }
#account-sheet [hidden] { display: none !important; }
#account-sheet [data-auth-pane="signin"], #account-sheet .provider-stack { display: grid; gap: 8px; }
#account-sheet [data-auth-pane="signin"] { padding-top: 8px; padding-bottom: 18px; }
#account-sheet .account-divider { display: flex; align-items: center; gap: 12px; margin: 0 0 4px; color: var(--mc-ink-secondary); font-size: .8125rem; }
#account-sheet .account-divider::before, #account-sheet .account-divider::after { content: ""; flex: 1; height: 1px; background: var(--mc-polish-edge); }
#account-sheet .provider-button {
  display: flex; align-items: center; justify-content: center;
  width: 100%; min-height: 44px; height: auto; padding: 10px 16px; gap: 10px; border-radius: 14px;
  font-size: 1rem; font-weight: 600; line-height: 1.4; letter-spacing: -.012em;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
#account-sheet .provider-button svg { width: 20px; height: 20px; flex: 0 0 20px; }
#account-sheet .google-button { color: var(--mc-ink); border-color: var(--mc-polish-edge); background: color-mix(in srgb,var(--mc-surface) 72%,transparent); }
#account-sheet .google-button::before { display: none; }
#account-sheet .google-button[data-provider="google"] > svg { display: block; stroke: none; }
#account-sheet .account-sheet__links { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
#account-sheet .mc-button { min-height: 44px; max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
#account-sheet .account-sheet__links .mc-button { width: 100%; min-width: 0; padding: 10px 6px; }
#account-sheet .account-form, #account-sheet[data-auth-mode="verify"] .verification-pane:not([hidden]) { display: grid; gap: 10px; }
#account-sheet .account-form .planner-form__grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
#account-sheet .mc-input { min-width: 0; gap: 6px; font-size: .8125rem; font-weight: 600; }
#account-sheet .mc-input :is(input,select) {
  min-width: 0; min-height: 44px; padding: 10px 14px;
  border-color: var(--mc-polish-edge); border-radius: 16px;
  color: var(--mc-ink); background: color-mix(in srgb,var(--mc-ink) 3%,var(--mc-surface)); font-size: 1rem; font-weight: 400;
}
#account-sheet .mc-input input::placeholder { color: var(--mc-ink-secondary); }
#account-sheet .account-form .mc-button--primary { width: 100%; min-height: 48px; border-radius: 14px; font-size: 1rem; }
#account-sheet .account-form .mc-button--text { justify-self: stretch; width: 100%; padding: 10px 8px; text-align: center; }
#account-sheet .mc-button--text { --mc-action-height: 44px; --mc-action-font-size: .875rem; }
#account-sheet .small-print { font-size: .8125rem; line-height: 1.5; }
#account-sheet .account-details { min-width: 0; padding-block: 2px; border-block: 1px solid var(--mc-polish-edge); }
#account-sheet .account-details summary {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px;
  cursor: pointer; list-style: none; color: var(--mc-ink-secondary); font-size: .8125rem; font-weight: 550;
}
#account-sheet .account-details summary::-webkit-details-marker { display: none; }
#account-sheet .account-details summary::after { content: ""; width: 7px; height: 7px; flex: 0 0 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); margin-right: 4px; }
#account-sheet .account-details[open] summary::after { transform: rotate(225deg); }
#account-sheet .account-details[open] .mc-input { margin-block: 8px 12px; }
#account-sheet .account-details[open] .small-print { margin-bottom: 14px; }
#account-sheet .auth-status, #account-sheet[data-auth-mode="verify"] .auth-status {
  margin: 8px var(--account-padding) 18px; padding-top: 12px; border-top: 1px solid var(--mc-polish-edge);
  color: var(--mc-ink-secondary); font-size: .8125rem; line-height: 1.5; text-align: center; overflow-wrap: anywhere;
}
#account-sheet .auth-status:empty { display: none; }
#account-sheet .auth-status.error { color: #a32045; }
:is(.theme-dark,[data-theme="dark"]) #account-sheet .auth-status.error { color: #ffb2c3; }
#account-sheet .auth-status.success { color: var(--mc-ink); }
#account-sheet .verification-pane > p { margin: 0; overflow-wrap: anywhere; font-size: .9375rem; }
#account-sheet[data-auth-mode="verify"] .account-sheet { gap: 0; }
#account-sheet[data-auth-mode="verify"] .mc-hero--compact { padding: 0; gap: 6px 12px; }
#account-sheet[data-auth-mode="verify"] .mc-emblem { width: 36px; height: 36px; }
#account-sheet[data-auth-mode="verify"] .mc-hero--compact h2 { font-size: clamp(1.25rem,4.5vw,1.5rem); line-height: 1.2; letter-spacing: -.035em; }
#account-sheet[data-auth-mode="verify"] .mc-hero--compact > p:last-child { font-size: .875rem; line-height: 1.45; }
#account-sheet :is(button,input,summary):focus-visible { outline: 3px solid var(--mc-blue); outline-offset: 3px; }
@keyframes account-pane-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@media (max-width: 420px) { #account-sheet { --account-padding: 20px; border-radius: 26px; } }
@media (max-height: 560px) { #account-sheet .account-sheet__header { position: relative; } #account-sheet .account-sheet { scroll-padding-block: 16px; } }
@media (prefers-reduced-motion: reduce) { #account-sheet [data-auth-pane] { animation: none; } }
@media (prefers-reduced-transparency: reduce) {
  #account-sheet { background: var(--mc-surface); -webkit-backdrop-filter: none; backdrop-filter: none; }
  #account-sheet::backdrop { -webkit-backdrop-filter: none; backdrop-filter: none; }
}
:root[data-reduced-transparency=true] #account-sheet { background: var(--mc-surface); -webkit-backdrop-filter: none; backdrop-filter: none; }
@media (forced-colors: active) {
  #account-sheet, #account-sheet .account-sheet__header { background: Canvas; border-color: CanvasText; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
  #account-sheet .mc-hero :is(h2,p), #account-sheet .auth-status { color: CanvasText; }
  #account-sheet .provider-button { background: ButtonFace; color: ButtonText; border-color: ButtonText; box-shadow: none; }
}

/* Registration is temporarily closed at both presentation and backend layers. */
[data-registration-closed]{display:none!important}

/* Explain the two entry paths before asking a student for credentials. */
#account-sheet .signin-access-note {
  display: grid; gap: 6px; padding: 12px 14px; margin-bottom: 4px;
  border: 1px solid var(--mc-polish-edge); border-radius: 14px;
  background: color-mix(in srgb, var(--mc-blue) 5%, var(--mc-surface));
  font-size: .8125rem; line-height: 1.45;
}
#account-sheet .signin-access-note strong { color: var(--mc-ink); }
#account-sheet .signin-access-note p, #account-sheet .signin-method-help {
  margin: 0; color: var(--mc-ink-secondary); font-size: .8125rem; line-height: 1.45;
}
#account-sheet .signin-access-note a {
  display: inline-flex; align-items: center; min-height: 44px;
  color: var(--mc-ink); text-decoration: underline; text-underline-offset: 3px;
}
#account-sheet a:focus-visible { outline: 3px solid var(--mc-blue); outline-offset: 3px; border-radius: 4px; }
.marketing-appearance-controls > .marketing-signin { flex-shrink: 0; min-height: 44px; }

.mc-help-links{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center}.mc-help-links a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:3px}.account-sheet>.mc-help-links{justify-content:center;margin-top:12px}


/* Source: app-weather-v1.css */
/* Fully opaque: sensitive content must never show through decorative glass. */
body.is-privacy-locked > :not(.mc-privacy-lock),
body.is-privacy-locked > :not(.mc-privacy-lock) * {visibility:hidden!important;pointer-events:none!important;}
.mc-privacy-lock {width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;margin:auto;padding:0;border:1px solid var(--mc-line-strong);border-radius:var(--mc-radius-lg);background:var(--mc-surface-elevated);color:var(--mc-ink);box-shadow:var(--mc-shadow-sheet);}
.mc-privacy-lock::backdrop {background:var(--mc-background,#0b1324);opacity:1;}
.mc-privacy-lock__surface {display:grid;gap:16px;padding:28px;}
.mc-privacy-lock__surface img {border-radius:16px;}
.mc-privacy-lock__surface h1 {margin:0;font-size:1.8rem;letter-spacing:-.035em;}
.mc-privacy-lock__surface p {margin:0;line-height:1.5;}
.mc-privacy-lock__surface [data-lock-timer] {font-size:1.25rem;font-variant-numeric:tabular-nums;font-weight:650;}
.mc-privacy-lock__surface :is(small,[role=status]) {color:var(--mc-muted);font-size:.875rem;line-height:1.5;}
.mc-privacy-lock__surface form {display:grid;gap:12px;}
.mc-privacy-lock__surface [data-lock-device] {display:grid;gap:8px;}
.mc-privacy-lock__surface .mc-button {min-height:48px;width:100%;}
.mc-privacy-lock__surface input {font-size:1rem;min-height:48px;}
.mc-privacy-lock[open] .mc-privacy-lock__surface {animation:mc-lock-enter 160ms ease-out;}
@keyframes mc-lock-enter {from {opacity:.5;transform:translateY(6px)} to {opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.mc-privacy-lock[open] .mc-privacy-lock__surface{animation:none;}}
:root[data-reduced-motion=true] .mc-privacy-lock[open] .mc-privacy-lock__surface{animation:none;}

/* A shared compact strip; weather consent/provider behavior is unchanged. */
/* The expanded Live View scrolls with the page so it cannot cover headings. */
.mc-weather-bar {position:relative;top:auto;z-index:30;margin-bottom:18px;}
.mc-app-weather {--mc-weather-glass:color-mix(in srgb,var(--mc-surface) 88%,transparent);--mc-weather-edge:var(--mc-glass-border);position:relative;box-sizing:border-box;display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:6px 12px;border:1px solid var(--mc-weather-edge);border-radius:17px;color:var(--mc-ink);background:linear-gradient(145deg,var(--mc-glass-highlight),transparent 65%),var(--mc-weather-glass);box-shadow:var(--mc-shadow-subtle),inset 0 1px 0 var(--mc-glass-highlight);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);}
.mc-app-weather__motion {display:flex;align-items:center;gap:8px;min-width:0;margin-right:auto;color:var(--mc-ink-secondary);font-size:.75rem;}
.mc-app-weather__clock {display:grid;gap:2px;flex-shrink:0;}
.mc-app-weather__clock small {font-size:.6875rem;color:var(--mc-ink-secondary);}
.mc-app-weather__clock time {font-size:.875rem;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}
.mc-app-weather__details,.mc-live-appearance {position:static;min-width:0;}
.mc-app-weather__details>summary {display:flex;align-items:center;gap:8px;min-height:44px;padding:6px 8px;cursor:pointer;border-radius:10px;}
.mc-app-weather__city {font-size:.75rem;color:var(--mc-ink-secondary);max-width:110px;overflow-wrap:anywhere;}
.mc-app-weather__temperature {font-size:1.125rem;font-weight:650;letter-spacing:-.025em;line-height:1.2;font-variant-numeric:tabular-nums;white-space:nowrap;}
.mc-live-actions {display:flex;align-items:center;gap:4px;flex-shrink:0;}
.mc-live-icon,.mc-live-appearance>summary,.mc-app-weather__focus {box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:44px;min-height:44px;padding:8px;border:1px solid var(--mc-weather-edge);border-radius:12px;background:var(--mc-glass-subtle);color:var(--mc-ink);font:inherit;font-size:.8125rem;line-height:1.4;cursor:pointer;box-shadow:inset 0 1px 0 var(--mc-glass-highlight);transition:background var(--mc-duration-fast) var(--mc-ease-standard),box-shadow var(--mc-duration-fast) var(--mc-ease-standard);}
.mc-app-weather__focus {font-variant-numeric:tabular-nums;}
.mc-app-weather__focus>span {min-width:0;overflow-wrap:anywhere;}
.mc-app-weather__focus>[data-live-focus-countdown] {display:none;font-size:.8125rem;font-weight:650;}
.mc-app-weather[data-environment=clear] {--mc-weather-glass:color-mix(in srgb,var(--mc-surface) 92%,var(--mc-mint));}
.mc-app-weather[data-environment=overcast] {--mc-weather-glass:color-mix(in srgb,var(--mc-surface) 94%,var(--mc-blue));}
.mc-app-weather[data-environment=night] {--mc-weather-glass:color-mix(in srgb,var(--mc-surface) 94%,var(--mc-deep-blue));}
.mc-live-icon svg,.mc-live-appearance svg,.mc-app-weather__focus svg {width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;}
.mc-app-weather summary {list-style:none;}
.mc-app-weather summary::-webkit-details-marker {display:none;}
.mc-app-weather :is(button,summary,a,input):focus-visible {outline:3px solid var(--mc-blue);outline-offset:3px;}
.mc-app-weather :is(.mc-live-icon,.mc-live-appearance>summary,.mc-app-weather__focus,.mc-app-weather__details>summary):hover {background:var(--mc-glass-standard);}
.mc-app-weather :is(.mc-live-icon,.mc-live-appearance>summary,.mc-app-weather__focus):active {background:var(--mc-glass-strong);box-shadow:inset 0 1px 3px color-mix(in srgb,var(--mc-ink) 12%,transparent);}
.mc-app-weather button:disabled {opacity:.5;cursor:not-allowed;box-shadow:none;}
.mc-live-popover {position:absolute;top:calc(100% + 10px);right:8px;z-index:35;display:grid;gap:12px;box-sizing:border-box;width:min(300px,calc(100vw - 48px));padding:18px;border:1px solid var(--mc-weather-edge);border-radius:17px;background:var(--mc-surface-elevated);color:var(--mc-ink);box-shadow:var(--mc-shadow-elevated);font-size:.875rem;line-height:1.5;}
.mc-live-popover .theme-picker {display:flex;flex-wrap:wrap;gap:6px;}
.mc-live-popover .theme-choice {flex:1;min-width:0;min-height:44px;padding:8px;border-radius:10px;font:inherit;}
.mc-live-popover small,.mc-app-weather__credit,.mc-app-weather__time {color:var(--mc-ink-secondary);font-size:.75rem;line-height:1.5;}
.mc-live-schedule {display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer;}
.mc-live-schedule input {width:20px;height:20px;accent-color:var(--mc-blue);}
.mc-app-weather__location {min-height:44px;padding:8px 12px;border:1px solid var(--mc-weather-edge);border-radius:10px;background:var(--mc-glass-standard);color:var(--mc-ink);font:inherit;cursor:pointer;}
.mc-app-weather__status:empty,[data-live-theme-status]:empty {display:none;}
.mc-app-weather__birds {position:relative;width:72px;height:24px;overflow:hidden;flex-shrink:0;color:var(--mc-mint);opacity:.75;}
.mc-app-weather__bird {position:absolute;top:5px;left:0;width:22px;height:14px;animation:mc-weather-flight 18s linear infinite;animation-play-state:paused;}
.mc-app-weather__bird:nth-child(2) {animation-delay:-6s;top:1px;}
.mc-app-weather__bird:nth-child(3) {animation-delay:-12s;top:9px;}
.mc-app-weather[data-live-active=true] .mc-app-weather__bird {animation-play-state:running;}
.mc-app-weather[data-environment=overcast] .mc-app-weather__birds,.mc-app-weather[data-environment=night] .mc-app-weather__birds {color:var(--mc-ink-secondary);opacity:.55;}
@keyframes mc-weather-flight {0%{transform:translate(-24px,2px) rotate(-3deg)}50%{transform:translate(30px,-2px) rotate(3deg)}100%{transform:translate(84px,2px) rotate(-3deg)}}
@media(max-width:1100px) {.mc-app-weather__motion>span{display:none;}.mc-app-weather__birds{width:48px;}}
@media(max-width:900px) {.mc-weather-bar{top:env(safe-area-inset-top);margin-bottom:12px;}.mc-app-weather{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;padding:6px 10px;min-height:0;}.mc-app-weather__motion{display:none;}.mc-app-weather__clock{grid-column:1;grid-row:1;}.mc-app-weather__clock small{display:none;}.mc-app-weather__details{grid-column:2;grid-row:1;justify-self:end;}.mc-app-weather__city{display:none;}.mc-app-weather__birds{width:44px;height:24px;}.mc-app-weather__focus{grid-column:1;grid-row:2;justify-content:flex-start;min-width:0;}.mc-live-actions{grid-column:2;grid-row:2;}}
@media(max-width:360px) {.mc-app-weather{gap:2px 4px;padding:6px;}.mc-live-actions{gap:2px;}.mc-app-weather__clock time{font-size:.75rem;}.mc-app-weather__details>summary{padding-inline:4px;gap:0;}.mc-app-weather__focus{font-size:.75rem;}}
@media(max-width:440px) {
  .mc-app-weather__focus {justify-content:center;}
  .mc-app-weather__focus>[data-live-focus] {display:none;}
  .mc-app-weather__focus>[data-live-focus-countdown]:not([hidden]) {display:block;}
}
@media(max-width:360px) {.mc-app-weather__focus[data-focus-active=true]>svg{display:none;}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {.mc-app-weather{background:var(--mc-surface-elevated);}}
@media(prefers-reduced-transparency:reduce) {.mc-app-weather{background:var(--mc-surface-elevated);backdrop-filter:none;-webkit-backdrop-filter:none;}}
:root[data-reduced-transparency=true] .mc-app-weather {background:var(--mc-surface-elevated);backdrop-filter:none;-webkit-backdrop-filter:none;}
@media(prefers-reduced-motion:reduce) {.mc-app-weather__bird{animation:none;left:10px;}.mc-app-weather__bird:nth-child(2){left:28px;}.mc-app-weather__bird:nth-child(3){left:46px;}.mc-app-weather button{transition:none;}}
:root[data-reduced-motion=true] .mc-app-weather__bird {animation:none;}
.mc-app-weather[data-motion-reduced=true] .mc-app-weather__bird {animation:none;left:4px;}
.mc-app-weather[data-motion-reduced=true] .mc-app-weather__bird:nth-child(2) {left:18px;}
.mc-app-weather[data-motion-reduced=true] .mc-app-weather__bird:nth-child(3) {left:32px;}
@media(forced-colors:active) {.mc-app-weather,.mc-live-popover{background:Canvas;color:CanvasText;border-color:CanvasText;box-shadow:none;backdrop-filter:none;}.mc-live-icon,.mc-app-weather__focus,.mc-live-appearance>summary{background:ButtonFace;color:ButtonText;border-color:ButtonText;}.mc-app-weather__city,.mc-app-weather__credit{color:CanvasText;}}

/* Live View refinement reuses the shared palette, glass and action handlers. */
.mc-app-weather {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px 24px;padding:20px;--mc-live-atmosphere:transparent;background:linear-gradient(135deg,var(--mc-live-atmosphere),transparent 65%),linear-gradient(145deg,var(--mc-glass-highlight),transparent 65%),var(--mc-weather-glass);}
.mc-app-weather[data-weather-atmosphere=sunny] {--mc-live-atmosphere:rgba(237,207,132,.065);}
.mc-app-weather[data-weather-atmosphere=cloudy] {--mc-live-atmosphere:rgba(139,157,182,.06);}
.mc-app-weather[data-weather-atmosphere=rainy] {--mc-live-atmosphere:rgba(99,137,179,.07);}
.mc-app-weather[data-weather-atmosphere=snowy] {--mc-live-atmosphere:rgba(208,228,242,.10);}
.mc-app-weather[data-weather-atmosphere=night] {--mc-live-atmosphere:rgba(21,45,81,.10);}
.mc-live-identity {display:flex;align-items:center;gap:12px;min-width:0;}
.mc-live-identity>img {flex:none;border-radius:9px;}
.mc-app-weather .mc-app-weather__clock {gap:4px;min-width:0;}
.mc-app-weather .mc-app-weather__clock time {font-size:clamp(1.05rem,2.2vw,1.5rem);}
.mc-app-weather .mc-app-weather__clock small {display:block;font-size:.75rem;}
.mc-app-weather .mc-app-weather__details {grid-column:2;grid-row:1;justify-self:end;}
.mc-app-weather .mc-app-weather__details>summary {display:grid;grid-template-columns:auto auto;gap:3px 8px;min-height:44px;}
.mc-app-weather .mc-app-weather__city {display:block;font-size:.75rem;max-width:16ch;overflow:hidden;text-overflow:ellipsis;}
.mc-app-weather [data-weather-condition] {grid-column:1 / -1;font-size:.6875rem;color:var(--mc-ink-secondary);}
.mc-app-weather .mc-app-weather__birds {position:absolute;right:18px;top:0;pointer-events:none;}
.mc-app-weather .mc-app-weather__focus {grid-column:1;grid-row:2;justify-self:start;min-height:44px;margin:0;}
.mc-app-weather .mc-live-actions {grid-column:2;grid-row:2;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;min-width:0;}
.mc-live-icon {position:relative;}
.mc-live-alert-count {position:absolute;right:0;top:0;display:grid;place-items:center;min-width:18px;min-height:18px;border-radius:9px;padding:0 3px;background:var(--mc-ink);color:var(--mc-surface);font-size:10px;font-weight:700;pointer-events:none;}
[data-live-cloud][data-cloud-state=connected] {color:var(--mc-blue);}
[data-live-cloud][data-cloud-state=waiting] {color:#895710;}
[data-live-cloud][data-cloud-state=signin] {color:#a72929;}
.theme-dark [data-live-cloud][data-cloud-state=waiting] {color:#f4ca82;}
.theme-dark [data-live-cloud][data-cloud-state=signin] {color:#ffb2b2;}
.mc-live-upcoming {grid-column:1 / -1;border-top:1px solid var(--mc-line);padding-top:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px;}
.mc-live-upcoming__heading {grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:44px;}
.mc-live-upcoming__heading>strong {font-size:.7rem;letter-spacing:.1em;color:var(--mc-ink-secondary);}
.mc-live-empty {grid-column:1 / -1;color:var(--mc-ink-secondary);font-size:.875rem;margin:0;}
.mc-live-item {display:flex;gap:10px;text-align:left;min-width:0;min-height:44px;padding:8px 0;color:var(--mc-ink);border:0;background:transparent;cursor:pointer;}
.mc-live-item__content {display:grid;gap:4px;min-width:0;overflow-wrap:anywhere;}
.mc-live-item strong {font-size:.9rem;line-height:1.4;}
.mc-live-item :is(span.mc-live-item__timing,small) {font-size:.75rem;line-height:1.4;color:var(--mc-ink-secondary);}
.mc-live-item[data-status=soon] .mc-live-item__timing,.mc-live-item[data-status=underway] .mc-live-item__timing {color:var(--mc-ink);font-weight:600;}
.mc-live-item[data-status=overdue] .mc-live-item__timing {color:#87520b;}
.theme-dark .mc-live-item[data-status=overdue] .mc-live-item__timing {color:#f2cf91;}
.mc-live-read {min-height:44px;padding:8px;color:var(--mc-ink);font:inherit;font-size:.8rem;font-weight:600;border:0;background:transparent;cursor:pointer;}
.mc-live-panel {width:min(580px,calc(100vw - 32px));max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 32px);overflow:auto;border:1px solid var(--mc-line-strong);border-radius:var(--mc-radius-lg);background:var(--mc-surface-elevated);color:var(--mc-ink);padding:0;box-shadow:var(--mc-shadow-sheet);}
.mc-live-panel::backdrop {background:rgba(10,20,36,.45);}
.mc-live-panel header {position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;background:var(--mc-surface-elevated);border-bottom:1px solid var(--mc-line);z-index:1;}
.mc-live-panel h2 {font-size:1.15rem;margin:0;}
.mc-live-panel h3 {font-size:.9rem;margin:18px 0 4px;}
.mc-live-panel__body {padding:0 20px 20px;}
.mc-live-panel__body .mc-live-item {width:100%;}
.mc-live-panel__close,.mc-live-alert__dismiss {min-width:44px;min-height:44px;background:var(--mc-surface);border:1px solid var(--mc-line);border-radius:var(--mc-radius-sm);color:var(--mc-ink);font-size:1.25rem;cursor:pointer;}
.mc-live-alert {display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:4px 12px;border-bottom:1px solid var(--mc-line);padding:10px 0;}
.mc-live-alert__dismiss {align-self:start;}
.mc-live-alert>.mc-live-read,.mc-live-alert>small {justify-self:start;grid-column:1 / -1;}
.mc-live-panel__note {font-size:.8rem;line-height:1.5;color:var(--mc-ink-secondary);margin-top:18px;}
.mc-app-weather .mc-live-popover {box-sizing:border-box;width:min(300px,calc(100vw - 48px));max-width:calc(100% - 24px);right:12px;}
:is(.mc-live-item,.mc-live-read,.mc-live-panel button):focus-visible {outline:2px solid var(--mc-ink);outline-offset:3px;border-radius:6px;}
@media(max-width:1100px) {.mc-app-weather .mc-live-actions {max-width:304px;}}
@media(max-width:900px) {.mc-weather-bar{position:relative;top:auto;}.mc-app-weather{gap:16px;padding:18px;}.mc-app-weather .mc-app-weather__focus{grid-column:1 / -1;grid-row:2;}.mc-app-weather .mc-live-actions{grid-column:1 / -1;grid-row:3;justify-content:flex-start;max-width:none;}.mc-live-upcoming{grid-template-columns:minmax(0,1fr);gap:2px;}.mc-app-weather .mc-app-weather__details{grid-column:2;grid-row:1;}}
@media(max-width:440px) {.mc-app-weather{padding:16px;gap:12px;}.mc-live-identity{gap:8px;}.mc-live-identity>img{width:30px;height:30px;}.mc-app-weather .mc-app-weather__clock time{font-size:1rem;}.mc-app-weather .mc-app-weather__city{max-width:10ch;}.mc-app-weather .mc-app-weather__focus>[data-live-focus]{display:block;font-size:.8rem;}.mc-app-weather .mc-app-weather__focus>[data-live-focus-countdown]{display:none;}}
@media(max-width:360px) {.mc-app-weather{padding:12px;}.mc-live-identity{align-items:flex-start;}.mc-live-identity>img{display:none;}.mc-app-weather .mc-app-weather__clock small{font-size:.6875rem;}.mc-app-weather .mc-live-actions{gap:6px;}}
@media(prefers-reduced-transparency:reduce), (prefers-contrast:more) {.mc-app-weather{background:var(--mc-surface-elevated)!important;backdrop-filter:none;-webkit-backdrop-filter:none;}}
:root[data-reduced-transparency=true] .mc-app-weather {background:var(--mc-surface-elevated)!important;}
@media(forced-colors:active) {.mc-live-panel,.mc-live-panel header{background:Canvas;color:CanvasText;border-color:CanvasText;}.mc-live-item,.mc-live-read,.mc-live-alert-count,[data-live-cloud]{color:ButtonText!important;background:ButtonFace;}}
/* UX consolidation preserves the same glass palette and reading surfaces. */
.mc-app-weather .mc-app-weather__temperature{font-size:1.55rem;line-height:1.15;}
.mc-app-weather [data-weather-condition]{font-size:.8rem;line-height:1.4;}
.mc-app-weather [data-live-focus-button]:not([data-focus-active=true]){display:none;}
.mc-app-weather[data-on-home=true]:has([data-live-focus-button]:not([data-focus-active=true])) .mc-live-actions{grid-row:2;}
.mc-app-weather[data-live-text=light]{--mc-ink:#f2f6ff;--mc-ink-secondary:#c2d0e8;--mc-surface:#142447;--mc-surface-elevated:#142447;--mc-glass-subtle:#25395a;--mc-weather-glass:rgba(20,36,71,.97);--mc-weather-edge:rgba(219,232,255,.24);--mc-line:rgba(219,232,255,.18);}
.mc-app-weather[data-live-text=strong]{--mc-live-text-brightness:1!important;background:var(--mc-surface-elevated);backdrop-filter:none;-webkit-backdrop-filter:none;border-color:var(--mc-ink);}
.mc-app-weather :is(.mc-live-identity,.mc-app-weather__details>summary,.mc-live-upcoming){opacity:var(--mc-live-text-brightness,1);}
.mc-app-weather[data-live-text-size=larger] .mc-app-weather__clock time{font-size:1.55rem;}
.mc-app-weather[data-live-text-size=larger] .mc-app-weather__temperature{font-size:1.75rem;}
.mc-app-weather[data-live-text-size=larger] :is([data-weather-condition],.mc-live-item strong){font-size:1rem;}
.mc-app-weather[data-live-text-size=larger] .mc-live-item :is(span,small){font-size:.875rem;}
.mc-app-weather::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;overflow:hidden;opacity:0;}
.mc-app-weather[data-weather-atmosphere=cloudy]::after{opacity:.035;background:radial-gradient(ellipse at 24% 5%,var(--mc-blue),transparent 50%);animation:mc-live-cloud 18s ease-in-out infinite alternate;}
.mc-app-weather[data-weather-atmosphere=rainy]::after{opacity:.025;background:repeating-linear-gradient(115deg,transparent 0 55px,var(--mc-blue) 55px 56px,transparent 56px 90px);animation:mc-live-rain 6s linear infinite;}
.mc-app-weather[data-weather-atmosphere=snowy]::after{opacity:.055;background-image:radial-gradient(circle at 22% 20%,var(--mc-blue) 1.5px,transparent 2px),radial-gradient(circle at 73% 50%,var(--mc-blue) 1px,transparent 2px);background-size:130px 100px;animation:mc-live-snow 24s linear infinite;}
.mc-app-weather[data-live-active=false]::after{animation-play-state:paused;}
.mc-app-weather[data-weather-animations=false]::after,.mc-app-weather[data-motion-reduced=true]::after{animation:none;}
.mc-app-weather[data-data-saving-motion=true]::after,.mc-app-weather[data-data-saving-motion=true] .mc-app-weather__bird{animation:none;}
body.is-privacy-locked .mc-app-weather::after,body.is-privacy-locked .mc-app-weather .mc-app-weather__bird{animation-play-state:paused;}
@media(min-width:390px) and (max-width:900px){.mc-app-weather .mc-live-actions{gap:clamp(1px,calc((100vw - 390px)/10 + 1px),6px);}}
@keyframes mc-live-cloud{to{background-position:14px 0;}}
@keyframes mc-live-rain{to{background-position:4px 18px;}}
@keyframes mc-live-snow{to{background-position:0 100px;}}
.mc-live-custom{display:grid;gap:14px;padding-top:16px;}
.mc-live-custom__row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;line-height:1.4;}
.mc-live-custom__row :is(select,input[type=range]){max-width:55%;min-height:44px;color:var(--mc-ink);font:inherit;}
.mc-live-custom__row select{min-width:0;padding:8px;background:var(--mc-surface);border:1px solid var(--mc-line);border-radius:10px;}
.mc-live-custom__row input[type=checkbox]{width:22px;height:22px;flex:none;accent-color:var(--mc-blue);}
.mc-live-custom__row input[type=range]{min-width:0;}
.mc-live-custom :is(button,a,select,input):focus-visible{outline:3px solid var(--mc-blue);outline-offset:3px;}
.mc-home-focused.today-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--mc-space-4);}
.app-shell .mc-home-focused .today-next{min-height:0;padding:var(--mc-space-5);gap:var(--mc-space-3);color:var(--mc-text-primary);border-color:var(--mc-border-subtle);background:var(--mc-surface-elevated);box-shadow:var(--mc-shadow-card);}
.app-shell .mc-home-focused .today-next .card-label,.app-shell .mc-home-focused .today-next .card-label svg{color:var(--mc-accent-secondary);}
.app-shell .mc-home-focused .today-next .today-next__context{color:var(--mc-text-secondary);}
.app-shell .mc-home-focused .today-next p:not(.today-next__context){color:var(--mc-text-secondary);}
.mc-home-focused .today-next__body{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;}
.mc-home-focused .mc-home-focus-dock{min-width:0;}
.mc-home-focused .home-start-focus{min-height:48px!important;padding:10px 18px;white-space:normal;}
.mc-home-focused .home-start-focus svg{width:28px;height:28px;padding:5px;}
@media(max-width:640px){.mc-home-focused .today-next__body{grid-template-columns:minmax(0,1fr);gap:16px;}.mc-home-focused .mc-home-focus-dock,.mc-home-focused .home-start-focus{width:100%;}}
.mc-home-focused .today-next h2{font-size:clamp(1.4rem,3vw,2rem);line-height:1.25;}
.mc-home-focused .today-next__context{margin-bottom:0;font-weight:600;letter-spacing:0;}
.mc-home-focused .today-progress{gap:var(--mc-space-3);padding:var(--mc-space-5);}
.mc-home-focused .today-progress__metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--mc-space-4);}
.mc-home-focused .today-progress__metrics>span{border-radius:0;padding:var(--mc-space-2) var(--mc-space-3) var(--mc-space-2) 0;background:transparent;}
.mc-home-focused .today-progress__metrics strong{font-size:1.7rem;font-variant-numeric:tabular-nums;white-space:normal;overflow:visible;overflow-wrap:anywhere;}
.mc-home-focused .today-progress__metrics small,.mc-home-focused .today-progress__note{font-size:var(--mc-text-xs);line-height:1.5;}
.mc-home-focused .today-progress .mc-progress{height:6px;margin-top:14px;}
@media(max-width:360px){.mc-live-custom__row{align-items:flex-start;flex-wrap:wrap;gap:8px;}.mc-live-custom__row :is(select,input[type=range]){max-width:100%;}}
@media(prefers-reduced-motion:reduce),(prefers-reduced-transparency:reduce),(prefers-contrast:more){.mc-app-weather::after{animation:none;}.mc-app-weather{--mc-live-text-brightness:1!important;}}
:root[data-reduced-motion=true] .mc-app-weather::after,:root[data-reduced-transparency=true] .mc-app-weather::after{animation:none;}
@media(forced-colors:active){.mc-app-weather[data-live-text]{--mc-ink:CanvasText;--mc-ink-secondary:CanvasText;--mc-weather-glass:Canvas;--mc-surface:Canvas;--mc-weather-edge:CanvasText;}.mc-app-weather::after{display:none;}}

/* One shared temperature/condition presentation; privacy never reveals location. */
[data-weather-symbol] svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.mc-app-weather :is([data-weather-temperature],[data-weather-condition]){opacity:var(--mc-weather-text-brightness,1);}
[data-weather-contrast=strong] :is([data-weather-temperature],[data-weather-condition]){opacity:1!important;color:var(--mc-ink);}
.mc-app-weather[data-weather-size=larger] [data-weather-temperature]{font-size:1.9rem;}
[data-weather-intensity=still]::after,[data-live-effects=false]::after{animation:none!important;opacity:0!important;}
[data-weather-intensity=gentle]::after{animation-duration:32s!important;}
[data-live-effects=false] .mc-app-weather__bird{display:none;}
.mc-weather-appearance{display:grid;gap:12px;padding:18px;border:1px solid var(--mc-line);border-radius:var(--mc-radius-md);}
.mc-weather-appearance h3{margin:0;}
.mc-lock-weather{position:relative;display:grid;justify-items:center;gap:8px;padding:22px 18px;border:1px solid var(--mc-line);border-radius:var(--mc-radius-lg);background:var(--mc-glass-subtle);overflow:hidden;}
.mc-lock-weather [data-weather-temperature]{font-size:3.5rem;line-height:1.1;font-weight:650;font-variant-numeric:tabular-nums;color:var(--mc-ink);opacity:var(--mc-weather-text-brightness,1);}
.mc-lock-weather [data-weather-condition]{font-size:1.2rem;line-height:1.4;color:var(--mc-ink-secondary);opacity:var(--mc-weather-text-brightness,1);}
.mc-lock-weather [data-weather-symbol] svg{width:36px;height:36px;}
.mc-lock-weather a{font-size:.75rem;color:var(--mc-ink-secondary);min-height:44px;display:flex;align-items:center;}
.mc-lock-weather[data-weather-size=larger] [data-weather-temperature]{font-size:4.2rem;}
.mc-lock-weather[data-weather-atmosphere=sunny]{background:linear-gradient(135deg,var(--mc-glass-highlight),transparent),var(--mc-glass-subtle);}
.mc-lock-weather[data-weather-atmosphere=night]{background:var(--mc-glass-standard);}
.mc-lock-weather[data-weather-atmosphere=cloudy],.mc-lock-weather[data-weather-atmosphere=rainy],.mc-lock-weather[data-weather-atmosphere=snowy]{background:linear-gradient(135deg,var(--mc-glass-highlight),var(--mc-glass-subtle));}
/* Branded Focus material stays cobalt in both modes. Link/accent tokens become
   pale in dark mode and must not determine a gradient button's foreground. */
.mc-focus-action{--mc-focus-blue:#0940c4;--mc-focus-deep-blue:#05155c;display:flex;align-items:center;justify-content:center;gap:12px;min-height:56px!important;border-radius:var(--mc-radius-md);color:#fff!important;background:linear-gradient(135deg,var(--mc-focus-blue),var(--mc-focus-deep-blue))!important;border:1px solid var(--mc-glass-highlight);box-shadow:var(--mc-shadow-subtle),inset 0 1px 0 var(--mc-glass-highlight);backdrop-filter:blur(12px);transition:transform 160ms ease-out,box-shadow 160ms ease-out;}
.mc-focus-action svg{width:34px;height:34px;box-sizing:border-box;border:1px solid var(--mc-glass-highlight);border-radius:50%;padding:7px;flex:none;}
.mc-focus-action:active{transform:scale(.985);box-shadow:inset 0 1px 4px var(--mc-glass-highlight);}
/* A transformed page would anchor its fixed Focus control to scrolled content. */
.app-view[data-view=home]{transform:none!important;will-change:auto!important;animation:none!important;}
@media(prefers-reduced-motion:reduce){.mc-focus-action{transition:none;}.mc-focus-action:active{transform:none;}}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){.mc-focus-action{backdrop-filter:none;}.mc-lock-weather{background:var(--mc-surface-elevated);}.mc-shared-weather{--mc-weather-text-brightness:1!important;}}
:root[data-reduced-motion=true] .mc-focus-action{transition:none;}
:root[data-reduced-motion=true] .mc-focus-action:active{transform:none;}
@media(forced-colors:active){.mc-focus-action{background:ButtonFace!important;color:ButtonText!important;border-color:ButtonText;}.mc-lock-weather{background:Canvas;border-color:CanvasText;}}

.mc-lock-weather::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.04;}
.mc-lock-weather[data-weather-atmosphere=cloudy]::after{background:radial-gradient(ellipse at 25% 5%,var(--mc-blue),transparent 60%);animation:mc-live-cloud 32s ease-in-out infinite alternate;}
.mc-lock-weather[data-weather-atmosphere=rainy]::after{background:repeating-linear-gradient(115deg,transparent 0 55px,var(--mc-blue) 55px 56px,transparent 56px 90px);animation:mc-live-rain 16s linear infinite;}
.mc-lock-weather[data-weather-atmosphere=snowy]::after{background-image:radial-gradient(circle at 25% 20%,var(--mc-blue) 1px,transparent 2px);background-size:130px 100px;animation:mc-live-snow 32s linear infinite;}
.mc-lock-weather[data-weather-intensity=still]::after,.mc-lock-weather[data-weather-animations=false]::after,.mc-lock-weather[data-motion-reduced=true]::after,.mc-lock-weather[data-data-saving-motion=true]::after,.mc-lock-weather[data-live-effects=false]::after{animation:none!important;}
.mc-lock-weather[data-live-active=false]::after{animation-play-state:paused;}
@media(prefers-reduced-motion:reduce),(prefers-reduced-transparency:reduce),(prefers-contrast:more){.mc-lock-weather::after{animation:none;}}
:root[data-reduced-motion=true] .mc-lock-weather::after,:root[data-reduced-transparency=true] .mc-lock-weather::after{animation:none;}

/* Home task entry and Plan already provide their actions; note capture is direct. */
.mc-home-capture{width:100%;min-height:54px;justify-content:center;gap:10px;border:1px solid var(--mc-line);border-radius:var(--mc-radius-md);background:var(--mc-glass-subtle);box-shadow:var(--mc-shadow-subtle);font-weight:650;}
.mc-home-capture svg{flex:0 0 22px;width:22px;height:22px;fill:none;stroke:currentColor;}


/* Source: tutor-workspace-v1.css */
.tutor-mode-toolbar { display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem 0; }
.tutor-mode-toolbar select { font:inherit;color:var(--mc-text-primary);background:var(--mc-glass-strong);border:1px solid var(--mc-border-subtle);border-radius:14px;padding:.7rem;min-height:44px; }
.tutor-mode-toolbar [data-socratic-actions] { display:flex;gap:.25rem;flex-wrap:wrap;width:100%; }
.tutor-workspace-panel { margin:.75rem 0;padding:1.25rem;border:1px solid var(--mc-border-subtle);border-radius:20px;background:var(--mc-surface-primary);color:var(--mc-text-primary);max-height:60vh;overflow:auto; }
.tutor-workspace-panel[hidden] {display:none;}
.tutor-workspace-panel textarea {display:block;min-height:110px;width:100%;max-width:100%;font:inherit;background:var(--mc-surface-elevated);color:inherit;border:1px solid var(--mc-border-subtle);border-radius:12px;padding:.75rem;}
.tutor-response-actions {font-size:.875rem;padding:.5rem 0;}
.tutor-response-actions summary {cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600;}
.tutor-workspace-panel button {margin:.25rem;}
.tutor-mode-toolbar button:focus-visible,.tutor-workspace-panel button:focus-visible,.tutor-response-actions summary:focus-visible {outline:2px solid var(--mc-accent-primary);outline-offset:3px;}
@media(prefers-reduced-motion:reduce) {.tutor-workspace-panel * {transition:none;animation:none;}}
.tutor-workspace-panel{scroll-padding:1rem;overscroll-behavior:contain}.tutor-workspace-panel h3:focus{outline:none}.tutor-workspace-panel input[type=file]{max-width:100%;font:inherit;min-height:44px}.tutor-workspace-panel button{min-height:44px;white-space:normal;overflow-wrap:anywhere}


/* Source: logo-glass-v1.css */
/* Navy square identity. The artwork carries its own tile, depth and rim, so holders only follow its corners. */
.mc-logo.mc-logo {
  box-sizing:border-box;
  padding:0;
  border:0;
  outline:0;
  border-radius:28%;
  overflow:visible;
  isolation:isolate;
  background:none;
  box-shadow:0 2px 5px rgba(3,15,46,.2),0 7px 16px rgba(3,15,46,.14);
}
.mc-logo.mc-logo > img {
  display:block;
  width:100%;
  height:100%;
  margin:0;
  border:0;
  border-radius:inherit;
  object-fit:contain;
  opacity:1;
  filter:none;
  clip-path:none;
}
.mc-logo.mc-logo::after {display:none;}
.theme-dark .mc-logo.mc-logo {
  box-shadow:0 3px 10px rgba(0,7,30,.28),0 12px 28px rgba(0,7,30,.20);
}
.mc-live-identity > .mc-live-logo {--mc-logo-size:36px;flex:none;}
@media(max-width:440px) {
  .mc-live-identity > .mc-live-logo {--mc-logo-size:30px;}
}
@media(max-width:360px) {
  .mc-live-identity > .mc-live-logo {display:none;}
}
@media(forced-colors:active) {
  .mc-logo.mc-logo {box-shadow:none;}
}

.app-shell .glass-wordmark > img {display:block;flex:none;border-radius:28%;object-fit:contain;box-shadow:0 2px 8px #061a3233;}
.app-shell .glass-wordmark {font-weight:650;letter-spacing:-.025em;}
/* Phones have no side menu, so the logo leads each page's own heading. */
@media(max-width:760px) {
  html body .app-shell .app-view:not([data-view="focus"]) > .page-header::before {content:"";display:block;order:-1;flex:none;align-self:flex-start;width:34px;height:34px;margin:4px 10px 0 0;border-radius:28%;background:url("/mindcoda-brand-v2.svg") center/contain no-repeat;box-shadow:0 2px 6px rgba(5,15,50,.2),0 6px 14px rgba(5,15,50,.12);}
}


/* Source: live-indicators-v1.css */
/* The existing brand palette supplies every accent and accessibility mode. */
.mc-live-ai{grid-column:1 / -1;display:flex;align-items:center;gap:12px;justify-self:start;max-width:100%;padding:9px 13px;border:1px solid var(--mc-line-strong);border-radius:var(--mc-radius-sm);background:var(--mc-glass-subtle);color:var(--mc-ink);box-shadow:inset 0 1px 0 var(--mc-glass-highlight);}
.mc-live-ai[hidden],.mc-live-analog[hidden],[data-live-timer-cue][hidden]{display:none!important;}
.mc-live-ai__battery{position:relative;flex:none;width:46px;height:23px;padding:3px;border:1.5px solid var(--mc-ink-secondary);border-radius:7px;box-sizing:border-box;}
.mc-live-ai__battery::after{content:'';position:absolute;width:3px;height:9px;right:-5px;top:5.5px;border-radius:0 2px 2px 0;background:var(--mc-ink-secondary);}
.mc-live-ai__fill{display:block;height:100%;border-radius:3px;background:linear-gradient(115deg,var(--mc-accent-primary),var(--mc-accent-secondary));box-shadow:inset 0 1px 0 var(--mc-glass-highlight);}
.mc-live-ai[data-ai-level=low] .mc-live-ai__fill{background:var(--mc-warning);}
.mc-live-ai[data-ai-level=empty] .mc-live-ai__battery{border-color:var(--mc-danger);}
.mc-live-ai[data-ai-level=unavailable] .mc-live-ai__battery{border-style:dashed;}
.mc-live-ai__copy{display:grid;gap:2px;min-width:0;}
.mc-live-ai__heading{display:flex;gap:12px;align-items:baseline;font-size:.8rem;font-weight:650;}
.mc-live-ai__heading strong{font-size:.95rem;font-variant-numeric:tabular-nums;}
.mc-live-ai small{font-size:.6875rem;line-height:1.4;color:var(--mc-ink-secondary);overflow-wrap:anywhere;}
.mc-live-timer-cue{padding:3px 7px;border-radius:7px;background:var(--mc-warning-surface);color:var(--mc-warning);font-size:.6875rem;font-weight:700;line-height:1.4;}
.mc-app-weather__focus[data-timer-urgent=true]{flex-wrap:wrap;}
.mc-app-weather .mc-app-weather__clock[data-live-clock-style=analog]{justify-items:start;gap:4px;}
.mc-app-weather .mc-app-weather__clock[data-live-clock-style=analog] time{font-size:.875rem;}
.mc-live-analog{position:relative;display:block;width:64px;height:64px;flex:none;border:1px solid var(--mc-line-strong);border-radius:50%;background:radial-gradient(circle at 28% 16%,var(--mc-glass-highlight),transparent 62%),var(--mc-glass-subtle);color:var(--mc-ink);box-shadow:inset 0 1px 0 var(--mc-glass-highlight),var(--mc-shadow-subtle);}
.mc-live-analog__mark{position:absolute;left:calc(50% - .5px);top:4px;width:1px;height:4px;background:var(--mc-ink-secondary);transform:rotate(var(--mark-turn));transform-origin:.5px 28px;}
.mc-live-analog__mark:nth-child(3n + 1){width:2px;height:5px;left:calc(50% - 1px);transform-origin:1px 28px;background:var(--mc-ink);}
.mc-live-analog__hand{position:absolute;left:calc(50% - 1px);bottom:50%;width:2px;border-radius:3px;transform-origin:50% 100%;background:var(--mc-ink);}
.mc-live-analog__hand--hour{height:17px;width:3px;left:calc(50% - 1.5px);}
.mc-live-analog__hand--minute{height:23px;}
.mc-live-analog__hand--second{height:25px;width:1px;left:calc(50% - .5px);background:var(--mc-accent-primary);}
.mc-app-weather[data-battery-saver=true] .mc-live-analog__hand--second{display:none;}
.mc-live-analog__pin{position:absolute;left:calc(50% - 3px);top:calc(50% - 3px);width:6px;height:6px;border-radius:50%;background:var(--mc-ink);}
@media(max-width:360px){.mc-live-ai{gap:10px;padding:8px 11px;}.mc-live-ai__heading{gap:8px;}.mc-live-ai__heading strong{font-size:.875rem;}.mc-app-weather .mc-app-weather__clock[data-live-clock-style=analog] time{font-size:.75rem;}}
@media(prefers-contrast:more){.mc-live-ai,.mc-live-analog{background:var(--mc-surface);border-color:var(--mc-ink);}.mc-live-ai small{color:var(--mc-ink);}}
@media(forced-colors:active){.mc-live-ai,.mc-live-analog{background:Canvas;color:CanvasText;border-color:CanvasText;box-shadow:none;}.mc-live-ai__battery{border-color:CanvasText;}.mc-live-ai__fill,.mc-live-ai__battery::after,.mc-live-analog__hand,.mc-live-analog__mark,.mc-live-analog__pin{background:CanvasText;}.mc-live-timer-cue{background:Canvas;color:CanvasText;border:1px solid CanvasText;}}


/* Source: live-polish-v1.css */
/* Live View: one calm glass surface, shared weather and existing actions. */
.mc-app-weather {padding-top:36px;isolation:isolate;gap:16px 20px;}
.mc-live-header {grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;min-width:0;}
.mc-live-header .mc-live-identity {flex:1 1 8rem;min-width:max-content;}
.mc-live-header .mc-app-weather__details {flex:0 1 auto;max-width:100%;}
.mc-app-weather>.mc-app-weather__birds {position:absolute;inset:5px 16px auto;width:auto;height:24px;container-type:inline-size;pointer-events:none;color:var(--mc-blue);opacity:.72;z-index:0;}
.theme-dark .mc-app-weather>.mc-app-weather__birds,.mc-app-weather[data-live-text=light]>.mc-app-weather__birds {color:var(--mc-ink);opacity:.82;}
.mc-app-weather>.mc-app-weather__birds .mc-app-weather__bird {top:5px;left:0;width:28px;height:16px;animation:mc-live-bird-flight 22s linear infinite;animation-play-state:paused;}
.mc-app-weather>.mc-app-weather__birds .mc-app-weather__bird:nth-child(2) {animation-delay:-7.3s;top:1px;}
.mc-app-weather>.mc-app-weather__birds .mc-app-weather__bird:nth-child(3) {animation-delay:-14.6s;top:8px;}
.mc-app-weather[data-live-active=true]>.mc-app-weather__birds .mc-app-weather__bird {animation-play-state:running;}
@keyframes mc-live-bird-flight {from{transform:translate3d(-32px,2px,0) rotate(-3deg)}50%{transform:translate3d(calc(50cqw - 16px),-2px,0) rotate(3deg)}to{transform:translate3d(calc(100cqw + 32px),2px,0) rotate(-3deg)}}
.mc-app-weather .mc-app-weather__details>summary {grid-template-columns:26px auto;grid-template-rows:auto auto auto;gap:4px 8px;align-content:center;align-items:center;padding:4px 8px;text-align:left;}
.mc-app-weather .mc-app-weather__city {grid-column:1 / -1;grid-row:3;max-width:18ch;font-size:.7rem;}
.mc-app-weather [data-weather-symbol] {grid-column:1;grid-row:1;}
.mc-app-weather .mc-app-weather__temperature {grid-column:2;grid-row:1;font-size:clamp(2rem,3.5vw,2.75rem);line-height:1.08;letter-spacing:-.04em;font-weight:650;}
.mc-app-weather [data-weather-condition] {grid-column:1 / -1;grid-row:2;font-size:.875rem;line-height:1.35;}
.mc-app-weather[data-weather-size=larger] [data-weather-temperature],.mc-app-weather[data-live-text-size=larger] [data-weather-temperature] {font-size:clamp(2.4rem,4vw,3.1rem);}
.mc-app-weather .mc-app-weather__clock time {font-size:clamp(1.2rem,2.7vw,1.8rem);letter-spacing:-.025em;}
.mc-app-weather .mc-app-weather__clock small {font-size:.8rem;line-height:1.35;white-space:normal;}
/* Follow occupied Focus/control rows instead of sharing their breakpoint row. */
.mc-app-weather .mc-live-ai {grid-row:auto;}
.mc-app-weather .mc-live-upcoming {position:relative;z-index:1;}
@media(max-width:440px){
 .mc-app-weather {padding:34px 16px 16px;gap:14px 12px;}
 .mc-app-weather .mc-app-weather__clock time {font-size:1.15rem;}
 .mc-app-weather .mc-app-weather__temperature {font-size:2rem;}
 .mc-app-weather[data-weather-size=larger] [data-weather-temperature],.mc-app-weather[data-live-text-size=larger] [data-weather-temperature] {font-size:2.4rem;}
 .mc-app-weather .mc-live-actions {grid-column:1 / -1;grid-row:auto;justify-content:flex-start;gap:8px;}
 .mc-app-weather .mc-app-weather__focus {grid-column:1 / -1;grid-row:auto;}
 .mc-app-weather .mc-live-ai {grid-row:auto;}
}
@media(max-width:360px){
 .mc-app-weather {padding:32px 12px 12px;gap:12px 8px;}
 .mc-app-weather .mc-app-weather__clock time {font-size:1rem;}
 .mc-app-weather .mc-app-weather__details>summary {grid-template-columns:22px auto;gap:4px 6px;padding-inline:4px;}
 .mc-app-weather .mc-live-actions {gap:7px;}
}
/* Motion stays decorative and obeys every existing accessibility preference. */
.mc-app-weather:is([data-live-active=false],[data-motion-reduced=true],[data-weather-animations=false],[data-data-saving-motion=true],[data-weather-intensity=still])>.mc-app-weather__birds .mc-app-weather__bird,
:root[data-reduced-motion=true] .mc-app-weather>.mc-app-weather__birds .mc-app-weather__bird {animation:none;left:18%;transform:none;}
.mc-app-weather:is([data-motion-reduced=true],[data-weather-animations=false],[data-data-saving-motion=true],[data-weather-intensity=still])>.mc-app-weather__birds .mc-app-weather__bird:nth-child(2),
:root[data-reduced-motion=true] .mc-app-weather>.mc-app-weather__birds .mc-app-weather__bird:nth-child(2) {left:48%;}
.mc-app-weather:is([data-motion-reduced=true],[data-weather-animations=false],[data-data-saving-motion=true],[data-weather-intensity=still])>.mc-app-weather__birds .mc-app-weather__bird:nth-child(3),
:root[data-reduced-motion=true] .mc-app-weather>.mc-app-weather__birds .mc-app-weather__bird:nth-child(3) {left:78%;}
body.is-privacy-locked .mc-app-weather>.mc-app-weather__birds .mc-app-weather__bird {animation-play-state:paused;}
@media(prefers-reduced-motion:reduce){
 .mc-app-weather>.mc-app-weather__birds .mc-app-weather__bird {animation:none;left:18%;transform:none;}
 .mc-app-weather>.mc-app-weather__birds .mc-app-weather__bird:nth-child(2) {left:48%;}
 .mc-app-weather>.mc-app-weather__birds .mc-app-weather__bird:nth-child(3) {left:78%;}
}
@media(forced-colors:active){.mc-app-weather>.mc-app-weather__birds{color:CanvasText;}}


/* Source: live-glass-v2.css */
/* A single brand material for Live View. Geometry, weather, Focus and account
   behavior stay owned by the existing components. Every reflection is inert. */
.mc-app-weather {
  border-color:color-mix(in srgb,var(--mc-line-strong) 62%,var(--mc-glass-highlight));
  background:
    radial-gradient(ellipse at 14% 0%,color-mix(in srgb,var(--mc-glass-highlight) 82%,transparent),transparent 56%),
    linear-gradient(155deg,color-mix(in srgb,var(--mc-glass-highlight) 38%,transparent),transparent 44%),
    color-mix(in srgb,var(--mc-weather-glass) 84%,transparent);
  box-shadow:
    0 14px 32px color-mix(in srgb,var(--mc-deep-blue) 11%,transparent),
    0 2px 7px color-mix(in srgb,var(--mc-deep-blue) 6%,transparent),
    inset 0 1px 0 var(--mc-glass-highlight),
    inset 0 -1px 0 color-mix(in srgb,var(--mc-line) 48%,transparent);
  -webkit-backdrop-filter:saturate(135%) blur(var(--mc-glass-blur-standard));
  backdrop-filter:saturate(135%) blur(var(--mc-glass-blur-standard));
}
.mc-app-weather::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:inherit;
  pointer-events:none;
  background:
    linear-gradient(110deg,transparent 18%,color-mix(in srgb,var(--mc-glass-highlight) 54%,transparent) 38%,transparent 57%),
    radial-gradient(ellipse at 100% 0%,color-mix(in srgb,var(--mc-accent-primary) 7%,transparent),transparent 52%);
  box-shadow:inset 1px 0 0 color-mix(in srgb,var(--mc-glass-highlight) 70%,transparent),inset -1px 0 0 color-mix(in srgb,var(--mc-line) 40%,transparent);
}
/* The card supplies the blur once. Small controls reuse its frosted finish
   without creating another backdrop sampling layer for each button. */
.mc-app-weather :is(.mc-live-icon,.mc-app-weather__focus,.mc-app-weather__details>summary),
.mc-app-weather .mc-live-ai {
  border:1px solid color-mix(in srgb,var(--mc-line-strong) 52%,var(--mc-glass-highlight));
  background:linear-gradient(155deg,color-mix(in srgb,var(--mc-glass-highlight) 68%,transparent),transparent 56%),color-mix(in srgb,var(--mc-glass-subtle) 88%,transparent);
  box-shadow:inset 0 1px 0 var(--mc-glass-highlight),inset 0 -1px 0 color-mix(in srgb,var(--mc-line) 42%,transparent),0 2px 7px color-mix(in srgb,var(--mc-deep-blue) 6%,transparent);
}
.mc-app-weather .mc-app-weather__details>summary {border-radius:var(--mc-radius-sm);}
.mc-app-weather :is(.mc-live-icon,.mc-app-weather__focus,.mc-app-weather__details>summary):hover {
  background:linear-gradient(155deg,var(--mc-glass-highlight),transparent 56%),var(--mc-glass-standard);
  border-color:var(--mc-line-strong);
}
.mc-app-weather :is(.mc-live-icon,.mc-app-weather__focus,.mc-app-weather__details>summary):active {
  background:var(--mc-glass-strong);
  box-shadow:inset 0 1px 3px color-mix(in srgb,var(--mc-ink) 12%,transparent);
}
.mc-app-weather .mc-live-ai__battery {
  background:color-mix(in srgb,var(--mc-surface) 26%,transparent);
  box-shadow:inset 0 1px 2px color-mix(in srgb,var(--mc-deep-blue) 8%,transparent);
}
.mc-app-weather .mc-live-analog {
  background:radial-gradient(circle at 26% 12%,var(--mc-glass-highlight),transparent 64%),var(--mc-glass-subtle);
  box-shadow:inset 0 1px 0 var(--mc-glass-highlight),inset 0 -1px 0 var(--mc-line),var(--mc-shadow-subtle);
}
/* Display preferences and accessibility outrank decorative material. The
   Privacy Lock's opaque surface and backdrop are deliberately untouched. */
.mc-app-weather:is([data-live-effects=false],[data-live-text=strong]) {
  background:var(--mc-surface-elevated);
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  box-shadow:var(--mc-shadow-subtle);
}
.mc-app-weather:is([data-live-effects=false],[data-live-text=strong])::before {display:none;}
.mc-app-weather[data-live-effects=false] :is(.mc-live-icon,.mc-app-weather__focus,.mc-app-weather__details>summary,.mc-live-ai,.mc-live-analog) {
  background:var(--mc-surface);
  box-shadow:none;
}
.mc-app-weather[data-live-text=strong] :is(.mc-live-icon,.mc-app-weather__focus,.mc-app-weather__details>summary,.mc-live-ai,.mc-live-analog) {
  background:var(--mc-surface);
  border-color:var(--mc-ink);
  box-shadow:none;
}
:root[data-reduced-transparency=true] .mc-app-weather {
  background:var(--mc-surface-elevated)!important;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  box-shadow:var(--mc-shadow-subtle);
}
:root[data-reduced-transparency=true] .mc-app-weather::before {display:none;}
:root[data-reduced-transparency=true] .mc-app-weather :is(.mc-live-icon,.mc-app-weather__focus,.mc-app-weather__details>summary,.mc-live-ai,.mc-live-analog) {
  background:var(--mc-surface);
  box-shadow:none;
}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more) {
  .mc-app-weather {background:var(--mc-surface-elevated)!important;border-color:var(--mc-ink);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;}
  .mc-app-weather::before {display:none;}
  .mc-app-weather :is(.mc-live-icon,.mc-app-weather__focus,.mc-app-weather__details>summary,.mc-live-ai,.mc-live-analog) {background:var(--mc-surface);border-color:var(--mc-ink);box-shadow:none;}
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
  .mc-app-weather {background:var(--mc-surface-elevated);}
  .mc-app-weather::before {display:none;}
}
@media(forced-colors:active) {
  .mc-app-weather {background:Canvas!important;color:CanvasText;border-color:CanvasText;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;}
  .mc-app-weather::before {display:none;}
  .mc-app-weather :is(.mc-live-icon,.mc-app-weather__focus,.mc-app-weather__details>summary,.mc-live-ai,.mc-live-analog) {background:Canvas;color:CanvasText;border-color:CanvasText;box-shadow:none;}
  .mc-app-weather .mc-live-ai__battery {background:Canvas;box-shadow:none;}
}


/* Source: live-environment-v1.css */
/* The sky is an illustration of the current forecast, never a location image.
   One clipped, inert layer keeps the environment behind the glass and content. */
.mc-app-weather {--mc-environment-tint:var(--mc-mint);--mc-environment-warmth:var(--mc-cream);}
.mc-app-weather[data-temperature-band=freezing] {--mc-environment-tint:var(--mc-blue);}
.mc-app-weather[data-temperature-band=cold] {--mc-environment-tint:color-mix(in srgb,var(--mc-blue) 70%,var(--mc-mint));}
.mc-app-weather[data-temperature-band=cool] {--mc-environment-tint:color-mix(in srgb,var(--mc-blue) 34%,var(--mc-mint));}
.mc-app-weather[data-temperature-band=warm] {--mc-environment-tint:var(--mc-cream);--mc-environment-warmth:color-mix(in srgb,var(--mc-cream) 80%,var(--mc-coral));}
.mc-app-weather[data-temperature-band=hot] {--mc-environment-tint:color-mix(in srgb,var(--mc-cream) 68%,var(--mc-coral));--mc-environment-warmth:var(--mc-coral);}
.mc-live-environment {
  position:absolute;inset:0 0 auto;height:min(260px,68%);overflow:hidden;
  border-radius:inherit;z-index:-1;pointer-events:none!important;contain:paint;
  background:radial-gradient(ellipse at 88% 0%,color-mix(in srgb,var(--mc-environment-tint) 23%,transparent),transparent 72%),radial-gradient(ellipse at 0% 10%,color-mix(in srgb,var(--mc-mint) 17%,transparent),transparent 62%);
  -webkit-mask-image:linear-gradient(to bottom,black 58%,transparent);mask-image:linear-gradient(to bottom,black 58%,transparent);
}
.mc-live-environment *,.mc-live-environment::before,.mc-live-environment::after {position:absolute;pointer-events:none!important;}
.mc-live-environment__orb {
  display:none;top:-26px;right:21%;width:108px;height:108px;border-radius:50%;
  background:radial-gradient(circle at 36% 32%,color-mix(in srgb,var(--mc-cream) 80%,var(--mc-surface)),color-mix(in srgb,var(--mc-environment-warmth) 62%,transparent) 62%,transparent 74%);
  box-shadow:0 0 60px 28px color-mix(in srgb,var(--mc-environment-warmth) 21%,transparent);opacity:.72;
}
.mc-app-weather[data-weather-sky=sunny] .mc-live-environment__orb {display:block;}
.mc-live-environment__cloud {
  display:none;top:28px;right:6%;width:150px;height:38px;border-radius:50%;
  background:color-mix(in srgb,var(--mc-ink-secondary) 9%,var(--mc-glass-highlight));
  box-shadow:-42px 22px 0 -5px color-mix(in srgb,var(--mc-glass-highlight) 72%,transparent),80px -9px 0 4px color-mix(in srgb,var(--mc-glass-highlight) 46%,transparent);
  filter:blur(5px);opacity:.7;transform:translate3d(0,0,0);animation:mc-environment-cloud 24s ease-in-out infinite alternate;animation-play-state:paused;
}
.mc-live-environment__cloud::before,.mc-live-environment__cloud::after {content:"";bottom:4px;width:70px;height:62px;border-radius:50%;background:inherit;}
.mc-live-environment__cloud::before {left:18px;}
.mc-live-environment__cloud::after {left:65px;height:48px;width:55px;}
.mc-app-weather:is([data-weather-sky=cloudy],[data-weather-sky=rainy],[data-weather-sky=snowy],[data-weather-sky=foggy]) .mc-live-environment__cloud {display:block;}
.mc-app-weather[data-weather-sky=rainy] .mc-live-environment__cloud {background:color-mix(in srgb,var(--mc-blue) 16%,var(--mc-glass-highlight));opacity:.8;}
.mc-app-weather[data-weather-sky=snowy] .mc-live-environment__cloud {opacity:.85;}
.mc-live-environment__particles {display:none;inset:0;opacity:.45;animation-play-state:paused;}
.mc-app-weather[data-weather-sky=rainy] .mc-live-environment__particles {
  display:block;left:56%;top:58px;right:2%;bottom:6px;
  background:repeating-linear-gradient(110deg,transparent 0 22px,color-mix(in srgb,var(--mc-blue) 35%,transparent) 23px 24px,transparent 25px 42px);
  -webkit-mask-image:linear-gradient(to bottom,transparent,black 20%,transparent 82%);mask-image:linear-gradient(to bottom,transparent,black 20%,transparent 82%);
  animation:mc-environment-rain 9s linear infinite;animation-play-state:paused;
}
.mc-app-weather[data-weather-sky=snowy] .mc-live-environment__particles {
  display:block;left:43%;top:52px;right:0;bottom:0;
  background:radial-gradient(circle at 12% 30%,color-mix(in srgb,var(--mc-blue) 38%,var(--mc-surface)) 0 2px,transparent 2.5px),radial-gradient(circle at 66% 56%,color-mix(in srgb,var(--mc-blue) 32%,var(--mc-surface)) 0 2px,transparent 2.5px),radial-gradient(circle at 85% 14%,var(--mc-surface) 0 2px,transparent 2.5px);
  background-size:74px 74px,94px 96px,120px 92px;animation:mc-environment-snow 22s linear infinite;animation-play-state:paused;
}
.mc-app-weather[data-weather-sky=foggy] .mc-live-environment__particles {
  display:block;top:30px;background:repeating-linear-gradient(to bottom,transparent 0 29px,color-mix(in srgb,var(--mc-ink-secondary) 7%,transparent) 31px 36px,transparent 42px 58px);filter:blur(5px);
}
/* Night belongs to the forecast, rather than to the selected app theme. Rain
   and cloud scenes retain their conditions when the forecast is for night. */
.mc-app-weather[data-weather-daylight=night] .mc-live-environment {background:radial-gradient(ellipse at 12% 2%,color-mix(in srgb,var(--mc-environment-tint) 15%,transparent),transparent 62%),radial-gradient(ellipse at 84% 0%,color-mix(in srgb,var(--mc-blue) 23%,transparent),transparent 75%),radial-gradient(ellipse at 14% 0%,color-mix(in srgb,var(--mc-deep-blue) 12%,transparent),transparent 68%);}
.mc-app-weather[data-weather-sky=night] .mc-live-environment__orb {display:block;top:12px;right:23%;width:55px;height:55px;background:transparent;box-shadow:inset 11px -5px 0 0 color-mix(in srgb,var(--mc-ink-secondary) 44%,var(--mc-glass-highlight)),0 0 42px color-mix(in srgb,var(--mc-blue) 12%,transparent);opacity:.65;}
.mc-app-weather[data-weather-sky=night] .mc-live-environment__particles {display:block;background:radial-gradient(circle at 72% 14%,var(--mc-ink-secondary) 0 1px,transparent 1.5px),radial-gradient(circle at 91% 32%,var(--mc-blue) 0 1px,transparent 1.5px),radial-gradient(circle at 57% 7%,var(--mc-ink-secondary) 0 1px,transparent 1.5px),radial-gradient(circle at 31% 24%,var(--mc-blue) 0 1px,transparent 1.5px);opacity:.4;}
.mc-app-weather[data-weather-sky=neutral][data-temperature-band=neutral] .mc-live-environment {display:none;}
.mc-app-weather[data-live-active=true] .mc-live-environment :is(.mc-live-environment__cloud,.mc-live-environment__particles) {animation-play-state:running;}
.mc-app-weather[data-weather-intensity=soft] .mc-live-environment :is(.mc-live-environment__cloud,.mc-live-environment__particles) {opacity:.25;}
@keyframes mc-environment-cloud {from {transform:translate3d(-9px,0,0)}to {transform:translate3d(12px,3px,0)}}
@keyframes mc-environment-rain {from {transform:translate3d(0,-12px,0)}to {transform:translate3d(-5px,12px,0)}}
@keyframes mc-environment-snow {from {transform:translate3d(-4px,-18px,0)}to {transform:translate3d(5px,18px,0)}}
.mc-app-weather:is([data-live-active=false],[data-motion-reduced=true],[data-weather-animations=false],[data-data-saving-motion=true],[data-weather-intensity=still]) .mc-live-environment *,
:root[data-reduced-motion=true] .mc-live-environment * {animation:none;transform:none;}
.mc-app-weather:is([data-live-effects=false],[data-live-text=strong],[data-weather-contrast=strong]) .mc-live-environment,
:root[data-reduced-transparency=true] .mc-live-environment,body.is-privacy-locked .mc-live-environment {display:none;}
@media(prefers-reduced-motion:reduce) {.mc-live-environment * {animation:none;transform:none;}}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more),(forced-colors:active) {.mc-live-environment {display:none;}}
@media(max-width:440px) {.mc-live-environment {height:min(280px,62%);}.mc-live-environment__orb {right:14%;}.mc-live-environment__cloud {right:-4%;width:130px;}}


/* Source: privacy-calm-v1.css */
/* Privacy Lock keeps its opaque security boundary. Small, inert scenery adds
   calm motion without full-screen filters, videos, or a render-loop timer. */
.mc-privacy-lock {isolation:isolate;}
/* Concealed pages must not spend frames animating behind the opaque lock. */
body.is-privacy-locked > :not(.mc-privacy-lock),
body.is-privacy-locked > :not(.mc-privacy-lock) *,
body.is-privacy-locked > :not(.mc-privacy-lock) *::before,
body.is-privacy-locked > :not(.mc-privacy-lock) *::after {animation-play-state:paused!important;}
.mc-privacy-lock__surface {position:relative;z-index:1;}
.mc-lock-ambience {position:absolute;inset:0 0 auto;height:220px;overflow:hidden;pointer-events:none;z-index:0;border-radius:inherit;contain:paint;}
.mc-lock-ambience__sky {position:absolute;inset:0;background:radial-gradient(ellipse at 15% 5%,color-mix(in srgb,var(--mc-mint) 40%,transparent),transparent 65%),radial-gradient(ellipse at 96% 12%,color-mix(in srgb,var(--mc-blue) 7%,transparent),transparent 62%);}
.mc-lock-ambience__sky::after {content:"";position:absolute;top:28px;right:18px;width:140px;height:34px;border-radius:50%;background:radial-gradient(ellipse at center,var(--mc-glass-highlight),transparent 70%);opacity:.7;}
.mc-lock-ambience__birds {position:absolute;inset:12px 0 auto;height:48px;color:var(--mc-blue);}
.mc-lock-ambience__bird {position:absolute;top:8px;left:38%;width:26px;height:16px;stroke-width:1.6;opacity:.64;}
.mc-lock-ambience__bird:nth-child(2) {top:18px;left:62%;width:22px;height:14px;opacity:.60;}
.theme-dark .mc-lock-ambience__sky {background:radial-gradient(ellipse at 12% 5%,color-mix(in srgb,var(--mc-blue) 12%,transparent),transparent 70%),radial-gradient(ellipse at 90% 15%,color-mix(in srgb,var(--mc-mint) 45%,transparent),transparent 68%);}
.theme-dark .mc-lock-ambience__birds {color:var(--mc-hero-heading);}
.mc-privacy-lock[open][data-calm-motion=running] .mc-lock-ambience__sky::after {animation:mc-lock-cloud-drift 44s ease-in-out infinite alternate;}
.mc-privacy-lock[open][data-calm-motion=running] .mc-lock-ambience__bird {animation:mc-lock-bird-glide 12s linear infinite alternate;}
.mc-privacy-lock[open][data-calm-motion=running] .mc-lock-ambience__bird:nth-child(2) {animation-name:mc-lock-bird-glide-small;animation-duration:16s;animation-delay:-5s;}
.mc-privacy-lock[open][data-calm-motion=running] .mc-lock-ambience__bird,
.mc-privacy-lock[open][data-calm-motion=running] .mc-lock-ambience__sky::after {will-change:transform;}
@keyframes mc-lock-cloud-drift {from{transform:translate3d(-12px,0,0);}to{transform:translate3d(12px,3px,0);}}
@keyframes mc-lock-bird-glide {from{transform:translate3d(-10px,2px,0);}to{transform:translate3d(100px,-3px,0);}}
@keyframes mc-lock-bird-glide-small {from{transform:translate3d(-32px,-3px,0);}to{transform:translate3d(82px,2px,0);}}
.mc-privacy-lock .mc-lock-ambience__sky::after,.mc-privacy-lock .mc-lock-ambience__bird {animation:none;}
/* Keep previous rain/snow background-position effects from running behind the
   new small compositor-only scene. The measured weather remains unchanged. */
.mc-privacy-lock .mc-lock-weather::after {display:none;animation:none!important;}
.mc-privacy-lock [data-lock-motion] {display:inline-flex;align-items:center;justify-content:center;gap:8px;justify-self:center;min-height:44px;min-width:44px;padding:8px 14px;border:1px solid var(--mc-line-strong);border-radius:var(--mc-radius-pill);color:var(--mc-ink-secondary);background:var(--mc-glass-subtle);font-size:.875rem;font-weight:600;line-height:1.4;touch-action:manipulation;}
.mc-privacy-lock [data-lock-motion] svg {width:16px;height:16px;}
.mc-privacy-lock [data-lock-motion]:focus-visible {outline:3px solid var(--mc-blue);outline-offset:3px;}
.mc-privacy-lock[data-calm-effects=false] .mc-lock-ambience {display:none;}
.mc-privacy-lock:not([open]) .mc-lock-ambience *,
.mc-privacy-lock:not([open]) .mc-lock-ambience *::after,
.mc-privacy-lock[data-calm-motion=still] .mc-lock-ambience *,
.mc-privacy-lock[data-calm-motion=still] .mc-lock-ambience *::after,
.mc-privacy-lock[data-calm-effects=false] .mc-lock-ambience *,
.mc-privacy-lock[data-calm-effects=false] .mc-lock-ambience *::after,
:root[data-reduced-motion=true] .mc-lock-ambience *,
:root[data-reduced-motion=true] .mc-lock-ambience *::after {animation:none!important;}
:root[data-reduced-transparency=true] .mc-lock-ambience {display:none;}
:root[data-reduced-transparency=true] .mc-privacy-lock [data-lock-motion] {background:var(--mc-surface-elevated);}
@media(prefers-reduced-motion:reduce) {.mc-lock-ambience *,.mc-lock-ambience *::after {animation:none!important;}}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more) {.mc-lock-ambience {display:none;}.mc-privacy-lock [data-lock-motion] {background:var(--mc-surface-elevated);color:var(--mc-ink);}}
@media(forced-colors:active) {.mc-lock-ambience {display:none;}.mc-privacy-lock [data-lock-motion] {background:ButtonFace;color:ButtonText;border-color:ButtonText;}}


/* Source: coda-visual-v1.css */
.coda-visual{box-sizing:border-box;min-width:0;max-width:100%;margin-block:1rem;padding:clamp(.75rem,3vw,1.25rem);border:1px solid var(--mc-glass-border, #819596);border-radius:1rem;background:var(--mc-glass-standard, Canvas);color:var(--mc-ink, CanvasText);overflow-wrap:anywhere}
.coda-visual *{box-sizing:border-box;min-width:0;max-width:100%}
.coda-visual h3,.coda-visual h4{line-height:1.4;margin-block:.5rem}
.coda-visual p,.coda-visual li,.coda-visual dd{line-height:1.65}
.coda-visual button,.coda-visual summary,.coda-visual a{min-height:44px;white-space:normal;overflow-wrap:anywhere;line-height:1.5;text-align:start}
.coda-visual button:focus-visible,.coda-visual summary:focus-visible,.coda-visual a:focus-visible{outline:3px solid var(--mc-teal, #168d80);outline-offset:3px}
.coda-visual__concepts,.coda-visual__actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-block:.75rem}
.coda-visual__concepts button,.coda-visual__compare>button{border:1px solid currentColor;border-radius:.65rem;padding:.65rem .9rem;color:inherit}
.coda-visual button[aria-pressed=true]{border-width:3px;text-decoration:underline;text-underline-offset:.2em;font-weight:700}
.coda-visual__relationships{padding-inline-start:0;list-style:none}
.coda-visual__relationships li{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem;border-block-end:1px solid var(--mc-line-strong,#819596);padding-block:.35rem}
.coda-visual__relationships button{flex:0 1 auto}
.coda-visual__relationships span{padding:.25rem;font-style:italic}
.coda-visual__detail,.coda-visual__compare{padding:.75rem;border:1px solid var(--mc-line-strong,#819596);border-radius:.75rem;margin-block:.75rem}
.coda-visual[data-visual-type=labeled_diagram] .coda-visual__concepts{border-inline-start:3px solid var(--mc-teal,#168d80);padding-inline-start:.75rem}
.coda-visual[data-visual-type=comparison] .coda-visual__diagram{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:.75rem}
.coda-visual__detail{grid-column:1/-1}
.coda-visual dt{font-weight:700}.coda-visual dd{margin-inline-start:0;margin-block-end:.75rem}
.coda-visual__transcript{white-space:pre-wrap}.coda-visual__limitation{border-inline-start:3px solid currentColor;padding-inline-start:.75rem}
.coda-visual details{margin-block:.75rem}.coda-visual summary{cursor:pointer;padding-block:.5rem}
@media (forced-colors:active){.coda-visual button[aria-pressed=true]{outline:2px solid Highlight}}
@media (prefers-reduced-motion:reduce){.coda-visual *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

