@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; src: url("/assets/inter-400.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; src: url("/assets/inter-500.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; src: url("/assets/inter-600.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Barlow Condensed"; font-style: normal; font-weight: 500; src: url("/assets/barlow-condensed-500.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Barlow Condensed"; font-style: normal; font-weight: 600; src: url("/assets/barlow-condensed-600.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "JetBrains Mono"; font-style: normal; font-weight: 500; src: url("/assets/jetbrains-mono-500.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "JetBrains Mono"; font-style: normal; font-weight: 600; src: url("/assets/jetbrains-mono-600.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Material Symbols Rounded"; font-style: normal; font-weight: 500; src: url("/assets/material-symbols-rounded-500.woff2") format("woff2"); font-display: block; }

:root {
  --ink: #1d1d1f;
  --ink-soft: #6e6e73;
  --ink-muted: #a1a1a6;
  --paper: #fbfbfd;
  --paper-card: #ffffff;
  --paper-soft: #f5f5f7;
  --night: #0a0a0c;
  --red: #e53935;
  --success: #14955f;
  --warning: #e7722c;
  --hair: #00000014;
  --font-body: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-display: "Barlow Condensed", "Roboto Condensed", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, monospace;
}

/* Authenticated surfaces share the approved shell; never fabricate source totals. */
.live-app .phone { min-height: 0; }
.live-app .screen-stack { min-height: 0; }
.live-app .identity-target { cursor: pointer; }
.live-app .live-session .attendance-progress { width: auto; min-width: 0; background: transparent; padding: 0; }
.live-app .live-session .attendance-progress strong { font: 400 11px/1.4 var(--font-body); }
.live-app .live-session .status-line { font-size: 12px; }
.live-app .live-session .primary-cta { margin-top: auto; font-size: 14px; gap: 4px; }
.live-app .live-session.live-past { background: #ededf0; color: var(--ink); }
.live-app .live-past .role-chip { background: white; color: var(--ink); }
.live-app .live-past .primary-cta { background: var(--ink); color: white; }
.live-app .live-day-bar,.live-app .live-section-title { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.live-day-bar { min-height: 32px; font-size: 13px; }
.live-section-title { margin-bottom: 8px; font-size: 12px; }
.live-section-title>span,.live-muted { color: var(--ink-soft); font-size: 12px; }
.live-text-button { border: 0; background: transparent; display: inline-flex; align-items: center; gap: 4px; min-height: 40px; padding: 0 4px; font-size: 12px; cursor: pointer; }
.live-sessions { display: flex; flex-direction: column; gap: 4px; }
.live-session-row { width: 100%; min-height: 56px; border: 1px solid transparent; border-radius: 8px; background: white; display: grid; grid-template-columns: 44px minmax(0,1fr) 32px 18px 18px; align-items: center; gap: 8px; padding: 8px; cursor: pointer; text-align: left; font-size: 12px; }
.live-session-row>strong { font: 600 18px var(--font-display); }
.live-session-row.done { background: var(--paper-soft); color: var(--ink-soft); }
.live-session-row.active { background: var(--night); color: white; }
.live-session-row[aria-pressed="true"] { border-color: var(--ink-soft); }
.live-quicklook { margin: 4px 0 12px; padding: 0 8px; border-left: 2px solid var(--hair); }
.live-group { border-bottom: 1px solid var(--hair); }
.live-group summary { display: flex; align-items: center; gap: 8px; min-height: 56px; cursor: pointer; font-size: 13px; }
.live-group summary:after { content: '⌄'; margin-left: auto; }
.live-group[open] summary:after { content: '⌃'; }
.live-group summary>span:not(.icon) { font-size: 11px; color: var(--ink-soft); margin-left: auto; }
.live-group p,.live-source p { font-size: 12px; color: var(--ink-soft); margin: 0 0 12px; }
.live-empty { padding: 24px 16px; background: var(--paper-soft); border-radius: 16px; }
.live-empty>.icon { margin-bottom: 12px; }
.live-empty p { font-size: 13px; margin-bottom: 0; color: var(--ink-soft); }
.live-source { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--hair); }
.live-source summary { font-size: 12px; color: var(--ink-soft); cursor: pointer; min-height: 40px; padding: 12px 0; }
.live-overview { background: var(--night); color: white; min-height: 184px; border-radius: 24px; padding: 24px 16px; display: flex; justify-content: space-between; gap: 8px; }
.live-overview strong { font: 600 48px var(--font-display); }
.live-overview span,.live-overview p { font-size: 12px; }
.live-calendar { padding: 12px 8px; background: white; border-radius: 16px; }
.live-weekdays,.live-calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 2px; text-align: center; }
.live-weekdays { font-size: 11px; color: var(--ink-soft); margin-bottom: 8px; }
.live-calendar-grid button { min-height: 44px; position: relative; border: 0; border-radius: 12px; background: transparent; cursor: pointer; font-size: 13px; }
.live-calendar-grid button.selected { background: var(--night); color: white; }
.live-calendar-grid i { position: absolute; bottom: 5px; left: calc(50% - 2px); width: 4px; height: 4px; border-radius: 50%; background: currentColor; }
.live-calendar>p { margin: 12px 4px 0; font-size: 11px; }
.live-info { padding: 16px; background: white; border-radius: 16px; font-size: 13px; }
.live-picker { width: min(358px,calc(100vw - 32px)); border: 0; border-radius: 24px; padding: 24px; color: var(--ink); }
.live-picker::backdrop { background: #0006; }
.live-picker label { display: grid; gap: 8px; font-size: 13px; margin: 16px 0; }
.live-picker input { width: 100%; min-width: 0; padding: 12px; border: 1px solid var(--hair); border-radius: 8px; }
.live-picker form>div { display: flex; gap: 8px; }
.live-picker button { flex: 1; min-height: 44px; border: 0; border-radius: 8px; cursor: pointer; }
.live-picker button[type="submit"] { background: var(--night); color: white; }
.live-skeleton { min-height: 56px; background: var(--paper-soft); border-radius: 12px; margin-bottom: 12px; }
.live-skeleton.hero { min-height: 236px; border-radius: 24px; }
.live-loading p { font-size: 13px; color: var(--ink-soft); }
@media (max-height: 640px) { .live-app .bottom-nav { bottom: 12px; } .live-app .app-scroll { bottom: 88px; } .live-app .safe-area { display: none; } }

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: #e9eaed; color: var(--ink); font-family: var(--font-body); }
body { min-height: 100dvh; display: grid; place-items: center; overflow: hidden; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid #2b7cff66; outline-offset: 2px; }

#app { width: min(390px, 100vw); height: min(866px, 100dvh); }
.phone { position: relative; width: 100%; height: 100%; min-height: 620px; overflow: hidden; background: var(--paper); box-shadow: 0 20px 70px #0002; }
.app-scroll { position: absolute; inset: 0 0 114px; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none; padding: 12px 16px 16px; }
.app-scroll::-webkit-scrollbar { display: none; }
.app-header { width: 100%; height: 58px; padding: 0 16px; display: grid; grid-template-columns: 1fr 112px 48px; align-items: center; gap: 8px; }
.app-header { position: sticky; top: 0; z-index: 5; background: var(--paper); }
.header-task-actions { position: absolute; left: 92px; top: 9px; display: flex; }
.header-task-actions button { width: 40px; height: 40px; padding: 0; border: 0; background: transparent; display: grid; place-items: center; border-radius: 8px; cursor: pointer; }
.header-task-actions button[aria-pressed="true"] { background: var(--ink); color: white; }
.app-header::before { content: ""; position: absolute; inset: -12px -16px -14px; background: var(--paper); z-index: -1; }
.brand-logo { width: 80px; height: 34px; object-fit: contain; justify-self: start; }
.month-control { height: 44px; border: 0; border-radius: 980px; background: var(--paper-soft); display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 14px; font-weight: 600; cursor: pointer; }
.identity-target { width: 36px; height: 36px; justify-self: start; border: 0; border-radius: 50%; background: var(--ink); color: #fff; font-size: 13px; font-weight: 600; cursor: default; }
.back-row { position: sticky; top: 58px; z-index: 4; width: 100%; height: 40px; margin: 8px 0 6px; padding: 0; border: 0; background: var(--paper); display: flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 600; cursor: pointer; }
.back-row::before { content: ""; position: absolute; inset: -8px -16px -6px; background: var(--paper); z-index: -1; }
.back-row > span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.screen-content { width: 100%; min-width: 0; margin-top: 14px; }
.back-row + .screen-content { margin-top: 0; }
.screen-stack { display: flex; flex-direction: column; gap: 16px; min-height: 646px; }
.attendance-screen { gap: 4px; min-height: 629px; }
.attendance-screen .session-hero { height: 176px; }

.icon { display: inline-flex; align-items: center; justify-content: center; line-height: 1; flex: 0 0 auto; overflow: visible; }
.material-symbols-rounded { font-family: "Material Symbols Rounded"; font-weight: 500; font-style: normal; font-variation-settings: "FILL" 0, "wght" 500, "GRAD" 0, "opsz" 24; font-feature-settings: "liga"; letter-spacing: normal; text-transform: none; white-space: nowrap; word-wrap: normal; direction: ltr; -webkit-font-smoothing: antialiased; }
.size-16 { font-size: 16px; width: 16px; height: 16px; }
.size-18 { font-size: 18px; width: 18px; height: 18px; }
.size-20 { font-size: 20px; width: 20px; height: 20px; }
.size-22 { font-size: 22px; width: 22px; height: 22px; }
.size-24 { font-size: 24px; width: 24px; height: 24px; }
.size-32 { font-size: 32px; width: 32px; height: 32px; }
.avatar-icon { width: 36px; height: 36px; font-size: 36px; }
.success { color: var(--success) !important; }
.danger { color: var(--red) !important; }
.warning { color: var(--warning) !important; }
.muted { color: var(--ink-muted) !important; }

.bottom-nav { position: absolute; z-index: 10; left: 16px; right: 16px; bottom: 34px; height: 68px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; padding: 4px; border: 1px solid var(--hair); border-radius: 18px; background: #fff; }
.safe-area { position: absolute; z-index: 9; inset: auto 0 0; height: 34px; background: var(--paper); }
.safe-area::after { content: ""; position: absolute; width: 96px; height: 4px; border-radius: 4px; background: #d1d2d6; bottom: 12px; left: 50%; transform: translateX(-50%); }
.nav-item { min-width: 0; border: 0; border-radius: 8px; background: transparent; color: var(--ink-soft); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; font-size: 14px; cursor: pointer; }
.nav-item.active { background: var(--night); color: #fff; }
.nav-icon-wrap { position: relative; display: inline-flex; }
.nav-pt-icon { width: 32px; height: 22px; object-fit: contain; filter: grayscale(1); opacity: .72; }
.nav-item.active .nav-pt-icon { filter: brightness(0) invert(1); opacity: 1; }
.nav-badge { position: absolute; min-width: 18px; height: 18px; padding: 0 5px; left: 13px; top: -7px; border-radius: 980px; background: var(--red); color: #fff; font: 600 11px/18px var(--font-mono); }

.session-hero { height: 236px; padding: 16px; border-radius: 24px; display: flex; flex-direction: column; gap: 8px; overflow: hidden; }
.session-hero.dark { color: #fff; background: var(--night); }
.session-hero.light { color: var(--ink); background: #fff; box-shadow: 0 4px 12px #00000014; }
.session-hero-main { height: 112px; flex: 0 0 112px; display: flex; justify-content: space-between; }
.session-copy { position: relative; width: 190px; min-width: 0; }
.session-copy .session-time { position: absolute; top: -8px; left: 0; }
.session-copy .tag-row { position: absolute; top: 42px; left: 0; }
.session-copy .role-row { position: absolute; top: 86px; left: 0; gap: 8px; }
.session-copy .role-chip { min-width: 76px; justify-content: center; }
.session-copy .scope-coach { max-width: 190px; justify-content: flex-start; }
.session-copy .source-roles { width: min(326px, calc(100vw - 64px)); height: 32px; overflow-x: auto; overflow-y: hidden; white-space: nowrap; scrollbar-width: thin; }
.session-copy .source-roles .role-chip { flex: 0 0 auto; min-width: 0; padding: 0 8px; }
.scope-coach > span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.scope-coach > .icon { flex-shrink: 0; }
.attendance-screen .session-hero { padding-bottom: 8px; }
.session-time { font: 600 32px/1 var(--font-display); }
.session-hero[aria-label] .session-copy .session-time { position: static; }
.session-hero[aria-label] { height: auto; min-height: 124px; }
.session-hero[aria-label] .session-hero-main { min-height: 92px; height: auto; }
.session-empty-message { margin: 8px 0; line-height: 1.4; }
.session-hero[aria-label] .tag-row,
.session-hero[aria-label] .role-row,
.session-hero[aria-label] .session-status-row,
.session-hero[aria-label] .primary-cta { display: none; }
.session-art { width: 112px; height: 96px; object-fit: contain; align-self: flex-start; margin-top: -8px; }
.tag-row, .role-row { display: flex; gap: 6px; align-items: center; }
.taxonomy { width: 94px; height: 32px; padding: 0 10px; border: 0; border-radius: 8px; background: var(--night); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 600; white-space: nowrap; }
.taxonomy:last-child { width: 36px; padding-inline: 4px; }
.taxonomy.inverted { background: #fff; color: var(--ink); }
.taxonomy { min-width: 0; max-width: 100%; flex-shrink: 0; }
.taxonomy > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.attendance-progress { max-width: 100%; flex-shrink: 0; white-space: nowrap; }
.role-chip, .status-chip { min-height: 28px; padding: 0 12px; border-radius: 980px; display: inline-flex; align-items: center; gap: 4px; background: #222226; color: #fff; font-size: 14px; font-weight: 600; }
.session-hero.light .role-chip { background: var(--paper-soft); color: var(--ink-soft); }
.session-hero .role-chip.main { color: inherit; }
.session-hero.dark .role-chip.main { background: #fff; color: var(--ink); }
.session-hero.dark .role-chip.main .icon { color: var(--red); }
.session-status-row { min-height: 32px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.status-line { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; }
.attendance-progress { min-width: 166px; height: 32px; padding: 0 10px; border-radius: 8px; background: #ffffff0d; display: flex; align-items: center; gap: 8px; font-size: 13px; }
.session-hero.light .attendance-progress { background: var(--paper-soft); }
.session-hero.light .session-status-row { justify-content: flex-end; padding-left: 0; }
.session-hero.light .session-status-row > .session-signals { display: none; }
.session-hero.light .attendance-progress { min-width: 0; width: auto; height: 28px; border-radius: 980px; font-size: 14px; color: var(--ink-soft); padding: 0 8px; gap: 4px; }
.session-hero.upcoming-tag-inline { position: relative; height: auto; }
.session-hero.upcoming-tag-inline .session-status-row { position: absolute; top: 8px; left: 88px; min-height: 28px; }
.session-hero.upcoming-tag-inline .attendance-progress { font-size: 12px; height: 24px; }
.session-hero.light .role-chip.main { background: var(--night); color: #fff; }
.session-hero.light .role-chip.main .icon { color: var(--red); }
.attendance-progress .progress { flex: 1; }
.progress { display: block; height: 6px; border-radius: 980px; background: #ffffff33; overflow: hidden; }
.progress > span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #1f9364, #76dfb5); }
.progress.dot-progress { height: 8px; display: flex; align-items: center; gap: 3px; overflow: visible; background: transparent; }
.progress.dot-progress > i { width: 6px; height: 6px; flex: 0 0 6px; border-radius: 50%; background: var(--success); }
.progress.dot-progress > i.missing { background: var(--red); }
.session-hero.light .progress, .calendar-hero .progress, .task-hero .progress, .pt-client-hero .progress { background: #dedfe3; }
.primary-cta { width: 326px; min-height: 48px; border: 0; border-radius: 8px; padding: 0 16px; font-size: 16px; font-weight: 600; cursor: pointer; }
.light-cta { background: #fff; color: var(--ink); }
.dark-cta { background: var(--night); color: #fff; }
.primary-cta:disabled { background: #d1d2d6; color: var(--ink-soft); cursor: not-allowed; }

.section-block { display: flex; flex-direction: column; gap: 8px; }
.today-screen { gap: 13px; }
.today-screen .section-block { gap: 4px; }
.today-screen .section-heading { min-height: 24px; }
.today-screen .section-heading h2 { font-size: 14px; font-weight: 400; }
.today-screen .section-heading .status-chip { min-height: 20px; font-size: 11px; font-weight: 400; padding-inline: 10px; }
.section-heading { min-height: 28px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.section-heading h2, .roster-title { margin: 0; font-size: 16px; line-height: 1.3; font-weight: 600; }
.status-chip { background: var(--paper-soft); color: var(--ink-soft); }
.status-chip.success { background: #e5f6ee; color: var(--success); }
.status-chip.warning { background: #fff0e6; color: #c7581b; }
.session-list { display: flex; flex-direction: column; gap: 8px; }
.session-row { width: 100%; height: 56px; border: 0; border-radius: 8px; padding: 0 10px; display: grid; grid-template-columns: 48px minmax(0, 94px) 36px minmax(0, 1fr); align-items: center; gap: 6px; background: #fff; text-align: left; cursor: pointer; }
.session-row.past { background: #e4e5e8; }
.session-row.active { background: var(--night); color: #fff; }
.session-row .taxonomy { height: 32px; padding-inline: 10px; }
.session-row > .taxonomy:nth-child(3) { width: 36px; padding-inline: 4px; }
.session-row:not(.active) .taxonomy { background: var(--night); }
.row-time { font: 600 20px/1 var(--font-display); }
.session-signals { justify-self: end; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--ink-soft); }
.session-row .session-signals { width: 112px; padding: 0 14px 0 0; gap: 8px; }
.session-hero .session-signals { width: 126px; padding-inline: 10px; color: inherit; }
.daily-progress { width: 186px; }
.daily-progress .progress.dot-progress > i.filled { background: #6e6e73; }
.session-row.active .session-signals { color: #fff; }
.signal-with-badge, .signal-illustration { position: relative; display: inline-flex; }
.dynamic-badge { min-width: 20px; height: 20px; padding: 0 5px; border-radius: 980px; color: #fff; background: var(--ink-soft); display: inline-flex; align-items: center; justify-content: center; font: 600 11px/20px var(--font-mono); }
.signal-with-badge .dynamic-badge, .signal-illustration .dynamic-badge { position: absolute; left: 13px; top: -10px; }
.dynamic-badge.danger { background: var(--red); color: #fff !important; }
.quicklook { margin: 8px 0 0; display: flex; flex-direction: column; gap: 8px; }
.quicklook-title + .trial-row { margin-top: -12px; }
.trial-row + .quicklook-line { margin-top: 12px; }
.quicklook-title, .quicklook-line { min-height: 56px; border: 0; background: transparent; display: grid; grid-template-columns: 56px 1fr 24px; align-items: center; gap: 8px; text-align: left; padding: 0 8px; }
.quicklook-title img, .quicklook-line img { width: 40px; height: 40px; object-fit: contain; }
.quicklook strong { display: block; font-size: 16px; }
.quicklook small { display: block; margin-top: 2px; color: var(--ink-soft); font-size: 14px; }
.trial-row { min-height: 58px; margin-inline: 18px; border-radius: 8px; background: var(--paper-soft); display: grid; grid-template-columns: 36px 1fr; gap: 10px; align-items: center; padding: 8px 10px; }
.trial-row strong { white-space: nowrap; font-weight: 600; }
.trial-row b { font-weight: 600; }
.quicklook-line { background: #fff; border-radius: 18px; grid-template-columns: 40px 1fr 24px; }
.quicklook-title { grid-template-columns: 56px 1fr 24px; }
.trial-avatar { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--night); color: #fff; }
.trial-row > strong { align-self: start; white-space: nowrap; font-size: 14px; }
.pt-session-row { min-height: 60px; display: flex; align-items: center; gap: 12px; }
.time-stack { display: flex; flex-direction: column; }
.pt-session-row .time-stack { width: 60px; }
.pt-today .pill-action { align-self: flex-start; margin-left: 72px; min-height: 36px; padding-inline: 12px; }
.pt-today .status-chip { font-size: 11px; font-weight: 500; }
.pt-status { position: relative; flex: 0 0 40px; }
.pt-status-icon { width: 40px; height: 40px; padding: 0; border: 0; background: transparent; color: var(--ink-soft); display: grid; place-items: center; cursor: pointer; }
.pt-status-icon.success { color: var(--success); }
.pt-status-icon:focus-visible { outline: 2px solid var(--ink-soft); border-radius: 8px; }
.pt-status-hint { position: absolute; right: 0; top: 38px; z-index: 5; width: max-content; max-width: 200px; padding: 6px 10px; border-radius: 8px; background: var(--paper-soft); color: var(--ink-soft); font-size: 12px; line-height: 1.4; box-shadow: 0 2px 8px #0002; }
.pt-confirm-popup { max-width: 240px; padding: 10px; background: #fff; }
.pt-confirm-popup .pill-action { margin: 0; white-space: nowrap; }
.time-stack strong { font: 600 20px/1 var(--font-display); }
.time-stack span, .grow span { color: var(--ink-soft); font-size: 13px; }
.grow { flex: 1; display: flex; flex-direction: column; gap: 6px; }
.grow span { display: flex; align-items: center; gap: 4px; }
.pill-action { min-height: 40px; align-self: center; padding: 0 20px; border: 0; border-radius: 980px; background: var(--night); color: #fff; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; }
.pill-action:disabled { background: var(--paper-soft); color: var(--success); }

.calendar-hero, .task-hero, .pt-hero, .aggregate-hero, .notes-hero, .task-detail-hero, .task-composer-hero { border-radius: 24px; background: var(--night); color: #fff; }
.calendar-hero { height: 124px; padding: 14px 16px; display: flex; flex-direction: column; gap: 8px; }
.calendar-metric { display: flex; align-items: baseline; gap: 8px; position: relative; }
.calendar-metric > span, .task-metric { font: 600 48px/.95 var(--font-display); }
.calendar-metric small, .metric-unit, .pt-hero small { font-size: 14px; }
.calendar-metric img { position: absolute; right: 0; top: -12px; width: 88px; height: 68px; object-fit: contain; }
.calendar-meta { margin-top: auto; display: flex; justify-content: space-between; font-size: 14px; }
.class-screen { gap: 8px; }
.calendar-meta span { display: flex; align-items: center; gap: 6px; }
.month-calendar { padding: 12px; border: 1px solid var(--hair); border-radius: 18px; background: #fff; }
.weekdays, .calendar-week { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.weekdays span { text-align: center; color: var(--ink-soft); font-size: 13px; font-weight: 600; }
.day-cell { position: relative; height: 40px; border: 0; background: transparent; border-radius: 50%; font-size: 13px; font-weight: 600; }
.day-cell.is-today > span:first-child { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--night); color: #fff; }
.day-cell.outside { color: var(--ink-muted); }
.day-cell { font-family: var(--font-display); font-size: 16px; }
.day-cell.event-day > span:first-child { display: inline-grid; place-items: center; width: 28px; height: 28px; border: 1px solid var(--red); border-radius: 50%; }
.day-cell .day-rail { position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); width: 18px; height: 4px; border-radius: 980px; background: #e9e9eb; }
.day-cell > span.day-rail { display: block; width: 18px; height: 3px; background: var(--ink-muted); border: 0; border-radius: 3px; box-shadow: none; }
.day-cell > span.day-rail.confirmed { background: var(--success); }
.day-cell > span.day-rail.unconfirmed { background: var(--red); }
.day-cell .day-rail.done, .day-cell i.day-done { background: var(--success); color: #fff; }
.day-cell .day-rail.alert, .day-cell i.day-alert { background: var(--red); color: #fff; }
.calendar-meta { justify-content: flex-start; gap: 24px; }
.calendar-metric { margin-top: 8px; }
.calendar-metric img { width: 88px; height: 76px; right: 16px; }
.calendar-meta .signal-with-badge { margin-right: 12px; }
.training-mark { color: var(--success); font-size: 20px; line-height: 1; }
.day-cell i { position: absolute; top: 1px; right: 1px; min-width: 17px; height: 17px; border-radius: 50%; background: #e8e9ec; color: var(--ink-soft); font: normal 500 10px/17px var(--font-body); }
.day-cell.future, .day-cell.future > span:first-child, .day-cell.future .icon { color: var(--ink-muted); }
.day-cell.future.event-day > span:first-child { border-color: var(--ink-muted); }
.day-cell.future > span.day-rail { background: var(--ink-muted); }
.day-cell.future i { background: #e8e9ec; color: var(--ink-muted); }
.monthly-groups { display: flex; flex-direction: column; gap: 8px; }
.monthly-row { width: 100%; height: 56px; border: 0; border-radius: 8px; padding: 0 8px; background: #fff; display: grid; grid-template-columns: 40px 1fr auto 22px; align-items: center; gap: 8px; text-align: left; }
.monthly-icon { width: 40px; height: 40px; display: grid; place-items: center; }
.monthly-icon img { width: 40px; height: 40px; object-fit: contain; }
.monthly-row strong, .monthly-row small { display: block; }
.monthly-row strong { font-size: 16px; }
.monthly-row small { color: var(--ink-soft); font-size: 14px; }
.monthly-progress { display: flex; align-items: center; gap: 8px; color: var(--ink-soft); font-size: 14px; }

.aggregate-hero { height: 132px; padding: 16px; display: grid; grid-template-columns: 64px 1fr auto; align-items: center; gap: 16px; }
.aggregate-hero img { width: 56px; height: 56px; object-fit: contain; }
.aggregate-hero h1, .notes-hero h1 { margin: 0; font: 600 20px/1.05 var(--font-display); }
.aggregate-hero p { margin: 12px 0 0; color: #ffffffcc; font-size: 14px; }
.aggregate-hero > span { display: flex; align-items: center; gap: 8px; color: #ffffffcc; font-size: 14px; align-self: center; margin-top: 36px; }
.eyebrow { margin: 4px 0 0; color: var(--ink); font: 500 11px/1 var(--font-mono); letter-spacing: .8px; text-transform: uppercase; }
.event-row { min-height: 88px; display: grid; grid-template-columns: 80px 1fr auto; gap: 8px; align-items: center; }
.event-row { padding-inline: 16px; grid-template-columns: 64px 1fr auto; }
.event-row + .eyebrow + .event-row, .event-row + .event-row { margin-top: -8px; }
.aggregate-screen .eyebrow { font-size: 14px; text-transform: none; letter-spacing: 0; }
.event-row img { width: 56px; height: 56px; object-fit: contain; }
.event-row strong, .event-row small { display: block; }
.event-row strong { font-size: 16px; font-weight: 600; line-height: 1.3; }
.event-row small { margin-top: 6px; color: var(--ink-soft); font-size: 14px; font-weight: 500; line-height: 1.3; }
.event-time { width: 56px; text-align: right; }
.event-time strong { font-family: var(--font-mono); font-size: 14px; }
.birthday-row, .note-student-row { position: relative; min-height: 100px; }
.birthday-row { display: grid; grid-template-columns: 80px 1fr; gap: 12px; padding: 10px 8px; background: transparent; }
.birthday-identity { padding-top: 1px; font-size: 16px; font-weight: 600; }
.note-student-row > .person-row { margin: 0; }
.birthday-meta { position: absolute; left: 100px; top: 38px; display: flex; flex-direction: column; gap: 2px; color: var(--ink-soft); font-size: 14px; }
.birthday-check { position: absolute; right: 16px; top: 30px; width: 40px; height: 40px; border: 0; background: transparent; color: var(--success); }
.birthday-check:not(.done)::before { content: ""; display: block; width: 20px; height: 20px; margin: auto; border: 2px solid var(--ink-muted); }

.notes-hero { min-height: 132px; padding: 16px; display: grid; grid-template-columns: 64px 1fr; gap: 16px; align-items: center; }
.notes-hero img { width: 64px; height: 64px; object-fit: contain; }
.notes-hero strong { display: block; margin-top: 8px; font-size: 16px; }
.notes-hero p { display: flex; justify-content: space-between; margin: 16px 0 6px; font-size: 13px; color: #ffffffcc; }
.person-row { position: relative; min-height: 118px; background: var(--paper-soft); display: grid; grid-template-columns: 80px minmax(0, 1fr); gap: 12px; padding: 10px 8px; }
.person-row:has(.presence-actions), .person-row:has(.birthday-mark) { min-height: 100px; }
.person-row:has(.presence-actions) { min-height: 134px; }
.attendance-screen.draft > .footer-cta, .attendance-screen.readonly > .footer-cta { margin-top: -4px; }
.person-row.is-absent { min-height: 100px; }
.person-row.has-actions { padding-right: 84px; background: linear-gradient(to right, var(--paper-soft) 0 calc(100% - 76px), transparent calc(100% - 76px)); }
.person-row.has-actions.one-action { padding-right: 52px; background: linear-gradient(to right, var(--paper-soft) 0 calc(100% - 44px), transparent calc(100% - 44px)); }
.person-row.compact { min-height: 100px; }
.person-avatar { width: 80px; height: 80px; border-radius: 14px; background: var(--night); color: #fff; display: grid; place-items: center; overflow: hidden; }
.person-avatar.photo { background: linear-gradient(145deg, #d8b39f, #8aa8c2); }
.person-avatar.photo span { font-size: 22px; font-weight: 600; }
.person-avatar.photo img { width: 80px; height: 80px; object-fit: cover; object-position: center; }
.birthday-row + .birthday-row { margin-top: -8px; }
.person-content { min-width: 0; padding-top: 1px; }
.person-name-line { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 8px; min-height: 20px; }
.person-name-line strong { min-width: 0; overflow-wrap: anywhere; font-size: 16px; line-height: 20px; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.person-name-line .belt-badge { margin-top: 4px; }
.belt-badge { width: 36px; flex: 0 0 36px; height: 12px; border: 1px solid #cfd0d3; border-radius: 6px; background: #fff; display: inline-grid; grid-template-columns: 22px 5px 5px; overflow: hidden; }
.belt-badge i:nth-child(2) { background: #fff; }
.belt-badge i:nth-child(3) { background: #000; }
.belt-badge.blue i:first-child { background: #145ce0; }
.belt-badge.white-blue i:first-child, .belt-badge.white-black i:first-child { background: #fff; }
.belt-badge.white-blue i:nth-child(2) { background: #145ce0; }
.note-preview, .subnote, .attendance-result { margin: 8px 0 0; color: var(--ink-soft); font-size: 14px; line-height: 1.2; display: flex; align-items: flex-start; gap: 6px; }
.note-preview span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.expanded-note .note-preview span { -webkit-line-clamp: unset; }
.note-preview.alert .icon { color: var(--red); font-variation-settings: "FILL" 1, "wght" 700; }
.note-preview.done .icon { color: var(--warning); }
.note-preview.watch .icon { color: var(--ink-muted); }
.attendance-result span { color: var(--red); }
.rating-line { margin-top: 8px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; color: var(--ink-soft); font-size: 14px; }
.rating-line > span:last-child { min-width: 0; white-space: nowrap; }
.stars { display: inline-flex; gap: 1px; color: #c9cbd0; }
.stars .filled { color: #f18639; }
.person-actions { position: absolute; top: 8px; right: 8px; display: flex; gap: 4px; }
.icon-button { width: 40px; height: 40px; border: 0; border-radius: 8px; background: transparent; display: inline-grid; place-items: center; cursor: pointer; }
.icon-button.dark { width: 28px; height: 28px; background: var(--night); color: #fff; }
.person-actions .icon-button { width: 28px; height: 28px; border: 1px solid var(--hair); background: #fff; }
.person-actions .icon-button.dark { border-color: var(--night); background: var(--night); }
.icon-button.active { color: var(--success); }
.birthday-mark { position: absolute; left: 72px; top: 2px; width: 22px; height: 22px; padding: 0; box-sizing: border-box; flex: none; border: 0; border-radius: 50%; background: var(--red); color: #fff; display: grid; place-items: center; }
.birthday-mark > .icon { width: 20px; height: 20px; line-height: 1; }
.birthday-mark.complete { background: var(--success); }
.presence-actions { margin-top: 10px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.compact-action { min-height: 40px; border: 1px solid var(--hair); border-radius: 8px; background: #fff; font-size: 14px; font-weight: 600; }
.compact-action.active { background: var(--night); color: #fff; }
.compact-action.absent { color: var(--red); }
.compact-action.absent.active { background: var(--red); color: #fff; }
.text-control { min-height: 40px; border: 0; background: transparent; font-size: 14px; font-weight: 600; }
.note-student-row .person-row { min-height: 112px; }
.note-task-link { position: absolute; right: 4px; top: 34px; width: 40px; height: 40px; border: 0; background: transparent; }
.notes-screen .eyebrow + .note-student-row { margin-top: -2px; }
.notes-screen .note-student-row + .eyebrow { margin-top: 8px; }
.notes-screen .note-student-row + .note-student-row { margin-top: -4px; }
.notes-screen .note-student-row:last-child .person-row { min-height: 100px; }
.notes-screen .person-row { border-radius: 8px; }
.notes-screen .note-preview.watch .icon { color: var(--ink-muted); }
.notes-hero .signal-illustration .dynamic-badge { left: 40px; top: 0; }
.person-row .belt-badge.blue i:first-child { background: #fff; }
.person-row .belt-badge.blue i:nth-child(2) { background: repeating-linear-gradient(90deg, #000 0 1px, #fff 1px 2px); }
.person-row .belt-badge.blue i:nth-child(3) { background: repeating-linear-gradient(90deg, #145ce0 0 1px, #fff 1px 2px, #e53935 2px 3px); }
.roster-list { display: flex; flex-direction: column; gap: 12px; }
.note-editor-row { display: block; min-height: 288px; padding: 0; background: transparent; }
.note-editor-row > .person-row { min-height: 118px; }
.note-editor { margin: 16px 8px 0 98px; position: relative; }
.note-editor .presence-actions { margin-top: 6px; }
.rating-input { display: inline-flex; gap: 1px; flex-shrink: 0; }
.rating-choice { width: 18px; height: 20px; padding: 0; border: 0; background: transparent; color: #c9cbd0; cursor: pointer; }
.rating-choice.selected { color: #f18639; }
.rating-choice.selected .icon { fill: none; }
.presence-actions [data-present="true"] { background: var(--night); color: #fff; }
.attendance-screen.readonly { gap: 8px; }
.attendance-screen.readonly.sub { gap: 14px; }
.attendance-screen.note-open > .roster-title { margin-top: 20px; }
.attendance-screen .session-hero .attendance-progress { width: auto; min-width: 0; border-radius: 8px; }
.attendance-screen .session-hero .session-status-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; padding-left: 0; }
.attendance-screen .status-line { min-width: 0; }
.attendance-screen .status-line .icon { flex-shrink: 0; }
.attendance-screen .attendance-progress strong { white-space: nowrap; }
.review-editor .character-count { position: static; display: block; text-align: right; }
.saved-review-note { margin: 8px 0 0; color: var(--ink-soft); font-size: 14px; overflow-wrap: anywhere; }
.note-editor label { display: block; margin-bottom: 8px; font-size: 16px; font-weight: 600; }
.note-editor textarea { display: block; width: 100%; height: 86px; resize: none; border: 1px solid var(--hair); border-radius: 8px; padding: 12px 12px 28px; background: var(--paper-soft); font-size: 14px; line-height: 1.35; }
.character-count { position: absolute; right: 10px; top: 84px; color: var(--ink-soft); font-size: 13px; }
.footer-cta { width: 100%; margin-top: auto; }
.approval-actions { display: grid; grid-template-columns: 1fr 48px; gap: 8px; margin-top: auto; }
.approval-actions .primary-cta { width: 100%; }

.task-switcher { height: 44px; display: grid; grid-template-columns: 1fr 1fr 48px; gap: 8px; align-items: center; }
.task-switcher > button:not(.add-task) { height: 40px; border: 0; border-radius: 980px; background: var(--paper-soft); color: var(--ink-soft); font-size: 14px; }
.task-switcher > button.active { background: #fff; color: var(--ink); box-shadow: 0 0 0 1px var(--hair); font-weight: 600; }
.add-task { width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--night); color: #fff; display: grid; place-items: center; }
.scope-chip { align-self: flex-end; min-height: 40px; margin-top: -8px; padding: 0 20px; border: 1px solid var(--hair); border-radius: 980px; display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 600; }
.task-hero { height: 124px; padding: 16px 16px 10px; display: flex; flex-direction: column; justify-content: flex-end; gap: 12px; overflow: hidden; position: relative; }
.task-switcher + .task-hero { margin-top: -8px; }
.metric-unit { margin-left: 8px; }
.task-hero .task-metric { display: inline-block; min-width: 96px; }
.task-hero .metric-unit { margin-left: 0; }
.task-hero-top { display: flex; justify-content: space-between; align-items: flex-start; }
.task-hero-top img { position: absolute; right: 16px; top: 6px; width: 96px; height: 88px; object-fit: cover; }
.task-hero .progress { margin-top: 8px; width: 180px; }
.tasks-screen.assigned-tasks .task-hero .progress { width: min(312px, 100%); }
.task-hero .progress, .notes-hero .progress { background: #ffffff1a; }
.task-hero .progress > span, .notes-hero .progress > span { background: #fff; }
.task-signals { display: flex; gap: 24px; font-size: 14px; }
.task-signals span { display: flex; align-items: center; gap: 6px; }
.task-lenses { height: 40px; display: flex; align-items: center; gap: 4px; }
.task-lenses > button { height: 40px; padding: 0 6px; border: 0; border-radius: 8px; background: transparent; color: var(--ink-soft); display: flex; align-items: center; gap: 3px; font-size: 14px; font-weight: 500; white-space: nowrap; }
.task-lenses > button:first-child { padding: 0 12px; }
.task-lenses > button.active { background: var(--night); color: #fff; }
.task-lenses .icon-button { margin-left: auto; padding: 0; color: var(--ink); }
.task-group { border-radius: 18px; background: #fff; overflow: hidden; }
.task-group .section-heading { padding: 8px 16px; }
.task-group .section-heading span { color: var(--ink-soft); font-size: 14px; }
.task-group .section-heading { min-height: 44px; }
.task-group .section-heading h2 { display: flex; gap: 8px; align-items: center; }
.task-more { width: 100%; height: 40px; border: 0; background: transparent; display: flex; align-items: center; justify-content: center; gap: 32px; font-size: 14px; font-weight: 600; }
.tasks-screen { position: relative; }
.tasks-screen > .scope-chip { position: absolute; top: -46px; right: 0; margin: 0; width: 144px; background: var(--paper-soft); }
.task-row { min-height: 72px; position: relative; display: grid; grid-template-columns: 36px 1fr 22px; align-items: center; padding: 0 8px; border-bottom: 1px solid var(--hair); }
.task-leading { display: grid; place-items: center; color: var(--ink-muted); }
.complete-circle { display: inline-block; width: 22px; height: 22px; border: 2px solid var(--ink-muted); border-radius: 50%; cursor: pointer; }
.complete-circle { padding: 0; background: transparent; }
.complete-circle.complete { border-color: var(--success); background: var(--success); box-shadow: inset 0 0 0 4px #fff; }
.complete-circle.large { width: 24px; height: 24px; border-color: #fff; background: transparent; }
.task-open { min-height: 72px; padding: 8px 0; border: 0; background: transparent; text-align: left; min-width: 0; }
.task-open strong { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; white-space: normal; overflow-wrap: anywhere; font-size: 16px; line-height: 20px; }
.task-open span { margin-top: 8px; color: var(--ink-soft); display: flex; align-items: center; gap: 6px; font-size: 14px; }
.task-row.urgent .task-open span .icon, .task-row.overdue .task-open span .icon { color: var(--red); font-variation-settings: "FILL" 1, "wght" 700; }
.task-row.reward .task-open span .icon { color: var(--success); }
.task-detail-hero { min-height: 152px; padding: 16px; display: flex; flex-direction: column; gap: 16px; }
.task-detail-hero .inline-detail { color: #e5e5e7; }
.task-detail-hero .pill-action { background: #fff; color: var(--night); min-height: 44px; }
.review-people { border-top: 1px solid #ffffff26; }
.review-person-row { display: grid; grid-template-columns: minmax(0, 1fr) 96px; align-items: center; gap: 12px; min-height: 72px; padding: 12px 0; border-bottom: 1px solid #ffffff1a; }
.review-person-row:last-child { border-bottom: 0; }
.review-person-info { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.review-person-info strong { font-size: 14px; line-height: 1.4; font-weight: 600; overflow-wrap: anywhere; }
.review-person-info span { color: #b8b8bd; font-size: 12px; line-height: 1.45; }
.review-person-row .pill-action { width: 96px; padding: 0 8px; justify-content: center; font-size: 13px; white-space: nowrap; }
.review-person-row .pill-action:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.training-detail-hero { gap: 12px; }
.training-detail-hero .task-detail-signal { flex-wrap: wrap; gap: 6px 12px; }
.training-cadence { color: #b8b8bd; font-size: 12px; font-weight: 400; }
.training-picker { border-top: 1px solid #ffffff26; padding-top: 12px; }
.training-picker-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 13px; margin-bottom: 10px; }
.training-picker-heading span { display: flex; gap: 10px; }
.training-picker-heading button { border: 0; background: transparent; padding: 6px 0; color: #d0d0d5; font-size: 11px; text-decoration: underline; }
.training-date-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
.training-date-grid button { min-height: 40px; border: 1px solid #ffffff38; border-radius: 10px; background: transparent; color: #fff; font-size: 13px; }
.training-date-grid button[aria-pressed="true"] { background: #fff; color: #111; font-weight: 700; }
.training-person { display: flex; align-items: center; gap: 12px; padding: 9px 0; border-bottom: 1px solid #ffffff18; min-height: 55px; }
.training-person:last-child { border: 0; }
.training-person input { width: 20px; height: 20px; accent-color: #fff; flex: 0 0 20px; }
.training-person span { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.training-person strong { font-size: 13px; line-height: 1.4; }
.training-person small { font-size: 11px; line-height: 1.4; color: #b8b8bd; }
.training-bulk { border-top: 1px solid #ffffff26; padding-top: 12px; }
.training-bulk>span { display: block; font-size: 12px; color: #b8b8bd; margin-bottom: 10px; }
.training-bulk>div { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.training-bulk button { min-height: 44px; border-radius: 999px; border: 1px solid #fff; background: #fff; color: #111; font-size: 13px; font-weight: 600; }
.training-bulk button:last-child { background: transparent; color: #fff; }
.training-bulk button:disabled { opacity: .4; }
.training-review-row { display: grid; grid-template-columns: minmax(0,1fr) 106px; align-items: center; gap: 8px; border-bottom: 1px solid #ffffff18; }
.training-review-row .training-person { border: 0; }
.training-row-actions { display: flex; gap: 4px; }
.training-row-actions button { min-height: 40px; border: 1px solid #ffffff50; border-radius: 9px; background: #fff; color: #111; font-size: 11px; padding: 0 6px; }
.training-row-actions button:last-child { width: 30px; background: transparent; color: #fff; font-size: 20px; }
.training-row-actions button:disabled { opacity: .35; }
.training-edit { padding: 12px; background: #242426; border-radius: 10px; }
.training-edit p { margin: 0 0 10px; font-size: 12px; line-height: 1.5; color: #e5e5e7; }
.training-edit>div { display: flex; gap: 8px; }
.training-edit button { min-height: 40px; border: 1px solid #ffffff60; border-radius: 8px; padding: 0 12px; color: #fff; background: transparent; }
.training-bulk>div:has(>button:only-child) { grid-template-columns: 1fr; }
.training-status-toggle { width: 36px; height: 40px; flex: 0 0 36px; padding: 0; border: 1px solid currentColor; border-radius: 10px; background: transparent; font-size: 26px; font-weight: 700; }
.training-status-toggle.is-present { color: #3ed49a; }
.training-status-toggle.is-absent { color: #ff7179; }
.training-status-toggle.is-mixed { color: #b8b8bd; }
.training-status-toggle:disabled { opacity: 1; cursor: default; border-color: transparent; }
.training-status-toggle:not(:disabled) { background: #ffffff0c; }
.training-status-toggle.is-editing { border: 2px solid #3ed49a; box-shadow: 0 0 0 2px #3ed49a24; }
.training-edit-marker { display: inline-flex; vertical-align: middle; align-items: center; justify-content: center; margin-left: 6px; padding: 0; width: 16px; height: 16px; border: 1px solid #b8b8bd; border-radius: 50%; background: transparent; color: #d0d0d5; font-size: 11px; line-height: 1; position: relative; cursor: help; }
.training-person .training-edit-marker>span:first-child { display: inline; }
.training-person .training-editor-tooltip, .training-editor-tooltip { display: none; position: absolute; bottom: calc(100% + 8px); left: -20px; z-index: 5; width: max-content; max-width: 190px; padding: 7px 10px; border-radius: 8px; background: #fff; color: #111; font-size: 12px; font-weight: 400; line-height: 1.4; box-shadow: 0 3px 12px #0004; pointer-events: none; }
.training-edit-marker:hover .training-editor-tooltip, .training-edit-marker:focus .training-editor-tooltip { display: block; }
.training-row-actions button[aria-pressed="true"] { background: #fff; color: #111; }
.training-edit-note { margin: 0; padding: 8px 0 12px; font-size: 11px; line-height: 1.5; color: #d0d0d5; }
.training-picker-heading button:disabled { opacity: .4; text-decoration: none; }
.detail-title-line { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.detail-title-line h1, .task-composer-hero .composer-title { margin: 0; color: #fff; font: 600 20px/1.05 var(--font-display); }
.task-detail-signal { margin: 0; display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; }
.detail-meta { margin-top: auto; padding-top: 14px; border-top: 1px solid #ffffff1a; display: grid; grid-template-columns: 176px 1fr; font-size: 14px; }
.detail-meta span { display: flex; align-items: center; gap: 8px; }
.action-list { border-radius: 18px; overflow: hidden; background: #fff; }
.list-action { width: 100%; height: 56px; padding: 0 16px; border: 0; border-bottom: 1px solid var(--hair); background: #fff; display: grid; grid-template-columns: 24px 1fr 20px; align-items: center; gap: 8px; text-align: left; font-size: 16px; font-weight: 600; }
.list-action:last-child { border-bottom: 0; }
.task-composer-hero { height: 200px; padding: 16px; display: flex; flex-direction: column; gap: 16px; }
.task-composer-hero .field-row { min-height: 48px; }
.task-create-screen { min-height: 624px; }
.task-create-screen .footer-cta { width: calc(100% - 32px); margin: 0 16px; }
.task-create-screen .composer-tools { padding: 0 16px; }
.composer-title { width: 100%; height: 40px; border: 0; border-bottom: 1px solid transparent; background: transparent; }
.composer-title { transform: translateY(-12px); }
.composer-title::placeholder { color: #fff; opacity: 1; }
.composer-title:focus { border-bottom-color: #ffffff55; }
.field-row { width: 100%; min-height: 52px; padding: 0; border: 0; background: transparent; display: grid; grid-template-columns: 24px 1fr 20px; align-items: center; gap: 8px; text-align: left; font-size: 16px; }
.task-composer-hero .field-row { color: #fff; }
.composer-dropdowns { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.composer-dropdowns label { height: 52px; padding: 0 12px; border: 1px solid var(--hair); border-radius: 8px; background: #fff; display: grid; grid-template-columns: 20px 1fr 18px; align-items: center; gap: 8px; }
.composer-dropdowns select { width: 100%; border: 0; appearance: none; background: transparent; font-size: 14px; font-weight: 600; }
.composer-dropdowns label, .composer-dropdowns select { min-width: 0; }
.description-row { height: 52px; padding: 0; border: 0; background: transparent; color: var(--ink-soft); display: flex; align-items: center; gap: 12px; text-align: left; }
.composer-tools { margin-top: auto; display: flex; gap: 8px; }
.chain-editor { display: flex; flex-direction: column; gap: 12px; }
.chain-editor > .text-control { align-self: flex-start; padding-left: 0; }
.chain-editor > div:first-child { display: flex; align-items: center; gap: 12px; color: var(--ink-soft); font-size: 13px; }
.chain-editor .progress { flex: 1; background: #dedfe3; }
.child-task-input { min-height: 48px; padding: 0 12px; border-radius: 8px; background: var(--paper-soft); display: grid; grid-template-columns: 24px 1fr 24px; gap: 8px; align-items: center; }
.child-task-input input { min-width: 0; border: 0; background: transparent; }

.pt-hero { min-height: 124px; padding: 22px 16px 16px; position: relative; overflow: hidden; }
.pt-hero small { margin-left: 16px; }
.pt-hero > div:first-child { width: 190px; }
.pt-hero img { position: absolute; right: 12px; top: 4px; width: 112px; height: 96px; object-fit: contain; }
.pt-hero img { mix-blend-mode: lighten; }
.pt-hero .progress { margin-top: 8px; }
.pt-signals { position: absolute; bottom: 12px; left: 16px; display: flex; gap: 20px; font-size: 14px; }
.pt-signals span { display: flex; align-items: center; gap: 6px; }
.pt-signals .success, .pt-signals .warning { color: #fff !important; }
.pt-signals .success .icon { color: #76dfb5; }
.pt-signals .warning .icon { color: #ffab74; }
.pt-toolbar { height: 40px; }
.client-list { display: flex; flex-direction: column; gap: 8px; }
.client-row { position: relative; width: 100%; min-height: 104px; padding: 8px; border: 0; border-bottom: 1px solid var(--hair); background: transparent; display: grid; grid-template-columns: 80px 1fr 22px; gap: 12px; align-items: center; text-align: left; }
.client-row > .person-row { display: contents; }
.client-info { min-width: 0; display: flex; flex-direction: column; gap: 7px; }
.client-info strong { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 16px; }
.client-info span { color: var(--ink-soft); display: flex; align-items: center; gap: 6px; font-size: 14px; }
.pt-type-icon { width: 20px; height: 20px; object-fit: contain; opacity: .72; }
.pt-type-icon.inverted { filter: brightness(0) invert(1); opacity: .9; }
.client-row .status-chip { position: absolute; right: 16px; bottom: 14px; width: 100px; justify-content: center; font-weight: 500; }
.client-row > .icon { margin-top: -16px; }
.client-info { align-self: start; padding-top: 2px; }
.client-info span:last-child { color: var(--ink); font-size: 12px; font-weight: 600; }
.client-info span:last-child .icon { color: var(--ink-soft); }
.pt-client-hero { min-height: 160px; color: var(--ink); display: flex; flex-direction: column; gap: 12px; }
.pt-client-ident { position: relative; display: grid; grid-template-columns: 80px minmax(0, 1fr) 60px; column-gap: 12px; row-gap: 4px; align-items: center; padding: 16px; min-height: 112px; border-radius: 24px; background: var(--night); color: #fff; }
.pt-client-ident .belt-toggle { position: static; grid-column: 3; grid-row: 2; justify-self: end; align-self: center; padding: 0; min-height: 32px; }
.pt-client-ident > .person-avatar { grid-column: 1; grid-row: 1 / 4; }
.pt-client-ident > div > strong { grid-column: 2 / 4; grid-row: 1; width: 100%; white-space: normal; overflow-wrap: anywhere; font-size: 16px; line-height: 20px; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.pt-client-ident > div > span:last-child { grid-column: 2 / 4; grid-row: 3; display: flex; align-items: center; gap: 8px; font-size: 14px; }
.pt-client-ident .status-chip { grid-column: 2; grid-row: 2; width: max-content; max-width: 100%; min-width: 0; padding-inline: 8px; white-space: nowrap; justify-content: center; font-weight: 500; font-size: 12px; }
.pt-client-ident > .person-row { display: contents; }
.pt-client-ident > div:not(.person-avatar) { min-width: 0; display: contents; }
.pt-client-ident > div > strong { font-size: 16px; }
.belt-toggle { align-self: start; border: 0; background: transparent; color: #fff; display: flex; gap: 8px; align-items: center; }
.pt-session-progress { display: grid; grid-template-columns: 48px 60px 1fr; gap: 8px; align-items: center; }
.pt-session-progress { margin-top: auto; padding: 0 16px; grid-template-columns: auto auto minmax(0, 1fr); column-gap: 8px; }
.pt-client-hero .belt-badge.blue i:nth-child(2) { background: #145ce0; }
.pt-session-progress strong { font-size: 16px; }
.pt-session-progress span { font-size: 14px; }
.profile-disclosure { padding: 0 16px; border-radius: 8px; background: var(--paper-soft); }
.profile-disclosure .field-row { min-height: 40px; color: var(--ink-soft); font-size: 14px; }
.profile-disclosure .field-row .icon:last-child { display: none; }
.profile-field { min-height: 40px; display: grid; grid-template-columns: 20px 64px 1fr; align-items: center; gap: 8px; color: var(--ink-soft); font-size: 12px; }
.profile-field strong { color: var(--ink); font-size: 14px; font-weight: 500; }
.pt-detail-screen { gap: 12px; }
.pt-detail-list { margin-top: 4px; }
.pt-detail-list .field-row { min-height: 56px; font-weight: 500; }
.pt-detail-list .field-row { border-bottom: 1px solid var(--hair); font-size: 14px; }
.pt-detail-list [data-action="open-pt-location"] > .icon:last-child { visibility: hidden; }

.modal-layer { position: absolute; z-index: 30; inset: 0; padding: 84px 16px 102px; background: #00000060; overflow: auto; }
.top-panel { width: 358px; max-height: calc(100dvh - 118px); padding: 16px; border-radius: 18px; background: #fff; box-shadow: 0 12px 48px #00000033; display: flex; flex-direction: column; gap: 16px; }
.top-panel > header { height: 16px; display: flex; align-items: center; justify-content: space-between; }
.top-panel h2 { margin: 0; font-size: 16px; font-weight: 600; }
.top-panel:focus { outline: none; }
.modal-content { display: flex; flex-direction: column; gap: 0; }
.task-filter .modal-content { gap: 12px; }
.task-filter .primary-cta { margin-top: 12px; }
.student-picker .modal-content { gap: 8px; }
.profile-select { display: block; width: 100%; min-height: 44px; margin-top: 6px; border: 1px solid #dedfe3; border-radius: 8px; padding: 8px; font: inherit; background: #fff; color: var(--ink); }
.modal-layer.student-picker { background: linear-gradient(to bottom, transparent 70px, #00000060 70px, #00000060 calc(100% - 102px), transparent calc(100% - 102px)); }
.student-picker .field-label { margin: 11px 0 0; }
.student-picker .modal-content > .field-row { min-height: 48px; font-weight: 500; }
.pt-location .modal-content { margin-top: 8px; }
.top-panel > .primary-cta { width: 326px; }
.month-field { display: flex; flex-direction: column; gap: 8px; color: var(--ink-soft); font-size: 14px; }
.month-field input { height: 48px; padding: 0 12px; border: 1px solid var(--hair); border-radius: 8px; background: var(--paper-soft); color: var(--ink); }
.filter-row { width: 100%; height: 44px; padding: 0; border: 0; background: #fff; display: grid; grid-template-columns: 1fr auto 20px; gap: 8px; align-items: center; text-align: left; color: var(--ink-soft); font-size: 14px; }
.filter-row strong { color: var(--ink); font-weight: 500; }
.check-field { min-height: 48px; padding: 0 12px; border-radius: 8px; background: var(--paper-soft); display: flex; align-items: center; gap: 12px; font-size: 14px; }
.check-field input { width: 18px; height: 18px; }
.field-label { margin: 4px 0; color: var(--ink-soft); font: 500 11px/1 var(--font-mono); text-transform: uppercase; }
.modal-content > .field-row, .location-options .field-row { min-height: 44px; padding: 0 12px; border-radius: 8px; background: var(--paper-soft); font-size: 14px; }
.location-options { display: flex; flex-direction: column; gap: 8px; }
.location-options .field-row.selected { background: var(--night); color: #fff; }
.custom-location { min-height: 48px; padding: 0 12px; border-radius: 8px; background: var(--paper-soft); display: flex; align-items: center; gap: 8px; }
.custom-location input { min-width: 0; flex: 1; border: 0; background: transparent; }
.confirmation .top-panel { margin-top: 0; }
.confirmation .modal-content p { margin: 0; color: var(--ink-soft); font-size: 14px; }
.confirmation .top-panel { gap: 12px; padding-top: 20px; }
.confirmation .modal-content { min-height: 28px; }
.cancel-confirmation { background: #fff; border: 1px solid var(--hair); margin-top: -4px; }
.task-empty, .inline-detail { margin: 0; padding: 12px 16px; font-size: 14px; line-height: 1.6; color: var(--ink-soft); }
.description-input, .deadline-input { width: 100%; min-height: 80px; border: 1px solid var(--hair); border-radius: 8px; padding: 12px; background: var(--paper-soft); }
.deadline-input { min-height: 44px; }
.reopen-task { width: 24px; height: 24px; padding: 0; }
.other-group { background: transparent; border-radius: 0; }
.other-group .section-heading { padding-inline: 0; }
.notes-screen .person-name-line { width: 100%; }
.note-read-target { position: absolute; inset: 0; width: 100%; border: 0; background: transparent; border-radius: 8px; cursor: pointer; }
.notes-screen .note-preview.done .icon { color: var(--success); }
.notes-screen .note-preview span { -webkit-line-clamp: unset; }
.notes-screen .note-task-link { z-index: 2; }
.notes-screen .notes-hero { grid-template-columns: 64px 1fr; }
.notes-hero strong, .roster-title, .note-editor label { font-family: var(--font-display); font-size: 20px; line-height: 1; }
.toast-region { position: absolute; z-index: 50; left: 24px; right: 24px; bottom: 116px; min-height: 40px; padding: 10px 16px; border-radius: 8px; background: var(--night); color: #fff; text-align: center; font-size: 13px; opacity: 0; pointer-events: none; transform: translateY(8px); transition: .2s ease; }
.toast-region.visible { opacity: 1; transform: translateY(0); }

@media (max-height: 700px) {
  .bottom-nav { bottom: max(8px, env(safe-area-inset-bottom)); }
  .safe-area { display: none; }
  .app-scroll { bottom: 84px; padding-bottom: 16px; }
}

@media (min-width: 391px) {
  .phone { border-radius: 28px; }
}

.primary-cta, .top-panel > .primary-cta { max-width: 100%; }
.top-panel { max-width: calc(100vw - 32px); }
.empty-source { padding: 24px 16px; background: var(--paper-soft); border-radius: 18px; }
.empty-source h2 { margin: 0 0 12px; font-size: 16px; }
.empty-source p, .source-context p { color: var(--ink-soft); font-size: 14px; line-height: 1.5; }
.source-context { margin-bottom: 16px; font-size: 13px; }
.source-context summary { cursor: pointer; min-height: 40px; display: flex; align-items: center; }
.pilot-record { width: 100%; text-align: left; background: transparent; border: 0; display: flex; align-items: center; gap: 12px; min-height: 80px; padding: 12px 0; border-bottom: 1px solid var(--hair); }
.pilot-calendar-hero { height: auto; min-height: 156px; }
.pilot-calendar-hero p { font-size: 14px; line-height: 1.5; margin: 16px 0 0; }
.tasks-screen.assigned-tasks .task-hero .progress { width: min(312px, 100%); }
.pt-hero small { margin-left: 8px; }
.pilot-record .grow { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.pilot-record small { color: var(--ink-soft); font-size: 13px; }
.pilot-hero { height: auto; min-height: 192px; }
.pilot-hero .tag-row { margin-top: 12px; }
.pilot-hero .taxonomy { width: auto; max-width: 156px; }
.pilot-hero p { font-size: 14px; }
@media (max-width: 389px) {
  .app-header { padding: 0 8px; grid-template-columns: 1fr 104px 36px; }
  .header-task-actions { left: 88px; top: 9px; }
  .header-task-actions button { width: 40px; height: 40px; }
  .with-task-actions .month-control { gap: 4px; }
  .session-copy { width: 172px; }
  .session-art { width: 96px; }
  .attendance-screen .attendance-progress { min-width: 0; width: auto; }
  .client-row { column-gap: 8px; }
  .session-row { grid-template-columns: 42px minmax(0, 1fr) 36px 80px; gap: 4px; }
  .session-row .session-signals { width: 80px; padding-right: 0; gap: 4px; }
  .session-row .taxonomy { width: 100%; padding-inline: 4px; }
}
.month-control { white-space: nowrap; }

@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; transition: none !important; }
}
/* Approved RAIZr: explicit personal/assigned view, separate create action. */
.task-view-control{display:flex;gap:8px;width:100%;height:44px;flex-shrink:0}
.task-view-switch{display:flex;flex:1;min-width:0;padding:4px;background:#eeeeef;border-radius:999px;gap:4px}
.task-view-switch button{flex:1;border:0;border-radius:999px;background:transparent;color:#68686f;font:600 14px Inter,sans-serif;cursor:pointer}
.task-view-switch button[aria-pressed="true"]{background:#fff;color:#161619}
.task-view-create{width:48px;flex-shrink:0;border:0;border-radius:999px;background:#111;color:#fff;display:grid;place-items:center;cursor:pointer}
.task-view-control button:focus-visible{outline:2px solid #555;outline-offset:2px}

.coach-pt-request{border:1px solid #ddd;border-radius:12px;padding:20px;width:min(460px,calc(100vw - 32px));box-sizing:border-box;max-height:90dvh;overflow:auto}.coach-pt-request::backdrop{background:#0006}.coach-pt-request form{display:grid;gap:16px}.coach-pt-request header{display:flex;align-items:center;justify-content:space-between}.coach-pt-request h2,.coach-pt-request p{margin:0}.coach-pt-request label{display:grid;gap:6px;font-size:13px}.coach-pt-request input,.coach-pt-request select,.coach-pt-request textarea{min-width:0;width:100%;box-sizing:border-box;padding:10px;border:1px solid #ddd;border-radius:6px;background:white;color:#222}.pt-request-time{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:8px}.pt-request-time[hidden]{display:none}.pt-request-error{color:#a02626}.pt-request-error:empty{display:none}

.coach-pt-request .primary-cta{width:100%;background:#202024;color:white;min-height:44px;border:0;border-radius:8px}.pt-request-update{font-size:12px;padding:8px 0;color:#62626d}
/* Approved 2026-09-11 personal/auth families. Shared shell remains 390 × 866. */
.personal-phone .app-scroll {inset:0;padding-bottom:32px}
.personal-phone .screen-content {padding-top:14px}
.personal-phone .back-row {margin-top:8px;height:40px}
.personal-phone:has(.personal-screen) .screen-content {padding-top:24px}
.me-header {grid-template-columns:44px 1fr 44px;padding:0}
.me-header .brand-logo {justify-self:center}
.me-header .icon-button {width:44px;height:44px}
.gkn-panel {padding:16px;border-radius:16px;background:var(--night);color:white}
.gkn-top {display:flex;align-items:baseline;gap:12px;font-family:var(--font-mono)}
.gkn-top>strong {font-size:40px;font-weight:500;letter-spacing:-2px}
.gkn-delta {margin-left:auto;font-size:16px;color:#88cbae}
.gkn-track {height:4px;background:#ffffff30;margin:16px 0 12px}
.gkn-track i {display:block;height:100%;background:#d5b477}
.gkn-milestones {display:flex;justify-content:space-between;font-size:10px;line-height:1.8;color:#bbb}
.gkn-milestones b {font:500 10px var(--font-mono);color:white}
.obligation-panel {height:236px;position:relative;display:flex;justify-content:center;align-items:center}
.obligation-clock {width:212px;height:212px;position:relative;border:0;padding:0;background:none;color:var(--ink)}
.obligation-clock svg {width:100%;height:100%;transform:rotate(-90deg)}
.obligation-clock circle {fill:none;stroke-width:9}
.clock-track {stroke:#e9e9e9}.clock-progress {stroke:#242426;stroke-linecap:round}
.obligation-clock>span {position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px}
.obligation-clock strong {font:600 48px var(--font-display)}
.obligation-clock small {font-size:14px}
.reward-counter {position:absolute;right:6px;top:78px;width:48px;height:72px;padding:0;border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:8px}
.reward-counter .icon {font-size:32px;color:#b99555;font-variation-settings:'FILL' 1}
.reward-counter strong {font:600 18px var(--font-display)}
.me-classes {display:flex;flex-direction:column;gap:8px}
.me-class {position:relative;min-height:80px;padding:0 8px;border-bottom:1px solid var(--hair)}
.me-class.open {height:296px}
.me-class-toggle {height:80px;width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto 20px;grid-template-rows:28px 28px;align-content:center;align-items:center;gap:0 4px;border:0;background:none;padding:0;text-align:left}
.me-class-name {font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.class-trophy {display:flex;align-items:center;gap:3px;font:500 16px var(--font-mono)}
.class-trophy .icon {font-size:22px;color:#b99555}
.me-class-meta {grid-column:1/-1;display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft)}
.me-class-meta .icon {font-size:18px}.me-class-meta>span:first-child {margin-right:8px}.main-role {color:var(--red)}
.class-history {position:absolute;left:0;right:0;top:80px}
.semester-label {font-size:11px;color:var(--ink-soft);margin:0 0 6px 8px}
.semester-months {display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.semester-month {height:44px;border:1px solid var(--hair);border-radius:6px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;font-size:10px}
.semester-month strong {font-size:9px}.tag-empty {color:#aaa}.tag-FAIL {color:var(--red)}.tag-BELOW {color:#986629}.tag-PASSplus {color:#947032}
.class-metrics {position:absolute;top:164px;left:8px;right:8px}
.me-metric {position:relative;height:60px;font-size:12px;display:flex;justify-content:space-between}
.me-bar {position:absolute;top:24px;left:0;right:0;height:6px;background:#e9e9e9;border-radius:4px}
.me-bar i {display:block;height:6px;background:#262629;border-radius:4px}.me-bar b {position:absolute;top:-3px;width:2px;height:12px;background:#b99555}
.me-metric small {position:absolute;right:0;top:34px;font-size:10px;color:var(--ink-soft)}
.personal-screen h1 {font-size:24px;margin:0 0 24px}
.personal-identity {display:flex;align-items:center;gap:16px;margin-bottom:24px}.personal-identity .icon {font-size:64px}
.personal-details {margin:0 0 24px}.personal-details>div {display:flex;gap:16px;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--hair);font-size:14px}.personal-details dt {color:var(--ink-soft)}.personal-details dd {margin:0;text-align:right;overflow-wrap:anywhere}
.personal-link {display:flex;align-items:center;gap:12px;width:100%;height:56px;background:none;border:0;border-bottom:1px solid var(--hair);text-align:left;font-size:14px}.personal-link>span:nth-child(2) {flex:1}
.personal-field,.auth-form>label {display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:500}
.personal-field {margin-bottom:20px}.personal-field input,.personal-field select,.auth-form input {width:100%;height:56px;border:1px solid #d4d4d6;border-radius:8px;padding:0 16px;font:400 16px var(--font-body);color:var(--ink);background:white;min-width:0}
.form-error {font-size:13px;line-height:1.45;color:var(--red);min-height:20px}
.auth-phone {min-height:0}.auth-scroll {height:100%;overflow:auto;padding:40px 24px 32px;scroll-padding:24px}
.auth-logo {display:block;width:124px;height:40px;object-fit:contain;margin:0 auto 32px}
.auth-art {display:block;width:calc(100% + 48px);max-width:none;margin-left:-24px;height:260px;object-fit:cover}
.auth-form {margin-top:32px;display:flex;flex-direction:column;gap:24px}
.auth-form .form-error {min-height:20px;margin:0;font-weight:400}
.auth-form .primary-cta {margin-top:4px;width:100%;flex:none}
.secret-field {position:relative;display:block}.secret-field input {padding-right:56px}.secret-field>button {position:absolute;right:6px;top:6px;width:44px;height:44px;border:0;background:none}
.forgot-password {height:44px;border:0;background:none;font:500 14px var(--font-body);margin-top:-12px}
.recovery-dialog {width:min(358px,calc(100vw - 32px));border:0;border-radius:16px;padding:20px;background:var(--paper)}
.recovery-dialog:has(#customer-account) {max-height:calc(100dvh - 32px);overflow-y:auto;box-sizing:border-box}
.recovery-dialog #customer-search,.recovery-dialog #customer-account {display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:20px}
.recovery-dialog #customer-account > * {min-width:0;max-width:100%}
.recovery-dialog #customer-account .primary-cta {width:100%}
.recovery-dialog #customer-search label,.recovery-dialog #customer-account label {display:grid;gap:8px;font-size:14px;line-height:1.4}
.recovery-dialog #customer-search input,.recovery-dialog #customer-account input:not([type=checkbox]),.recovery-dialog #customer-account select {box-sizing:border-box;width:100%;min-width:0;min-height:44px;border:1px solid #c8c8ce;border-radius:8px;padding:10px;font:inherit;background:var(--paper);color:inherit}
.recovery-dialog #customer-account label:has([type=checkbox]) {display:flex;align-items:flex-start;gap:10px}
.recovery-dialog #customer-account input[type=checkbox] {width:20px;height:20px;flex:none;margin:0}
.recovery-dialog #customer-account p,.recovery-dialog:has(#customer-account) [role=alert] {font-size:14px;line-height:1.5;margin:0}
.recovery-dialog:has(#customer-account) [role=alert] {margin:16px 0}
.recovery-dialog #customer-search button,.recovery-dialog [data-close-customer] {min-height:44px;width:100%;border:1px solid #c8c8ce;border-radius:8px;background:var(--paper);color:inherit;font:inherit;font-weight:600}
.recovery-dialog::backdrop {background:#0006}.recovery-dialog header {display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.recovery-dialog h2 {font-size:20px;margin:0}.recovery-dialog header button {width:44px;height:44px;border:0;background:none}
@media (max-height:650px){.phone {min-height:0}.auth-scroll {padding-top:16px}.auth-logo {margin-bottom:16px}.auth-art {height:120px}.auth-form {margin-top:20px;gap:16px}}

/* Native component geometry read from e369 Pen: uXWU7/nx45l/dc2kb/rPA0b. */
.me-header {display:block;position:sticky;padding:0}
.me-header>.icon-button:first-child {position:absolute;left:0;top:9px;width:40px;height:40px}
.me-header>.icon-button:last-child {position:absolute;right:0;top:7px}
.me-avatar {position:absolute;left:36px;top:9px;width:40px;height:40px;border-radius:50%;background:var(--night);color:white;display:grid;place-items:center;font-size:16px}
.me-identity {position:absolute;left:84px;top:8px;right:48px;display:flex;flex-direction:column;gap:8px;font-size:14px}.me-identity strong {font-weight:500}.me-identity small {font-size:13px;color:var(--ink-soft)}
.gkn-panel {height:88px;border:1px solid var(--hair);border-radius:12px;background:#fff;color:var(--ink);padding:10px 16px;position:relative}
.gkn-top {font-size:11px;color:var(--ink-soft);letter-spacing:1px;justify-content:space-between}.gkn-top small {font-size:10px;letter-spacing:0}
.gkn-value {position:absolute;top:26px;left:0;right:0;display:flex;justify-content:center;align-items:center;gap:8px;font:500 14px var(--font-mono)}.gkn-value strong {font-weight:500}.gkn-delta {font-size:11px;color:#16834a;margin:0}
.gkn-track {position:absolute;left:20px;right:32px;top:50px;margin:0;height:6px;background:#e2e4e7;border-radius:5px}
.gkn-track i {background:#16834a;border-radius:5px}.gkn-track b {position:absolute;top:-3px;width:12px;height:12px;background:white;border:1px solid #aaa;border-radius:50%;transform:translateX(-50%);font:8px Inter;text-align:center}.gkn-track .passed {background:#16834a;color:white;border-color:#16834a}.gkn-track u {position:absolute;top:-4px;width:14px;height:14px;border:2px solid white;background:#36e77b;border-radius:50%;transform:translateX(-50%)}
.gkn-milestones {position:absolute;top:66px;left:0;right:0;color:var(--ink);font-size:10px;line-height:1;display:grid;grid-template-columns:48px 1fr 80px 88px;text-align:center}
.obligation-panel {height:224px;margin-top:16px;background:var(--night);border-radius:16px;color:white}
.obligation-clock {width:224px;height:224px;color:white}.obligation-clock svg {transform:none}.obligation-clock circle {stroke-width:12}.clock-track {stroke:#343438}.clock-progress {stroke:#36e77b;stroke-linecap:butt}
.obligation-clock>span {gap:0;padding-top:8px}.clock-number {display:flex;align-items:baseline;gap:4px}.obligation-clock strong {font-size:72px;line-height:1.2}.obligation-clock b {font:400 14px Inter}.obligation-clock small {font-size:14px;margin-top:0}
.reward-counter {right:14px;color:white}.reward-counter .icon {color:#c9a25f}.reward-counter strong {font:600 18px Inter}
.clock-marker {position:absolute;display:flex;align-items:center;gap:4px;font-size:11px}.clock-marker .icon {font-size:14px}.marker-left {top:18px;left:70px}.marker-left .icon {color:#ff8a86}.marker-top {top:6px;left:196px;color:#ffffff99}
.me-section-title {height:56px;display:flex;justify-content:space-between;align-items:center;font-size:14px}.me-section-title span {font-size:13px;color:var(--ink-soft)}
.me-class {padding:0;border-bottom:0}.me-class:after {content:'';position:absolute;bottom:0;left:8px;right:8px;height:1px;background:var(--hair)}
.me-class-toggle {grid-template-columns:minmax(0,1fr) 60px 24px;grid-template-rows:28px 28px;gap:4px 4px;align-content:start;padding-top:8px}
.me-class-name {font-size:16px;font-weight:500}.class-trophy {font:400 11px Inter;gap:2px}.class-trophy img {width:24px;height:24px;object-fit:contain}
.me-class-meta {font-size:14px;gap:8px}.me-class-meta .icon {font-size:20px}.me-class-meta>span:first-child {margin:0}
.semester-label {font-size:13px;margin:0 0 8px;height:16px}.semester-month {border-radius:6px;font-size:11px;gap:7px}.semester-month strong {font-size:10px}.month-PASS,.month-PASSplus {background:#16834a;color:white}.month-PASS .tag-PASS,.month-PASSplus .tag-PASSplus {color:white}.month-BELOW {background:#c9a25f;color:var(--ink)}.month-BELOW .tag-BELOW {color:var(--ink)}.month-empty {background:#e2e4e7;color:#6e6e73}.month-empty .tag-empty {color:#6e6e73}
.class-metrics {left:0;right:16px}.me-metric {font-size:13px;height:60px;display:block}.me-metric>span {position:absolute;top:14px;left:0}.me-bar {top:22px;left:80px}.me-bar i {background:linear-gradient(90deg,#c9a25f,#36e77b)}.me-bar>strong {position:absolute;top:-22px;transform:translateX(-50%);font-size:13px;font-weight:400}.me-bar>small {top:14px;right:auto;transform:translateX(-50%);white-space:nowrap;color:var(--ink);font-size:11px}.me-bar em {font-style:normal;color:#e53935;font-size:12px}.me-bar small:last-child em {color:#c9a25f}
.personal-screen h1 {line-height:29px;margin-bottom:23px}.personal-identity {height:64px;margin:0 0 24px;gap:16px}.profile-avatar {width:64px;height:64px;background:var(--night);color:white;border-radius:50%;display:grid;place-items:center;font-size:20px;flex:none}.personal-identity>div {display:flex;flex-direction:column;gap:10px}.personal-identity strong {font-size:18px}.personal-identity small {font-size:14px;color:var(--ink-soft)}
.personal-details>div {height:76px;display:flex;flex-direction:column;gap:8px;justify-content:start;padding:0 0 16px;margin-bottom:0}.personal-details dt {font-size:13px;padding-top:0}.personal-details dd {font-size:16px;text-align:left}.personal-details>div+div {padding-top:16px}.personal-details {margin-bottom:24px}.personal-link {font-size:15px;padding:0;gap:12px}
.personal-field {font-size:13px;color:var(--ink-soft);margin-bottom:20px;gap:8px;height:60px}.personal-field input,.personal-field select {border:0;border-bottom:1px solid var(--hair);border-radius:0;background:none;height:45px;padding:0 0 14px;font-size:16px}.personal-screen form {padding-top:7px}.personal-screen form>.primary-cta {margin-top:36px}.personal-screen form>.form-error:empty {min-height:0;margin:0}.current-phone strong {font:400 16px Inter;color:var(--ink);border-bottom:1px solid var(--hair);height:45px;padding-bottom:14px}.personal-screen form[data-route=password] .personal-field {margin-bottom:28px}
.auth-scroll {padding-top:38px}.auth-logo {width:116px;height:50px;margin:0 0 24px;object-fit:contain}.auth-form {position:relative;margin-top:32px;gap:24px}.auth-form>label {gap:11px;line-height:17px}.auth-form input {line-height:normal}.auth-form .form-error {position:absolute;top:196px;left:0;right:0;min-height:0;margin:0}.auth-form .form-error:not(:empty) {position:static;order:3}
.forgot-password {height:28px;min-height:28px;text-align:right;margin:0;padding:0;font-size:14px;order:2}.auth-form .primary-cta {order:4;margin-top:12px}.auth-form .form-error:not(:empty)+.forgot-password {margin:0}.auth-phone::after,.personal-phone::after {content:'';position:absolute;bottom:15px;left:calc(50% - 48px);width:96px;height:4px;border-radius:2px;background:#d7d7db;pointer-events:none}
@media(max-height:650px){.auth-scroll {padding-top:16px}.auth-logo {margin-bottom:16px}.auth-art {height:120px}.auth-form {margin-top:20px;gap:16px}}
.personal-phone .back-row {top:0;margin-bottom:0}
.personal-identity {margin-bottom:24px}
.personal-details>div {height:76px;padding-top:0}
.personal-details>div:first-child {height:68px}
.personal-field:has(input[type=password]),.personal-field:has(input[data-secret]) {position:relative}
.personal-secret-toggle {position:absolute;right:0;top:18px;width:44px;height:44px;border:0;background:none;color:var(--ink-soft)}
.personal-field:has(.personal-secret-toggle) input {padding-right:44px}
.pt-client-hero {height:160px;min-height:160px;border-radius:24px;background:var(--night);color:white;gap:0;padding-bottom:16px}
.pt-client-ident {background:none;border-radius:0;min-height:112px;padding:16px;grid-template-columns:80px minmax(0,1fr) 60px;gap:4px 12px}
.pt-client-ident .belt-toggle {position:absolute;top:8px;right:8px;min-height:40px;min-width:60px;justify-content:flex-end}
.pt-client-ident>div>strong {padding-right:44px;white-space:nowrap;display:block;text-overflow:ellipsis;overflow:hidden}
.pt-session-progress {width:100%;color:white}.pt-session-progress>.progress {max-width:180px}.pt-session-progress .progress>span {background:linear-gradient(90deg,#1f9364,#76dfb5)}

.auth-scroll {overflow-x:hidden;scrollbar-width:none}.auth-scroll::-webkit-scrollbar {display:none}.auth-form .primary-cta {margin-top:0}
.auth-scroll {padding:38px 0 32px}.auth-logo {margin-left:24px}.auth-art {width:100%;margin-left:0}.auth-form {margin:32px 24px 0}
@media(max-height:650px){.auth-scroll{padding-top:16px}.auth-form{margin-top:20px}}

.pt-client-ident .belt-toggle {grid-column:auto;grid-row:auto;align-self:start}
