@import url("/design-system.css?v=hero-contrast-v18");

/* 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%; } }
