:root{color-scheme:light;--md-sys-color-primary: var(--p-40, #106f57);--md-sys-color-on-primary: var(--p-100, #fff);--md-sys-color-primary-container: var(--p-90, #a4f7d9);--md-sys-color-on-primary-container: var(--p-10, #002218);--md-sys-color-secondary: var(--s-40);--md-sys-color-on-secondary: var(--s-100);--md-sys-color-secondary-container: var(--s-90);--md-sys-color-on-secondary-container: var(--s-10);--md-sys-color-tertiary: var(--t-40);--md-sys-color-on-tertiary: var(--t-100);--md-sys-color-tertiary-container: var(--t-90);--md-sys-color-on-tertiary-container: var(--t-10);--md-sys-color-error: var(--e-40);--md-sys-color-on-error: var(--e-100);--md-sys-color-error-container: var(--e-90);--md-sys-color-on-error-container: var(--e-10);--md-sys-color-warning: var(--w-40);--md-sys-color-warning-container: var(--w-90);--md-sys-color-on-warning-container: var(--w-10);--md-sys-color-surface: var(--n-98, #f2fcf8);--md-sys-color-surface-dim: var(--n-87);--md-sys-color-surface-bright: var(--n-98);--md-sys-color-surface-container-lowest: var(--n-100);--md-sys-color-surface-container-low: var(--n-96);--md-sys-color-surface-container: var(--n-94);--md-sys-color-surface-container-high: var(--n-92);--md-sys-color-surface-container-highest: var(--n-90);--md-sys-color-on-surface: var(--n-10, #161d1b);--md-sys-color-on-surface-variant: var(--nv-30);--md-sys-color-outline: var(--nv-50);--md-sys-color-outline-variant: var(--nv-80);--md-sys-color-inverse-surface: var(--n-20);--md-sys-color-inverse-on-surface: var(--n-95);--md-sys-color-inverse-primary: var(--p-80);--md-sys-color-scrim: var(--n-0, #000);--md-sys-color-shadow: var(--n-0, #000);--primary: var(--md-sys-color-primary);--on-primary: var(--md-sys-color-on-primary);--primary-container: var(--md-sys-color-primary-container);--on-primary-container: var(--md-sys-color-on-primary-container);--secondary-container: var(--md-sys-color-secondary-container);--on-secondary-container: var(--md-sys-color-on-secondary-container);--tertiary: var(--md-sys-color-tertiary);--tertiary-container: var(--md-sys-color-tertiary-container);--on-tertiary-container: var(--md-sys-color-on-tertiary-container);--error: var(--md-sys-color-error);--on-error: var(--md-sys-color-on-error);--error-container: var(--md-sys-color-error-container);--on-error-container: var(--md-sys-color-on-error-container);--warning: var(--md-sys-color-warning);--warning-container: var(--md-sys-color-warning-container);--on-warning-container: var(--md-sys-color-on-warning-container);--surface: var(--md-sys-color-surface);--surface-lowest: var(--md-sys-color-surface-container-lowest);--surface-low: var(--md-sys-color-surface-container-low);--surface-container: var(--md-sys-color-surface-container);--surface-high: var(--md-sys-color-surface-container-high);--surface-highest: var(--md-sys-color-surface-container-highest);--on-surface: var(--md-sys-color-on-surface);--on-surface-variant: var(--md-sys-color-on-surface-variant);--outline: var(--md-sys-color-outline);--outline-variant: var(--md-sys-color-outline-variant);--inverse-surface: var(--md-sys-color-inverse-surface);--inverse-on-surface: var(--md-sys-color-inverse-on-surface);--inverse-primary: var(--md-sys-color-inverse-primary);--shape-xs: 4px;--shape-sm: 8px;--shape-md: 12px;--shape-lg: 16px;--shape-xl: 28px;--shape-full: 999px;--elev-1: 0 1px 2px rgb(0 0 0 / .3), 0 1px 3px 1px rgb(0 0 0 / .15);--elev-2: 0 1px 2px rgb(0 0 0 / .3), 0 2px 6px 2px rgb(0 0 0 / .15);--elev-3: 0 1px 3px rgb(0 0 0 / .3), 0 4px 8px 3px rgb(0 0 0 / .15);--elev-4: 0 2px 3px rgb(0 0 0 / .3), 0 6px 10px 4px rgb(0 0 0 / .15);--ease-standard: cubic-bezier(.2, 0, 0, 1);--ease-emphasized: cubic-bezier(.2, 0, 0, 1);--ease-emphasized-decel: cubic-bezier(.05, .7, .1, 1);--ease-emphasized-accel: cubic-bezier(.3, 0, .8, .15);--dur-short: .15s;--dur-medium: .3s;--dur-long: .45s;--font-ui: "Manrope", "Segoe UI", system-ui, -apple-system, sans-serif;--font-serif: "Fraunces", Georgia, "Times New Roman", serif;--drawer-width: 280px;--rail-width: 88px;--bottom-nav: 80px;--appbar: 64px;--content-max: 1120px;--gutter: clamp(16px, 3vw, 32px);--safe-bottom: env(safe-area-inset-bottom, 0px)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--md-sys-color-primary: var(--p-80, #88dabe);--md-sys-color-on-primary: var(--p-20, #003a2c);--md-sys-color-primary-container: var(--p-30, #005140);--md-sys-color-on-primary-container: var(--p-90, #a4f7d9);--md-sys-color-secondary: var(--s-80);--md-sys-color-on-secondary: var(--s-20);--md-sys-color-secondary-container: var(--s-30);--md-sys-color-on-secondary-container: var(--s-90);--md-sys-color-tertiary: var(--t-80);--md-sys-color-on-tertiary: var(--t-20);--md-sys-color-tertiary-container: var(--t-30);--md-sys-color-on-tertiary-container: var(--t-90);--md-sys-color-error: var(--e-80);--md-sys-color-on-error: var(--e-20);--md-sys-color-error-container: var(--e-30);--md-sys-color-on-error-container: var(--e-90);--md-sys-color-warning: var(--w-80);--md-sys-color-warning-container: var(--w-30);--md-sys-color-on-warning-container: var(--w-90);--md-sys-color-surface: var(--n-6, #0e1512);--md-sys-color-surface-dim: var(--n-6);--md-sys-color-surface-bright: var(--n-24);--md-sys-color-surface-container-lowest: var(--n-4);--md-sys-color-surface-container-low: var(--n-10);--md-sys-color-surface-container: var(--n-12);--md-sys-color-surface-container-high: var(--n-17);--md-sys-color-surface-container-highest: var(--n-22);--md-sys-color-on-surface: var(--n-90, #dbe5e1);--md-sys-color-on-surface-variant: var(--nv-80);--md-sys-color-outline: var(--nv-60);--md-sys-color-outline-variant: var(--nv-30);--md-sys-color-inverse-surface: var(--n-90);--md-sys-color-inverse-on-surface: var(--n-20);--md-sys-color-inverse-primary: var(--p-40)}}:root[data-theme=dark]{color-scheme:dark;--md-sys-color-primary: var(--p-80, #88dabe);--md-sys-color-on-primary: var(--p-20, #003a2c);--md-sys-color-primary-container: var(--p-30, #005140);--md-sys-color-on-primary-container: var(--p-90, #a4f7d9);--md-sys-color-secondary: var(--s-80);--md-sys-color-on-secondary: var(--s-20);--md-sys-color-secondary-container: var(--s-30);--md-sys-color-on-secondary-container: var(--s-90);--md-sys-color-tertiary: var(--t-80);--md-sys-color-on-tertiary: var(--t-20);--md-sys-color-tertiary-container: var(--t-30);--md-sys-color-on-tertiary-container: var(--t-90);--md-sys-color-error: var(--e-80);--md-sys-color-on-error: var(--e-20);--md-sys-color-error-container: var(--e-30);--md-sys-color-on-error-container: var(--e-90);--md-sys-color-warning: var(--w-80);--md-sys-color-warning-container: var(--w-30);--md-sys-color-on-warning-container: var(--w-90);--md-sys-color-surface: var(--n-6, #0e1512);--md-sys-color-surface-dim: var(--n-6);--md-sys-color-surface-bright: var(--n-24);--md-sys-color-surface-container-lowest: var(--n-4);--md-sys-color-surface-container-low: var(--n-10);--md-sys-color-surface-container: var(--n-12);--md-sys-color-surface-container-high: var(--n-17);--md-sys-color-surface-container-highest: var(--n-22);--md-sys-color-on-surface: var(--n-90, #dbe5e1);--md-sys-color-on-surface-variant: var(--nv-80);--md-sys-color-outline: var(--nv-60);--md-sys-color-outline-variant: var(--nv-30);--md-sys-color-inverse-surface: var(--n-90);--md-sys-color-inverse-on-surface: var(--n-20);--md-sys-color-inverse-primary: var(--p-40)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;font-family:var(--font-ui);font-size:16px;line-height:1.5;color:var(--on-surface);background:var(--surface);font-feature-settings:"cv11","ss01";text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em;color:var(--on-surface);text-wrap:balance}p{margin:0}a{color:var(--primary);text-decoration-thickness:1px;text-underline-offset:.15em}img,video,svg{display:block;max-width:100%}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}ul,ol{margin:0;padding:0}:focus-visible{outline:3px solid var(--primary);outline-offset:2px;border-radius:var(--shape-xs)}::selection{background:var(--primary-container);color:var(--on-primary-container)}hr{border:0;border-top:1px solid var(--outline-variant);margin:16px 0}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.display-lg{font-size:clamp(2.5rem,5vw,3.5rem);line-height:1.1;font-weight:700;letter-spacing:-.025em}.display-md{font-size:clamp(2rem,4vw,2.8rem);line-height:1.12;font-weight:700;letter-spacing:-.02em}.headline-lg{font-size:clamp(1.75rem,3vw,2rem);line-height:1.25;font-weight:700;letter-spacing:-.02em}.headline-md{font-size:1.75rem;line-height:1.28;font-weight:700;letter-spacing:-.015em}.headline-sm{font-size:1.5rem;line-height:1.33;font-weight:700;letter-spacing:-.01em}.title-lg{font-size:1.375rem;line-height:1.27;font-weight:600}.title-md{font-size:1rem;line-height:1.5;font-weight:700;letter-spacing:.005em}.title-sm{font-size:.875rem;line-height:1.43;font-weight:700;letter-spacing:.01em}.body-lg{font-size:1rem;line-height:1.5}.body-md{font-size:.875rem;line-height:1.43}.body-sm{font-size:.75rem;line-height:1.33}.label-lg{font-size:.875rem;line-height:1.43;font-weight:600;letter-spacing:.01em}.label-md{font-size:.75rem;line-height:1.33;font-weight:700;letter-spacing:.04em}.overline{font-size:.75rem;line-height:1.33;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--primary)}.muted{color:var(--on-surface-variant)}.num{font-variant-numeric:tabular-nums lining-nums}.ok{color:var(--primary);font-weight:600}.warn{color:var(--on-warning-container);font-weight:600}.bad{color:var(--error);font-weight:600}.error-text{color:var(--error);font-size:.875rem;display:flex;align-items:center;gap:6px}.state{position:relative;isolation:isolate}.state:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:currentColor;opacity:0;pointer-events:none;transition:opacity var(--dur-short) var(--ease-standard)}.state:hover:after{opacity:.08}.state:focus-visible:after{opacity:.1}.state:active:after{opacity:.12}.state:disabled:after{opacity:0}.btn{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 24px;border-radius:var(--shape-full);border:1px solid transparent;font-size:.875rem;font-weight:600;letter-spacing:.01em;line-height:1.2;white-space:nowrap;text-decoration:none;cursor:pointer;-webkit-user-select:none;user-select:none;transition:box-shadow var(--dur-short) var(--ease-standard),background-color var(--dur-short) var(--ease-standard),transform var(--dur-short) var(--ease-standard)}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:currentColor;opacity:0;transition:opacity var(--dur-short) var(--ease-standard);pointer-events:none}.btn:hover:after{opacity:.08}.btn:focus-visible:after{opacity:.1}.btn:active:after{opacity:.12}.btn:active{transform:translateY(.5px)}.btn:disabled,.btn[aria-disabled=true]{cursor:not-allowed;opacity:.5;box-shadow:none}.btn:disabled:after{opacity:0}.btn svg{width:18px;height:18px;flex:none}.btn.has-icon{padding-left:16px}.btn.has-trailing{padding-right:16px}.btn-filled{background:var(--primary);color:var(--on-primary)}.btn-filled:hover{box-shadow:var(--elev-1)}.btn-tonal{background:var(--secondary-container);color:var(--on-secondary-container)}.btn-tonal:hover{box-shadow:var(--elev-1)}.btn-elevated{background:var(--surface-low);color:var(--primary);box-shadow:var(--elev-1)}.btn-elevated:hover{box-shadow:var(--elev-2)}.btn-outlined{background:transparent;color:var(--primary);border-color:var(--outline)}.btn-text{background:transparent;color:var(--primary);padding:0 12px}.btn-danger{background:var(--error);color:var(--on-error)}.btn-danger-tonal{background:var(--error-container);color:var(--on-error-container)}.btn-lg{min-height:52px;padding:0 28px;font-size:1rem;border-radius:var(--shape-full)}.btn-sm{min-height:32px;padding:0 14px;font-size:.8125rem}.btn-block{width:100%}.btn-on-container{background:var(--primary);color:var(--on-primary)}.btn .spinner{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.icon-btn{position:relative;isolation:isolate;display:inline-grid;place-items:center;width:40px;height:40px;padding:0;border-radius:var(--shape-full);border:0;background:transparent;color:var(--on-surface-variant);cursor:pointer}.icon-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:currentColor;opacity:0;transition:opacity var(--dur-short)}.icon-btn:hover:after{opacity:.08}.icon-btn:focus-visible:after,.icon-btn:active:after{opacity:.12}.icon-btn svg{width:24px;height:24px}.icon-btn-tonal{background:var(--secondary-container);color:var(--on-secondary-container)}.icon-btn-filled{background:var(--primary);color:var(--on-primary)}.icon-btn-outlined{border:1px solid var(--outline);color:var(--on-surface-variant)}.icon-btn-sm{width:32px;height:32px}.icon-btn-sm svg{width:20px;height:20px}.fab{position:fixed;right:16px;bottom:calc(var(--bottom-nav) + 16px + var(--safe-bottom));z-index:30;display:inline-flex;align-items:center;gap:12px;min-height:56px;padding:0 20px 0 16px;border:0;border-radius:var(--shape-lg);background:var(--primary-container);color:var(--on-primary-container);font-size:.875rem;font-weight:700;box-shadow:var(--elev-3);cursor:pointer;transition:box-shadow var(--dur-short) var(--ease-standard),transform var(--dur-short) var(--ease-standard)}.fab:hover{box-shadow:var(--elev-4)}.fab svg{width:24px;height:24px}@media(min-width:600px){.fab{display:none}}.tf{--tf-bg: var(--surface);display:grid;gap:4px;position:relative;min-width:0}.tf-box{position:relative;display:flex;align-items:center}.tf-input{width:100%;min-height:56px;padding:16px 16px 0;border:1px solid var(--outline);border-radius:var(--shape-xs);background:transparent;color:var(--on-surface);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:border-color var(--dur-short) var(--ease-standard),box-shadow var(--dur-short) var(--ease-standard)}textarea.tf-input{padding-top:24px;min-height:120px;resize:vertical;line-height:1.5}select.tf-input{padding-right:40px;cursor:pointer}.tf-input:hover{border-color:var(--on-surface)}.tf-input:focus{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.tf-input:focus-visible{outline:none}.tf-label{position:absolute;left:12px;top:50%;transform:translateY(-50%);padding:0 4px;color:var(--on-surface-variant);pointer-events:none;transition:all var(--dur-short) var(--ease-standard);background:transparent;border-radius:2px;max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}dialog.dialog .tf,.menu .tf{--tf-bg: var(--surface-high)}.card .tf{--tf-bg: var(--surface-lowest)}.card-filled .tf,.qcard .tf,.question .tf,.meeting-detail .tf{--tf-bg: var(--surface-low)}.tf.has-leading .tf-input{padding-left:48px}.tf.has-leading .tf-label{left:44px}.tf.has-trailing .tf-input{padding-right:48px}.tf-lead,.tf-trail{position:absolute;top:50%;transform:translateY(-50%);color:var(--on-surface-variant);display:grid;place-items:center}.tf-lead{left:14px;pointer-events:none}.tf-trail{right:8px}.tf-lead svg,.tf-trail svg{width:22px;height:22px}.tf-input:focus~.tf-label,.tf-input:not(:placeholder-shown)~.tf-label,.tf.float .tf-label,textarea.tf-input~.tf-label{top:0;transform:translateY(-50%) scale(.85);transform-origin:left center;left:12px!important;color:var(--on-surface-variant);font-weight:600;background:var(--tf-bg)}textarea.tf-input~.tf-label{top:0}.tf-input:focus~.tf-label{color:var(--primary)}.tf-input::placeholder{color:transparent}.tf-input:focus::placeholder{color:var(--outline)}.tf-support{font-size:.75rem;line-height:1.33;color:var(--on-surface-variant);padding:0 16px;min-height:16px}.tf.is-error .tf-input{border-color:var(--error)}.tf.is-error .tf-input:focus{box-shadow:inset 0 0 0 1px var(--error)}.tf.is-error .tf-label,.tf.is-error .tf-support{color:var(--error)}.tf-sm .tf-input{min-height:44px;padding-top:12px}.tf-dense{--tf-bg: var(--surface-low)}.tf input[type=number]{font-variant-numeric:tabular-nums}input[type=color]{width:56px;height:56px;padding:6px;border:1px solid var(--outline);border-radius:var(--shape-md);background:var(--surface);cursor:pointer}input[type=file]{color:var(--on-surface-variant);font-size:.875rem}input[type=file]::file-selector-button{font:inherit;font-weight:600;font-size:.875rem;min-height:40px;padding:0 18px;margin-right:12px;border-radius:var(--shape-full);border:1px solid var(--outline);background:transparent;color:var(--primary);cursor:pointer}.field-label{display:grid;gap:8px;font-size:.875rem;font-weight:600;color:var(--on-surface-variant)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.stack{display:grid;gap:16px}.stack-sm{display:grid;gap:8px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.row-end{display:flex;gap:12px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.grow{flex:1}input[type=radio],input[type=checkbox]{accent-color:var(--primary);width:20px;height:20px;margin:0;flex:none}fieldset{border:0;padding:0;margin:0;min-width:0}legend{padding:0}.chip{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border-radius:var(--shape-sm);border:1px solid var(--outline-variant);background:transparent;color:var(--on-surface-variant);font-size:.8125rem;font-weight:600;letter-spacing:.01em;white-space:nowrap}.chip svg{width:18px;height:18px}.chip-sm{min-height:24px;padding:0 8px;font-size:.75rem;border-radius:6px}.chip-sm svg{width:14px;height:14px}.chip-tonal{background:var(--secondary-container);color:var(--on-secondary-container);border-color:transparent}.chip-good{background:var(--primary-container);color:var(--on-primary-container);border-color:transparent}.chip-warn{background:var(--warning-container);color:var(--on-warning-container);border-color:transparent}.chip-bad{background:var(--error-container);color:var(--on-error-container);border-color:transparent}.chip-info{background:var(--surface-highest);color:var(--on-surface);border-color:transparent}button.chip{cursor:pointer}button.chip[aria-pressed=true],.chip.selected{background:var(--secondary-container);color:var(--on-secondary-container);border-color:transparent}.chip-row{display:flex;gap:8px;flex-wrap:wrap}.card{background:var(--surface-lowest);border:1px solid var(--outline-variant);border-radius:var(--shape-lg)}.card-filled{background:var(--surface-low);border-color:transparent}.card-high{background:var(--surface-container);border-color:transparent}.card-elevated{background:var(--surface-lowest);border-color:transparent;box-shadow:var(--elev-1)}.card-body{padding:20px}.card-body-sm{padding:16px}.card-clickable{display:block;color:inherit;text-decoration:none;cursor:pointer;text-align:left;width:100%;transition:box-shadow var(--dur-medium) var(--ease-standard),transform var(--dur-medium) var(--ease-standard),border-color var(--dur-short)}.card-clickable:hover{box-shadow:var(--elev-2);transform:translateY(-1px);border-color:transparent}.list{display:grid}.list-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;min-height:64px;padding:10px 16px;color:inherit;text-decoration:none;border-radius:var(--shape-md);text-align:left;background:transparent;border:0;width:100%}.list-item.no-lead{grid-template-columns:1fr auto}.list-item+.list-item{border-top:1px solid var(--outline-variant)}.list-card .list-item+.list-item{border-top:1px solid var(--outline-variant);border-radius:0}.list-card .list-item:first-child{border-radius:var(--shape-lg) var(--shape-lg) 0 0}.list-card .list-item:last-child{border-radius:0 0 var(--shape-lg) var(--shape-lg)}.list-card .list-item:only-child{border-radius:var(--shape-lg)}.list-headline{font-weight:600;color:var(--on-surface);display:block}.list-support{font-size:.875rem;color:var(--on-surface-variant);display:block;margin-top:2px}.list-trail{display:flex;align-items:center;gap:8px;color:var(--on-surface-variant)}.list-lead{width:40px;height:40px;border-radius:var(--shape-md);display:grid;place-items:center;background:var(--surface-container);color:var(--on-surface-variant)}.list-lead svg{width:22px;height:22px}.list-lead.tone-good{background:var(--primary-container);color:var(--on-primary-container)}.list-lead.tone-warn{background:var(--warning-container);color:var(--on-warning-container)}.list-lead.tone-bad{background:var(--error-container);color:var(--on-error-container)}a.list-item.state,button.list-item.state{cursor:pointer}.list-item .chev{color:var(--on-surface-variant)}.divider{border:0;border-top:1px solid var(--outline-variant);margin:0}.avatar{width:40px;height:40px;border-radius:50%;background:var(--primary-container);color:var(--on-primary-container);display:grid;place-items:center;font-weight:700;font-size:1rem;flex:none;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-sm{width:32px;height:32px;font-size:.875rem}.avatar-lg{width:64px;height:64px;font-size:1.5rem}.empty{display:grid;justify-items:center;text-align:center;gap:8px;padding:40px 24px;color:var(--on-surface-variant);border:1px dashed var(--outline-variant);border-radius:var(--shape-lg)}.empty svg{width:36px;height:36px;color:var(--outline)}.empty .title-md{color:var(--on-surface)}.empty .btn{margin-top:8px}.skeleton{position:relative;overflow:hidden;background:var(--surface-container);border-radius:var(--shape-sm)}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--surface-highest),transparent);animation:shimmer 1.4s var(--ease-standard) infinite}@keyframes shimmer{to{transform:translate(100%)}}.linear{display:block;height:8px;border-radius:var(--shape-full);background:var(--secondary-container);overflow:hidden}.linear>span{display:block;height:100%;background:var(--primary);border-radius:inherit;transition:width var(--dur-long) var(--ease-emphasized-decel)}.linear-sm{height:4px}.ring{width:44px;height:44px}.ring text{font-weight:700;font-size:11px;fill:var(--on-surface);font-family:var(--font-ui)}.ring .track{stroke:var(--secondary-container)}.ring .bar{stroke:var(--primary);transition:stroke-dashoffset var(--dur-long) var(--ease-emphasized-decel)}.spinner-page{display:grid;place-items:center;min-height:60vh}.circ{width:40px;height:40px;border-radius:50%;border:4px solid var(--secondary-container);border-top-color:var(--primary);animation:spin .9s linear infinite}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--outline-variant);overflow-x:auto;scrollbar-width:none;margin-bottom:24px}.tabs::-webkit-scrollbar{display:none}.tab{position:relative;isolation:isolate;display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 16px;border:0;background:transparent;color:var(--on-surface-variant);font-weight:600;font-size:.875rem;white-space:nowrap;cursor:pointer;border-radius:var(--shape-sm) var(--shape-sm) 0 0}.tab:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:currentColor;opacity:0;transition:opacity var(--dur-short)}.tab:hover:after{opacity:.08}.tab{flex:none}.tab svg{width:20px;height:20px;flex:none}.tab .count,.tab .tab-dot{flex:none}.tab[aria-selected=true]{color:var(--primary)}.tab[aria-selected=true]:before{content:"";position:absolute;left:12px;right:12px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--primary)}.tab .count{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--secondary-container);color:var(--on-secondary-container);font-size:.75rem;display:inline-grid;place-items:center}.tab[aria-selected=true] .count{background:var(--primary);color:var(--on-primary)}.seg{display:inline-flex;border:1px solid var(--outline);border-radius:var(--shape-full);overflow:hidden;background:transparent}.seg-btn{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 14px;border:0;border-right:1px solid var(--outline);background:transparent;color:var(--on-surface);font-size:.8125rem;font-weight:600;white-space:nowrap;cursor:pointer}.seg-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:currentColor;opacity:0;transition:opacity var(--dur-short)}.seg-btn:hover:after{opacity:.08}.seg-btn:last-child{border-right:0}.seg-btn svg{width:16px;height:16px}.seg-btn[aria-checked=true],.seg-btn[aria-pressed=true]{background:var(--secondary-container);color:var(--on-secondary-container)}.seg-btn.tone-good[aria-checked=true]{background:var(--primary-container);color:var(--on-primary-container)}.seg-btn.tone-warn[aria-checked=true]{background:var(--warning-container);color:var(--on-warning-container)}.seg-btn.tone-bad[aria-checked=true]{background:var(--error-container);color:var(--on-error-container)}.seg-btn.tone-neutral[aria-checked=true]{background:var(--surface-highest);color:var(--on-surface)}.seg-sm .seg-btn{min-height:32px;padding:0 10px;font-size:.75rem}dialog.dialog{border:0;padding:0;margin:auto;width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);border-radius:var(--shape-xl);background:var(--surface-high);color:var(--on-surface);box-shadow:var(--elev-3);opacity:0;transform:translateY(12px) scale(.98);transition:opacity var(--dur-medium) var(--ease-emphasized-decel),transform var(--dur-medium) var(--ease-emphasized-decel),overlay var(--dur-medium) allow-discrete,display var(--dur-medium) allow-discrete}dialog.dialog[open]{opacity:1;transform:none}@starting-style{dialog.dialog[open]{opacity:0;transform:translateY(12px) scale(.98)}}dialog.dialog::backdrop{background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dialog-inner{padding:24px;display:grid;gap:16px}.dialog-icon{color:var(--secondary);display:grid;place-items:center}.dialog-icon svg{width:28px;height:28px}.dialog h2{font-size:1.5rem;line-height:1.33;font-weight:700}.dialog-body{color:var(--on-surface-variant);display:grid;gap:16px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;padding-top:8px}.menu-wrap{position:relative}.menu{position:absolute;right:0;top:calc(100% + 8px);min-width:280px;max-width:calc(100vw - 32px);z-index:40;padding:8px 0;background:var(--surface-container);border-radius:var(--shape-md);box-shadow:var(--elev-2);animation:menu-in var(--dur-short) var(--ease-emphasized-decel);transform-origin:top right}@keyframes menu-in{0%{opacity:0;transform:scale(.96)}}.menu-head{padding:12px 16px;display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center}.menu-head .title-md{line-height:1.3}.menu-section{padding:8px 16px;display:grid;gap:8px;border-top:1px solid var(--outline-variant)}.menu-item{position:relative;isolation:isolate;display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:0 16px;border:0;background:transparent;color:var(--on-surface);text-align:left;font-size:.9375rem;cursor:pointer}.menu-item:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:currentColor;opacity:0}.menu-item:hover:after{opacity:.08}.menu-item svg{width:22px;height:22px;color:var(--on-surface-variant)}.snackbar-host{position:fixed;left:16px;right:16px;bottom:calc(16px + var(--safe-bottom));z-index:60;display:grid;gap:8px;pointer-events:none}.snackbar{pointer-events:auto;justify-self:center;width:min(560px,100%);display:flex;align-items:center;gap:12px;min-height:48px;padding:6px 8px 6px 16px;background:var(--inverse-surface);color:var(--inverse-on-surface);border-radius:var(--shape-xs);box-shadow:var(--elev-3);font-size:.875rem;animation:snack-in var(--dur-medium) var(--ease-emphasized-decel)}.snackbar.tone-error{background:var(--error);color:var(--on-error)}.snackbar .btn-text{color:var(--inverse-primary)}.snackbar .grow{flex:1}.snackbar .icon-btn{color:inherit}@keyframes snack-in{0%{opacity:0;transform:translateY(16px)}}@media(min-width:600px){.snackbar-host{left:calc(var(--rail-width) + 16px);justify-items:start;bottom:24px}.snackbar{justify-self:start}}@media(min-width:1240px){.snackbar-host{left:calc(var(--drawer-width) + 24px)}}@media(max-width:599px){.snackbar-host{bottom:calc(var(--bottom-nav) + 12px + var(--safe-bottom))}}.skip-link{position:absolute;left:16px;top:-100px;z-index:100;padding:10px 16px;border-radius:var(--shape-full);background:var(--primary);color:var(--on-primary);font-weight:700;text-decoration:none}.skip-link:focus{top:12px}.shell{min-height:100dvh;display:grid;grid-template-columns:1fr}.shell-main{min-width:0;display:flex;flex-direction:column}.appbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;min-height:var(--appbar);padding:0 8px 0 4px;background:var(--surface);transition:background-color var(--dur-medium) var(--ease-standard),box-shadow var(--dur-medium)}.appbar.scrolled{background:var(--surface-container)}.appbar-title{font-size:1.375rem;font-weight:600;line-height:1.2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:4px}.appbar-title small{display:block;font-size:.75rem;font-weight:600;letter-spacing:.04em;color:var(--on-surface-variant);text-transform:uppercase}.appbar-actions{display:flex;align-items:center;gap:4px}.appbar .brand-mark{display:inline-flex;align-items:center;gap:10px;padding:0 8px;color:inherit;text-decoration:none}.brand-logo{width:36px;height:36px;border-radius:var(--shape-sm);object-fit:cover;background:var(--primary-container);color:var(--on-primary-container);display:grid;place-items:center;font-weight:800}.account-btn{display:inline-flex;align-items:center;gap:8px;padding:2px;border:0;border-radius:var(--shape-full);background:transparent;cursor:pointer}.account-btn .avatar{width:36px;height:36px;font-size:.9375rem}.content{flex:1;width:100%;max-width:var(--content-max);margin:0 auto;padding:8px var(--gutter) 64px}.content-wide{max-width:1400px}.page{animation:page-in var(--dur-medium) var(--ease-emphasized-decel) both}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:16px 0 24px}.page-head h1{font-size:clamp(1.75rem,3vw,2.25rem);line-height:1.2;font-weight:700;letter-spacing:-.02em}.page-head .support{margin-top:6px;color:var(--on-surface-variant);font-size:1rem;max-width:60ch}.page-head .overline{margin-bottom:8px;display:block}.page-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:32px 0 12px}.section-head h2{font-size:1.125rem;font-weight:700}.section-head .count{color:var(--on-surface-variant);font-size:.875rem;font-weight:600}.nav-side{display:none}.nav-item{position:relative;isolation:isolate;display:flex;align-items:center;gap:12px;min-height:56px;padding:0 24px 0 16px;border-radius:var(--shape-full);color:var(--on-surface-variant);text-decoration:none;font-weight:600;font-size:.9375rem}.nav-item:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:currentColor;opacity:0;transition:opacity var(--dur-short)}.nav-item:hover:after{opacity:.08}.nav-item svg{width:24px;height:24px;flex:none}.nav-item[aria-current=page]{background:var(--secondary-container);color:var(--on-secondary-container)}.nav-item[aria-current=page] svg{stroke-width:2.2}@media(min-width:600px){.shell{grid-template-columns:var(--rail-width) 1fr}.nav-side{display:flex;flex-direction:column;position:sticky;top:0;height:100dvh;background:var(--surface);padding:12px 8px;gap:4px;align-items:center}.nav-side .nav-brand{display:grid;place-items:center;padding:8px 0 20px;text-decoration:none;color:inherit}.nav-side .nav-brand .brand-logo{width:44px;height:44px;border-radius:var(--shape-md)}.nav-side .nav-brand .brand-name,.nav-side .nav-brand .brand-sub,.nav-side .nav-address,.nav-side .drawer-cover{display:none}.nav-side .nav-item{flex-direction:column;gap:4px;width:72px;min-height:56px;padding:0;border-radius:var(--shape-lg);font-size:.75rem;font-weight:700;letter-spacing:.02em}.nav-side .nav-item .nav-pill{display:grid;place-items:center;width:56px;height:32px;border-radius:var(--shape-full);transition:background-color var(--dur-short)}.nav-side .nav-item[aria-current=page]{background:transparent;color:var(--on-surface)}.nav-side .nav-item[aria-current=page] .nav-pill{background:var(--secondary-container);color:var(--on-secondary-container)}.nav-side .nav-item:after{border-radius:var(--shape-lg)}.nav-side .nav-foot{margin-top:auto}}@media(min-width:1240px){.shell{grid-template-columns:var(--drawer-width) 1fr}.nav-side{align-items:stretch;padding:12px 12px 16px;background:var(--surface-low);gap:2px}.nav-side .nav-brand{display:flex;align-items:center;gap:12px;padding:12px 12px 20px}.nav-side .nav-brand .brand-logo{width:40px;height:40px;border-radius:var(--shape-sm)}.nav-side .nav-brand .brand-name{display:block;font-weight:700;font-size:1.0625rem;line-height:1.25;letter-spacing:-.01em}.nav-side .nav-brand .brand-sub{display:block;font-size:.75rem;color:var(--on-surface-variant);font-weight:600}.nav-side .drawer-cover{display:block;width:100%;aspect-ratio:16 / 7;object-fit:cover;border-radius:var(--shape-lg);margin:0 0 16px}.nav-side .nav-item{flex-direction:row;width:auto;min-height:56px;padding:0 24px 0 16px;border-radius:var(--shape-full);font-size:.9375rem;font-weight:600;letter-spacing:0}.nav-side .nav-item .nav-pill{width:auto;height:auto;background:none!important}.nav-side .nav-item[aria-current=page]{background:var(--secondary-container);color:var(--on-secondary-container)}.nav-side .nav-item:after{border-radius:var(--shape-full)}.nav-side .nav-address{display:flex;align-items:center;gap:8px;margin:12px 12px 0;font-size:.75rem;color:var(--on-surface-variant);font-weight:600;word-break:break-all}.nav-side .nav-address svg{width:16px;height:16px;flex:none}.nav-side .nav-label{padding:20px 16px 8px;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface-variant)}}.bottom-nav{display:none}@media(max-width:599px){.shell{padding-bottom:calc(var(--bottom-nav) + var(--safe-bottom))}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;justify-content:space-around;min-height:var(--bottom-nav);padding:10px 4px calc(10px + var(--safe-bottom));background:var(--surface-container);box-shadow:0 -1px 0 var(--outline-variant)}.bottom-nav a{flex:1;display:grid;justify-items:center;gap:4px;color:var(--on-surface-variant);text-decoration:none;font-size:.75rem;font-weight:700;letter-spacing:.02em;max-width:120px}.bottom-nav .nav-pill{display:grid;place-items:center;width:64px;height:32px;border-radius:var(--shape-full);transition:background-color var(--dur-short)}.bottom-nav .nav-pill svg{width:24px;height:24px}.bottom-nav a[aria-current=page]{color:var(--on-surface)}.bottom-nav a[aria-current=page] .nav-pill{background:var(--secondary-container);color:var(--on-secondary-container)}.bottom-nav a[aria-current=page] svg{stroke-width:2.2}.content{padding-bottom:32px}}.hero{display:grid;grid-template-columns:1fr auto;gap:16px 24px;align-items:end;padding:24px 28px;border-radius:var(--shape-xl);background:var(--primary-container);color:var(--on-primary-container);text-decoration:none;margin-bottom:8px;transition:box-shadow var(--dur-medium) var(--ease-standard),transform var(--dur-medium) var(--ease-standard)}.hero:hover{box-shadow:var(--elev-2);transform:translateY(-1px)}.hero .overline{color:inherit;opacity:.8}.hero h2{font-size:clamp(1.5rem,3vw,2rem);line-height:1.2;font-weight:700;letter-spacing:-.02em;color:inherit;margin:4px 0 6px}.hero .hero-meta{display:flex;gap:8px 14px;flex-wrap:wrap;align-items:center;font-size:.9375rem;opacity:.9}.hero .hero-meta svg{width:18px;height:18px}.hero .btn{align-self:end}.hero-done{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;padding:20px 24px;border-radius:var(--shape-xl);background:var(--surface-low)}.hero-done .list-lead{width:48px;height:48px;border-radius:50%}.groups{display:grid;gap:24px;margin-top:24px}.group h2{display:flex;align-items:center;gap:10px;font-size:1rem;margin-bottom:8px}.group h2 .count{color:var(--on-surface-variant);font-weight:600;font-size:.875rem}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.course-card{padding:0;overflow:hidden}.course-card img,.cover-blank{width:100%;aspect-ratio:16 / 9;object-fit:cover;display:block;background:var(--surface-container)}.cover-blank{display:grid;place-items:center;color:var(--on-surface-variant);font-weight:800;font-size:1.25rem;letter-spacing:.06em}.course-body{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:14px 16px 16px;align-items:center}.course-body .list-headline{grid-column:1}.course-body .list-support{grid-column:1;margin:0}.course-body .ring,.course-body .chev{grid-column:2;grid-row:1 / span 2}.course-body .chip-row{grid-column:1 / -1;margin-top:8px}.course-card.open{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.course-cover-link{display:block}.inline-chip{margin-left:8px;vertical-align:middle}.course-detail{margin-top:16px}.badge-shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:12px}.badge{margin:0;text-align:center;font-size:.8125rem;color:var(--on-surface-variant);display:grid;justify-items:center;gap:6px;padding:12px 8px;border-radius:var(--shape-lg)}.badge img{width:64px;height:64px;border-radius:50%;filter:grayscale(1) opacity(.35);transition:filter var(--dur-long) var(--ease-standard),transform var(--dur-long) var(--ease-emphasized-decel)}.badge.earned{background:var(--surface-low);color:var(--on-surface);font-weight:600}.badge.earned img{filter:none;transform:scale(1.04)}.badge-shelf.small{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}.badge-shelf.small img{width:52px;height:52px}.player{max-width:760px;margin:0 auto;display:grid;gap:24px}.player-head{display:grid;gap:8px}.player-head h1{font-size:clamp(1.625rem,3vw,2.125rem);line-height:1.2;letter-spacing:-.02em}.player-meta{display:flex;gap:8px 14px;flex-wrap:wrap;align-items:center;color:var(--on-surface-variant);font-size:.9375rem}.passage{font-size:1.0625rem;line-height:1.7;color:var(--on-surface);max-width:68ch}.passage h2{font-size:1.375rem;margin:1.4em 0 .5em}.passage h3{font-size:1.125rem;margin:1.2em 0 .4em}.passage p{margin:0 0 1em}.passage ul,.passage ol{padding-left:1.4em;margin:0 0 1em}.passage li{margin:.3em 0}.passage img{border-radius:var(--shape-md)}.frame{width:100%;aspect-ratio:16 / 9;border:0;border-radius:var(--shape-lg);background:#0b0d0c}video.frame{object-fit:contain}.questions{display:grid;gap:16px;list-style:none;counter-reset:q}.question{padding:20px;border-radius:var(--shape-lg);background:var(--surface-low)}.question legend{float:left;display:grid;gap:4px;margin-bottom:14px;width:100%}.question .choices{clear:both}.question .q-num{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface-variant)}.question .q-prompt{font-size:1.0625rem;font-weight:600;line-height:1.45}.choices{display:grid;gap:8px}.choice{display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:var(--shape-md);border:1px solid var(--outline-variant);background:var(--surface-lowest);cursor:pointer;transition:border-color var(--dur-short),background-color var(--dur-short),box-shadow var(--dur-short);min-height:52px}.choice:hover{background:var(--surface-container)}.choice:has(input:checked){border-color:var(--primary);background:var(--primary-container);color:var(--on-primary-container);box-shadow:inset 0 0 0 1px var(--primary)}.choice:has(input:focus-visible){outline:3px solid var(--primary);outline-offset:2px}.choice input{outline:none}.player-actions{position:sticky;bottom:calc(16px + var(--safe-bottom));z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 16px;border-radius:var(--shape-lg);background:var(--surface-container);box-shadow:var(--elev-2)}@media(max-width:599px){.player-actions{bottom:calc(var(--bottom-nav) + 12px + var(--safe-bottom))}}.player-actions .hint{color:var(--on-surface-variant);font-size:.875rem}.result{display:grid;gap:16px;padding:28px;border-radius:var(--shape-xl);background:var(--primary-container);color:var(--on-primary-container)}.result .score-big{font-size:clamp(2.5rem,6vw,3.5rem);font-weight:800;letter-spacing:-.03em;line-height:1}.result .score-big small{font-size:.4em;font-weight:700;opacity:.8;margin-left:6px;letter-spacing:0}.result .row-end{justify-content:flex-start}.result .btn-outlined{border-color:currentColor;color:inherit}.posts{display:grid;gap:10px;list-style:none}.post{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:12px 14px;border-radius:var(--shape-md);background:var(--surface-low)}.post .avatar{width:32px;height:32px;font-size:.875rem}.post .name{font-weight:700;font-size:.875rem}.prompt-card{padding:20px;border-radius:var(--shape-lg);background:var(--secondary-container);color:var(--on-secondary-container);font-size:1.0625rem;line-height:1.55}.cert-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.cert-card{overflow:hidden}.cert-paper{display:grid;gap:4px;padding:26px 22px;text-align:center;aspect-ratio:1.41 / 1;align-content:center;background:url(/art/cert-bg.png) center / cover;color:#1c1915;font-family:var(--font-serif)}.cert-paper .overline{color:#0f6e56;font-family:var(--font-ui)}.cert-paper strong{font-size:1.3rem;font-weight:600;line-height:1.25}.cert-paper .muted{color:#5e564c;font-family:var(--font-ui);font-size:.875rem}.cert-actions{display:flex;gap:8px;align-items:center;padding:12px 12px 12px 16px;justify-content:space-between;flex-wrap:wrap}.verify-page{min-height:100dvh;background:var(--surface)}.verify-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px var(--gutter);max-width:960px;margin:0 auto}.verify-bar .brand-mark{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:inherit;font-weight:800;letter-spacing:-.01em}.verify-doc{max-width:680px;margin:24px auto 64px;padding:0 var(--gutter);display:grid;gap:20px}.status-card{display:grid;grid-template-columns:auto 1fr;gap:16px 20px;align-items:center;padding:24px 28px;border-radius:var(--shape-xl)}.status-card.tone-valid{background:var(--primary-container);color:var(--on-primary-container)}.status-card.tone-revoked{background:var(--warning-container);color:var(--on-warning-container)}.status-card.tone-bad{background:var(--error-container);color:var(--on-error-container)}.status-card.tone-neutral{background:var(--surface-container);color:var(--on-surface)}.status-card .status-icon{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:#ffffff8c;color:inherit}.status-card .status-icon svg{width:32px;height:32px}.status-card h1{font-size:clamp(1.5rem,3vw,2rem);color:inherit;letter-spacing:-.02em}.status-card p{color:inherit;opacity:.85;margin-top:4px}.facts{display:grid;grid-template-columns:max-content 1fr;gap:12px 24px;margin:0;padding:20px 24px}.facts dt{color:var(--on-surface-variant);font-size:.875rem;font-weight:600;padding-top:2px}.facts dd{margin:0;font-weight:600}.verify-seal{width:88px;height:88px;object-fit:contain}.verify-doc .fine{font-size:.875rem;color:var(--on-surface-variant)}.verify-doc .fine code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8125rem;background:var(--surface-container);padding:2px 6px;border-radius:4px}.meeting-list{display:grid;gap:12px}.meeting{overflow:hidden}.meeting-head{display:grid;grid-template-columns:auto 1fr auto auto;gap:14px;align-items:center;width:100%;padding:12px;background:none;color:inherit;text-align:left;border:0;border-radius:var(--shape-lg);cursor:pointer}.meeting-head img,.meeting-head .cover-thumb{width:72px;height:48px;object-fit:cover;border-radius:var(--shape-sm);background:var(--surface-container);display:grid;place-items:center;color:var(--on-surface-variant)}.meeting-head .cover-thumb svg{width:22px;height:22px}.meeting-head .chev{transition:transform var(--dur-medium) var(--ease-standard);color:var(--on-surface-variant)}.meeting.open .meeting-head .chev{transform:rotate(180deg)}.meeting-detail{border-top:1px solid var(--outline-variant);padding:8px 16px 16px}.roster{list-style:none;display:grid}.roster li{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--outline-variant)}.roster li:last-child{border-bottom:0}.meeting-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;flex-wrap:wrap}.legend{display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:.8125rem;color:var(--on-surface-variant)}.legend .swatch-dot{width:12px;height:12px;border-radius:4px;display:inline-block;margin-right:6px;vertical-align:-1px}.gb-wrap{overflow:auto;max-height:min(72vh,900px);border:1px solid var(--outline-variant);border-radius:var(--shape-lg);background:var(--surface-lowest)}.gb{width:100%;border-collapse:separate;border-spacing:0;min-width:640px}.gb th,.gb td{padding:10px 12px;border-bottom:1px solid var(--outline-variant);text-align:left;vertical-align:middle}.gb thead th{position:sticky;top:0;z-index:3;background:var(--surface-container);font-size:.8125rem;font-weight:700;color:var(--on-surface-variant);white-space:nowrap}.gb thead th small{display:block;font-weight:600;color:var(--on-surface-variant);opacity:.8}.gb tbody th{position:sticky;left:0;z-index:2;background:var(--surface-lowest);font-weight:600;white-space:nowrap;box-shadow:1px 0 0 var(--outline-variant);min-width:180px}.gb thead th:first-child{left:0;z-index:4}.gb tbody tr:hover td,.gb tbody tr:hover th{background:var(--surface-low)}.gb td{min-width:150px}.gb .cell{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.score{font-weight:700;font-variant-numeric:tabular-nums;display:inline-flex;align-items:baseline;gap:1px}.score small{color:var(--on-surface-variant);font-weight:500}.cell-draft .score{padding:2px 8px;border-radius:6px;background:var(--warning-container);color:var(--on-warning-container)}.cell-draft .score small{color:inherit;opacity:.8}.cell-empty{color:var(--outline)}.score-form{display:inline-flex;align-items:center;gap:6px}.score-form input{width:76px;min-height:36px;padding:0 10px;border:1px solid var(--outline);border-radius:var(--shape-sm);background:var(--surface);font-variant-numeric:tabular-nums}.score-form input:focus{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary);outline:none}.students{display:grid;gap:12px}.student summary{list-style:none;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px 16px;cursor:pointer;border-radius:var(--shape-lg)}.student summary::-webkit-details-marker{display:none}.student[open] summary{border-bottom:1px solid var(--outline-variant);border-radius:var(--shape-lg) var(--shape-lg) 0 0}.student .assignments{list-style:none;display:grid}.student .assignments li{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--outline-variant)}.student .assignments li:last-child{border-bottom:0}.child-head{display:flex;gap:16px;align-items:center;margin:8px 0 20px}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.stat{display:grid;gap:4px;padding:16px 18px;border-radius:var(--shape-lg);background:var(--surface-low)}.stat-num{font-size:2rem;line-height:1.1;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.stat-label{color:var(--on-surface-variant);font-size:.875rem;font-weight:600}.stat-warn{background:var(--warning-container);color:var(--on-warning-container)}.stat-warn .stat-label{color:inherit;opacity:.85}.stat-good .stat-num{color:var(--primary)}.fam-courses{display:grid;gap:12px}.fam-course-btn{display:grid;grid-template-columns:120px 1fr auto;gap:16px;width:100%;padding:0 16px 0 0;background:none;color:inherit;text-align:left;border:0;border-radius:var(--shape-lg);align-items:center;cursor:pointer}.fam-course-btn img,.fam-course-btn .cover-blank{width:120px;height:100%;min-height:96px;aspect-ratio:auto;object-fit:cover;border-radius:var(--shape-lg) 0 0 var(--shape-lg)}.fam-course-body{display:grid;gap:6px;padding:14px 0;align-content:center}.fam-course-meta{display:flex;gap:12px;align-items:center;font-size:.875rem;flex-wrap:wrap;color:var(--on-surface-variant)}.fam-course-detail{padding:4px 18px 18px;border-top:1px solid var(--outline-variant)}.fam-course-detail h3{font-size:.75rem;margin:16px 0 8px;color:var(--on-surface-variant);font-weight:700;text-transform:uppercase;letter-spacing:.08em}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:8px}.timeline{list-style:none;display:grid;gap:10px}.timeline li{display:flex;gap:12px;align-items:center}.dot{width:12px;height:12px;border-radius:50%;flex:none}.mark-present .dot{background:var(--primary)}.mark-tardy .dot{background:var(--warning)}.mark-absent .dot{background:var(--error)}.mark-excused .dot{background:var(--outline)}.cert-link{display:flex;gap:12px;align-items:center;text-decoration:none;color:inherit;padding:10px 14px;margin-top:8px}.cert-link img{width:40px;height:40px}.plain{list-style:none;display:grid;gap:6px}.mini-table{width:100%;border-collapse:collapse}.mini-table td{padding:8px 0;border-bottom:1px solid var(--outline-variant)}.mini-table tr:last-child td{border-bottom:0}.mini-table .num{text-align:right;font-weight:700}.course-hero{display:grid;grid-template-columns:minmax(240px,340px) 1fr;gap:24px;align-items:start}.course-hero-cover{position:relative;border-radius:var(--shape-lg);overflow:hidden;border:1px solid var(--outline-variant);background:var(--surface-low)}.course-hero-cover img,.course-hero-cover .cover-blank{width:100%;aspect-ratio:16 / 9;object-fit:cover}.upload-pill{position:absolute;right:10px;bottom:10px;display:inline-flex;align-items:center;gap:6px;background:#000000b3;color:#fff;padding:8px 12px;border-radius:var(--shape-full);font-size:.8125rem;font-weight:700;cursor:pointer}.upload-pill svg{width:16px;height:16px}.upload-pill input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.upload-pill:focus-within{outline:3px solid var(--primary);outline-offset:2px}.lesson-num{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--primary-container);color:var(--on-primary-container);font-weight:800;font-size:.9375rem}.inline-add{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start;margin-top:12px}.editor-section{display:grid;gap:16px}.editor-section>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.editor-section>header h2{font-size:1.125rem}.toolbar{display:flex;flex-wrap:wrap;gap:4px;padding:6px;border-radius:var(--shape-md);background:var(--surface-container)}.editor{min-height:220px;padding:16px 18px;border:1px solid var(--outline);border-radius:var(--shape-md);background:var(--surface-lowest);line-height:1.65}.editor:focus{outline:none;border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.editor h2{font-size:1.25rem;margin:.8em 0 .4em}.editor p{margin:0 0 .8em}.editor ul{padding-left:1.4em;margin:0 0 .8em}.qcard{display:grid;gap:12px;padding:16px;border-radius:var(--shape-lg);background:var(--surface-low)}.qcard header{display:flex;justify-content:space-between;align-items:center;gap:12px}.qcard header h3{font-size:.875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant)}.choice-edit{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.choice-edit input[type=radio]{margin-left:8px}.savebar{position:sticky;bottom:calc(12px + var(--safe-bottom));z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 12px 10px 16px;border-radius:var(--shape-lg);background:var(--surface-container);box-shadow:var(--elev-2);margin-top:8px}@media(max-width:599px){.savebar{bottom:calc(var(--bottom-nav) + 12px + var(--safe-bottom))}}.richtext{display:grid;gap:8px}.editor.is-empty:before{content:attr(data-placeholder);color:var(--on-surface-variant);opacity:.7;pointer-events:none;position:absolute}.editor{position:relative}.editor ol{padding-left:1.6em;margin:0 0 .8em}.editor-light .editor{background:var(--surface)}.tab-dot{width:8px;height:8px;border-radius:50%;background:var(--outline-variant);display:inline-block;margin-left:2px}.tab-dot.on,.tab[aria-selected=true] .tab-dot.on{background:var(--primary)}.lesson-nav{display:flex;align-items:center;gap:8px}.lesson-nav .muted{font-size:.875rem}.switch-row{display:inline-flex;align-items:center;gap:10px;min-height:40px;cursor:pointer}.switch-row input{width:18px;height:18px;accent-color:var(--primary)}.switch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:4px 24px}.settings-block{display:grid;gap:16px;padding:20px;border-radius:var(--shape-lg);background:var(--surface-low)}.settings-block h3{font-size:1rem}.empty-inline{display:flex;align-items:center;gap:8px;padding:12px 14px;border-radius:var(--shape-md);background:var(--surface-low);color:var(--on-surface-variant);font-size:.875rem}.rules-editor{display:grid;gap:14px}.rules-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.rules-editor.compact .rules-grid{grid-template-columns:1fr}.rules-textarea{width:100%;padding:14px 16px;border:1px solid var(--outline);border-radius:var(--shape-md);background:var(--surface-lowest);font:inherit;line-height:1.55;resize:vertical;color:var(--on-surface)}.rules-textarea:focus{outline:none;border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.rules-preview-wrap{min-width:0}.rules-preview{padding:14px 18px;border-radius:var(--shape-md);background:var(--surface-low);font-size:.9375rem;min-height:120px}.rules-preview h2{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--primary);margin:.9em 0 .4em}.rules-preview h2:first-child{margin-top:0}.rules-preview ul{padding-left:1.2em;margin:0 0 .6em}.rules-preview li{margin:.25em 0}.rules-raw{padding:14px 18px;border-radius:var(--shape-md);background:var(--surface-low);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8125rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;min-height:120px}.refdocs{display:grid;gap:12px}.refdocs .drop-zone{padding:22px 16px}.ref-list{list-style:none;display:grid;border:1px solid var(--outline-variant);border-radius:var(--shape-lg);overflow:hidden}.ref-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:10px 12px;background:var(--surface-lowest)}.ref-row+.ref-row{border-top:1px solid var(--outline-variant)}.ref-row.has-error .list-support{color:var(--on-warning-container)}.ref-row a{color:inherit}.rubric-criterion header h3{display:flex;align-items:baseline}.levels{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.level-card{display:grid;gap:8px;padding:10px;border-radius:var(--shape-md);background:var(--surface-lowest);border:1px solid var(--outline-variant)}.level-card .pts{max-width:84px}.level-add{display:grid;place-items:center;gap:4px;min-height:96px;border:1px dashed var(--outline);border-radius:var(--shape-md);background:transparent;color:var(--on-surface-variant);font:inherit;font-weight:600;cursor:pointer}.level-add svg{width:20px;height:20px}.wizard-steps{display:flex;gap:6px;align-items:center;margin-bottom:4px}.wizard-steps span{flex:1;height:4px;border-radius:2px;background:var(--outline-variant)}.wizard-steps span.on{background:var(--primary)}.cover-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.cover-picker button{position:relative;padding:0;border:2px solid transparent;border-radius:var(--shape-md);overflow:hidden;background:var(--surface-low);cursor:pointer;aspect-ratio:16 / 9}.cover-picker button img{width:100%;height:100%;object-fit:cover;display:block}.cover-picker button[aria-pressed=true]{border-color:var(--primary)}.outline{display:grid;gap:14px}.unit{overflow:visible}.unit-head{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px 8px 8px 12px;border-bottom:1px solid var(--outline-variant)}.unit-head .unit-title{font-weight:700;font-size:1rem;background:transparent;border:0;padding:6px 8px;border-radius:var(--shape-sm);color:inherit;font-family:inherit;min-width:0;width:100%}.unit-head .unit-title:hover{background:var(--surface-low)}.unit-head .unit-title:focus{outline:none;background:var(--surface-lowest);box-shadow:inset 0 0 0 2px var(--primary)}.unit-tools,.lesson-tools{display:flex;gap:2px;align-items:center;opacity:.85}.lesson-row{display:grid;grid-template-columns:auto auto 1fr auto;gap:10px;align-items:center;padding:8px 8px 8px 6px;border-bottom:1px solid var(--outline-variant);background:var(--surface-lowest)}.lesson-row:last-child{border-bottom:0}.lesson-row.dragging{opacity:.5}.lesson-row.drop-before{box-shadow:inset 0 3px 0 var(--primary)}.lesson-row.hidden-row{opacity:.6}.drag-handle{display:grid;place-items:center;width:24px;height:40px;color:var(--outline);cursor:grab;border:0;background:transparent}.drag-handle:active{cursor:grabbing}.lesson-link{display:grid;gap:2px;min-width:0;text-decoration:none;color:inherit;padding:4px 0}.lesson-link .list-support{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.lesson-dots{display:inline-flex;gap:4px}.lesson-dots i{width:22px;height:22px;border-radius:6px;display:inline-grid;place-items:center;background:var(--surface-container);color:var(--on-surface-variant)}.lesson-dots i svg{width:14px;height:14px}.lesson-dots i.on{background:var(--primary-container);color:var(--on-primary-container)}.unit-empty{padding:14px 16px;color:var(--on-surface-variant);font-size:.875rem;border-bottom:1px solid var(--outline-variant)}.unit-drop{min-height:8px}.unit-drop.over{min-height:40px;background:var(--primary-container);border-radius:var(--shape-sm);margin:4px 8px}.checklist{list-style:none;display:grid;gap:6px}.checklist li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px 12px;border-radius:var(--shape-md);background:var(--surface-low);font-size:.9375rem}.checklist li.error{background:var(--error-container);color:var(--on-error-container)}.checklist li.warning{background:var(--warning-container);color:var(--on-warning-container)}.checklist li svg{width:18px;height:18px}.write-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:.875rem;color:var(--on-surface-variant)}.write-bar .saved{display:inline-flex;align-items:center;gap:6px}.write-bar .saved svg{width:16px;height:16px}.file-chips{display:flex;gap:8px;flex-wrap:wrap}.file-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 10px;border-radius:var(--shape-full);background:var(--surface-container);font-size:.8125rem;font-weight:600;max-width:100%}.file-chip a{color:inherit;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}.file-chip .icon-btn{width:24px;height:24px}.file-chip .icon-btn svg{width:16px;height:16px}.attach-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.feedback-card{display:grid;gap:14px;padding:20px 22px;border-radius:var(--shape-lg);background:var(--surface-low)}.feedback-card h3{font-size:1rem}.crit-table{width:100%;border-collapse:collapse;font-size:.9375rem}.crit-table td{padding:8px 0;border-bottom:1px solid var(--outline-variant);vertical-align:top}.crit-table tr:last-child td{border-bottom:0}.crit-table .num{text-align:right;white-space:nowrap;font-weight:700}.crit-table small{color:var(--on-surface-variant);display:block;font-weight:400;margin-top:2px}.rubric-view{display:grid;gap:8px}.rubric-view .rv-row{display:grid;grid-template-columns:minmax(140px,1fr) 2fr;gap:12px;padding:10px 12px;border-radius:var(--shape-md);background:var(--surface-low);font-size:.875rem}.rubric-view .rv-levels{display:flex;gap:6px;flex-wrap:wrap}.rubric-view .rv-level{padding:2px 8px;border-radius:var(--shape-full);background:var(--surface-container);white-space:nowrap}.status-banner{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;padding:14px 18px;border-radius:var(--shape-lg);background:var(--secondary-container);color:var(--on-secondary-container)}.status-banner.tone-warn{background:var(--warning-container);color:var(--on-warning-container)}.status-banner.tone-good{background:var(--primary-container);color:var(--on-primary-container)}.status-banner svg{width:22px;height:22px}.lesson-group-head{display:flex;align-items:center;gap:8px;padding:12px 16px 6px;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface-variant)}.lesson-group-head+.list-item{border-top:0}.cell-ai .score{padding:2px 8px;border-radius:6px;background:var(--secondary-container);color:var(--on-secondary-container)}.cell-ai .score small{color:inherit;opacity:.8}.cell-hint{font-size:.75rem;color:var(--on-surface-variant);white-space:nowrap}.grading-strip{display:grid;gap:8px;margin-bottom:16px}.grading-strip .list-item{background:var(--secondary-container);color:var(--on-secondary-container);border-radius:var(--shape-lg);border:0}.grading-strip .list-support{color:inherit;opacity:.85}.grader{display:grid;grid-template-columns:260px minmax(0,1fr) 340px;gap:16px;align-items:start}.grader-list{position:sticky;top:76px;max-height:calc(100dvh - 100px);overflow:auto}.grader-list .list-item{min-height:56px}.grader-list .list-item[aria-current=true]{background:var(--secondary-container)}.grader-main{display:grid;gap:16px;min-width:0}.grader-paper{padding:24px 28px;border-radius:var(--shape-lg);background:var(--surface-lowest);border:1px solid var(--outline-variant)}.grader-paper .passage{max-width:none}.grader-file{display:grid;gap:8px;padding:14px 16px;border-radius:var(--shape-md);background:var(--surface-low)}.grader-file img{max-width:100%;border-radius:var(--shape-sm)}.grader-file pre{white-space:pre-wrap;font:inherit;font-size:.9375rem;line-height:1.6;max-height:360px;overflow:auto}.grader-rail{display:grid;gap:14px;position:sticky;top:76px}.rail-card{display:grid;gap:12px;padding:16px;border-radius:var(--shape-lg);background:var(--surface-low)}.rail-card h3{font-size:.875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant)}.crit-score{display:grid;gap:6px;padding:10px 12px;border-radius:var(--shape-md);background:var(--surface-lowest);border:1px solid var(--outline-variant)}.crit-score .row{justify-content:space-between;flex-wrap:nowrap}.crit-score .crit-levels{display:flex;gap:6px;flex-wrap:wrap}.crit-score .crit-level{min-height:30px;padding:2px 10px;border-radius:var(--shape-full);border:1px solid var(--outline-variant);background:transparent;font:inherit;font-size:.8125rem;font-weight:600;color:var(--on-surface);cursor:pointer}.crit-score .crit-level[aria-pressed=true]{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.crit-score .crit-level.ai-pick{border-color:var(--secondary);box-shadow:inset 0 0 0 1px var(--secondary)}.crit-score .evidence{font-size:.8125rem;color:var(--on-surface-variant);border-left:3px solid var(--secondary-container);padding-left:8px;font-style:italic}.rule-checks{list-style:none;display:grid;gap:6px}.rule-checks li{display:grid;grid-template-columns:auto 1fr;gap:8px;font-size:.875rem;align-items:start}.rule-checks li .list-lead{width:24px;height:24px;border-radius:6px}.rule-checks li .list-lead svg{width:14px;height:14px}.rule-checks .evidence{display:block;color:var(--on-surface-variant);font-size:.8125rem;font-style:italic}.grader-actions{display:flex;gap:8px;flex-wrap:wrap}.grader-actions .btn{flex:1 1 auto}.ai-note{display:flex;gap:8px;align-items:flex-start;font-size:.8125rem;color:var(--on-surface-variant)}.ai-note svg{width:16px;height:16px;flex:none;margin-top:2px}@media(max-width:1239px){.grader{grid-template-columns:220px minmax(0,1fr)}.grader-rail{grid-column:1 / -1;position:static}}@media(max-width:899px){.grader{grid-template-columns:1fr}.grader-list{position:static;max-height:none}.rules-grid{grid-template-columns:1fr}}.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.chart-card{padding:16px 16px 4px}.chart-card h2{font-size:1rem}.chart-hint{font-size:.8125rem;margin-top:2px}.chart-empty{color:var(--on-surface-variant);padding:48px 0;text-align:center;border:1px dashed var(--outline-variant);border-radius:var(--shape-md);margin:12px 0}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px}.swatches{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.swatch{position:relative;width:40px;height:40px;padding:0;border-radius:50%;border:0;cursor:pointer;box-shadow:inset 0 0 0 1px #0000001f;transition:transform var(--dur-short) var(--ease-standard)}.swatch:hover{transform:scale(1.08)}.swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--on-surface)}.swatch[aria-pressed=true]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #00000026}.logo-preview{width:72px;height:72px;object-fit:cover;border-radius:var(--shape-md);border:1px solid var(--outline-variant)}.cover-preview{width:100%;max-height:200px;object-fit:cover;border-radius:var(--shape-md);border:1px solid var(--outline-variant)}.preview-strip{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;padding:12px;border-radius:var(--shape-md);background:var(--surface-low)}.audit li{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--outline-variant);font-size:.9375rem}.audit li:last-child{border-bottom:0}.audit time{color:var(--on-surface-variant);font-size:.8125rem;white-space:nowrap}.with-icon{display:flex;align-items:center;gap:8px}.between{display:flex;align-items:center;justify-content:space-between;gap:12px}.between>:first-child{min-width:0;flex:1}.filter-bar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:0 0 16px}.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;color:var(--on-surface-variant);font-size:.875rem;flex-wrap:wrap}.person-head{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:8px 0 20px}.person-head h1{font-size:clamp(1.5rem,3vw,2rem);line-height:1.2;font-weight:700;letter-spacing:-.02em}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;align-items:start}.card-grid .plain>li{padding:8px 0;border-bottom:1px solid var(--outline-variant)}.card-grid .plain>li:last-child{border-bottom:0}.card-grid .list-headline{text-decoration:none}.check-list{display:grid;gap:4px;border:0;padding:0;margin:0}.check-list label{display:flex;gap:12px;align-items:center;min-height:40px;cursor:pointer;padding:0 4px;border-radius:var(--shape-sm)}.check-list label:hover{background:var(--surface-low)}.check-list label.muted{cursor:default}.table-wrap{overflow-x:auto;border:1px solid var(--outline-variant);border-radius:var(--shape-md);background:var(--surface-lowest)}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table th,.data-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--outline-variant);vertical-align:top;white-space:nowrap}.data-table thead th{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--on-surface-variant);font-weight:700;background:var(--surface-low)}.data-table tbody th{font-weight:600}.data-table .num{text-align:right;font-variant-numeric:tabular-nums}.data-table tbody tr:last-child td,.data-table tbody tr:last-child th{border-bottom:0}.drop-zone{position:relative;display:grid;place-items:center;gap:6px;padding:32px 20px;border:2px dashed var(--outline-variant);border-radius:var(--shape-lg);text-align:center;color:var(--on-surface-variant);cursor:pointer;background:var(--surface-lowest);transition:border-color var(--dur-short),background var(--dur-short)}.drop-zone:hover,.drop-zone:focus-within,.drop-zone.over{border-color:var(--primary);background:var(--surface-low);color:var(--on-surface)}.drop-zone:focus-within{outline:3px solid var(--primary);outline-offset:2px}.error-rows li{display:grid;grid-template-columns:minmax(140px,auto) 1fr;gap:4px 16px;padding:8px 0;border-bottom:1px solid var(--outline-variant);font-size:.875rem}.error-rows li:last-child{border-bottom:0}details>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;min-height:40px}details>summary::-webkit-details-marker{display:none}details>summary:before{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform var(--dur-short);margin:0 6px 0 2px}details[open]>summary:before{transform:rotate(45deg)}@media(max-width:599px){.error-rows li{grid-template-columns:1fr}.person-head .page-head-actions{width:100%}}.auth-split{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--surface)}.auth-art{position:relative;background:#1c1915 url(/art/cover-school.png) center / cover;min-height:220px}.auth-art:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0000000d,#000000b8)}.auth-art-copy{position:absolute;left:40px;right:40px;bottom:40px;color:#fff;z-index:1;display:grid;gap:8px}.auth-art-copy h2{color:inherit;font-size:clamp(1.5rem,3vw,2.25rem);letter-spacing:-.02em}.auth-art-copy p{max-width:42ch;opacity:.9}.auth-pane{display:grid;place-items:center;padding:32px var(--gutter)}.auth-form{width:100%;max-width:420px;display:grid;gap:20px}.auth-form h1{font-size:clamp(1.75rem,3vw,2.25rem);letter-spacing:-.02em}.demo-list{display:grid;gap:4px}.demo-list .list-item{min-height:52px;padding:6px 12px;border-radius:var(--shape-md);border:0}.demo-list .list-item+.list-item{border-top:0}.auth-card{width:min(560px,100%);margin:0 auto;padding:32px;display:grid;gap:20px}.auth-page{min-height:100dvh;display:grid;place-items:center;padding:24px var(--gutter);background:var(--surface)}.address-preview{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--shape-sm);background:var(--surface-container);font-size:.875rem;font-weight:600;color:var(--on-surface-variant);word-break:break-all}.address-preview strong{color:var(--on-surface)}.gate{display:grid;gap:16px;justify-items:center;text-align:center;padding:32px}.gate .cover-preview{max-height:220px}.market{min-height:100dvh;background:var(--surface);color:var(--on-surface)}.market-bar{display:flex;justify-content:space-between;align-items:center;padding:12px var(--gutter);gap:16px;max-width:1200px;margin:0 auto}.market-bar .brand-mark{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:1.125rem;letter-spacing:-.01em;text-decoration:none;color:inherit}.market-bar nav{display:flex;gap:4px;align-items:center}.market-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:32px;align-items:center;padding:32px var(--gutter) 64px;max-width:1200px;margin:0 auto}.market-hero h1{font-size:clamp(2.5rem,5.5vw,4.25rem);line-height:1.02;letter-spacing:-.03em;font-weight:800;margin:12px 0 16px}.lede{font-size:1.125rem;line-height:1.55;color:var(--on-surface-variant);max-width:44ch}.hero-actions{display:flex;gap:12px;align-items:center;margin-top:28px;flex-wrap:wrap}.stage{height:420px;border-radius:var(--shape-xl);background:radial-gradient(circle at 30% 20%,var(--primary-container),transparent 60%),var(--surface-low);overflow:hidden}.stage img{width:100%;height:100%;object-fit:contain}.steps{max-width:1200px;margin:0 auto;padding:0 var(--gutter) 64px}.steps h2{font-size:clamp(1.5rem,3vw,2rem);letter-spacing:-.02em;margin-bottom:20px}.steps ol{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;list-style:none;counter-reset:step}.steps li{padding:24px;border-radius:var(--shape-xl);background:var(--surface-low);display:grid;gap:10px;counter-increment:step}.steps li:before{content:counter(step,decimal-leading-zero);font-weight:800;font-size:.875rem;letter-spacing:.08em;color:var(--primary)}.steps li strong{font-size:1.125rem}.steps li p{color:var(--on-surface-variant)}.proof{max-width:1200px;margin:0 auto 64px;padding:0 var(--gutter)}.proof-inner{display:grid;grid-template-columns:auto 1fr auto;gap:20px;align-items:center;padding:24px 28px;border-radius:var(--shape-xl);background:var(--primary-container);color:var(--on-primary-container)}.proof-inner p{font-size:1.125rem;font-weight:600}.market-foot{padding:24px var(--gutter) 40px;text-align:center;color:var(--on-surface-variant);font-size:.875rem}@media(max-width:899px){.two-col,.course-hero,.steps ol,.market-hero{grid-template-columns:1fr}.stage{height:300px}.auth-split{grid-template-columns:1fr}.auth-art{min-height:200px}.auth-art-copy{left:20px;right:20px;bottom:20px}.auth-art-copy p{display:none}}@media(max-width:599px){.hide-compact{display:none!important}.stat-row{grid-template-columns:1fr 1fr}.fam-course-btn{grid-template-columns:88px 1fr auto}.fam-course-btn img,.fam-course-btn .cover-blank{width:88px}.roster li{grid-template-columns:auto 1fr}.roster .seg{grid-column:1 / -1;width:100%}.roster .seg-btn{flex:1;padding:0 6px}.meeting-head{grid-template-columns:auto 1fr auto}.meeting-head .chip{display:none}.hero{grid-template-columns:1fr;padding:20px}.hero .btn{justify-self:stretch}.course-grid{grid-template-columns:1fr}.page-head{margin-top:8px}.page-head .btn{min-height:44px}.status-card{grid-template-columns:1fr;text-align:left}.facts{grid-template-columns:1fr;gap:4px 0}.facts dd{margin-bottom:10px}.proof-inner{grid-template-columns:1fr;text-align:center;justify-items:center}.market-bar nav .btn-text{display:none}.cert-actions{padding:12px}.inline-add{grid-template-columns:1fr}.list-item{padding:10px 12px;gap:12px}.list-item .chip{display:none}.list-item .chip.keep{display:inline-flex}.hero-actions .btn{flex:1}}.pip{position:absolute;top:2px;right:2px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;display:inline-grid;place-items:center;background:var(--error);color:var(--on-error);font-size:.6875rem;font-weight:800;line-height:1;letter-spacing:0;box-shadow:0 0 0 2px var(--surface)}.pip.inline{position:static;box-shadow:none}.bell{position:relative;overflow:visible}.notif-menu{min-width:380px;max-width:min(420px,calc(100vw - 32px));padding:0;overflow:hidden}.notif-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 8px 8px 16px;border-bottom:1px solid var(--outline-variant)}.notif-list{list-style:none;max-height:min(60vh,520px);overflow-y:auto}.notif-item{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;width:100%;padding:12px 16px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;border-bottom:1px solid var(--outline-variant)}.notif-list li:last-child .notif-item{border-bottom:0}.notif-item.unread{background:var(--surface-low)}.notif-body{display:grid;gap:2px;min-width:0}.notif-title{font-weight:700;font-size:.9375rem}.notif-item.unread .notif-title{color:var(--on-surface)}.notif-text{font-size:.8125rem;color:var(--on-surface-variant);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notif-meta{display:grid;justify-items:end;gap:6px;font-size:.75rem;color:var(--on-surface-variant);white-space:nowrap;padding-top:2px}.dot-unread{width:8px;height:8px;border-radius:50%;background:var(--primary);display:inline-block}.notif-empty{display:grid;justify-items:center;gap:8px;padding:32px 16px;color:var(--on-surface-variant)}.notif-empty svg{width:32px;height:32px;color:var(--primary)}.dock{position:fixed;left:16px;bottom:calc(16px + var(--safe-bottom));z-index:45;display:grid;gap:12px;justify-items:start;pointer-events:none}.dock>*{pointer-events:auto}@media(min-width:600px){.dock{left:calc(var(--rail-width) + 16px)}}@media(min-width:1240px){.dock{left:calc(var(--drawer-width) + 24px)}}.dock-row{display:flex;align-items:flex-end;gap:10px}.chat-launcher{position:relative;width:56px;height:56px;border-radius:var(--shape-lg);border:0;background:var(--primary-container);color:var(--on-primary-container);display:grid;place-items:center;cursor:pointer;box-shadow:var(--elev-3);transition:box-shadow var(--dur-short),transform var(--dur-short) var(--ease-standard)}.chat-launcher:hover{box-shadow:var(--elev-4);transform:translateY(-1px)}.chat-launcher svg{width:26px;height:26px}.chat-launcher .pip,.chat-head .pip{top:-4px;right:-4px}.chat-head-wrap{position:relative}.chat-head{position:relative;width:52px;height:52px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer;box-shadow:var(--elev-2);transition:transform var(--dur-short) var(--ease-standard)}.chat-head:hover{transform:translateY(-2px)}.chat-head .avatar{width:52px;height:52px;font-size:1.125rem;border:2px solid var(--surface)}.avatar.room{background:var(--secondary-container);color:var(--on-secondary-container)}.avatar.room svg{width:55%;height:55%}.avatar.room.live{background:var(--primary);color:var(--on-primary)}.chat-head-close{position:absolute;top:-6px;left:-6px;width:22px;height:22px;border-radius:50%;border:0;background:var(--inverse-surface);color:var(--inverse-on-surface);display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity var(--dur-short)}.chat-head-wrap:hover .chat-head-close,.chat-head-close:focus-visible{opacity:1}.chat-windows{display:flex;align-items:flex-end;gap:12px}.chat-window{width:340px;height:min(520px,calc(100dvh - 140px));display:flex;flex-direction:column;border-radius:var(--shape-lg);overflow:hidden;background:var(--surface-lowest);animation:rise-in var(--dur-medium) var(--ease-emphasized-decel)}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}}.chat-head-bar{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px 6px 8px 12px;background:var(--surface-container);border-bottom:1px solid var(--outline-variant)}.chat-title{display:grid;min-width:0}.chat-title .title-sm,.conv-title,.cal-event-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--primary);margin-left:6px;vertical-align:middle;box-shadow:0 0 0 0 var(--primary);animation:pulse 1.8s ease-out infinite}@keyframes pulse{0%{box-shadow:0 0 color-mix(in oklab,var(--primary) 50%,transparent)}to{box-shadow:0 0 0 8px transparent}}.room-banner{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:.8125rem;font-weight:600;background:var(--surface-low);color:var(--on-surface-variant)}.room-banner.live{background:var(--primary-container);color:var(--on-primary-container)}.room-banner.upcoming{background:var(--warning-container);color:var(--on-warning-container)}.chat-scroll{flex:1;overflow-y:auto;padding:8px 12px 12px;display:grid;align-content:start;gap:2px;scroll-behavior:smooth}.chat-empty{display:grid;justify-items:center;text-align:center;gap:8px;padding:32px 12px;color:var(--on-surface-variant)}.chat-empty svg{width:32px;height:32px;color:var(--outline)}.day-divider{display:flex;align-items:center;gap:8px;margin:10px 0 6px;font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface-variant)}.day-divider:before,.day-divider:after{content:"";flex:1;border-top:1px solid var(--outline-variant)}.bubble-row{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:end;margin:2px 0}.bubble-row.mine{grid-template-columns:1fr;justify-items:end}.bubble-avatar{width:32px}.bubble-col{display:grid;gap:2px;max-width:82%;justify-items:start}.bubble-row.mine .bubble-col{justify-items:end}.bubble-name{font-size:.75rem;font-weight:700;color:var(--on-surface-variant);padding-left:4px}.bubble{padding:9px 13px;border-radius:18px 18px 18px 6px;background:var(--surface-container);color:var(--on-surface);font-size:.9375rem;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}.bubble-row.mine .bubble{background:var(--primary);color:var(--on-primary);border-radius:18px 18px 6px}.bubble-row.pending .bubble{opacity:.7}.bubble-time{font-size:.6875rem;color:var(--on-surface-variant);padding:0 6px}.chat-compose{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;padding:8px 8px 8px 12px;border-top:1px solid var(--outline-variant);background:var(--surface-lowest)}.chat-input{width:100%;min-height:40px;max-height:120px;padding:9px 14px;border:1px solid var(--outline-variant);border-radius:20px;background:var(--surface-container);color:var(--on-surface);resize:none;line-height:1.4;font-size:.9375rem}.chat-input:focus{outline:none;border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.chat-input::placeholder{color:var(--on-surface-variant)}.chat-panel{width:360px;max-height:min(600px,calc(100dvh - 120px));display:flex;flex-direction:column;border-radius:var(--shape-lg);overflow:hidden;background:var(--surface-lowest);animation:rise-in var(--dur-medium) var(--ease-emphasized-decel)}.chat-panel-head{display:flex;align-items:center;justify-content:space-between;padding:12px 8px 4px 16px}.chat-panel-search{padding:4px 12px 8px;--tf-bg: var(--surface-lowest)}.chat-panel-tabs{margin:0 12px 8px;align-self:flex-start}.count-pill{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--error);color:var(--on-error);font-size:.6875rem;font-weight:800;display:inline-grid;place-items:center;margin-left:6px}.chat-panel-body{flex:1;overflow-y:auto;padding:0 8px 8px}.panel-label{padding:10px 8px 4px}.panel-empty{display:grid;justify-items:center;text-align:center;gap:8px;padding:28px 12px;color:var(--on-surface-variant)}.panel-empty svg{width:28px;height:28px;color:var(--outline)}.conv-row,.contact-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;width:100%;padding:10px 8px;border:0;border-radius:var(--shape-md);background:transparent;color:inherit;text-align:left;cursor:pointer}.contact-row{cursor:default}.conv-body{display:grid;gap:2px;min-width:0}.conv-title{font-weight:600;font-size:.9375rem}.conv-row.unread .conv-title{font-weight:800}.conv-preview{font-size:.8125rem;color:var(--on-surface-variant);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conv-row.unread .conv-preview{color:var(--on-surface);font-weight:600}.conv-meta{display:grid;justify-items:end;gap:4px;font-size:.75rem;color:var(--on-surface-variant)}.avatar-wrap{position:relative;display:inline-flex;flex:none}.presence{position:absolute;right:-1px;bottom:-1px;width:12px;height:12px;border-radius:50%;background:var(--primary);border:2px solid var(--surface-lowest)}.chat-head .presence{right:1px;bottom:1px;width:14px;height:14px;border-color:var(--surface)}.online-count{margin-left:6px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--primary-container);color:var(--on-primary-container);font-size:.6875rem;font-weight:800;display:inline-grid;place-items:center}.bubble.typing{display:inline-flex;gap:4px;align-items:center;padding:12px 14px}.bubble.typing span{width:7px;height:7px;border-radius:50%;background:var(--on-surface-variant);opacity:.5;animation:typing-bounce 1.2s infinite ease-in-out}.bubble.typing span:nth-child(2){animation-delay:.15s}.bubble.typing span:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}.bubble.email{border-left:3px solid var(--secondary)}.bubble-row.mine .bubble.email{border-left:0;border-right:3px solid var(--on-primary)}.bubble-email-tag{display:inline-flex;align-items:center;gap:4px;font-size:.6875rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;opacity:.8;margin-bottom:4px;width:100%}.alerts-toggle{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;width:100%;padding:10px 16px;border:0;border-bottom:1px solid var(--outline-variant);background:var(--surface-low);color:var(--on-surface-variant);font-size:.8125rem;font-weight:600;text-align:left;cursor:pointer}.alerts-toggle.on{color:var(--on-surface)}.switch{width:36px;height:20px;border-radius:10px;background:var(--outline);position:relative;transition:background var(--dur-short)}.switch span{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--surface-lowest);transition:transform var(--dur-short) var(--ease-standard)}.alerts-toggle.on .switch{background:var(--primary)}.alerts-toggle.on .switch span{transform:translate(16px)}.oh-strip{display:grid;gap:10px;margin-bottom:16px}.oh-card{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:12px 16px;border-radius:var(--shape-lg);background:var(--surface-low)}.oh-card.live{background:var(--primary-container);color:var(--on-primary-container)}.oh-body{display:grid;gap:2px;min-width:0}.oh-title{font-weight:700;display:flex;align-items:center;gap:4px}.oh-title .live-dot{margin:0 4px 0 0}.oh-sub{font-size:.875rem;opacity:.85}a.book-card{text-decoration:none;color:inherit;margin-bottom:16px;transition:background var(--dur-short)}a.book-card:hover{background:var(--surface-highest)}.live-ring{position:relative;display:inline-flex;border-radius:50%;box-shadow:0 0 0 3px var(--primary)}@media(max-width:599px){.oh-card{grid-template-columns:auto 1fr}.oh-card>.btn,.oh-card>.row{grid-column:1 / -1}}.dock-compact{left:12px;right:12px;bottom:calc(var(--bottom-nav) + 12px + var(--safe-bottom));justify-items:stretch}.dock-compact .chat-windows,.dock-compact .chat-panel{position:fixed;inset:0 0 calc(var(--bottom-nav) + var(--safe-bottom)) 0;z-index:50;width:auto;max-height:none;height:auto;border-radius:0;animation:none}.dock-compact .chat-window{width:100%;height:100%;border-radius:0}.dock-compact .chat-windows .chat-window:not(:last-child){display:none}.dock-compact .dock-row{justify-content:flex-start}.cal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.day-chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px;margin-bottom:8px;scrollbar-width:none}.day-chips::-webkit-scrollbar{display:none}.day-chip{display:grid;justify-items:center;gap:2px;min-width:52px;padding:8px 6px;border:1px solid var(--outline-variant);border-radius:var(--shape-md);background:transparent;color:var(--on-surface-variant);cursor:pointer;position:relative}.day-chip .title-md{color:var(--on-surface)}.day-chip[aria-selected=true]{background:var(--secondary-container);color:var(--on-secondary-container);border-color:transparent}.day-chip.today .title-md{color:var(--primary)}.cal{overflow:hidden;position:relative}.cal-header{display:grid;border-bottom:1px solid var(--outline-variant);background:var(--surface-container)}.cal-day-head{display:grid;justify-items:center;gap:2px;padding:10px 4px;color:var(--on-surface-variant);border-left:1px solid var(--outline-variant)}.cal-day-num{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:1rem;color:var(--on-surface)}.cal-day-head.today .cal-day-num{background:var(--primary);color:var(--on-primary)}.cal-allday{display:grid;border-bottom:1px solid var(--outline-variant);background:var(--surface-low)}.cal-allday-label{font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface-variant);padding:8px 8px 8px 0;text-align:right}.cal-allday-cell{display:grid;gap:4px;padding:6px 4px;border-left:1px solid var(--outline-variant);min-height:36px}.due-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border:0;border-radius:var(--shape-sm);background:var(--warning-container);color:var(--on-warning-container);font-size:.75rem;font-weight:700;text-align:left;cursor:pointer;min-width:0}.due-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.due-chip.done{background:var(--primary-container);color:var(--on-primary-container);text-decoration:line-through;opacity:.85}.due-chip.late{background:var(--error-container);color:var(--on-error-container)}.cal-body{display:grid;position:relative;overflow:hidden}.cal-gutter{position:relative}.cal-hour{position:absolute;right:8px;transform:translateY(-50%);font-size:.6875rem;font-weight:600;color:var(--on-surface-variant)}.cal-hour:first-child{transform:none;top:4px!important}.cal-col{position:relative;border-left:1px solid var(--outline-variant)}.cal-col.today{background:color-mix(in oklab,var(--primary-container) 18%,transparent)}.cal-cell{position:absolute;left:0;right:0;border:0;border-top:1px solid var(--outline-variant);background:transparent;padding:0;cursor:pointer;color:var(--primary);display:grid;place-items:center}.cal-cell.static{cursor:default}.cal-cell.past{color:var(--on-surface-variant)}.cal-cell-hint{opacity:0;display:inline-flex;align-items:center;gap:4px;font-size:.75rem;font-weight:700;padding:4px 8px;border-radius:var(--shape-full);background:var(--primary-container);color:var(--on-primary-container);transition:opacity var(--dur-short)}.cal-cell:hover .cal-cell-hint,.cal-cell:focus-visible .cal-cell-hint{opacity:1}.cal-cell:hover{background:color-mix(in oklab,var(--primary) 6%,transparent)}.cal-now{position:absolute;left:0;right:0;height:2px;background:var(--error);z-index:2;pointer-events:none}.cal-now:before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--error)}.cal-event{position:absolute;left:4px;right:4px;z-index:3;display:grid;align-content:start;gap:1px;padding:6px 8px;border:0;border-radius:var(--shape-sm);text-align:left;cursor:pointer;background:var(--surface-highest);color:var(--on-surface);box-shadow:inset 3px 0 0 var(--outline);overflow:hidden;transition:box-shadow var(--dur-short),transform var(--dur-short)}.cal-event:hover{box-shadow:inset 3px 0 0 var(--outline),var(--elev-2);transform:translateY(-1px)}.cal-event.office{background:var(--primary-container);color:var(--on-primary-container);box-shadow:inset 3px 0 0 var(--primary)}.cal-event.office.joined{box-shadow:inset 3px 0 0 var(--primary),inset 0 0 0 1px var(--primary)}.cal-event.office.live{background:var(--primary);color:var(--on-primary);box-shadow:inset 3px 0 0 var(--on-primary)}.cal-event.office.live .live-dot{background:var(--on-primary)}.cal-event-title{font-size:.8125rem;font-weight:700;line-height:1.25}.cal-event-time{font-size:.6875rem;font-weight:600;opacity:.85}.cal-event.appointment{background:var(--tertiary-container);color:var(--on-tertiary-container);box-shadow:inset 3px 0 0 var(--tertiary)}.cal-event.appointment.live{background:var(--tertiary);color:var(--md-sys-color-on-tertiary);box-shadow:inset 3px 0 0 var(--md-sys-color-on-tertiary)}.cal-event.appointment.live .live-dot{background:var(--md-sys-color-on-tertiary)}.cal-event.appointment.closed{opacity:.55}.cal-event.short{padding:2px 6px;align-content:center}.cal-event.short .cal-event-title{font-size:.75rem}.cal-event.short .cal-event-time{margin-right:2px}.cal-event.appointment.closed .cal-event-title{text-decoration:line-through}.cal-hours{position:absolute;left:2px;right:2px;z-index:1;display:grid;align-content:start;gap:1px;padding:5px 8px;border:1px dashed var(--primary);border-radius:var(--shape-sm);text-align:left;cursor:pointer;background:color-mix(in oklab,var(--primary-container) 40%,transparent);color:var(--on-primary-container);overflow:hidden;transition:background var(--dur-short)}.cal-hours:hover{background:color-mix(in oklab,var(--primary-container) 70%,transparent)}.cal-slot{position:absolute;z-index:2;display:flex;align-items:center;gap:4px;padding:2px 6px;border:1px dashed var(--outline);border-radius:var(--shape-sm);text-align:left;cursor:pointer;background:color-mix(in oklab,var(--surface-highest) 75%,transparent);color:var(--primary);font-size:.6875rem;font-weight:700;overflow:hidden;white-space:nowrap;transition:background var(--dur-short),border-color var(--dur-short)}.cal-slot span{overflow:hidden;text-overflow:ellipsis}.cal-slot:hover,.cal-slot:focus-visible{background:var(--primary-container);color:var(--on-primary-container);border-color:var(--primary);border-style:solid}.swatch-dashed{border:1px dashed var(--primary);background:color-mix(in oklab,var(--primary-container) 40%,transparent);box-sizing:border-box}.slot-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--outline);border-radius:var(--shape-full);background:transparent;color:var(--on-surface);font:inherit;font-size:.8125rem;font-weight:600;cursor:pointer;transition:background var(--dur-short),border-color var(--dur-short)}.slot-chip:hover{background:var(--surface-highest)}.slot-chip.picked,.slot-chip[aria-checked=true]{background:var(--secondary-container);color:var(--on-secondary-container);border-color:transparent}.list-text-btn{display:grid;gap:2px;min-width:0;text-align:left;background:transparent;border:0;padding:0;font:inherit;color:inherit;cursor:pointer}.list-item.no-border,.list-item.no-border+.list-item{border-top:0}.cal-loading{position:absolute;inset:auto 0 0 0;display:grid;place-items:center;padding:8px}@media(max-width:599px){.notif-menu{position:fixed;left:12px;right:12px;top:calc(var(--appbar) + 4px);min-width:0;max-width:none}.cal-toolbar .legend{display:none}.cal-event{left:2px;right:2px}}.classroom{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;grid-template-rows:auto 1fr auto;background:#0e1110;color:#f2f5f3;color-scheme:dark;--surface: #0e1110;--surface-lowest: #171b19;--surface-low: #171b19;--surface-container: #1f2523;--surface-high: #262d2a;--surface-highest: #2e3633;--on-surface: #f2f5f3;--on-surface-variant: #b8c2bd;--outline-variant: #3a423f;--inverse-surface: #e2e8e5;--inverse-on-surface: #1a1f1d}.class-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px}.live-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--shape-full);background:var(--error);color:var(--on-error);font-size:.6875rem;font-weight:800;letter-spacing:.08em}.live-pill .live-dot{margin:0;background:#fff}.class-main{display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto;gap:10px;min-height:0;padding:0 16px}.classroom.with-panel .class-main{grid-template-columns:1fr 340px}.classroom.with-panel .stage,.classroom.with-panel .filmstrip{grid-column:1}.classroom.with-panel .class-panel{grid-column:2;grid-row:1 / span 2}.stage{position:relative;min-height:0;border-radius:var(--shape-lg);overflow:hidden;background:#000;display:grid}.filmstrip{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.filmstrip .tile{flex:none;width:200px;aspect-ratio:16 / 9}.tile{position:relative;border-radius:var(--shape-md);overflow:hidden;background:#1a1f1d;display:grid;place-items:center}.tile.big{width:100%;height:100%;border-radius:0}.tile.hand{box-shadow:inset 0 0 0 3px var(--warning)}.tile-video{width:100%;height:100%;object-fit:cover;display:block;background:#000}.tile.big .tile-video{object-fit:contain}.tile-video.mirror{transform:scaleX(-1)}.tile-video.hidden{display:none}.tile-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;align-content:center;gap:10px;color:#cfd8d3;text-align:center;padding:12px;font-size:.875rem}.tile-fallback .avatar{background:var(--primary);color:var(--on-primary)}.tile-label{position:absolute;left:8px;bottom:8px;display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--shape-sm);background:#0000008c;color:#fff;font-size:.8125rem;font-weight:600;max-width:calc(100% - 16px)}.tile-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile-role{padding:1px 6px;border-radius:4px;background:#ffffff2e;font-size:.6875rem;letter-spacing:.04em;text-transform:uppercase}.tile-pin{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:50%;border:0;background:#0000008c;color:#fff;display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity var(--dur-short)}.tile:hover .tile-pin,.tile-pin:focus-visible{opacity:1}.tile-controls{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;gap:12px}.tile-controls .icon-btn{width:52px;height:52px}.tile-controls .icon-btn-filled{background:var(--error);color:var(--on-error)}.class-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px 14px}.controls-group{display:flex;align-items:center;gap:6px}.control{display:grid;justify-items:center;gap:2px;min-width:72px;padding:6px 8px;border:0;border-radius:var(--shape-md);background:transparent;color:#e2e8e5;cursor:pointer}.control:hover{background:#ffffff14}.control:disabled{opacity:.4;cursor:not-allowed}.control-icon{position:relative;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#2e3633;transition:background var(--dur-short)}.control.active .control-icon{background:var(--error);color:var(--on-error)}.control[aria-label="Present board"].active .control-icon,.control[aria-label="Stop presenting"] .control-icon,.control[aria-label="Hide board"] .control-icon,.control[aria-label=People].active .control-icon,.control[aria-label=Chat].active .control-icon,.control[aria-label="Stop sharing"] .control-icon{background:var(--primary);color:var(--on-primary)}.control-label{font-size:.6875rem;font-weight:600}.control .pip{top:-2px;right:-2px;box-shadow:none}.class-panel{display:flex;flex-direction:column;min-height:0;border-radius:var(--shape-lg);background:#171b19;overflow:hidden}.class-panel .chat-scroll{flex:1}.class-panel .bubble{background:#2e3633;color:#f2f5f3}.class-panel .bubble-row.mine .bubble{background:var(--primary);color:var(--on-primary)}.class-panel .chat-compose{background:#171b19;border-top-color:#3a423f}.class-panel .chat-input{background:#262d2a;color:#f2f5f3;border-color:#3a423f}.class-people{list-style:none;display:grid;padding:4px 8px;overflow-y:auto}.class-people li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px;border-radius:var(--shape-md)}.class-people .conv-title,.class-people .conv-preview{color:inherit}.class-people .conv-preview{opacity:.7}.class-center{display:grid;place-items:center;align-content:center;gap:12px;text-align:center;padding:32px;grid-row:1 / -1}.prejoin-body{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:32px;align-items:center;padding:16px 32px 32px;max-width:1200px;margin:0 auto;width:100%;min-height:0}.prejoin .tile.local.big{aspect-ratio:16 / 9;height:auto;border-radius:var(--shape-xl)}.prejoin-side{display:grid;gap:16px}.prejoin-side h1{color:inherit}.classroom .muted{color:#b8c2bd}.board{position:relative;width:100%;height:100%;background:#fbfbf7;display:grid}.classroom .board{background:#fbfbf7}.board-canvas{touch-action:none;cursor:default;display:block}.board-canvas.drawable{cursor:crosshair}.board-tools{position:absolute;left:50%;bottom:12px;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:var(--shape-full);background:#1f2523;color:#f2f5f3;box-shadow:var(--elev-3);max-width:calc(100% - 24px);flex-wrap:wrap;justify-content:center}.board-tools .seg{border-color:#3a423f}.board-tools .seg-btn{color:#f2f5f3;border-color:#3a423f}.board-tools .seg-btn[aria-checked=true]{background:var(--primary);color:var(--on-primary)}.board-colors{display:flex;gap:6px}.board-color{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;box-shadow:inset 0 0 0 1px #0003}.board-color[aria-checked=true]{border-color:#fff}.board-size input{width:90px;accent-color:var(--primary)}.board-tools .icon-btn{color:#f2f5f3}@media(max-width:899px){.classroom.with-panel .class-main{grid-template-columns:1fr}.classroom.with-panel .class-panel{position:fixed;inset:auto 0 0 0;height:60dvh;grid-column:auto;grid-row:auto;border-radius:var(--shape-xl) var(--shape-xl) 0 0;z-index:5}.prejoin-body{grid-template-columns:1fr;padding:12px 16px 24px}.class-controls{flex-wrap:wrap;justify-content:center}.control{min-width:60px}.control-label{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{.nav-side,.bottom-nav,.appbar,.fab,.snackbar-host,.dock,.verify-bar .btn,.no-print{display:none!important}body{background:#fff;color:#000}.content{max-width:none;padding:0}.status-card,.card{border:1px solid #999;box-shadow:none;background:#fff!important;color:#000!important}}.due-set{display:inline-flex;align-items:center;gap:4px;margin-top:4px;padding:2px 8px;border:0;border-radius:var(--shape-full);background:transparent;color:var(--primary);font-size:.6875rem;font-weight:700;cursor:pointer}.due-set:hover{background:var(--primary-container);color:var(--on-primary-container)}
