/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--spacing:.25rem;--container-sm:24rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-lg:var(--radius);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-border:var(--border)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--color-border)}html{-webkit-text-size-adjust:100%}body{background-color:var(--surface-page);color:var(--text-body);font-family:var(--font-sans);font-size:var(--text-body-size);line-height:var(--text-body-line);-webkit-font-smoothing:antialiased;margin:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}}@layer components{.tf-ltr{font-variant-numeric:var(--numeral-feature);direction:ltr;unicode-bidi:isolate}.tf-button{font-family:var(--font-sans);font-size:var(--text-control-size);font-weight:var(--text-control-weight);border-radius:var(--radius-button);padding:var(--space-4) var(--space-5);min-height:var(--button-height);cursor:pointer;width:100%;transition:background var(--motion-state) var(--motion-ease), color var(--motion-state) var(--motion-ease);border:1px solid #0000;line-height:1.2}.tf-button[data-width=auto]{width:auto}.tf-button[data-size=student]{min-height:var(--button-height-student);padding:var(--space-5) var(--space-5)}.tf-button[data-size=compact]{min-height:var(--tap-min);padding:var(--space-3) var(--space-4);font-size:var(--text-secondary-size)}.tf-button[data-variant=primary]{background:var(--accent);color:var(--text-on-accent)}.tf-button[data-variant=primary]:active{background:var(--accent-press)}.tf-button[data-variant=secondary]{background:var(--accent-tint);color:var(--text-body)}.tf-button[data-variant=secondary]:active{background:var(--surface-tile-hover)}.tf-button[data-variant=quiet]{color:var(--text-body);border-color:var(--border-input);background:0 0}.tf-button[data-variant=quiet]:active{background:var(--accent-tint)}.tf-button[data-variant=destructive]{color:var(--danger);border-color:var(--border-danger);background:0 0}.tf-button[data-variant=destructive]:active{background:var(--danger-tint)}.tf-button[data-variant=dangerFilled]{background:var(--danger);color:var(--text-on-danger)}.tf-button[data-variant=dangerFilled]:active{background:var(--danger-press)}.tf-button:disabled{background:var(--surface-inactive);color:var(--text-disabled);cursor:default;border-color:#0000}.tf-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (hover:hover){.tf-button[data-variant=primary]:not(:disabled):hover{background:var(--accent-press)}}.tf-avatar{border-radius:var(--radius-chip);background:var(--surface-tile);color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex;overflow:hidden}.tf-avatar img{object-fit:cover;width:100%;height:100%}.tf-avatar-edit{align-items:center;gap:var(--space-4);display:flex}.tf-avatar-actions{align-items:center;column-gap:var(--space-4);flex-wrap:wrap;display:flex}.tf-avatar-error{font-size:var(--text-meta-size);color:var(--danger);flex-basis:100%}.tf-link{align-items:center;gap:var(--space-1);min-height:var(--tap-min);font-size:var(--text-secondary-size);color:var(--text-link);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:none;display:inline-flex}@media (hover:hover){.tf-link:hover{color:var(--text-link-hover)}}.tf-field-label{font-size:var(--text-secondary-size);color:var(--text-secondary);margin-bottom:var(--space-2);font-weight:500;display:block}.tf-field-control{box-sizing:border-box;appearance:none;background:var(--surface-card);border:1px solid var(--border-input);border-radius:var(--radius-input);width:100%;padding:var(--space-4);min-height:var(--tap-min);font-family:var(--font-sans);font-size:var(--text-control-size);color:var(--text-body);transition:border-color var(--motion-state) var(--motion-ease)}.tf-textarea{resize:vertical;min-height:calc(var(--tap-min) * 2);line-height:var(--text-body-line)}.tf-field-control::placeholder{color:var(--text-disabled)}.tf-field-control:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.tf-field-control[aria-invalid=true]{border-color:var(--accent)}.tf-field-control[data-numeric=true]{font-variant-numeric:var(--numeral-feature)}.tf-field-note{font-size:var(--text-meta-size);line-height:var(--text-meta-line);color:var(--text-meta);margin-top:var(--space-2);display:block}.tf-field-note[data-error=true]{color:var(--accent)}.tf-tabbar{background:var(--nav-bg);padding:6px var(--space-2) calc(var(--space-3) + env(safe-area-inset-bottom));display:flex}.tf-tab{height:44px;color:var(--nav-inactive);transition:background var(--motion-state) var(--motion-ease);border-radius:12px;flex:1;justify-content:center;align-items:center;text-decoration:none;display:flex}.tf-tab[data-active=true]{color:var(--nav-active)}.tf-tab:focus-visible{outline:2px solid var(--nav-active);outline-offset:-2px}@media (width>=1024px){.tf-tabbar{align-items:center;gap:var(--space-3);width:var(--rail-width);height:100%;padding:var(--space-7) 0;flex-direction:column}.tf-tab{flex:none;width:48px;height:48px}.tf-tab[data-active=true]{background:var(--nav-active-bg)}}.tf-tab-label{display:none}@media (width>=1024px){.tf-tabbar[data-labeled=true]{gap:6px;width:88px;padding:20px 0}.tf-tabbar[data-labeled=true] .tf-tab{flex-direction:column;gap:4px;width:76px;height:auto;min-height:60px;padding:6px 4px}.tf-tabbar[data-labeled=true] .tf-tab-label{text-align:center;font-size:12px;font-weight:500;line-height:1.25;display:block}}@media (hover:hover) and (width>=1024px){.tf-tab:not([data-active=true]):hover{background:var(--nav-active-bg)}}.tf-switch{align-items:center;gap:var(--space-3);min-height:44px;font-family:inherit;font-size:var(--text-body-size);color:inherit;text-align:start;cursor:pointer;background:0 0;border:0;padding:0;display:flex}.tf-switch:disabled{cursor:default;opacity:.5}.tf-switch-track{border-radius:var(--radius-chip);background:var(--border-input);width:40px;height:24px;transition:background var(--motion-state) var(--motion-ease);flex-shrink:0;position:relative}.tf-switch-track[data-on=true]{background:var(--accent)}.tf-switch-knob{border-radius:var(--radius-chip);background:var(--surface-card);width:18px;height:18px;transition:inset-inline-start var(--motion-state) var(--motion-ease);top:3px;position:absolute;inset-inline-start:3px}.tf-switch-track[data-on=true] .tf-switch-knob{inset-inline-start:19px}.tf-switch-text{flex-direction:column;display:flex}.tf-switch-hint{font-size:var(--text-meta-size);color:var(--text-meta)}.tf-switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-input)}.tf-segmented{border-radius:var(--radius-button);background:var(--surface-inactive);gap:4px;padding:4px;display:grid}.tf-segmented-option{height:36px;color:var(--text-secondary);font-family:inherit;font-size:var(--text-secondary-size);cursor:pointer;background:0 0;border:0;border-radius:10px;padding:0 8px;font-weight:500}.tf-segmented-option[aria-selected=true]{background:var(--surface-card);color:var(--text-body);font-weight:600}.tf-rte{border-radius:var(--radius-input);border:1px solid var(--border-input);background:var(--surface-page);flex-direction:column;display:flex;overflow:hidden}.tf-rte:focus-within{outline:2px solid var(--accent);outline-offset:-1px}.tf-rte-toolbar{border-bottom:1px solid var(--border-inner);background:var(--surface-card);align-items:center;gap:2px;padding:4px 6px;display:flex}.tf-rte-button{width:40px;height:40px;color:var(--text-secondary);cursor:pointer;transition:background var(--motion-state) var(--motion-ease);background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;display:flex}.tf-rte-button[data-gap=true]{margin-inline-start:8px}.tf-rte-button[aria-pressed=true]{background:var(--accent-tint);color:var(--accent)}.tf-rte-body,.tf-rte-placeholder{font-size:var(--text-control-size);padding:12px 14px;line-height:1.6}.tf-rte-body{box-sizing:border-box;min-height:220px;max-height:480px;color:var(--text-body);outline:none;overflow-y:auto}.tf-rte-placeholder{color:var(--text-meta);pointer-events:none;top:0;position:absolute;inset-inline:0}.tf-rte-body p,.tf-rich-text p{margin:0 0 .6em}.tf-rte-body ul,.tf-rte-body ol,.tf-rich-text ul,.tf-rich-text ol{margin:0 0 .6em;padding-inline-start:1.4em}.tf-rich-text{font-size:var(--text-body-size);color:var(--text-prose);line-height:1.6}.tf-panel{border-radius:var(--radius-tile);background:var(--surface-card);border:1px solid var(--border-card);flex-direction:column;display:flex;overflow:hidden}.tf-panel-head{flex-direction:column;padding:12px 16px 8px;display:flex}.tf-panel-title{font-size:var(--text-body-size);font-weight:500}.tf-panel-hint{font-size:var(--text-meta-size);color:var(--text-meta)}.tf-panel-row{border-top:1px solid var(--border-inner);min-height:52px;color:inherit;align-items:center;gap:10px;padding:6px 16px;text-decoration:none;display:flex}.tf-panel-body{flex-direction:column;gap:12px;padding:14px 16px 16px;display:flex}.tf-two-col{grid-template-columns:minmax(0,1fr);align-items:start;gap:14px;display:grid}.tf-col{flex-direction:column;gap:14px;min-width:0;display:flex}@media (width>=1024px){.tf-two-col{gap:var(--space-7);grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.tf-col{gap:var(--space-7)}}.tf-pill-button{background:var(--accent-tint);height:36px;color:var(--accent);font-family:inherit;font-size:var(--text-secondary-size);cursor:pointer;border:0;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-weight:500;text-decoration:none;display:inline-flex}.tf-pill-button[data-tone=attention]{background:var(--surface-attention);color:var(--text-on-attention)}.tf-pill-button[data-tone=outline]{border:1px solid var(--border-input);color:var(--text-secondary);background:0 0}.tf-pill-button[data-tone=danger]{border:1px solid var(--danger);color:var(--danger);background:0 0}.tf-pill-button:disabled{opacity:.6;cursor:default}@media (hover:hover){.tf-rte-button:hover,.tf-pill-button:not([data-tone]):hover,a.tf-panel-row:hover{background:var(--surface-tile-hover)}.tf-pill-button[data-tone=danger]:hover{background:var(--danger-tint)}}.tf-section-title{font-size:var(--text-body-size);margin:0;font-weight:500}.tf-usual{border-radius:var(--radius-tile);border:1px solid var(--border-card);background:var(--surface-card);min-height:56px;color:inherit;text-align:start;cursor:pointer;align-items:center;gap:12px;padding:10px 14px;font-family:inherit;display:flex}.tf-usual[aria-pressed=true]{border-color:var(--accent);background:var(--accent-tint)}.tf-day-strip{scrollbar-width:none;padding-inline:16px;gap:6px;margin-inline:-16px;padding-bottom:2px;display:flex;overflow-x:auto}@media (width>=1024px){.tf-day-strip{flex-wrap:wrap;margin-inline:0;padding-inline:0}}.tf-day-chip{border-radius:var(--radius-button);border:1px solid var(--border-input);background:var(--surface-card);width:56px;height:64px;color:var(--text-body);cursor:pointer;transition:background var(--motion-state) var(--motion-ease);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;font-family:inherit;display:flex}.tf-day-chip-sub{font-size:var(--text-meta-size);color:var(--text-meta)}.tf-day-chip-num{font-variant-numeric:tabular-nums;font-size:17px;font-weight:600}.tf-day-chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.tf-day-chip[aria-pressed=true] .tf-day-chip-sub{color:var(--nav-inactive)}.tf-choice-grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:6px;display:grid}.tf-choice-row{flex-wrap:wrap;gap:6px;display:flex}.tf-choice{border:1px solid var(--border-input);background:var(--surface-card);min-width:64px;height:44px;color:var(--text-body);font-family:inherit;font-size:var(--text-body-size);font-variant-numeric:tabular-nums;cursor:pointer;transition:background var(--motion-state) var(--motion-ease);border-radius:12px;padding:0 12px;font-weight:500}.tf-choice[aria-pressed=true],.tf-choice[aria-checked=true]{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.tf-inline-field{font-size:var(--text-secondary-size);color:var(--text-secondary);align-items:center;gap:10px;display:flex}.tf-inline-field .tf-field-control{width:auto;height:44px}.tf-inline-field .tf-field-control[data-active=true]{border-color:var(--accent)}.tf-option-cols{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}@media (width>=1024px){.tf-option-cols{grid-template-columns:repeat(2,minmax(0,1fr))}}.tf-warning{border-radius:var(--radius-chip);background:var(--attention-tint);color:var(--text-on-attention);font-size:var(--text-secondary-size);align-self:flex-start;align-items:center;gap:6px;padding:2px 10px;display:inline-flex}@media (hover:hover){.tf-day-chip:not([aria-pressed=true]):hover,.tf-choice:not([aria-pressed=true]):not([aria-checked=true]):hover,.tf-usual:hover{background:var(--accent-tint)}}.tf-cal-range{font-size:var(--text-secondary-size);color:var(--text-secondary)}.tf-cal-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}button.tf-quick{cursor:pointer;font-family:inherit}@media (width>=1024px){.tf-cal-actions{display:none}}.tf-cal-nav{align-items:center;gap:4px;display:flex}.tf-cal-nav .tf-icon-button{color:var(--accent);margin:0}.tf-cal-nav-label{font-size:var(--text-body-size);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:500}.tf-cal-this-week{border-radius:var(--radius-chip);height:32px}.tf-cal-mode{margin-inline-start:auto}.tf-cal-mode .tf-segmented[data-tone=accent] .tf-segmented-option{border-radius:10px;height:36px}.tf-cal-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.tf-cal-strip-day{border:1px solid var(--border-card);border-radius:var(--radius-button);background:var(--surface-card);color:var(--text-body);cursor:pointer;transition:background var(--motion-state) var(--motion-ease);flex-direction:column;align-items:center;gap:2px;padding:6px 0 7px;font-family:inherit;display:flex}.tf-cal-strip-day[data-today=true]{border-color:var(--accent);color:var(--accent)}.tf-cal-strip-day[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--text-on-accent)}.tf-cal-strip-label{font-size:var(--text-meta-size);color:var(--text-secondary);line-height:1.3}.tf-cal-strip-day[aria-pressed=true] .tf-cal-strip-label{color:var(--text-on-accent)}.tf-cal-strip-num{font-size:var(--text-body-size);font-variant-numeric:tabular-nums;font-weight:500;line-height:1.3}.tf-cal-strip-day[data-today=true] .tf-cal-strip-num,.tf-cal-strip-day[aria-pressed=true] .tf-cal-strip-num{font-weight:600}.tf-cal-strip-dots{gap:3px;height:5px;display:flex}.tf-cal-strip-dots span{border-radius:var(--radius-chip);background:var(--accent);width:5px;height:5px}.tf-cal-strip-day[aria-pressed=true] .tf-cal-strip-dots span{background:var(--text-on-accent)}.tf-cal-strip-dots span[data-kind=pending],.tf-cal-strip-day[aria-pressed=true] .tf-cal-strip-dots span[data-kind=pending]{background:var(--surface-attention)}.tf-cal-day-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.tf-cal-day-title{font-size:var(--text-body-size);margin:0;font-weight:500}.tf-cal-day-meta{font-size:var(--text-secondary-size);color:var(--text-secondary)}.tf-cal-allday{background:var(--surface-inactive);color:var(--text-secondary);font-size:var(--text-secondary-size);border-radius:10px;align-items:center;gap:8px;padding:8px 12px;display:flex}.tf-wcal{border-radius:var(--radius-tile);background:var(--surface-card);border:1px solid var(--border-card);overflow:hidden}.tf-wcal-head,.tf-wcal-body{grid-template-columns:var(--wcal-time) repeat(var(--wcal-days,7), minmax(0, 1fr));display:grid}.tf-wcal-head{border-bottom:1px solid var(--border-inner)}.tf-wcal-body{padding:10px 0 12px}.tf-wcal-day{border-inline-start:1px solid var(--border-inner);flex-direction:column;align-items:center;gap:2px;min-width:0;padding:8px 2px;display:flex}.tf-wcal-day-label{font-size:var(--text-meta-size);color:var(--text-secondary)}.tf-wcal-day[data-today=true] .tf-wcal-day-label{color:var(--accent)}.tf-wcal-day-num{border-radius:var(--radius-chip);min-width:28px;height:28px;font-size:var(--text-body-size);color:var(--text-body);justify-content:center;align-items:center;font-weight:500;display:inline-flex}.tf-wcal-day[data-past=true] .tf-wcal-day-num{color:var(--text-secondary)}.tf-wcal-day[data-today=true] .tf-wcal-day-num{background:var(--accent);color:var(--text-on-accent)}.tf-wcal-day-note{box-sizing:border-box;border-radius:var(--radius-chip);background:var(--surface-inactive);max-width:100%;color:var(--text-secondary);font-size:var(--text-meta-size);white-space:nowrap;text-overflow:ellipsis;padding:1px 6px;line-height:1.4;overflow:hidden}.tf-wcal-times{position:relative}.tf-wcal-hour{text-align:center;font-size:var(--text-meta-size);color:var(--text-meta);font-variant-numeric:tabular-nums;direction:ltr;line-height:1;position:absolute;inset-inline:0;transform:translateY(-50%)}.tf-wcal-col{border-inline-start:1px solid var(--border-inner);min-width:0;position:relative}.tf-wcal-line{background:var(--border-inner);height:1px;position:absolute;inset-inline:0}.tf-wcal-item{box-sizing:border-box;font-family:inherit;font-size:var(--text-meta-size);text-align:start;transition:background var(--motion-state) var(--motion-ease);border:0;border-radius:10px;flex-direction:column;align-items:stretch;margin:0;padding:3px 6px;line-height:1.25;text-decoration:none;display:flex;position:absolute;inset-inline:0;overflow:hidden}.tf-wcal-item[data-row=true]{flex-direction:row;align-items:baseline;gap:8px}.tf-wcal[data-variant=day] .tf-wcal-item{font-size:var(--text-secondary-size);padding:6px 10px}.tf-wcal-item[data-layer=back]{z-index:0}.tf-wcal-item[data-layer=mid]{z-index:1}.tf-wcal-item[data-layer=front]{z-index:2;inset-inline:3px}.tf-wcal[data-variant=day] .tf-wcal-item[data-layer=front]{inset-inline:6px}button.tf-wcal-item{cursor:pointer}.tf-wcal-title{font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;max-width:100%;font-weight:600;overflow:hidden}.tf-wcal-item[data-layer=back] .tf-wcal-title,.tf-wcal-item[data-kind=busy] .tf-wcal-title{font-weight:400}.tf-wcal-sub{font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:100%;overflow:hidden}.tf-wcal-meta{font-size:var(--text-meta-size);white-space:nowrap;flex-shrink:0;margin-inline-start:auto}.tf-wcal-item[data-kind=open],.tf-wcal-swatch[data-kind=open]{background:var(--status-done-bg);color:var(--status-done-ink)}.tf-wcal-item[data-kind=openApproval],.tf-wcal-swatch[data-kind=openApproval]{border:1px dashed var(--status-done-ink);color:var(--status-done-ink);background:0 0}.tf-wcal-item[data-kind=unbookable],.tf-wcal-swatch[data-kind=unbookable]{background:var(--green-bg);color:var(--text-secondary);opacity:.6}.tf-wcal-item[data-kind=lesson],.tf-wcal-swatch[data-kind=lesson]{background:var(--accent);color:var(--text-on-accent)}.tf-wcal-item[data-kind=lessonPast],.tf-wcal-swatch[data-kind=lessonPast]{background:var(--accent-tint);color:var(--accent)}.tf-wcal-item[data-kind=pending],.tf-wcal-swatch[data-kind=pending]{background:var(--surface-attention);color:var(--text-on-attention)}.tf-wcal-item[data-kind=blocked],.tf-wcal-swatch[data-kind=blocked]{background:var(--danger-tint);color:var(--danger)}.tf-wcal-item[data-kind=busy],.tf-wcal-swatch[data-kind=busy]{background:var(--surface-inactive);color:var(--text-secondary)}@media (hover:hover){button.tf-wcal-item[data-kind=lesson]:hover{background:var(--accent-press)}button.tf-wcal-item[data-kind=lessonPast]:hover{background:var(--surface-tile-hover)}}.tf-wcal-legend{font-size:var(--text-meta-size);color:var(--text-secondary);flex-wrap:wrap;gap:6px 16px;display:flex}.tf-wcal-legend>span{align-items:center;gap:6px;display:inline-flex}.tf-wcal-swatch{box-sizing:border-box;border-radius:var(--radius-chip);width:12px;height:12px}.tf-sheet-scrim[data-desktop=dialog] .tf-sheet{background:var(--surface-page)}@media (width>=1024px){.tf-sheet-scrim[data-desktop=dialog]{align-items:center}.tf-sheet-scrim[data-desktop=dialog] .tf-sheet{border-radius:var(--radius-card);max-width:520px;max-height:90vh}}.tf-block-detail{font-size:var(--text-secondary-size);color:var(--text-secondary);margin:0;line-height:1.55}.tf-block-form{flex-direction:column;gap:12px;display:flex}.tf-block-fields{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}@media (width>=1024px){.tf-block-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}.tf-block-error{font-size:var(--text-secondary-size);color:var(--danger)}.tf-block-list{border-top:1px solid var(--border-inner);flex-direction:column;gap:6px;padding-top:6px;display:flex}.tf-block-list-title{font-size:var(--text-body-size);margin:6px 0 0;font-weight:500}.tf-block-none{font-size:var(--text-secondary-size);color:var(--text-secondary)}.tf-block-row{background:var(--danger-tint);border-radius:10px;align-items:center;gap:10px;padding-block:8px;padding-inline:12px 8px;display:flex}.tf-block-row-main{flex-direction:column;flex:1;min-width:0;display:flex}.tf-block-row-label{font-size:var(--text-secondary-size);color:var(--text-body);font-weight:500}.tf-block-row-sub{font-size:var(--text-meta-size);color:var(--text-secondary);flex-wrap:wrap;gap:0 8px;display:flex}.tf-block-remove{border-radius:var(--radius-input);height:40px;color:var(--danger);font-family:inherit;font-size:var(--text-secondary-size);cursor:pointer;background:0 0;border:0;flex-shrink:0;padding:0 12px;font-weight:500}.tf-block-remove:disabled{opacity:.6;cursor:default}@media (hover:hover){.tf-block-remove:not(:disabled):hover{color:var(--danger-press)}}.tf-stepper{align-items:center;gap:10px;min-height:56px;padding:8px 0;display:flex}.tf-stepper+.tf-stepper{border-top:1px solid var(--border-inner)}.tf-stepper-label{min-width:0;font-size:var(--text-body-size);flex:1;line-height:1.35}.tf-stepper-controls{flex-shrink:0;align-items:center;gap:4px;display:flex}.tf-stepper-button{border:1px solid var(--border-input);background:var(--surface-card);width:36px;height:36px;color:var(--accent);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;display:flex}.tf-stepper-button:disabled{color:var(--text-disabled);cursor:default}.tf-stepper-value{text-align:center;min-width:76px;font-size:var(--text-secondary-size);font-variant-numeric:tabular-nums;font-weight:600}.tf-grid-cell[data-event=true]{background-image:repeating-linear-gradient(135deg, transparent 0 5px, var(--surface-inactive) 5px 9px)}.tf-grid-event{white-space:nowrap;text-overflow:ellipsis;color:var(--text-secondary);font-size:11px;display:block;overflow:hidden}.tf-week-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.tf-week-tab{border:1px solid var(--border-input);height:40px;color:var(--text-secondary);font-family:inherit;font-size:var(--text-secondary-size);white-space:nowrap;cursor:pointer;background:0 0;border-radius:12px;justify-content:center;align-items:center;gap:4px;padding:0 8px;font-weight:500;display:inline-flex}.tf-week-tab[aria-checked=true]{border-color:var(--accent);background:var(--accent-tint);color:var(--accent)}.tf-brushes{flex-wrap:wrap;gap:6px;display:flex}.tf-brush{border:1px solid var(--border-input);border-radius:var(--radius-chip);height:36px;color:var(--text-secondary);font-family:inherit;font-size:var(--text-secondary-size);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:0 12px;font-weight:500;display:inline-flex}.tf-brush[aria-checked=true]{border-color:var(--accent);background:var(--accent-tint);color:var(--accent)}.tf-day-summary{font-size:var(--text-secondary-size);gap:10px;padding:6px 0;display:flex}.tf-day-summary+.tf-day-summary{border-top:1px solid var(--border-inner)}.tf-day-summary-name{width:56px;color:var(--text-secondary);flex-shrink:0}.tf-day-summary-ranges{flex-wrap:wrap;gap:4px 10px;display:flex}.tf-range-dot{border-radius:var(--radius-chip);background:var(--accent-soft);width:8px;height:8px;margin-inline-end:4px;display:inline-block}.tf-range-dot[data-mode=manual]{background:var(--accent)}.tf-disclosure{width:100%;min-height:56px;color:inherit;text-align:start;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:10px 16px;font-family:inherit;display:flex}.tf-crumb{min-height:32px;font-size:var(--text-secondary-size);color:var(--text-link);align-self:flex-start;align-items:center;gap:4px;font-weight:500;text-decoration:none;display:inline-flex}.tf-page-head{flex-direction:column;gap:2px;display:flex}.tf-page-sub{font-size:var(--text-secondary-size);color:var(--text-secondary);font-variant-numeric:var(--numeral-feature)}.tf-action{box-sizing:border-box;border-radius:var(--radius-button);background:var(--accent);height:44px;color:var(--text-on-accent);font-family:inherit;font-size:var(--text-secondary-size);white-space:nowrap;cursor:pointer;transition:background var(--motion-state) var(--motion-ease);border:0;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-weight:600;text-decoration:none;display:inline-flex}.tf-action[data-tone=tint]{background:var(--accent-tint);color:var(--accent)}.tf-action[data-tone=quiet]{color:var(--text-secondary);background:0 0;font-weight:500}.tf-action[data-tone=danger]{color:var(--danger);background:0 0;font-weight:500}.tf-action[data-size=small]{height:40px;padding:0 14px}.tf-action[data-size=large]{height:48px;font-size:var(--text-body-size);padding:0 20px}.tf-action[aria-disabled=true],.tf-action:disabled{background:var(--accent-tint);color:var(--text-meta);cursor:default}.tf-action[data-tone=quiet]:disabled,.tf-action[data-tone=danger]:disabled{background:0 0}.tf-text-link{height:32px;color:var(--text-link);font-family:inherit;font-size:var(--text-secondary-size);cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;font-weight:500;text-decoration:none}.tf-badge-pill[data-tone=attention-soft],.tf-pill-button[data-tone=attention-soft]{background:var(--attention-tint);color:var(--text-on-attention)}.tf-badge-pill[data-size=large]{height:28px;font-size:var(--text-secondary-size);gap:4px;padding:0 12px}.tf-badge-pill[data-size=medium]{gap:4px;height:28px;padding:0 10px}.tf-empty-dashed{border-radius:var(--radius-tile);border:1px dashed var(--border-input);flex-direction:column;align-items:flex-start;gap:8px;padding:20px 16px;display:flex}.tf-chip-row[data-bleed=true]{margin-inline:-16px;padding-inline:16px}@media (width>=1024px){.tf-chip-row[data-bleed=true]{margin-inline:0;padding-inline:0}}.tf-segmented[data-size=large] .tf-segmented-option{justify-content:center;align-items:center;gap:6px;height:40px;padding:0 6px;display:inline-flex}.tf-segmented-badge{box-sizing:border-box;border-radius:var(--radius-chip);background:var(--accent);min-width:18px;height:18px;color:var(--text-on-accent);font-size:var(--text-meta-size);text-align:center;font-variant-numeric:var(--numeral-feature);padding:0 5px;font-weight:400;line-height:18px}.tf-profile-actions{flex-wrap:wrap;gap:8px;width:100%;display:flex}.tf-profile-actions>.tf-action:first-child{flex:auto}.tf-profile-top{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}.tf-profile-tabs{max-width:none}@media (width>=1024px){.tf-profile-actions{width:auto}.tf-profile-actions>.tf-action:first-child{flex:none}.tf-profile-top{grid-template-columns:repeat(2,minmax(0,1fr))}.tf-profile-tabs{max-width:420px}}.tf-next-tile{border-radius:var(--radius-tile);background:var(--accent-tint);color:inherit;flex-direction:column;gap:6px;padding:14px 16px;text-decoration:none;display:flex}.tf-balance-card{gap:12px;padding:16px}.tf-balance-value{font-variant-numeric:var(--numeral-feature);transition:color var(--motion-state) var(--motion-ease);font-size:26px;font-weight:600;line-height:1.2}.tf-two-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.tf-two-actions>.tf-action{padding:0 10px}.tf-contact-row{align-items:center;gap:10px;min-height:60px;padding:8px 16px;display:flex}.tf-contact-row+.tf-contact-row{border-top:1px solid var(--border-inner)}.tf-list-row{color:inherit;gap:12px;padding:12px 16px;text-decoration:none;display:flex}.tf-list-row+.tf-list-row{border-top:1px solid var(--border-inner)}.tf-list-row[data-align=center]{box-sizing:border-box;align-items:center;min-height:56px;padding:8px 16px}.tf-ellipsis{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tf-library-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tf-library-toolbar .tf-search{flex:100%;height:44px}.tf-library-item+.tf-library-item{border-top:1px solid var(--border-inner)}.tf-library-item[data-open=true]{background:var(--surface-page)}.tf-library-status{font-size:var(--text-meta-size);color:var(--text-meta);flex-shrink:0;font-weight:500}.tf-library-status[data-tone=accent]{color:var(--accent)}.tf-library-status[data-tone=done]{color:var(--status-done-ink)}.tf-library-edit{width:44px;height:44px;color:var(--text-meta);margin-inline-end:6px}.tf-inset-form{flex-direction:column;gap:10px;padding:14px 16px;display:flex}.tf-inset-form .tf-field-label{margin-bottom:4px;font-weight:400}.tf-inset-form .tf-field-control,.tf-library-item .tf-field-control{background:var(--surface-page);height:44px;padding:0 12px}.tf-form-card .tf-switch[data-track=end]{min-height:40px}.tf-form-card .tf-switch[data-track=end] .tf-switch-text>span:first-child{font-weight:500}.tf-form-card .tf-switch[data-track=end] .tf-switch-track{width:48px;height:28px}.tf-form-card .tf-switch[data-track=end] .tf-switch-knob{background:var(--surface-card);width:22px;height:22px}.tf-form-card .tf-switch[data-track=end] .tf-switch-track[data-on=true] .tf-switch-knob{inset-inline-start:23px}.tf-choice[data-size=small]{min-width:0;height:40px;font-size:var(--text-secondary-size)}.tf-choice[data-shape=pill]{border-radius:var(--radius-chip);padding:0 14px}.tf-choice-grid[data-cols="4"]{grid-template-columns:repeat(4,minmax(0,1fr))}.tf-summary-line{font-size:var(--text-card-title-size);font-variant-numeric:var(--numeral-feature);font-weight:500}@media (hover:hover){.tf-action:not([data-tone]):not(:disabled):not([aria-disabled=true]):hover{background:var(--accent-press)}.tf-action[data-tone=tint]:not(:disabled):not([aria-disabled=true]):hover{background:var(--surface-tile-hover)}.tf-action[data-tone=danger]:not(:disabled):hover{background:var(--danger-tint)}.tf-crumb:hover,.tf-text-link:hover{color:var(--text-link-hover)}a.tf-next-tile:hover{background:var(--surface-tile-hover)}a.tf-list-row:hover,.tf-library-edit:hover{background:var(--surface-inactive)}.tf-library-edit:hover{color:var(--accent)}}.tf-only-desktop{display:none}@media (width>=1024px){.tf-only-mobile{display:none}.tf-only-desktop{display:inline}}.tf-students-tiles{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width>=1024px){.tf-students-tiles{max-width:560px}}.tf-filter-tile{border-radius:var(--radius-tile);border:1px solid var(--border-card);background:var(--surface-card);min-height:64px;color:inherit;text-align:start;cursor:pointer;align-items:center;gap:12px;padding:10px 14px;font-family:inherit;display:flex}.tf-filter-tile[aria-pressed=true]{border-color:var(--accent);background:var(--accent-tint)}.tf-filter-tile-value{font-variant-numeric:tabular-nums;font-size:17px;font-weight:600;line-height:1.3}.tf-filter-tile-label{font-size:var(--text-meta-size);color:var(--text-secondary);line-height:1.3}.tf-search{border:1px solid var(--border-input);border-radius:var(--radius-input);background:var(--surface-card);min-width:0;height:48px;color:var(--text-meta);flex:1;align-items:center;gap:8px;padding:0 12px;display:flex}.tf-search:focus-within{outline:2px solid var(--accent);outline-offset:-1px}.tf-search input{min-width:0;height:100%;font-family:inherit;font-size:var(--text-control-size);color:var(--text-body);background:0 0;border:0;outline:none;flex:1}.tf-search button{color:var(--text-meta);cursor:pointer;background:0 0;border:0;display:flex}.tf-students-add-mobile .tf-icon-button{border-radius:var(--radius-button);background:var(--accent);width:48px;height:48px;color:var(--text-on-accent);margin:0}.tf-students-add-mobile .tf-icon-button[aria-disabled=true]{background:var(--accent-tint);color:var(--text-meta);pointer-events:none}@media (width>=1024px){.tf-students-add-mobile{display:none}}.tf-chip-row{scrollbar-width:none;gap:6px;display:flex;overflow-x:auto}.tf-filter-chip{border:1px solid var(--border-input);border-radius:var(--radius-chip);height:36px;color:var(--text-secondary);font-family:inherit;font-size:var(--text-secondary-size);cursor:pointer;background:0 0;flex-shrink:0;align-items:center;gap:6px;padding:0 12px;font-weight:500;display:inline-flex}.tf-filter-chip[aria-checked=true]{border-color:var(--accent);background:var(--accent);color:var(--text-on-accent)}.tf-filter-chip-count{font-size:var(--text-meta-size);color:var(--text-meta)}.tf-filter-chip[aria-checked=true] .tf-filter-chip-count{color:var(--nav-inactive)}.tf-sort-row{font-size:var(--text-secondary-size);color:var(--text-secondary);align-items:center;gap:4px;display:flex}@media (width>=1024px){.tf-sort-row{display:none}}.tf-sort-button{height:32px;color:var(--text-secondary);font-family:inherit;font-size:var(--text-secondary-size);cursor:pointer;background:0 0;border:0;align-items:center;gap:2px;padding:0 8px;display:inline-flex}.tf-sort-button[aria-pressed=true]{color:var(--accent);font-weight:600}.tf-students-head{display:none}.tf-student-row{box-sizing:border-box;min-height:64px;color:inherit;grid-template-columns:minmax(0,1fr) auto 16px;grid-template-areas:"name badges chev""next badges chev";align-items:center;gap:2px 12px;padding:10px 16px;text-decoration:none;display:grid}.tf-student-row+.tf-student-row{border-top:1px solid var(--border-inner)}.tf-student-row>svg{grid-area:chev}.tf-student-name{grid-area:name;align-items:baseline;gap:8px;min-width:0;font-weight:500;display:flex}.tf-student-status{font-size:var(--text-meta-size);color:var(--text-meta);flex-shrink:0;font-weight:400}.tf-student-status[data-tone=accent]{color:var(--accent)}.tf-student-name-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tf-student-row[data-muted=true] .tf-student-name{color:var(--text-secondary)}.tf-student-phone{font-size:var(--text-secondary-size);color:var(--text-meta);display:none}.tf-student-next{font-size:var(--text-secondary-size);color:var(--text-secondary);grid-area:next}.tf-student-badges{flex-direction:column;grid-area:badges;align-items:flex-end;gap:4px;display:flex}.tf-student-badges .tf-badge-pill{height:24px;padding:0 10px}.tf-badge-pill{border-radius:var(--radius-chip);background:var(--surface-inactive);height:22px;color:var(--text-meta);font-size:var(--text-meta-size);white-space:nowrap;align-items:center;padding:0 8px;font-weight:500;display:inline-flex}.tf-badge-pill[data-tone=accent]{background:var(--accent-tint);color:var(--accent)}.tf-badge-pill[data-tone=attention]{background:var(--surface-attention);color:var(--text-on-attention)}.tf-badge-pill[data-tone=danger]{background:var(--danger-tint);color:var(--danger)}@media (width>=1024px){.tf-students-head,.tf-student-row{grid-template-columns:minmax(0,2fr) 140px minmax(0,2fr) minmax(0,1.6fr);grid-template-areas:none;column-gap:16px;display:grid}.tf-student-row{min-height:56px;padding:8px 20px}.tf-student-row>svg{display:none}.tf-students-head{border-bottom:1px solid var(--border-inner);font-size:var(--text-meta-size);color:var(--text-meta);align-items:center;padding:4px 20px}.tf-students-head button{height:36px;font-family:inherit;font-size:var(--text-meta-size);color:var(--text-meta);text-align:start;cursor:pointer;background:0 0;border:0;justify-self:start;align-items:center;gap:4px;padding:0;display:inline-flex}.tf-students-head button[aria-sort=ascending],.tf-students-head button[aria-sort=descending]{color:var(--accent);font-weight:600}.tf-student-name,.tf-student-phone,.tf-student-next,.tf-student-badges,.tf-student-row>svg{grid-area:auto}.tf-student-phone{display:block}.tf-student-badges{flex-flow:wrap;justify-content:flex-start;align-items:center}}@media (hover:hover){.tf-student-row:hover{background:var(--surface-inactive)}.tf-students-head button:hover{color:var(--accent)}.tf-filter-tile:not([aria-pressed=true]):hover,.tf-filter-chip:not([aria-checked=true]):hover{background:var(--accent-tint)}}.tf-only-desktop-block{display:none}@media (width>=1024px){.tf-only-mobile-block{display:none}.tf-only-desktop-block{display:block}}.tf-field{flex-direction:column;display:flex}.tf-card-link{color:inherit;gap:6px;padding:14px 16px;text-decoration:none}.tf-card-eyebrow{font-size:var(--text-meta-size);color:var(--text-secondary)}.tf-clamp-2,.tf-clamp-3{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.tf-clamp-2{-webkit-line-clamp:2}.tf-clamp-3{-webkit-line-clamp:3}.tf-undo-bar{background:var(--status-done-bg);color:var(--status-done-ink);font-size:var(--text-secondary-size);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;font-weight:500;display:flex}.tf-date-block{width:56px;color:var(--text-meta);font-size:var(--text-meta-size);flex-direction:column;flex-shrink:0;align-items:center;padding-top:2px;line-height:1.4;display:flex}.tf-date-block>span:first-child{color:var(--text-body);font-size:17px;font-weight:600;line-height:1.2}.tf-date-block[data-muted=true]>span:first-child{color:var(--text-meta)}.tf-library-row{min-width:0;min-height:60px;color:inherit;text-align:start;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:12px;padding-block:10px;padding-inline:16px 4px;font-family:inherit;display:flex}.tf-library-name{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.tf-contact-button{border-radius:var(--radius-input);width:44px;height:44px;color:var(--accent);background:var(--accent-tint);margin:0}@media (hover:hover){a.tf-card-link:hover,.tf-library-row:hover{background:var(--surface-inactive)}}.tf-form-cards{flex-direction:column;gap:12px;display:flex}@media (width>=1024px){.tf-form-cards{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px;display:grid}.tf-form-cards>.tf-save-bar{grid-column:1/-1}}.tf-form-col{display:contents}@media (width>=1024px){.tf-form-col{flex-direction:column;gap:16px;min-width:0;display:flex}}.tf-form-card{gap:12px;padding:14px 16px 16px}.tf-form-card .tf-field-label{margin-bottom:4px;font-weight:400}.tf-form-card .tf-field-control{background:var(--surface-page)}.tf-form-card input.tf-field-control{height:48px;padding:0 12px}.tf-form-card textarea.tf-field-control{padding:10px 12px;line-height:1.5}@media (width>=1024px){.tf-form-cards{gap:16px}}.tf-form-grid{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}@media (width>=1024px){.tf-form-grid[data-cols="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}.tf-form-grid[data-cols="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}}.tf-tag-input{box-sizing:border-box;border:1px solid var(--border-input);border-radius:var(--radius-input);background:var(--surface-page);flex-wrap:wrap;align-items:center;gap:6px;min-height:48px;padding:6px 8px;display:flex}.tf-tag-input:focus-within{outline:2px solid var(--accent);outline-offset:-1px}.tf-tag-input input{min-width:100px;height:32px;font-family:inherit;font-size:var(--text-control-size);color:var(--text-body);background:0 0;border:0;outline:none;flex:1}.tf-tag{border-radius:var(--radius-chip);background:var(--accent-tint);height:32px;color:var(--accent);font-size:var(--text-secondary-size);align-items:center;gap:2px;padding-inline:12px 4px;font-weight:500;display:inline-flex}.tf-tag button{border-radius:var(--radius-chip);width:24px;height:24px;color:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex}.tf-save-bar{bottom:calc(60px + env(safe-area-inset-bottom));z-index:4;background:var(--surface-page);border-top:1px solid var(--border-inner);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 0;display:flex;position:sticky}.tf-save-bar>.tf-action[type=submit]{flex:auto}@media (width>=1024px){.tf-save-bar{bottom:0}.tf-save-bar>.tf-action[type=submit]{flex:none}}.tf-button[data-icon=true]{justify-content:center;align-items:center;gap:var(--space-2);display:inline-flex}.tf-button[data-variant=tint]{background:var(--accent-tint);color:var(--accent)}.tf-button[data-variant=ghost]{color:var(--text-secondary);background:0 0}.tf-button[data-variant=dangerText]{color:var(--danger);background:0 0}.tf-button[data-variant=tint]:disabled{background:var(--surface-inactive);color:var(--text-disabled)}.tf-button[data-variant=ghost]:disabled,.tf-button[data-variant=dangerText]:disabled{color:var(--text-disabled);background:0 0}@media (hover:hover){.tf-button[data-variant=tint]:not(:disabled):hover{background:var(--surface-tile-hover)}.tf-button[data-variant=ghost]:not(:disabled):hover{background:var(--accent-tint)}.tf-button[data-variant=dangerText]:not(:disabled):hover{background:var(--danger-tint);color:var(--danger-press)}}.tf-switch[data-track=end]{text-align:start;gap:12px;width:100%}.tf-switch[data-track=end] .tf-switch-track{order:2;width:44px;height:26px}.tf-switch[data-track=end] .tf-switch-knob{background:var(--surface-page);width:20px;height:20px}.tf-switch[data-track=end] .tf-switch-track[data-on=true] .tf-switch-knob{inset-inline-start:21px}.tf-switch[data-track=end] .tf-switch-text{flex:1;min-width:0}.tf-switch[data-track=end] .tf-switch-hint{text-wrap:pretty;line-height:1.45}.tf-stepper[data-boxed=true]{gap:12px}.tf-stepper[data-boxed=true] .tf-stepper-controls{border:1px solid var(--border-input);border-radius:var(--radius-input);background:var(--surface-page);gap:0}.tf-stepper[data-boxed=true] .tf-stepper-button{background:0 0;border:0;width:40px;height:40px}.tf-stepper[data-boxed=true] .tf-stepper-value{min-width:52px;font-size:var(--text-body-size);font-weight:500}.tf-segmented[data-tone=accent]{border-radius:var(--radius-input);background:var(--accent-tint);gap:2px;padding:2px;display:inline-grid}.tf-segmented[data-tone=accent] .tf-segmented-option{height:40px;color:var(--accent);transition:background var(--motion-state) var(--motion-ease);padding:0 14px;font-weight:500}.tf-segmented[data-tone=accent] .tf-segmented-option[aria-selected=true]{background:var(--accent);color:var(--text-on-accent);font-weight:500}.tf-filter-chip[data-surface=card]{background:var(--surface-card);transition:background var(--motion-state) var(--motion-ease);padding:0 14px}.tf-filter-chip[data-surface=card][aria-checked=true]{background:var(--accent)}.tf-pay-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 20px;display:flex}.tf-pay-month{align-items:center;gap:4px;display:flex}.tf-pay-month .tf-icon-button{width:44px;height:44px;color:var(--accent);margin:0}.tf-pay-month .tf-icon-button:first-child{margin-inline-start:-10px}.tf-pay-month-label{text-align:center;min-width:120px;font-size:var(--text-card-title-size);font-variant-numeric:tabular-nums;font-weight:500}.tf-pay-month .tf-link{min-height:36px;margin-inline-start:4px;padding:0 4px;font-weight:500}.tf-pay-tiles{flex:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;min-width:0;display:grid}@media (width>=1024px){.tf-pay-tiles{flex:0 520px}}.tf-pay-tile{border-radius:var(--radius-tile);border:1px solid var(--border-card);background:var(--surface-card);flex-direction:column;gap:2px;padding:10px 14px;display:flex}.tf-pay-tile[data-attention=true]{background:var(--surface-attention);border-color:var(--surface-attention);color:var(--text-on-attention)}.tf-pay-tile-value{font-size:var(--text-card-title-size);font-variant-numeric:tabular-nums;text-align:start;font-weight:600;line-height:1.3}@media (width>=1024px){.tf-pay-tile-value{font-size:20px}}.tf-pay-tile-label{font-size:var(--text-meta-size);color:var(--text-secondary);line-height:1.35}.tf-pay-tile[data-attention=true] .tf-pay-tile-label{color:var(--text-on-attention)}.tf-pay-search{flex:240px;padding:0 14px}@media (width>=1024px){.tf-pay-search{max-width:320px}}.tf-pay-chips{margin-inline:-16px;padding-inline:16px}@media (width>=1024px){.tf-pay-chips{margin-inline:0;padding-inline:0}}.tf-pay-sort{font-size:var(--text-meta-size);color:var(--text-meta);gap:8px}.tf-pay-sort .tf-sort-button{padding:0 4px}.tf-pay-head{display:none}.tf-pay-student+.tf-pay-student{border-top:1px solid var(--border-inner)}.tf-pay-row{width:100%;min-height:64px;font-family:inherit;font-size:var(--text-body-size);color:inherit;text-align:start;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:10px 16px;display:flex}.tf-pay-row[aria-expanded=true]{background:var(--surface-inactive)}.tf-pay-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.tf-pay-name{align-items:baseline;gap:2px 8px;min-width:0;display:flex}.tf-pay-name-text{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.tf-pay-late{font-size:var(--text-meta-size);color:var(--danger);white-space:nowrap;flex-shrink:0;font-weight:500}.tf-pay-sub{font-size:var(--text-secondary-size);color:var(--text-secondary);font-variant-numeric:tabular-nums}.tf-pay-status{border-radius:var(--radius-chip);background:var(--surface-inactive);height:24px;color:var(--text-secondary);font-size:var(--text-meta-size);white-space:nowrap;font-variant-numeric:tabular-nums;transition:background var(--motion-state) var(--motion-ease), color var(--motion-state) var(--motion-ease);flex-shrink:0;align-items:center;padding:0 10px;font-weight:500;display:inline-flex}.tf-pay-status[data-tone=owed]{background:var(--status-owed-bg);color:var(--text-on-attention)}.tf-pay-status[data-tone=late]{background:var(--danger-tint);color:var(--danger)}.tf-pay-status[data-tone=paid]{background:var(--status-done-bg);color:var(--status-done-ink)}.tf-pay-cell{font-size:var(--text-secondary-size);color:var(--text-secondary);font-variant-numeric:tabular-nums;text-align:start}.tf-pay-cell[data-empty=true]{color:var(--text-meta)}.tf-pay-cell[data-strong=true]{font-size:var(--text-body-size);color:var(--text-body);font-weight:600}@media (width>=1024px){.tf-pay-head,.tf-pay-row{grid-template-columns:minmax(0,2.2fr) 72px 96px 104px minmax(0,1.2fr) minmax(0,1.5fr) 18px;align-items:center;gap:16px;display:grid}.tf-pay-row{min-height:56px;padding:8px 20px}.tf-pay-name{flex-wrap:wrap}.tf-pay-status{display:none}.tf-pay-head{border-bottom:1px solid var(--border-inner);padding:4px 20px}.tf-pay-head button{height:36px;font-family:inherit;font-size:var(--text-meta-size);color:var(--text-meta);text-align:start;cursor:pointer;background:0 0;border:0;justify-self:start;align-items:center;gap:4px;padding:0;display:inline-flex}.tf-pay-head button svg{color:var(--text-disabled)}.tf-pay-head button[aria-sort=ascending],.tf-pay-head button[aria-sort=descending]{color:var(--accent);font-weight:600}.tf-pay-head button[aria-sort=ascending] svg,.tf-pay-head button[aria-sort=descending] svg{color:var(--accent)}}.tf-pay-detail{background:var(--surface-inactive);border-top:1px solid var(--border-inner);grid-template-columns:minmax(0,1fr);gap:16px;padding:14px 16px 18px;display:grid}@media (width>=1024px){.tf-pay-detail{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;padding:16px 20px 20px}}.tf-pay-balance{flex-direction:column;gap:2px;display:flex}.tf-pay-balance-value{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.tf-pay-balance-amount{font-size:var(--text-tile-value-size);font-variant-numeric:tabular-nums;transition:color var(--motion-state) var(--motion-ease);font-weight:600;line-height:1.25}.tf-pay-balance-amount[data-clear=true]{color:var(--status-done-ink)}.tf-pay-balance-meta{font-size:var(--text-secondary-size);color:var(--text-secondary)}.tf-pay-balance-meta[data-late=true]{color:var(--danger)}.tf-pay-unpaid{min-height:40px;font-size:var(--text-secondary-size);align-items:center;gap:10px;padding:6px 12px;display:flex}.tf-pay-unpaid+.tf-pay-unpaid{border-top:1px solid var(--border-inner)}.tf-pay-undo{font-size:var(--text-secondary-size);color:var(--status-done-ink);flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.tf-pay-undo .tf-link{min-height:32px;padding:0 4px;font-weight:500}.tf-pay-note{font-size:var(--text-secondary-size);color:var(--text-secondary)}.tf-pay-note[data-error=true]{color:var(--danger)}.tf-pay-chart-card{gap:10px;padding:14px 16px;overflow:visible}.tf-pay-chart-title{font-size:var(--text-secondary-size);font-weight:500}.tf-pay-legend{font-size:var(--text-meta-size);color:var(--text-secondary);gap:12px;display:flex}.tf-pay-legend>span{align-items:center;gap:4px;display:inline-flex}.tf-pay-legend [data-kind],.tf-pay-bar-stack [data-kind]{background:var(--accent)}.tf-pay-legend [data-kind]{border-radius:var(--radius-chip);width:10px;height:10px}.tf-pay-legend [data-kind=unpaid],.tf-pay-bar-stack [data-kind=unpaid]{background:var(--surface-attention)}.tf-pay-legend [data-kind=future],.tf-pay-bar-stack [data-kind=future]{background:var(--border-input)}.tf-pay-chart{grid-template-columns:repeat(6,minmax(0,1fr));align-items:end;gap:8px;display:grid}.tf-pay-bar{flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex}.tf-pay-bar-value{font-size:var(--text-meta-size);color:var(--text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums}.tf-pay-bar-stack{flex-direction:column-reverse;gap:2px;width:100%;max-width:40px;height:96px;display:flex}.tf-pay-bar-stack>div{border-radius:4px}.tf-pay-bar-label{font-size:var(--text-meta-size);color:var(--text-meta)}.tf-pay-bar[data-current=true] .tf-pay-bar-label{color:var(--text-body);font-weight:600}.tf-pay-nomatch{border-radius:var(--radius-tile);border:1px dashed var(--border-input);flex-direction:column;align-items:flex-start;gap:8px;padding:20px 16px;font-weight:500;display:flex}.tf-pay-nomatch .tf-link{min-height:36px;font-weight:500}.tf-pay-empty{align-items:flex-start;gap:10px;padding:20px 16px}.tf-pay-empty-title{font-size:var(--text-card-title-size);font-weight:500}.tf-pay-empty-detail{font-size:var(--text-secondary-size);color:var(--text-secondary);text-wrap:pretty;line-height:1.55}@media (hover:hover){.tf-pay-row:hover{background:var(--surface-inactive)}}.tf-billing-notice{border-radius:var(--radius-tile);background:var(--status-done-bg);color:var(--status-done-ink);font-size:var(--text-secondary-size);align-items:center;gap:10px;padding:12px 16px;font-weight:500;display:flex}.tf-billing-notice[data-tone=attention]{background:var(--surface-attention);color:var(--text-on-attention)}.tf-billing-plan{gap:14px;padding:16px}.tf-billing-price{font-size:var(--text-tile-value-size);font-variant-numeric:tabular-nums;font-weight:500;line-height:1.2}.tf-billing-invite{border-top:1px solid var(--border-inner);min-height:44px;color:inherit;align-items:center;gap:10px;padding-top:12px;text-decoration:none;display:flex}.tf-billing-invite-text{min-width:0;font-size:var(--text-secondary-size);color:var(--text-secondary);flex:1}.tf-billing-invite-action{font-size:var(--text-secondary-size);color:var(--text-link);flex-shrink:0;align-items:center;gap:2px;font-weight:500;display:inline-flex}.tf-billing-usage{border-top:1px solid var(--border-inner);flex-direction:column;gap:12px;padding-top:14px;display:flex}.tf-billing-usage h3{font-size:var(--text-secondary-size);color:var(--text-secondary);margin:0;font-weight:500}.tf-billing-card{flex-direction:column;gap:10px;padding:14px 16px;display:flex}.tf-meter{border-radius:var(--radius-chip);background:var(--surface-tile);height:6px;overflow:hidden}.tf-meter>div{border-radius:inherit;background:var(--accent);height:100%}.tf-meter[data-level=near]>div,.tf-meter[data-level=full]>div{background:var(--danger)}.tf-plan-grid{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}@media (width>=1024px){.tf-plan-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.tf-plan{gap:10px;padding:16px}.tf-plan[data-current=true]{border:2px solid var(--accent);padding:15px}.tf-invoice-row{border:0;border-top:1px solid var(--border-inner);width:100%;min-height:52px;font-family:inherit;font-size:var(--text-body-size);color:inherit;text-align:start;cursor:pointer;background:0 0;align-items:center;gap:12px;padding:0 16px;display:flex}.tf-invoice-row:first-child{border-top:0}.tf-invoice-all{border:0;border-top:1px solid var(--border-inner);width:100%;min-height:48px;font-family:inherit;font-size:var(--text-secondary-size);color:var(--text-link);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:6px;font-weight:500;display:flex}.tf-invoice-all:first-child{border-top:0}.tf-undo-bar[data-tone=attention]{background:var(--surface-attention);color:var(--text-on-attention)}@media (hover:hover){.tf-invoice-row:hover,.tf-invoice-all:hover{background:var(--accent-tint)}}@media (width>=1024px){.tf-two-col[data-even=true]{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.tf-settings-link{flex-direction:row;align-items:center;gap:10px;padding-block:10px;padding-inline:12px 10px;display:flex}.tf-settings-link-url{text-align:end;text-overflow:ellipsis;white-space:nowrap;direction:ltr;unicode-bidi:isolate;flex:1;min-width:0;overflow:hidden}.tf-settings-link-url>span{color:var(--text-meta)}.tf-icon-button[data-tone=tint]{background:var(--accent-tint);color:var(--accent);flex-shrink:0;margin:0}.tf-settings-edit{gap:10px;padding:14px 16px}.tf-settings-edit label{font-size:var(--text-secondary-size);color:var(--text-secondary)}.tf-field-pair{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}@media (width>=768px){.tf-field-pair{grid-template-columns:repeat(2,minmax(0,1fr))}}.tf-settings-edit .tf-slug-input{background:var(--surface-page)}.tf-settings-hours{flex-direction:column;padding:6px 16px;display:flex}.tf-settings-hours .tf-day-summary{align-items:baseline;gap:12px}.tf-settings-hours .tf-day-summary-ranges{flex:1;gap:4px 12px;min-width:0}.tf-settings-hours .tf-range-dot{background:var(--dot-instant);margin-inline-end:6px}.tf-settings-hours .tf-range-dot[data-mode=manual]{background:var(--dot-manual)}.tf-settings-row{border:0;border-top:1px solid var(--border-inner);width:100%;min-height:56px;font-family:inherit;font-size:var(--text-body-size);color:inherit;text-align:start;background:0 0;align-items:center;gap:12px;padding:0 16px;text-decoration:none;display:flex}.tf-settings-row:first-child{border-top:0}.tf-settings-row[data-tall=true]{min-height:60px;padding-block:8px}.tf-settings-row-label{flex:1;min-width:0}.tf-settings-row-meta{font-size:var(--text-secondary-size);color:var(--text-secondary);font-variant-numeric:tabular-nums}.tf-settings-row>.tf-switch,.tf-settings-row>.tf-stepper{flex:1;min-width:0}.tf-settings-row>.tf-stepper{padding:0}.tf-settings-block{flex-direction:column;gap:10px;padding:14px 16px;display:flex}.tf-settings-block+.tf-settings-block{border-top:1px solid var(--border-inner)}.tf-settings-block-head{align-items:center;gap:12px;display:flex}.tf-settings-block-title{flex:1;font-weight:500}.tf-settings-block-detail{font-size:var(--text-secondary-size);color:var(--text-secondary);text-wrap:pretty;line-height:1.55}.tf-settings-reminder{font-size:var(--text-secondary-size);flex-wrap:wrap;align-items:center;gap:8px;padding:0 16px 12px;display:flex}@media (hover:hover){a.tf-settings-row:hover,button.tf-settings-row:hover{background:var(--accent-tint)}}.tf-settings-section{flex-direction:column;gap:8px;display:flex}.tf-slug-input{border:1px solid var(--border-input);border-radius:var(--radius-input);background:var(--surface-card);height:48px;font-size:var(--text-control-size);align-items:center;padding:0 12px;display:flex}.tf-slug-input:focus-within{border-color:var(--accent)}.tf-slug-input span{color:var(--text-meta);white-space:nowrap}.tf-slug-input input{min-width:0;height:100%;font-family:inherit;font-size:inherit;color:var(--text-body);background:0 0;border:0;outline:none;flex:1}.tf-notif-row{align-items:center;gap:12px;min-height:52px;display:flex}.tf-notif-row+.tf-notif-row{border-top:1px solid var(--border-inner)}.tf-notif-label{min-width:0;font-size:var(--text-secondary-size);flex:1}.tf-notif-label[data-off=true]{color:var(--text-secondary)}.tf-channel{border:1px solid var(--border-input);width:40px;height:36px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;display:flex}.tf-channel[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--text-on-accent)}.tf-notif-page{max-width:calc(var(--content-max) + 32px)}@media (width>=1024px){.tf-notif-page{max-width:calc(var(--content-max) + 80px)}}.tf-notif-group{flex-direction:column;gap:8px;display:flex}.tf-notif-heading{font-size:var(--text-secondary-size);color:var(--text-secondary);margin:0;padding-inline:4px;font-weight:500}.tf-notif-heading[data-tone=attention]{color:var(--text-body);font-weight:600}.tf-notif-list{border-radius:var(--radius-card);background:var(--surface-card);border:1px solid var(--border-card);flex-direction:column;display:flex;overflow:hidden}.tf-notif-item{color:inherit;transition:background var(--motion-state) var(--motion-ease);align-items:flex-start;gap:12px;padding:14px 16px;text-decoration:none;display:flex}.tf-notif-item+.tf-notif-item{border-top:1px solid var(--border-inner)}.tf-notif-item[data-attention=true]{align-items:center}.tf-notif-item[data-unread=true]{background:var(--accent-tint)}.tf-notif-icon{background:var(--accent-tint);width:36px;height:36px;color:var(--accent);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.tf-notif-item[data-unread=true] .tf-notif-icon{background:var(--surface-card)}.tf-notif-icon[data-tone=attention]{background:var(--surface-attention);color:var(--text-on-attention)}.tf-notif-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.tf-notif-title{font-size:var(--text-body-size);color:var(--text-body);text-wrap:pretty;line-height:1.45}.tf-notif-item[data-unread=true] .tf-notif-title,.tf-notif-item[data-attention=true] .tf-notif-title{font-weight:500}.tf-notif-when{font-size:var(--text-meta-size);color:var(--text-meta);font-variant-numeric:tabular-nums}.tf-notif-action{background:var(--accent);height:36px;color:var(--text-on-accent);font-size:var(--text-secondary-size);white-space:nowrap;border-radius:12px;flex-shrink:0;align-items:center;padding:0 12px;font-weight:600;display:inline-flex}.tf-unread-dot{border-radius:var(--radius-chip);background:var(--surface-attention);outline:1px solid var(--text-on-attention);flex-shrink:0;width:8px;height:8px;margin-top:8px}.tf-notif-empty{padding:var(--space-7) var(--space-5);border-radius:var(--radius-card);background:var(--surface-card);border:1px solid var(--border-card);flex-direction:column;gap:4px;display:flex}.tf-notif-empty-title{font-size:var(--text-card-title-size);font-weight:500}.tf-notif-empty-detail{font-size:var(--text-secondary-size);color:var(--text-secondary)}@media (hover:hover){a.tf-notif-item:hover{background:var(--surface-tile-hover)}}.tf-portal{gap:22px}.tf-portal-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.tf-portal-title{margin:0;font-size:22px;font-weight:600;line-height:1.25}.tf-portal-sub{font-size:var(--text-secondary-size);color:var(--text-secondary)}.tf-portal-h2{font-size:var(--text-secondary-size);color:var(--text-secondary);margin:0;font-weight:500}.tf-portal-h2[data-strong]{font-size:var(--text-body-size);color:var(--text-body);font-weight:600}.tf-portal-h2-row{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.tf-portal-more{font-size:var(--text-secondary-size);color:var(--text-link);font-weight:500;text-decoration:none}.tf-portal-section{flex-direction:column;gap:8px;display:flex}.tf-portal-hero{background:var(--surface-tile);border-radius:20px;flex-direction:column;gap:14px;padding:18px;display:flex}.tf-portal-hero-when{flex-wrap:wrap;align-items:baseline;gap:2px 10px;font-size:22px;font-weight:600;line-height:1.3;display:flex}.tf-portal-card{background:var(--surface-card);border:1px solid var(--border-card);color:inherit;border-radius:20px;flex-direction:column;gap:10px;padding:16px;display:flex}.tf-portal-card-link{gap:6px;text-decoration:none}.tf-portal-excerpt{font-size:var(--text-body-size);color:var(--text-prose);-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.6;display:-webkit-box;overflow:hidden}.tf-portal-prose{font-size:var(--text-body-size);color:var(--text-prose);text-wrap:pretty;margin:0;line-height:1.6}.tf-portal-note{background:var(--surface-tile);color:var(--text-body);font-size:var(--text-secondary-size);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:12px 14px;line-height:1.5;display:flex}.tf-portal-note[data-tone=attention]{color:var(--text-on-attention);background:#ffe3ad;justify-content:flex-start}.tf-portal-note[data-tone=danger]{background:var(--danger-tint);color:var(--danger)}.tf-portal-note[data-tone=done]{background:var(--status-done-bg);color:var(--status-done-ink);justify-content:flex-start}.tf-portal-cta{background:var(--accent);height:44px;color:var(--text-on-accent);font-family:inherit;font-size:var(--text-control-size);cursor:pointer;transition:background var(--motion-state) var(--motion-ease);border:0;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-weight:600;text-decoration:none;display:inline-flex}.tf-portal-cta[data-block]{width:100%;height:48px;display:flex}.tf-portal-cta[data-tall]{height:54px}.tf-portal-cta:disabled{background:var(--surface-inactive);color:var(--text-meta);cursor:default}.tf-portal-secondary,.tf-portal-danger{background:var(--surface-tile);height:48px;color:var(--text-body);font-family:inherit;font-size:var(--text-control-size);cursor:pointer;border:0;border-radius:14px;justify-content:center;align-items:center;padding:0 18px;font-weight:500;text-decoration:none;display:inline-flex}.tf-portal-secondary[data-block]{background:var(--surface-card);border:1px solid var(--border-card);width:100%;color:var(--text-link);display:flex}.tf-portal-danger{background:var(--danger-tint);color:var(--danger);flex:1;font-weight:600}.tf-portal-danger[data-filled]{background:var(--danger);color:var(--text-on-danger)}.tf-portal-icon-button{background:var(--surface-card);width:44px;height:44px;color:var(--accent);border-radius:14px;justify-content:center;align-items:center;display:inline-flex}.tf-portal-icon-button[data-tone=tile]{background:var(--surface-tile)}.tf-panel[data-tone=tile]{background:var(--surface-tile);border-color:#0000}.tf-panel[data-tone=plain]{border-color:#0000;border-radius:16px}.tf-portal-row{border-top:1px solid var(--border-inner);min-height:56px;color:inherit;align-items:center;gap:12px;padding:10px 16px;text-decoration:none;display:flex}.tf-panel>.tf-portal-row:first-child,.tf-portal-row[data-divider=false]{border-top:0}.tf-portal-row[data-compact]{min-height:48px;padding-block:8px}.tf-portal-row[aria-current=true]{background:var(--surface-tile)}.tf-panel[data-tone=tile] .tf-portal-row{border-color:var(--border-input)}.tf-panel[data-tone=tile] .tf-portal-row[aria-current=true]{background:var(--surface-tile-hover)}.tf-portal-row-main{flex-direction:column;flex:1;min-width:0;display:flex}.tf-portal-row-when{flex-wrap:wrap;flex:1;align-items:baseline;gap:0 8px;min-width:0;display:flex}.tf-portal-row-icon{background:var(--accent-tint);width:36px;height:36px;color:var(--accent);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.tf-portal-row-icon[data-tone=attention]{color:var(--text-on-attention);background:#ffe3ad}.tf-portal-month{border-top:1px solid var(--border-inner);font-size:var(--text-meta-size);color:var(--text-meta);padding:14px 16px 6px;font-weight:500}.tf-portal-month[data-first=true],.tf-portal-month+.tf-portal-row{border-top:0}.tf-portal-mini{border-radius:var(--radius-chip);background:var(--surface-tile);width:28px;height:28px;color:var(--accent);justify-content:center;align-items:center;display:flex}.tf-portal-comment{background:var(--surface-tile);font-size:var(--text-secondary-size);color:var(--text-prose);border-radius:12px;flex-direction:column;gap:2px;margin:0;padding:10px 12px;line-height:1.55;display:flex}.tf-portal-comment-label{font-size:var(--text-meta-size);color:var(--accent);font-weight:500}.tf-portal-split{grid-template-columns:minmax(0,1fr);align-items:start;gap:22px;display:grid}.tf-portal-pane{position:sticky;top:32px}.tf-portal-pane>*+*{margin-top:8px}.tf-portal-empty-pane{text-align:center;justify-content:center;align-items:center;gap:6px;min-height:360px}.tf-portal-logout{border:1px solid var(--border-card);background:var(--surface-card);height:48px;color:var(--text-secondary);font-family:inherit;font-size:var(--text-body-size);cursor:pointer;border-radius:20px;justify-content:center;align-items:center;gap:8px;font-weight:500;display:flex}.tf-back-link{height:44px;font-family:inherit;font-size:var(--text-secondary-size);color:var(--text-link);cursor:pointer;background:0 0;border:0;align-self:flex-start;align-items:center;gap:4px;margin-block:-12px -14px;padding:0;font-weight:500;text-decoration:none;display:inline-flex}.tf-text-button{height:44px;font-family:inherit;font-size:var(--text-secondary-size);color:var(--text-link);cursor:pointer;background:0 0;border:0;padding:0;font-weight:500}.tf-text-button:disabled{color:var(--text-meta);cursor:default}.tf-badge-pill[data-tone=done]{background:var(--status-done-bg);color:var(--status-done-ink)}.tf-filter-chip[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--text-on-accent)}.tf-readonly-field{background:var(--surface-inactive);height:48px;color:var(--text-secondary);font-size:var(--text-control-size);border-radius:12px;justify-content:flex-end;align-items:center;padding:0 14px;display:flex}.tf-notif-grid{border-top:1px solid var(--border-inner);flex-direction:column;padding:0 16px 6px;display:flex}.tf-notif-grid-row{align-items:center;gap:12px;min-height:52px;padding-block:6px;display:flex}.tf-notif-grid-row[data-divider=true]{border-top:1px solid var(--border-inner)}.tf-channel:disabled{cursor:default;opacity:.6}@media (width>=1024px){.tf-portal{gap:var(--space-7)}.tf-portal-split{gap:var(--space-7);grid-template-columns:minmax(0,2fr) minmax(0,3fr)}}@media (hover:hover){.tf-portal-cta:not(:disabled):hover{background:var(--accent-press);color:var(--text-on-accent)}a.tf-portal-row:hover,.tf-portal-card-link:hover{background:var(--surface-inactive)}.tf-panel[data-tone=tile] a.tf-portal-row:hover{background:var(--surface-tile-hover)}}@media (width<=1023.98px){.tf-screen-wide.tf-portal{max-width:520px;padding:24px 16px 32px}}.tf-portal .tf-panel:not([data-tone=plain]){border-radius:20px}.tf-badge-pill[data-portal]{flex-shrink:0;height:24px;padding:0 10px}.tf-badge-pill[data-portal][data-tone=attention]{background:var(--gold)}@supports (color:color-mix(in lab, red, red)){.tf-badge-pill[data-portal][data-tone=attention]{background:color-mix(in srgb, var(--gold) 50%, var(--surface-card))}}.tf-badge-pill[data-portal][data-tone=attention]{border:1px solid var(--gold)}.tf-portal-link-card{flex-direction:row;align-items:center;gap:12px;min-height:64px;padding:12px 16px}.tf-file[data-variant=lesson] .tf-file-icon{width:44px;height:44px}.tf-move-days{gap:6px;display:grid}.tf-move-day{background:var(--accent-tint);height:60px;color:var(--text-body);cursor:pointer;transition:background var(--motion-state) var(--motion-ease);border:0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-family:inherit;display:flex}.tf-move-day .tf-day-chip-sub{color:inherit}.tf-move-day:disabled{background:var(--surface-inactive);color:var(--text-meta);cursor:default}.tf-move-day[aria-pressed=true],.tf-move-time[aria-pressed=true]{background:var(--accent);color:var(--text-on-accent)}.tf-move-times{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;display:grid}.tf-move-time{background:var(--accent-tint);height:44px;color:var(--text-body);font-family:inherit;font-size:var(--text-control-size);font-variant-numeric:tabular-nums;cursor:pointer;transition:background var(--motion-state) var(--motion-ease);border:0;border-radius:12px;font-weight:500}@media (hover:hover){.tf-move-day:not(:disabled):not([aria-pressed=true]):hover,.tf-move-time:not([aria-pressed=true]):hover{background:var(--surface-tile-hover)}.tf-portal-danger:not([data-filled]):not(:disabled):hover{background:var(--danger-tint)}@supports (color:color-mix(in lab, red, red)){.tf-portal-danger:not([data-filled]):not(:disabled):hover{background:color-mix(in srgb, var(--danger-tint), var(--danger) 8%)}}.tf-portal-danger[data-filled]:not(:disabled):hover{background:var(--danger-press)}.tf-portal-secondary:not([data-block]):hover{background:var(--surface-tile-hover)}}.tf-file[data-divider=true]{border-top:1px solid var(--border-inner)}.tf-file-row{align-items:center;gap:4px;padding-inline-end:8px;display:flex}.tf-file-hit{min-width:0;min-height:64px;font-family:inherit;font-size:var(--text-body-size);color:inherit;text-align:start;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:12px;padding:10px 16px;text-decoration:none;display:flex}.tf-file-icon{background:var(--surface-tile);width:40px;height:40px;color:var(--accent);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.tf-file-icon[data-kind=audio],.tf-file-icon[data-kind=video]{background:var(--accent);color:var(--text-on-accent)}.tf-file-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.tf-file-meta{font-size:var(--text-meta-size);color:var(--text-meta)}.tf-file-player{flex-direction:column;gap:8px;padding:0 16px 14px;display:flex}.tf-fav[aria-pressed=true]{color:#c98a00}.tf-fav[aria-pressed=true] svg{fill:var(--gold)}.tf-library-tools{flex-direction:column;gap:12px;display:flex}.tf-library-count{font-size:var(--text-secondary-size);color:var(--text-secondary);justify-content:space-between;align-items:center;gap:12px;display:flex}.tf-inline-select{align-items:center;gap:4px;display:inline-flex;position:relative}.tf-inline-select select{appearance:none;height:36px;font-family:inherit;font-size:var(--text-secondary-size);color:var(--text-body);cursor:pointer;background:0 0;border:0;padding-inline:4px 20px;font-weight:500}.tf-inline-select svg{pointer-events:none;position:absolute;inset-inline-end:0}.tf-library-groups{flex-direction:column;gap:18px;display:flex}.tf-library-rename{align-items:center;gap:8px;padding:10px 16px;display:flex}.tf-library-rename[data-divider=true]{border-top:1px solid var(--border-inner)}.tf-library-rename input{border:1px solid var(--border-input);background:var(--surface-card);min-width:0;height:44px;font-family:inherit;font-size:var(--text-control-size);color:var(--text-body);border-radius:12px;flex:1;padding:0 12px}.tf-rec-bar{border-radius:var(--radius-input);background:var(--danger-tint);min-height:52px;color:var(--danger);font-size:var(--text-body-size);font-variant-numeric:tabular-nums;align-items:center;gap:10px;padding-block:4px;padding-inline:12px 6px;display:flex}.tf-rec-bar[data-size=lg]{border-radius:var(--radius-tile);min-height:56px;padding-block:6px;padding-inline:14px 8px}.tf-rec-bar>svg{flex-shrink:0}.tf-rec-dot{border-radius:var(--radius-chip);background:var(--danger);width:10px;height:10px;animation:1s steps(2,start) infinite tf-rec-blink}@keyframes tf-rec-blink{to{visibility:hidden}}@media (prefers-reduced-motion:reduce){.tf-rec-dot{animation:none}}.tf-send-item{flex-direction:column;gap:8px;padding:16px;display:flex}.tf-send-item[data-divider=true]{border-top:1px solid var(--border-inner)}.tf-send-item .tf-file-hit{min-height:52px;padding-inline:0}.tf-send-item .tf-file-player{padding-inline:0}.tf-send-feedback{border-radius:var(--radius-input);background:var(--surface-tile);font-size:var(--text-body-size);color:var(--text-prose);text-wrap:pretty;flex-direction:column;gap:2px;padding:12px 14px;line-height:1.6;display:flex}.tf-send-feedback-label{font-size:var(--text-secondary-size);color:var(--text-body);font-weight:500}.tf-send-staged{flex-direction:column;gap:6px;display:flex}.tf-send-staged-item{border-radius:var(--radius-input);background:var(--surface-tile);min-height:52px;font-size:var(--text-body-size);font-variant-numeric:tabular-nums;align-items:center;gap:10px;padding-block:4px;padding-inline:12px 6px;display:flex}.tf-send-staged-item>svg{color:var(--accent);flex-shrink:0}.tf-portal-action{border-radius:var(--radius-button);background:var(--surface-tile);height:44px;color:var(--accent);font-family:inherit;font-size:var(--text-secondary-size);cursor:pointer;transition:background var(--motion-state) var(--motion-ease);border:0;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-weight:600;text-decoration:none;display:inline-flex}.tf-portal-action[data-tone=accent]{background:var(--accent);color:var(--text-on-accent)}.tf-portal-action[data-tone=danger]{border-radius:var(--radius-input);background:var(--danger);color:var(--text-on-danger)}.tf-portal-action[data-tone=quiet]{color:var(--text-secondary);background:0 0;padding:0 12px;font-weight:500}.tf-portal-action[data-tone=remove]{border-radius:var(--radius-input);color:var(--danger);background:0 0;padding:0 12px;font-weight:500}.tf-portal-action:disabled{opacity:.6;cursor:default}@media (hover:hover){.tf-portal-action:not([data-tone]):not(:disabled):hover,.tf-portal-action[data-tone=quiet]:not(:disabled):hover,.tf-portal-action[data-tone=remove]:not(:disabled):hover{background:var(--surface-tile-hover)}.tf-portal-action[data-tone=accent]:not(:disabled):hover{background:var(--accent-press)}.tf-portal-action[data-tone=danger]:not(:disabled):hover{background:var(--danger-press)}}.tf-library-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;display:grid}.tf-library-side,.tf-library-main{flex-direction:column;gap:18px;min-width:0;display:flex}@media (width>=1024px){.tf-library-layout{gap:var(--space-8);grid-template-columns:minmax(0,2fr) minmax(0,3fr)}.tf-library-side{top:var(--space-8);position:sticky}}.tf-library-tools .tf-chip-row{gap:8px;padding-bottom:2px}.tf-filter-chip[data-size=lg]{background:var(--surface-card);height:40px;color:var(--text-body);font-size:var(--text-body-size);white-space:nowrap;padding:0 14px}@media (hover:hover){.tf-filter-chip[data-size=lg]:not([aria-pressed=true]):hover{background:var(--surface-inactive)}.tf-filter-chip[data-size=lg][aria-pressed=true]:hover{background:var(--accent-press)}}.tf-inline-select[data-tone=accent] select{height:40px;font-size:var(--text-body-size);color:var(--accent);border-radius:10px;padding-inline:8px 26px;font-weight:600}.tf-inline-select[data-tone=accent] svg{color:var(--accent);inset-inline-end:6px}.tf-library-empty{text-align:center;align-items:center;gap:6px;padding:32px 20px}.tf-library-empty-title{font-size:var(--text-card-title-size);font-weight:600}.tf-library-comment{border-radius:var(--radius-input);background:var(--surface-tile);font-size:var(--text-body-size);color:var(--text-prose);text-wrap:pretty;flex-direction:column;gap:2px;padding:10px 12px;line-height:1.6;display:flex}.tf-library-comment-label{font-size:var(--text-meta-size);color:var(--text-secondary);font-weight:500}.tf-file[data-variant=library]{flex-direction:column;gap:8px;padding-block:10px;padding-inline:16px 8px;display:flex}.tf-file[data-variant=library][data-playing=true]{background:var(--surface-tile)}.tf-file[data-variant=library] .tf-file-row{padding-inline-end:0}.tf-file[data-variant=library] .tf-file-hit{min-height:0;padding:2px 0}.tf-file[data-variant=library] .tf-file-player{padding:0;padding-inline:52px 8px}.tf-file-icon[data-round]{border-radius:var(--radius-chip);background:var(--accent);color:var(--text-on-accent)}.tf-file-len{font-size:var(--text-meta-size);color:var(--text-meta);font-variant-numeric:tabular-nums;direction:ltr;flex-shrink:0}.tf-file-progress{align-items:center;gap:10px;display:flex}.tf-file-progress-track{border-radius:var(--radius-chip);background:var(--surface-tile-hover);flex:1;height:4px;overflow:hidden}.tf-file-progress-track>div{background:var(--accent);height:100%}.tf-channel[data-shape=pill]{border-radius:var(--radius-chip);width:44px;height:40px;transition:background var(--motion-state) var(--motion-ease), color var(--motion-state) var(--motion-ease)}.tf-channel-legend{font-size:var(--text-meta-size);color:var(--text-meta);justify-content:flex-end;gap:12px;padding:10px 0 4px;display:flex}.tf-channel-legend>span{align-items:center;gap:4px;display:inline-flex}.tf-disclosure-chevron{color:var(--text-meta);transition:transform var(--motion-state) var(--motion-ease);flex-shrink:0;display:flex}.tf-disclosure[aria-expanded=true] .tf-disclosure-chevron{transform:rotate(180deg)}.tf-portal-cta[data-wide]{height:48px;padding:0 22px}.tf-portal-row[data-tall],.tf-disclosure[data-tall]{min-height:64px}.tf-panel[data-card]{border-radius:var(--radius-card)}@media (hover:hover){.tf-disclosure[data-tall]:hover{background:var(--surface-inactive)}}.tf-pay-amount{font-size:var(--text-display-size);line-height:var(--text-display-line);letter-spacing:var(--text-display-tracking);align-self:flex-start;font-weight:600}.tf-login{flex-direction:column;gap:22px;max-width:420px;margin-inline:auto;padding:40px 16px 32px;display:flex}.tf-login-title{margin:0;font-size:26px;font-weight:600;line-height:1.25}.tf-login-sub{font-size:var(--text-body-size);color:var(--text-secondary);text-wrap:pretty;line-height:1.55}.tf-login-field{flex-direction:column;gap:4px;display:flex}.tf-login-field>span:first-child{font-size:var(--text-secondary-size);color:var(--text-secondary)}.tf-login-field[data-small]>span:first-child{font-weight:500}.tf-login-field input,.tf-login-field textarea,.tf-login-field select{box-sizing:border-box;border:1px solid var(--border-input);background:var(--surface-card);width:100%;height:54px;font-family:inherit;font-size:var(--text-control-size);color:var(--text-body);text-align:start;border-radius:12px;padding:0 14px}.tf-login-field[data-small] input,.tf-login-field[data-small] select{height:48px}.tf-login-field input[dir=ltr]{text-align:end}.tf-login-field textarea{resize:vertical;height:auto;padding:12px 14px;line-height:1.5}.tf-login-field input:focus,.tf-login-field textarea:focus,.tf-login-field select:focus{outline:2px solid var(--accent);outline-offset:-1px}.tf-login-field input[aria-invalid=true]{border-color:var(--danger)}.tf-login-field input[readonly]{background:var(--surface-inactive)}.tf-login-field input.tf-login-code{letter-spacing:.4em;text-align:center;height:60px;font-size:28px}.tf-login-error{font-size:var(--text-meta-size);color:var(--danger)}@media (width>=1024px){.tf-login{padding:72px 24px 48px}}.tf-book{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;max-width:480px;margin-inline:auto;padding:20px 16px 0;display:grid}.tf-book-profile{flex-direction:column;gap:14px;display:flex}.tf-book-main{flex-direction:column;gap:18px;min-width:0;display:flex}.tf-book-step{flex-direction:column;gap:14px;display:flex}.tf-book-h2{font-size:var(--text-card-title-size);margin:0;font-weight:600}.tf-book-context{background:var(--surface-tile);border-radius:16px;align-items:center;gap:12px;padding:12px 14px;display:flex}.tf-book-policy{background:var(--surface-inactive);font-size:var(--text-secondary-size);color:var(--text-secondary);border-radius:16px;flex-direction:column;gap:4px;padding:14px 16px;line-height:1.55;display:flex}.tf-book-bar{padding:12px 16px calc(20px + env(safe-area-inset-bottom));border-top:1px solid var(--border-card);background:var(--surface-page);flex-direction:column;gap:8px;margin-inline:-16px;display:flex;position:sticky;bottom:0}.tf-shell-main .tf-book-bar{bottom:calc(60px + env(safe-area-inset-bottom))}.tf-confirm{flex-direction:column;gap:18px;max-width:480px;margin-inline:auto;padding:28px 16px 32px;display:flex}.tf-confirm-check{border-radius:var(--radius-chip);background:var(--status-done-bg);width:52px;height:52px;color:var(--status-done-ink);flex-shrink:0;justify-content:center;align-items:center;display:flex}.tf-confirm-check[data-pending=true]{color:var(--text-on-attention);background:#ffe3ad}.tf-confirm-line{align-items:center;gap:8px;display:flex}.tf-book-step-head,.tf-book-context-top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.tf-book-context-top{align-items:center;min-height:44px}.tf-book-context-top .tf-back-link{margin-block:0;margin-inline-start:-4px}.tf-book-step-count{font-size:var(--text-meta-size);color:var(--text-meta);font-variant-numeric:tabular-nums}.tf-book-step[data-card]{border-radius:var(--radius-card);background:var(--surface-card);border:1px solid var(--border-card);padding:16px}.tf-login-field[data-in-card]>span:first-child{font-weight:400}.tf-login-field[data-in-card] input,.tf-login-field[data-in-card] textarea,.tf-login-field[data-in-card] select{background:var(--surface-page)}.tf-login-field[data-in-card] input,.tf-login-field[data-in-card] select{height:var(--tap-min);padding:0 12px}.tf-login-field[data-in-card] input.tf-book-code{letter-spacing:.5em;text-align:center;font-variant-numeric:tabular-nums;width:220px;height:54px;font-size:24px}.tf-book-label-row{justify-content:space-between;gap:8px;display:flex}.tf-book-code-block{border-top:1px solid var(--border-inner);flex-direction:column;gap:10px;padding-top:14px;display:flex}.tf-day-strip[data-variant=booking] .tf-day-chip{border-radius:var(--radius-button);border-color:var(--border-card);width:52px}.tf-day-strip[data-variant=booking] .tf-day-chip-sub{color:inherit}.tf-day-strip[data-variant=booking] .tf-day-chip[aria-checked=true]{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.tf-day-strip[data-variant=booking] .tf-day-chip:disabled{border-color:var(--border-inner);color:var(--text-disabled);cursor:default;background:0 0}.tf-book-times{border-radius:var(--radius-card);background:var(--surface-card);border:1px solid var(--border-card);flex-direction:column;gap:10px;padding:14px 16px 16px;display:flex}.tf-book-slot-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;display:grid}.tf-book-slot{height:var(--tap-min);border:1px solid var(--border-input);border-radius:var(--radius-input);background:var(--accent-tint);color:var(--accent);cursor:pointer;transition:background var(--motion-state) var(--motion-ease);flex-direction:column;justify-content:center;align-items:center;font-family:inherit;display:flex}.tf-book-slot[data-approval=true]{background:var(--surface-attention-soft);border-color:var(--surface-attention);color:var(--text-on-attention)}.tf-book-slot[aria-checked=true]{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.tf-book-slot-time{font-size:var(--text-control-size);font-variant-numeric:tabular-nums;font-weight:600;line-height:1.2}.tf-book-slot-tag{font-size:var(--text-meta-size);font-weight:500;line-height:1.2}.tf-book-approval{border-radius:var(--radius-tile);background:var(--surface-attention-soft);border:1px solid var(--surface-attention);color:var(--text-on-attention);font-size:var(--text-secondary-size);text-wrap:pretty;align-items:flex-start;gap:10px;padding:12px 14px;line-height:1.5;display:flex}.tf-book-approval>span{flex:1;min-width:0}.tf-book-approval[data-compact]{border-radius:var(--radius-input);gap:8px;padding:10px 12px}.tf-book-summary-row{min-height:var(--tap-min);box-sizing:border-box;border-top:1px solid var(--border-inner);justify-content:space-between;align-items:baseline;gap:12px;padding:12px 16px;display:flex}.tf-book-summary-row:first-child{border-top:0}.tf-book-summary-label{font-size:var(--text-secondary-size);color:var(--text-secondary);flex-shrink:0}.tf-book-summary-value{text-align:end;font-variant-numeric:tabular-nums;text-wrap:pretty;min-width:0}.tf-book-summary-value[data-strong=true]{font-weight:600}.tf-panel[data-radius=card]{border-radius:var(--radius-card)}.tf-confirm-head{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.tf-confirm-head .tf-confirm-check{width:48px;height:48px}.tf-confirm-title{font-size:var(--text-title-size);margin:0;font-weight:600;line-height:1.25}.tf-confirm-sub{font-size:var(--text-body-size);color:var(--text-secondary);text-wrap:pretty;line-height:1.55}.tf-confirm-when{background:var(--surface-tile);flex-direction:column;gap:2px;padding:16px;display:flex}.tf-confirm-when-line{font-size:var(--text-card-title-size);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-weight:600;display:flex}.tf-confirm-row{box-sizing:border-box;border-top:1px solid var(--border-inner);font-variant-numeric:tabular-nums;align-items:center;gap:10px;min-height:52px;padding:10px 16px;display:flex}.tf-confirm-link{font-size:var(--text-secondary-size);color:var(--text-link);flex-shrink:0;font-weight:500;text-decoration:none}.tf-confirm-secondary{height:var(--button-height-student);border-radius:var(--radius-button);background:var(--accent-tint);color:var(--accent);font-size:var(--text-control-size);justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:flex}.tf-confirm-note{font-size:var(--text-secondary-size);color:var(--text-meta);text-wrap:pretty}@media (hover:hover){.tf-book-slot:not([aria-checked=true]):hover{background:var(--surface-tile-hover)}.tf-book-slot[data-approval=true]:not([aria-checked=true]):hover{background:var(--surface-attention-soft);border-color:var(--text-on-attention)}.tf-confirm-secondary:hover{background:var(--surface-tile-hover)}.tf-confirm-link:hover{color:var(--text-link-hover)}}@media (width>=1024px){.tf-day-strip[data-variant=booking]{flex-wrap:nowrap}.tf-book{grid-template-columns:340px minmax(0,1fr);gap:32px;max-width:960px;padding:40px 40px 48px}.tf-book-profile{background:var(--surface-card);border:1px solid var(--border-card);border-radius:20px;padding:20px;position:sticky;top:32px}.tf-book-bar,.tf-shell-main .tf-book-bar{background:0 0;border-top:0;margin-inline:0;padding:0;position:static}.tf-confirm{padding:56px 24px 48px}}.tf-textarea-plain,.tf-search-input{box-sizing:border-box;border:1px solid var(--border-input);background:var(--surface-page);width:100%;min-width:0;font-family:inherit;font-size:var(--text-control-size);color:var(--text-body);resize:vertical;border-radius:12px;padding:12px 14px;line-height:1.5}.tf-search-input{flex:1;height:44px;padding-block:0}.tf-textarea-plain:focus,.tf-search-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.tf-textarea-plain:disabled{background:var(--surface-inactive);color:var(--text-secondary)}.tf-reply-chip{background:var(--surface-tile);font-size:var(--text-secondary-size);border-radius:12px;align-items:center;gap:10px;padding:8px 12px;display:flex}.tf-panel[data-accent=true]{border-inline-start:3px solid var(--accent)}.tf-wizard{flex-direction:column;gap:24px;max-width:560px;margin-inline:auto;padding:12px 20px 32px;display:flex}.tf-wizard-top{flex-direction:column;gap:12px;display:flex}.tf-wizard-brand{font-size:var(--text-secondary-size);color:var(--accent);font-weight:600}.tf-wizard-bars{gap:4px;display:flex}.tf-wizard-bars span{border-radius:var(--radius-chip);background:var(--border-card);flex:1;height:4px}.tf-wizard-bars span[data-on=true]{background:var(--accent)}.tf-wizard-bars span[data-on=true][data-tone=done]{background:var(--status-done-ink)}.tf-wizard-link{background:var(--surface-tile);border-radius:20px;flex-direction:column;gap:10px;padding:18px;display:flex}.tf-portal-row-icon[data-tone=done]{background:var(--status-done-bg);color:var(--status-done-ink)}@media (width>=1024px){.tf-wizard{padding:56px 40px 48px}.tf-wizard[data-wide=true]{max-width:1080px;padding-top:32px}}.tf-wizard-step{font-size:var(--text-secondary-size);color:var(--text-secondary)}.tf-filter-chip[data-size=lg]{background:var(--surface-card);height:44px;color:var(--text-body);font-size:var(--text-body-size);padding:0 16px}.tf-filter-chip[data-size=lg][aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--text-on-accent)}.tf-wizard-type{border-radius:var(--radius-card);background:var(--surface-card);border:1px solid var(--border-card);flex-direction:column;gap:14px;padding:16px;display:flex}.tf-wizard-type-row{align-items:flex-end;gap:8px;display:flex}.tf-price-input{display:block;position:relative}.tf-price-input>span{font-size:var(--text-control-size);color:var(--text-meta);pointer-events:none;inset-inline-start:12px;position:absolute;top:50%;transform:translateY(-50%)}.tf-login-field .tf-price-input input{text-align:start;font-variant-numeric:tabular-nums;padding-inline:30px 12px}.tf-wizard-remove{width:44px;height:var(--tap-min);border-radius:var(--radius-input);color:var(--text-meta);cursor:pointer;background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.tf-wizard-durations{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.tf-wizard-durations .tf-choice{min-width:0;padding:0}.tf-wizard-textlink{height:44px;font-family:inherit;font-size:var(--text-body-size);color:var(--text-link);cursor:pointer;background:0 0;border:0;justify-content:center;align-self:flex-start;align-items:center;gap:4px;padding:0;font-weight:500;display:inline-flex}.tf-wizard-textlink[data-strong]{align-self:stretch;font-weight:600}.tf-wizard-avail{flex-direction:column;gap:10px;display:flex}.tf-wizard-hint{font-size:var(--text-secondary-size);color:var(--text-secondary);text-wrap:pretty;margin:0;line-height:1.55}.tf-wizard-avail .tf-brush{border-radius:var(--radius-input);gap:8px;height:40px;padding:0 14px}.tf-wizard-avail .tf-swatch{border-radius:var(--radius-chip);border:0;width:14px;height:14px;margin:0}.tf-wizard-avail .tf-swatch[data-mode=instant]{background:var(--status-done-bg)}.tf-wizard-avail .tf-swatch[data-mode=manual]{background:var(--surface-attention-soft)}.tf-wizard-avail .tf-swatch[data-mode=erase]{border:1px solid var(--border-input);background:0 0}.tf-grid[data-variant=paint]{--grid-row:22px;max-height:440px;overflow-y:auto}.tf-grid[data-variant=paint] .tf-grid-corner,.tf-grid[data-variant=paint] .tf-grid-day{z-index:1;background:var(--surface-card);border-bottom-color:var(--border-inner);position:sticky;top:0}.tf-grid[data-variant=paint] .tf-grid-day{font-size:var(--text-meta-size);border-inline-start:1px solid var(--border-inner);padding:8px 0}.tf-grid[data-variant=paint] .tf-grid-cell{cursor:crosshair;border-top:0}.tf-grid[data-variant=paint] .tf-grid-cell[data-hour=true]{border-top:1px solid var(--border-inner)}.tf-grid[data-variant=paint] .tf-grid-cell[data-state=instant]{background:var(--status-done-bg);border-inline-start:1px solid var(--border-inner)}.tf-grid[data-variant=paint] .tf-grid-cell[data-state=manual]{background:var(--surface-attention-soft);border-inline-start:1px solid var(--border-inner)}.tf-wizard-days{border-radius:var(--radius-tile);background:var(--surface-card);border:1px solid var(--border-card);flex-direction:column;padding:4px 16px;display:flex}.tf-wizard-day{border-top:1px solid var(--border-inner);font-size:var(--text-secondary-size);align-items:baseline;gap:12px;padding:6px 0;display:flex}.tf-wizard-day:first-child{border-top:0}.tf-wizard-day-name{width:56px;color:var(--text-secondary);flex-shrink:0}.tf-wizard-day-ranges{flex-wrap:wrap;flex:1;gap:4px 12px;min-width:0;display:flex}.tf-wizard-range{font-variant-numeric:tabular-nums;align-items:center;gap:6px;display:inline-flex}.tf-wizard-range:before{content:"";border-radius:var(--radius-chip);background:var(--status-done-ink);width:8px;height:8px}.tf-wizard-range[data-mode=manual]:before{background:var(--surface-attention)}.tf-wizard .tf-slug-input{height:54px;padding:0 14px}.tf-wizard .tf-slug-input input{font-weight:500}.tf-wizard-preview{border-radius:var(--radius-card);background:var(--surface-card);border:1px solid var(--border-card);flex-direction:column;gap:12px;padding:16px;display:flex}.tf-wizard-preview-row{background:var(--surface-tile);border-radius:10px;align-items:center;gap:8px;min-height:44px;padding:0 12px;display:flex}.tf-wizard-done-link{box-sizing:border-box;border-radius:var(--radius-tile);background:var(--status-done-bg);min-height:54px;color:var(--status-done-ink);font-size:var(--text-control-size);word-break:break-all;align-items:center;padding:0 16px;font-weight:600;display:flex}.tf-wizard-outline{height:var(--button-height-student);border:1px solid var(--border-input);border-radius:var(--radius-button);background:var(--surface-card);color:var(--text-body);font-size:var(--text-control-size);justify-content:center;align-items:center;gap:8px;font-weight:600;text-decoration:none;display:flex}.tf-wizard-later-row{border-top:1px solid var(--border-inner);align-items:center;gap:12px;min-height:52px;padding:0 16px;display:flex}.tf-wizard-later-row:first-child{border-top:0}a.tf-wizard-later-row{color:inherit;text-decoration:none}button.tf-plan{color:inherit}button.tf-plan[aria-checked=true]{border-color:var(--accent)}@media (hover:hover){.tf-wizard-remove:hover{color:var(--danger)}.tf-filter-chip[data-size=lg]:not([aria-pressed=true]):hover,.tf-wizard-outline:hover,a.tf-wizard-later-row:hover{background:var(--accent-tint)}.tf-wizard-textlink:hover{color:var(--text-link-hover)}}@media (width>=1024px){.tf-grid[data-variant=paint]{--grid-row:18px;max-height:none}.tf-wizard[data-layout=split]{grid-template-rows:repeat(7,auto) 1fr;grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:start;gap:16px 40px;display:grid}.tf-wizard[data-layout=split]>*,.tf-wizard[data-layout=split] .tf-wizard-avail>*{grid-column:1}.tf-wizard[data-layout=split] .tf-wizard-avail{display:contents}.tf-wizard[data-layout=split] .tf-wizard-avail>.tf-grid{grid-area:1/2/-1}}.tf-invite-head{flex-direction:column;gap:2px;max-width:640px;display:flex}.tf-invite-intro{font-size:var(--text-body-size);color:var(--text-secondary);text-wrap:pretty;margin:4px 0 0;line-height:1.6}.tf-invite-cols{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;display:grid}.tf-invite-col{flex-direction:column;gap:18px;min-width:0;display:flex}.tf-invite-card{padding:var(--card-padding);border-radius:var(--radius-card);background:var(--surface-card);border:1px solid var(--border-card);flex-direction:column;gap:12px;display:flex}.tf-invite-label{font-size:var(--text-secondary-size);color:var(--text-secondary)}.tf-invite-link{height:var(--tap-min);box-sizing:border-box;border-radius:var(--radius-input);border:1px solid var(--border-input);background:var(--surface-page);align-items:center;gap:8px;padding-inline:12px 6px;display:flex}.tf-invite-link-text{min-width:0;font-size:var(--text-body-size);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.tf-pill-button[data-tone=done]{background:var(--status-done-bg);color:var(--status-done-ink)}.tf-invite-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.tf-invite-billing{min-height:32px;font-size:var(--text-secondary-size);color:var(--text-secondary);align-items:center;gap:8px;text-decoration:none;display:flex}.tf-invite-section{flex-direction:column;gap:6px;display:flex}.tf-invite-list .tf-portal-row{min-height:60px;padding-block:8px}.tf-invite-empty{padding:var(--card-padding);border-radius:var(--radius-tile);background:var(--surface-card);border:1px solid var(--border-card);font-size:var(--text-secondary-size);color:var(--text-secondary);line-height:1.55}.tf-invite-foot{font-size:var(--text-meta-size);color:var(--text-meta);text-wrap:pretty;margin:0}.tf-invite-channels{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.tf-invite-channel{border-radius:var(--radius-button);background:var(--surface-tile);height:76px;color:var(--text-body);font-family:inherit;font-size:var(--text-secondary-size);cursor:pointer;border:0;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-weight:500;display:flex}.tf-invite-sheet-note{font-size:var(--text-secondary-size);color:var(--status-done-ink)}@media (width>=1024px){.tf-invite-cols{gap:var(--space-7);grid-template-columns:minmax(0,3fr) minmax(0,2fr)}}@media (hover:hover){.tf-invite-channel:hover{background:var(--surface-tile-hover)}.tf-invite-billing:hover{color:var(--text-link)}}.tf-referral{background:var(--surface-page);flex-direction:column;min-height:100dvh;display:flex}.tf-referral-bar{background:var(--accent);height:56px;color:var(--text-on-accent);align-items:center;padding-inline:20px;font-size:16px;font-weight:600;display:flex}.tf-referral-body{box-sizing:border-box;flex-direction:column;flex:1;gap:20px;width:100%;max-width:480px;margin-inline:auto;padding:28px 20px 24px;display:flex}.tf-referral-eyebrow{font-size:var(--text-secondary-size);color:var(--text-secondary)}.tf-referral-title{font-size:var(--text-title-size);line-height:var(--text-title-line);text-wrap:pretty;margin:0;font-weight:600}.tf-referral-steps{border-radius:var(--radius-card);background:var(--surface-card);border:1px solid var(--border-card);flex-direction:column;padding:4px 16px;display:flex}.tf-referral-step{border-top:1px solid var(--border-inner);align-items:flex-start;gap:12px;padding:12px 0;display:flex}.tf-referral-step:first-child{border-top:0}.tf-referral-foot{flex-direction:column;gap:10px;margin-top:auto;display:flex}.tf-referral-note{font-size:var(--text-meta-size);text-align:center;color:var(--text-meta)}@media (width>=1024px){.tf-referral-body{padding-top:56px}}.tf-adm{background:var(--surface-page);min-height:100vh;color:var(--text-body);grid-template-columns:248px minmax(0,1fr);grid-template-areas:"aside main";display:grid}.tf-adm-topbar,.tf-adm-scrim,.tf-adm-brand .tf-adm-close{display:none}.tf-adm-aside{box-sizing:border-box;background:var(--nav-bg);height:100vh;color:var(--text-on-accent);flex-direction:column;grid-area:aside;gap:24px;padding:22px 14px 18px;display:flex;position:sticky;top:0;overflow-y:auto}.tf-adm-brand{flex-direction:column;gap:2px;padding:0 10px;display:flex;position:relative}.tf-adm-brand-name{font-size:18px;font-weight:600;line-height:1.3}.tf-adm-brand-sub,.tf-adm-group-label,.tf-adm-foot-email{font-size:var(--text-meta-size);color:var(--nav-inactive)}.tf-adm-nav{flex-direction:column;flex:1;gap:20px;display:flex}.tf-adm-group{flex-direction:column;gap:2px;display:flex}.tf-adm-group-label{padding:0 10px 6px;font-weight:500}.tf-adm-link{height:40px;color:var(--nav-inactive);transition:background var(--motion-state,.14s) cubic-bezier(.2, 0, .2, 1);border-radius:12px;align-items:center;gap:10px;padding:0 10px;font-size:15px;font-weight:500;text-decoration:none;display:flex}.tf-adm-link[aria-current=page]{background:var(--nav-active-bg);color:var(--nav-active);font-weight:600}.tf-adm-badge{box-sizing:border-box;background:var(--gold);min-width:22px;height:22px;color:var(--gold-ink);font-variant-numeric:tabular-nums;border-radius:999px;justify-content:center;align-items:center;margin-inline-start:auto;padding:0 6px;font-size:12px;font-weight:600;display:inline-flex}.tf-adm-foot{border-top:1px solid var(--nav-active-bg);flex-direction:column;gap:2px;padding:12px 10px 0;display:flex}.tf-adm-foot-name{font-size:var(--text-secondary-size);font-weight:500}.tf-adm-foot-email{text-overflow:ellipsis;overflow:hidden}.tf-adm-foot-links{flex-wrap:wrap;gap:4px 16px;padding-top:8px;display:flex}.tf-adm-foot-link{min-height:32px;color:var(--nav-inactive);font:inherit;font-size:var(--text-secondary-size);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;text-decoration:none;display:inline-flex}.tf-adm-iconbtn{width:44px;height:44px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:12px;justify-content:center;align-items:center;display:flex}.tf-adm-main{box-sizing:border-box;flex-direction:column;grid-area:main;gap:24px;width:100%;min-width:0;max-width:1240px;margin-inline:auto;padding:32px 40px 56px;display:flex}.tf-adm-pagehead{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 20px;display:flex}.tf-adm-pagehead-text{flex-direction:column;gap:4px;min-width:0;display:flex}.tf-adm-subtitle{font-size:var(--text-secondary-size);color:var(--text-secondary)}.tf-adm-denied{flex-direction:column;gap:16px;max-width:560px;margin:0 auto;padding:48px 16px;display:flex}@media (hover:hover){.tf-adm-link:hover,.tf-adm-iconbtn:hover{background:var(--nav-active-bg)}.tf-adm-foot-link:hover{color:var(--nav-active)}}@media (width<=860px){.tf-adm{display:block}.tf-adm-topbar{z-index:20;background:var(--nav-bg);height:56px;color:var(--text-on-accent);align-items:center;gap:8px;padding-inline:6px 16px;display:flex;position:sticky;top:0}.tf-adm-topbar-brand{font-size:16px;font-weight:600}.tf-adm-topbar-section{font-size:var(--text-secondary-size);color:var(--nav-inactive)}.tf-adm-topbar .tf-adm-badge{margin-inline-start:auto}.tf-adm-scrim{z-index:40;background:#2a0f3d66;display:block;position:fixed;inset:0}.tf-adm-aside{z-index:41;visibility:hidden;width:280px;transition:transform .22s cubic-bezier(.2,0,.2,1),visibility .22s;position:fixed;inset-inline-start:0;transform:translate(100%)}[dir=ltr] .tf-adm-aside{transform:translate(-100%)}.tf-adm-aside[data-open]{visibility:visible;transform:none}.tf-adm-brand .tf-adm-close{color:var(--nav-inactive);top:-8px;display:flex;position:absolute;inset-inline-end:-4px}.tf-adm-main{gap:16px;padding:16px 16px 32px}}.tf-admin-titlebar{flex-wrap:wrap;align-items:center;gap:12px 20px;display:flex}.tf-admin-title{margin:0;font-size:22px;font-weight:600;line-height:1.25}.tf-admin-titlebar .tf-segmented-option{padding:0 16px}.tf-admin-back{min-height:32px;font-size:var(--text-secondary-size);color:var(--text-link);align-self:flex-start;align-items:center;gap:4px;font-weight:500;text-decoration:none;display:inline-flex}.tf-admin-email{font-size:var(--text-secondary-size);color:var(--text-secondary);align-self:flex-start}.tf-admin-viewas{flex-wrap:wrap;align-items:center;gap:10px 16px;display:flex}.tf-admin-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:14px;display:grid}.tf-admin-stack{flex-direction:column;gap:14px;min-width:0;display:flex}.tf-admin-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.tf-admin-tile{border-radius:var(--radius-tile);background:var(--surface-card);border:1px solid var(--border-card);flex-direction:column;gap:2px;padding:14px 16px;display:flex}.tf-admin-tile-value{align-self:flex-start;font-size:20px;font-weight:600;line-height:1.2}.tf-admin-tile-label{font-size:var(--text-secondary-size);color:var(--text-secondary);line-height:1.3}.tf-admin-card{padding:var(--card-padding);border-radius:var(--radius-card);background:var(--surface-card);border:1px solid var(--border-card);flex-direction:column;gap:14px;display:flex}.tf-admin-card[data-tight]{gap:12px}.tf-admin-card[data-tone=attention]{border-color:var(--gold);color:var(--text-on-attention);background:#ffe3ad;gap:12px}.tf-admin-h2{font-size:var(--text-card-title-size);margin:0;font-weight:500}.tf-admin-section{flex-direction:column;gap:8px;display:flex}.tf-admin-facts{flex-direction:column;gap:6px;display:flex}.tf-admin-fact{font-size:var(--text-secondary-size);color:var(--text-secondary)}.tf-admin-list{border-radius:var(--radius-card);background:var(--surface-card);border:1px solid var(--border-card);flex-direction:column;padding:4px 16px;display:flex}.tf-admin-list[data-flush]{padding:0;overflow:hidden}.tf-admin-list-row{border-top:1px solid var(--border-inner);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.tf-admin-list-row:first-child{border-top:0}.tf-admin-list[data-flush] .tf-admin-list-row{padding-inline:16px}.tf-admin-meta{font-size:var(--text-secondary-size);color:var(--text-meta)}.tf-admin-code{font-family:ui-monospace,monospace;font-size:var(--text-secondary-size);color:var(--text-secondary)}.tf-admin-note{font-size:var(--text-meta-size);color:var(--text-meta);line-height:1.5}.tf-admin-note[data-pull]{margin-top:-8px}.tf-admin-note[data-tone=error]{color:var(--danger)}.tf-admin-note[data-tone=done]{color:var(--status-done-ink)}.tf-admin-actions{border-top:1px solid var(--border-inner);flex-wrap:wrap;align-items:center;gap:8px;padding-top:12px;display:flex}.tf-admin-buttons{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tf-admin-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.tf-admin-fields[data-auto]{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.tf-admin-plan{border-radius:var(--radius-tile);border:1px solid var(--border-card);background:var(--surface-card);width:100%;font-family:inherit;font-size:var(--text-body-size);text-align:start;color:inherit;cursor:pointer;align-items:center;gap:12px;padding:14px 16px;display:flex}.tf-admin-plan[aria-current=true]{background:var(--accent-tint);border-color:var(--accent)}.tf-admin-add{border-radius:var(--radius-tile);border:1px dashed var(--border-input);width:100%;height:52px;font-family:inherit;font-size:var(--text-body-size);color:var(--accent);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:6px;font-weight:500;display:flex}.tf-admin-add[aria-current=true]{background:var(--accent-tint);border-color:var(--accent)}.tf-admin-confirm{border-radius:var(--radius-button);background:var(--danger-tint);font-size:var(--text-secondary-size);color:var(--danger);flex-direction:column;gap:10px;padding:14px;line-height:1.5;display:flex}.tf-admin-savebar{background:var(--surface-page);border-top:1px solid var(--border-inner);align-items:center;gap:10px;padding:12px 0;display:flex;position:sticky;bottom:0}.tf-admin-row{border-top:1px solid var(--border-inner);color:inherit;font-size:var(--text-secondary-size);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 16px;padding:12px 16px;text-decoration:none;display:grid}.tf-admin-row:first-child{border-top:0}.tf-admin-row[data-head]{display:none}.tf-admin-name{font-size:var(--text-body-size);font-weight:500}.tf-admin-sub{font-size:var(--text-meta-size);color:var(--text-meta)}.tf-admin-cell{color:var(--text-secondary);display:none}.tf-admin-row>span:last-child{justify-self:start}@media (width>=1024px){.tf-admin-title{font-size:26px}.tf-admin-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}.tf-admin-stack{gap:20px}.tf-admin-tile-value{font-size:26px}.tf-admin-row,.tf-admin-row[data-head]{grid-template-columns:minmax(0,2.2fr) minmax(0,1fr) minmax(0,.8fr) minmax(0,1fr) minmax(0,.9fr);display:grid}.tf-admin-row[data-head]{font-size:var(--text-meta-size);color:var(--text-meta);padding-block:10px}.tf-admin-cell{display:block}.tf-admin-row .tf-admin-mobile{display:none}}@media (hover:hover){a.tf-admin-row:hover,.tf-admin-plan:hover,.tf-admin-add:hover{background:var(--surface-tile-hover)}.tf-admin-back:hover{color:var(--text-link-hover)}}.tf-adm-toolbar{flex-wrap:wrap;gap:10px;display:flex}.tf-adm-search{flex:260px;min-width:0;position:relative}.tf-adm-search>svg{pointer-events:none;top:50%;position:absolute;inset-inline-start:14px;transform:translateY(-50%)}.tf-adm-search .tf-field-control{background:var(--surface-card);height:44px;padding-inline-start:40px}.tf-adm-filter{flex:0 auto}.tf-adm-filter .tf-field-control{background:var(--surface-card);height:44px}.tf-adm-filter[data-active] .tf-field-control{border-color:var(--accent);background:var(--accent-tint)}.tf-adm-countline{font-size:var(--text-secondary-size);color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:6px 16px;margin-top:-8px;display:flex}.tf-adm-linkbtn{font:inherit;color:var(--text-link);cursor:pointer;background:0 0;border:0;padding:0}.tf-adm-empty{align-items:flex-start}.tf-adm-table{gap:0;padding:0;overflow-x:auto}.tf-adm-tr{box-sizing:border-box;border:0;border-top:1px solid var(--border-inner);width:100%;min-width:960px;font:inherit;font-size:var(--text-secondary-size);text-align:start;color:var(--text-secondary);background:0 0;align-items:center;gap:16px;padding:14px 20px;display:grid}button.tf-adm-tr{cursor:pointer}.tf-adm-tr[data-head]{border-top:0;border-bottom:1px solid var(--border-card);background:var(--surface-page);height:40px;font-size:var(--text-meta-size);color:var(--text-meta);padding-block:0;font-weight:500}.tf-adm-tr[data-head]+.tf-adm-tr{border-top:0}.tf-adm-teachers{grid-template-columns:minmax(0,2.4fr) minmax(0,1.1fr) minmax(0,1fr) minmax(0,.8fr) minmax(0,.9fr) minmax(0,1fr) minmax(0,1fr)}.tf-adm-sort{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.tf-adm-who{flex-direction:column;min-width:0;display:flex}.tf-adm-who .tf-admin-sub{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tf-adm-num{font-variant-numeric:var(--numeral-feature)}.tf-adm [data-muted]{color:var(--text-meta)}.tf-adm [data-urgent]{color:var(--danger);font-weight:600}.tf-adm-cards{flex-direction:column;gap:10px;display:none}.tf-adm-cardrow{border:0;border-top:1px solid var(--border-inner);width:100%;font:inherit;text-align:start;color:inherit;cursor:pointer;background:0 0;flex-direction:column;gap:2px;padding:14px 16px;display:flex}.tf-adm-cardrow:first-child{border-top:0}.tf-adm-cardrow-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.tf-adm-cards .tf-admin-card{gap:0;padding:0;overflow:hidden}.tf-adm-titlerow{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.tf-adm-actions{flex-wrap:wrap;gap:8px;display:flex}.tf-adm-flash{border-radius:var(--radius-button);background:var(--status-done-bg);color:var(--status-done-ink);font-size:var(--text-secondary-size);align-items:center;gap:10px;padding:12px 16px;display:flex}.tf-adm-flash[data-tone=error]{background:var(--danger-tint);color:var(--danger)}.tf-adm-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}.tf-adm-split[data-cols="32"]{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.tf-adm-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;margin:0;display:grid}.tf-adm-fact{flex-direction:column;gap:2px;min-width:0;display:flex}.tf-adm-fact dt{font-size:var(--text-meta-size);color:var(--text-meta)}.tf-adm-fact dd{overflow-wrap:anywhere;margin:0}.tf-adm-benefits{border-top:1px solid var(--border-inner);flex-direction:column;padding-top:12px;display:flex}.tf-adm-rows{flex-direction:column;display:flex}.tf-adm-cardhead{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;display:flex}.tf-admin-card[data-tone=accent]{border-color:var(--accent)}@media (hover:hover){button.tf-adm-tr:not([data-head]):hover,.tf-adm-cardrow:hover{background:var(--surface-tile)}.tf-adm-linkbtn:hover{color:var(--text-link-hover)}}@media (width<=860px){.tf-adm-table{display:none}.tf-adm-cards{display:flex}.tf-adm-split,.tf-adm-split[data-cols="32"]{grid-template-columns:minmax(0,1fr);gap:16px}.tf-adm-filter{flex:140px}}@media (width<=420px){.tf-adm-facts{grid-template-columns:minmax(0,1fr)}}.tf-adm-listcard{gap:0;padding:0;overflow:hidden}.tf-adm-planrow{border:0;border-top:1px solid var(--border-inner);width:100%;font:inherit;text-align:start;color:inherit;cursor:pointer;background:0 0;align-items:center;gap:12px;padding:14px 20px;display:flex}.tf-adm-planrow:first-child{border-top:0}.tf-adm-planrow[aria-current=true]{background:var(--accent-tint)}.tf-adm-placeholder{border:1px dashed var(--border-input);border-radius:var(--radius-card);font-size:var(--text-secondary-size);color:var(--text-secondary);flex-direction:column;gap:6px;padding:24px;display:flex}@media (hover:hover){.tf-adm-planrow:hover{background:var(--surface-tile)}}.tf-segmented.tf-adm-seg-2{grid-template-columns:repeat(2,minmax(0,1fr))!important}.tf-adm-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.tf-adm-kpis[data-cols="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}.tf-adm-kpi{border-radius:var(--radius-tile);background:var(--surface-card);border:1px solid var(--border-card);color:inherit;flex-direction:column;gap:4px;padding:18px 20px;text-decoration:none;display:flex}.tf-adm-kpi-label{font-size:var(--text-secondary-size);color:var(--text-secondary)}.tf-adm-kpi-value{letter-spacing:-.01em;font-variant-numeric:var(--numeral-feature);align-self:flex-start;font-size:32px;font-weight:600;line-height:1.15}.tf-adm-kpi-value[data-tone=danger]{color:var(--danger)}.tf-adm-kpi-note{font-size:var(--text-meta-size);color:var(--text-meta)}.tf-adm-bars{align-items:flex-end;gap:12px;height:200px;padding-top:8px;display:flex}.tf-adm-bar{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;min-width:0;display:flex}.tf-adm-bar-fill{background:var(--surface-tile-hover);border-radius:8px 8px 4px 4px;width:100%;max-width:56px}.tf-adm-bar[data-current] .tf-adm-bar-fill{background:var(--accent)}.tf-adm-bar-value{font-size:var(--text-meta-size);color:var(--text-meta);white-space:nowrap}.tf-adm-bar[data-current] .tf-adm-bar-value{color:var(--text-body);font-weight:600}.tf-adm-bar-label{font-size:var(--text-meta-size);color:var(--text-secondary)}.tf-adm-rowlink{color:inherit;text-decoration:none}.tf-adm-payments{grid-template-columns:minmax(0,1.3fr) minmax(0,1.4fr) minmax(0,1fr) minmax(0,.7fr) minmax(0,1.2fr) minmax(0,1fr) minmax(0,1.1fr);min-width:980px}.tf-adm-cards>.tf-admin-card{gap:0;padding:0;overflow:hidden}@media (hover:hover){a.tf-adm-kpi:hover{background:var(--surface-tile)}.tf-adm-rowlink:hover .tf-admin-sub{color:var(--text-link-hover)}}@media (width<=1100px){.tf-adm-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=860px){.tf-adm-kpis,.tf-adm-kpis[data-cols="3"]{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tf-adm-kpi-value{font-size:24px}.tf-adm-bars{gap:6px}}.tf-adm-messages{grid-template-columns:minmax(0,1.3fr) minmax(0,.8fr) minmax(0,1.6fr) minmax(0,1.1fr) minmax(0,1.6fr) minmax(0,1.2fr);min-width:900px}.tf-adm-ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tf-adm-tpl{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:24px;display:grid}.tf-adm-tpl-pick{display:none}.tf-adm-tpl-body{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;gap:24px;display:grid}.tf-adm-tpl-list .tf-adm-planrow{padding:12px 16px}.tf-adm-tpl-switches{flex-wrap:wrap;gap:8px 24px;display:flex}.tf-adm-chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tf-adm-chip{border-radius:var(--radius-chip);background:var(--surface-tile);color:var(--accent);font-family:ui-monospace,monospace;font-size:var(--text-meta-size);cursor:pointer;border:0;padding:4px 10px}.tf-adm-divider{border:0;border-top:1px solid var(--border-inner);width:100%;margin:4px 0}.tf-adm-preview{flex-direction:column;gap:12px;display:flex}.tf-adm-preview-sms{border-radius:var(--radius-tile);background:var(--surface-inactive);flex-direction:column;gap:8px;padding:16px;display:flex}.tf-adm-bubble{background:var(--surface-card);white-space:pre-wrap;max-width:85%;font-size:var(--text-secondary-size);border-radius:16px;padding:10px 14px;line-height:1.5}.tf-adm-preview-email{border-radius:var(--radius-tile);border:1px solid var(--border-card);background:var(--surface-card);font-size:var(--text-secondary-size);flex-direction:column;gap:8px;padding:16px;line-height:1.55;display:flex}@media (hover:hover){.tf-adm-chip:hover{background:var(--surface-tile-hover)}}@media (width<=860px){.tf-adm-tpl{grid-template-columns:minmax(0,1fr);gap:16px}.tf-adm-tpl-list{display:none}.tf-adm-tpl-pick{display:block}.tf-adm-tpl-body{grid-template-columns:minmax(0,1fr);gap:16px}}.tf-adm-svc-head{align-items:center;gap:12px;display:flex}.tf-adm-svc-icon{background:var(--surface-tile);width:40px;height:40px;color:var(--accent);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.tf-adm-svc-rows{font-size:var(--text-secondary-size);color:var(--text-secondary);flex-direction:column;gap:4px;display:flex}.tf-adm-svc-keys{flex-wrap:wrap;gap:4px 12px;display:flex}.tf-adm-errrow{grid-template-columns:120px minmax(0,1fr) auto;align-items:baseline;display:grid}.tf-adm-audit{grid-template-columns:minmax(0,1.2fr) minmax(0,1.4fr) minmax(0,1.6fr) minmax(0,1.4fr);min-width:760px}.tf-adm-waitlist{grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr) minmax(0,1.8fr) minmax(0,.9fr) minmax(0,1fr) minmax(0,.7fr);min-width:860px}@media (width<=860px){.tf-adm-errrow{grid-template-columns:minmax(0,1fr) auto}.tf-adm-errrow>:nth-child(2){grid-area:2/1/auto/-1}}.tf-adm-admins{grid-template-columns:minmax(0,2fr) minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr) 44px;min-width:620px}.tf-adm-danger{color:var(--danger)}@media (hover:hover){.tf-adm-main .tf-adm-danger:hover{background:var(--danger-tint)}}.tf-adm-support{grid-template-columns:minmax(0,2fr) minmax(0,3fr)}.tf-adm-tickets{flex-direction:column;gap:8px;display:flex}.tf-adm-ticket{border-radius:var(--radius-tile);border:1px solid var(--border-card);background:var(--surface-card);width:100%;font:inherit;text-align:start;color:inherit;cursor:pointer;flex-direction:column;gap:4px;padding:14px 16px;display:flex}.tf-adm-ticket[aria-current=true]{border-color:var(--accent);background:var(--accent-tint)}.tf-thread{flex-direction:column;gap:10px;display:flex}.tf-thread-msg{background:var(--surface-tile);border-radius:16px;flex-direction:column;align-self:flex-start;gap:4px;max-width:85%;padding:10px 14px;display:flex}.tf-thread-msg[data-mine]{background:var(--surface-inactive);align-self:flex-end}.tf-thread-meta{font-size:var(--text-meta-size);color:var(--text-meta)}.tf-thread-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55}@media (hover:hover){.tf-adm-ticket:hover{background:var(--surface-tile)}}@media (width<=860px){.tf-adm-support{grid-template-columns:minmax(0,1fr)}}.tf-quick{justify-content:center;align-items:center;gap:var(--space-2);white-space:nowrap;border-radius:var(--radius-button);background:var(--surface-card);border:1px solid var(--border-card);height:44px;font-size:var(--text-secondary-size);color:var(--text-body);transition:background var(--motion-state) var(--motion-ease);padding:0 8px;font-weight:500;text-decoration:none;display:flex}.tf-inbox-tile{align-items:center;gap:var(--space-1);background:var(--surface-card);border:1px solid var(--border-card);color:var(--text-body);transition:background var(--motion-state) var(--motion-ease);border-radius:12px;flex-direction:column;padding:8px 2px 6px;text-decoration:none;display:flex;position:relative}.tf-inbox-tile svg{width:26px;height:26px}.tf-inbox-label{font-size:var(--text-meta-size);text-align:center;color:var(--text-secondary);line-height:1.3}.tf-inbox-label[data-size=full]{display:none}.tf-inbox-count{box-sizing:border-box;border-radius:var(--radius-chip);background:var(--accent);min-width:20px;height:20px;color:var(--text-on-accent);border:2px solid var(--surface-page);font-size:var(--text-meta-size);text-align:center;font-variant-numeric:tabular-nums;top:-9px;padding:0 5px;font-weight:600;line-height:16px;position:absolute;inset-inline-end:-7px}@media (width>=1024px){.tf-inbox-tile{border-radius:var(--radius-tile);flex-direction:row;gap:12px;padding:14px 16px}.tf-inbox-tile svg{width:22px;height:22px}.tf-inbox-label[data-size=full]{min-width:0;font-size:var(--text-secondary-size);text-align:start;flex:1;display:block}.tf-inbox-label[data-size=short]{display:none}.tf-inbox-count{min-width:24px;height:24px;font-size:var(--text-secondary-size);border:none;flex-shrink:0;padding:0 7px;line-height:24px;position:static}}.tf-agenda{border:1px solid var(--border-card);border-radius:var(--radius-tile);background:var(--surface-card);overflow:hidden}.tf-agenda-list{scrollbar-width:none;max-height:232px;padding:0 12px;overflow:hidden auto}.tf-agenda-list>*+*{border-top:1px solid var(--border-inner)}.tf-agenda-day{font-size:var(--text-meta-size);color:var(--text-meta);padding:12px 0 4px;font-weight:500}@media (width>=1024px){.tf-agenda-list{max-height:none}}.tf-agenda-row{min-height:40px;color:var(--text-secondary);font-size:var(--text-secondary-size);transition:background var(--motion-state) var(--motion-ease);border-radius:10px;align-items:center;gap:12px;margin:4px -6px;padding:0 6px;text-decoration:none;display:flex}.tf-agenda-row[data-variant=lesson],.tf-agenda-row[data-variant=current]{background:var(--accent-tint);min-height:44px;color:var(--text-body);font-size:var(--text-body-size)}.tf-agenda-row[data-past=true]{color:var(--text-secondary)}.tf-agenda-row[data-variant=current]{border-inline-start:3px solid var(--accent);font-weight:500}.tf-agenda-row[data-variant=event]{background:var(--surface-inactive)}.tf-agenda-time{text-align:start;font-variant-numeric:tabular-nums;flex-shrink:0;width:44px}.tf-agenda-row[data-variant=lesson] .tf-agenda-time{font-weight:500}.tf-agenda-row[data-variant=current] .tf-agenda-time{color:var(--accent);font-weight:600}.tf-agenda-main{flex:1;min-width:0}.tf-agenda-meta{font-size:var(--text-meta-size);color:var(--text-meta);font-weight:400}.tf-agenda-status{font-size:var(--text-meta-size);color:var(--danger);font-weight:500}.tf-agenda-add{align-items:center;gap:var(--space-1);color:var(--text-link);font-weight:500;display:inline-flex}.tf-suggestion{align-items:center;gap:var(--space-3);background:var(--surface-card);border:1px solid var(--border-card);border-inline-start:3px solid var(--accent);border-radius:var(--radius-tile);padding:10px 12px;display:flex}.tf-suggestion-text{flex:1;min-width:0}.tf-suggestion[data-layout=stack]{flex-direction:column;align-items:stretch;gap:10px}.tf-request-name{color:var(--text-body);text-decoration:none}.tf-request-actions{flex-wrap:wrap;gap:8px;display:flex}.tf-request-done{font-size:var(--text-secondary-size);color:var(--text-secondary);align-items:center;gap:6px;display:inline-flex}.tf-inbox-tile[data-highlight=true]{background:var(--accent-tint);border-color:var(--accent)}.tf-suggestion-title{font-size:var(--text-secondary-size);font-weight:500;line-height:1.4}.tf-suggestion-detail{font-size:var(--text-meta-size);color:var(--text-meta)}.tf-suggestion-action{background:var(--accent);height:36px;color:var(--text-on-accent);font-family:inherit;font-size:var(--text-secondary-size);cursor:pointer;border:none;border-radius:12px;flex-shrink:0;align-items:center;padding:0 12px;font-weight:600;text-decoration:none;display:inline-flex}.tf-suggestion-action[data-variant=quiet]{color:var(--text-link);background:0 0}@media (hover:hover){.tf-quick:hover,.tf-inbox-tile:hover{background:var(--accent-tint)}a.tf-agenda-row[data-variant=lesson]:hover,a.tf-agenda-row[data-variant=current]:hover{background:var(--surface-tile-hover)}.tf-suggestion-action:not([data-variant=quiet]):hover{background:var(--accent-press)}}.tf-screen-wide{flex-direction:column;gap:18px;max-width:1080px;margin-inline:auto;padding:10px 16px 24px;display:flex}@media (width>=1024px){.tf-screen-wide{gap:var(--space-7);padding:32px 40px 40px}}.tf-today-title{margin:0;font-size:22px;font-weight:500;line-height:1.25}.tf-today-bell{margin-inline:auto -8px}.tf-today-bell .tf-icon-button{margin-inline-end:0}.tf-today-view .tf-segmented[data-tone=accent] .tf-segmented-option{border-radius:10px;height:36px}.tf-today-day-toggle{align-items:center;gap:var(--space-1);height:32px;font-family:inherit;font-size:var(--text-secondary-size);color:var(--text-link);cursor:pointer;background:0 0;border:0;padding:0 4px 0 8px;font-weight:500;display:inline-flex}.tf-today-quick{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.tf-today-inbox{gap:var(--space-3);grid-template-columns:repeat(4,minmax(0,1fr));padding-top:4px;display:grid}.tf-today-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;display:grid}.tf-today-header-quick{display:none}@media (width>=1024px){.tf-today-quick{display:none}.tf-today-header-quick{gap:8px;margin-inline-start:auto;display:flex}.tf-today-title{font-size:26px}.tf-today-bell{margin-inline-start:0}.tf-today-header-quick .tf-quick{height:40px;padding:0 14px}.tf-today-inbox{padding-top:0}.tf-today-grid{gap:var(--space-7);grid-template-columns:minmax(0,3fr) minmax(0,2fr)}}@media (width<=1023px){.tf-tabbar[data-labeled=false]{padding-inline:8px}}@media (width>=1024px){.tf-tabbar[data-labeled=false]{gap:var(--space-2);padding:var(--space-6) 0}}.tf-agenda-row[data-variant=gap]{border-radius:0;margin:0;padding:0}.tf-today-side{display:contents}.tf-today-side>.tf-checklist{order:-1}@media (width>=1024px){.tf-today-side{flex-direction:column;gap:18px;min-width:0;display:flex}.tf-today-side>.tf-checklist{order:0}}.tf-today-suggestions{gap:var(--space-2);flex-direction:column;display:flex}.tf-today-suggestions:not(:has(.tf-suggestion)){display:none}.tf-suggestion-dismiss{width:36px;height:36px;color:var(--text-meta);cursor:pointer;background:0 0;border:0;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;margin-inline-end:-6px;display:flex}.tf-checklist{padding:var(--space-5);border-radius:var(--radius-card);background:var(--surface-card);border:1px solid var(--border-card);flex-direction:column;gap:12px;display:flex}.tf-checklist-head{flex-direction:column;gap:8px;display:flex}.tf-checklist-title-row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.tf-checklist-title{font-size:var(--text-card-title-size);line-height:var(--text-card-title-line);margin:0;font-weight:600}.tf-checklist-count{font-size:var(--text-secondary-size);color:var(--text-meta);font-variant-numeric:tabular-nums}.tf-checklist-done{border-radius:var(--radius-tile);background:var(--status-done-bg);color:var(--status-done-ink);align-items:center;gap:10px;padding:12px 14px;display:flex}.tf-checklist-done>span{font-size:var(--text-body-size);flex:1;font-weight:500}.tf-checklist-done .tf-text-button{color:var(--status-done-ink);font-weight:600}.tf-checklist-rows{flex-direction:column;display:flex}.tf-checklist-row{align-items:flex-start;gap:12px;padding:12px 0;display:flex}.tf-checklist-row+.tf-checklist-row{border-top:1px solid var(--border-inner)}.tf-checklist-icon{background:var(--surface-tile);width:36px;height:36px;color:var(--accent);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.tf-checklist-icon[data-done=true]{background:var(--status-done-bg);color:var(--status-done-ink)}.tf-checklist-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.tf-checklist-text>span:first-child{font-size:var(--text-body-size);font-weight:500}.tf-checklist-text[data-done=true]>span:first-child{color:var(--text-secondary)}.tf-checklist-text>span:last-child{font-size:var(--text-secondary-size);color:var(--text-secondary);text-wrap:pretty;line-height:1.45}.tf-checklist-action{border-radius:var(--radius-button);border:1px solid var(--border-input);background:var(--surface-card);height:44px;color:var(--text-link);font-family:inherit;font-size:var(--text-body-size);white-space:nowrap;cursor:pointer;flex-shrink:0;align-items:center;padding:0 14px;font-weight:600;text-decoration:none;display:inline-flex}.tf-checklist-action[data-primary=true]{border-color:var(--accent);background:var(--accent);color:var(--text-on-accent)}.tf-checklist-action:disabled{opacity:.6;cursor:default}.tf-checklist-foot{justify-content:flex-end;margin-block:-8px -12px;display:flex}@media (hover:hover){.tf-suggestion-dismiss:hover,.tf-checklist-action:not([data-primary=true]):hover{background:var(--accent-tint)}.tf-checklist-action[data-primary=true]:hover{background:var(--accent-press)}}.tf-auth{max-width:440px;min-height:100vh;padding:48px var(--space-6) var(--space-8);gap:var(--space-7);flex-direction:column;margin-inline:auto;display:flex}@media (width>=1024px){.tf-auth{padding:96px var(--space-7) 48px}}.tf-auth-head{flex-direction:column;gap:4px;display:flex}.tf-auth-brand{font-size:var(--text-secondary-size);color:var(--accent);font-weight:600}.tf-auth-title{font-size:var(--text-title-size);line-height:var(--text-title-line);margin:0;font-weight:600}.tf-auth-detail{font-size:var(--text-body-size);color:var(--text-secondary);text-wrap:pretty;margin:0;line-height:1.55}.tf-auth-form{flex-direction:column;gap:18px;display:flex}.tf-auth-field{flex-direction:column;gap:4px;display:flex}.tf-auth-form .tf-field-label{margin-bottom:4px;font-weight:400}.tf-auth-form .tf-field-control{height:54px;padding:0 14px}[dir=rtl] .tf-auth-form .tf-field-control[dir=ltr]{text-align:right}.tf-auth-form .tf-field-note{margin-top:4px}.tf-auth-form .tf-field-note[data-error=true]{color:var(--danger)}.tf-auth-form .tf-field-control[aria-invalid=true]{border-color:var(--danger)}.tf-auth .tf-button{min-height:54px;padding-block:0;font-weight:600}.tf-auth .tf-button:disabled{color:var(--text-meta)}.tf-auth .tf-button[data-variant=quiet]{background:var(--surface-card)}.tf-auth a.tf-button{justify-content:center;align-items:center;text-decoration:none;display:flex}.tf-auth-link{height:44px;font-family:inherit;font-size:var(--text-secondary-size);color:var(--text-link);cursor:pointer;background:0 0;border:0;align-self:flex-start;align-items:center;padding:0;font-weight:600;text-decoration:none;display:inline-flex}.tf-auth-link[data-size=sm]{height:36px;font-weight:500}.tf-auth-link[data-weight=regular]{font-weight:500}.tf-auth-link:disabled{color:var(--text-meta);cursor:default}.tf-auth-consent{font-size:var(--text-meta-size);line-height:var(--text-meta-line);color:var(--text-meta);margin:0}a.tf-auth-brand{text-decoration:none}.tf-legal{min-height:100vh;max-width:var(--content-max);padding:48px var(--screen-padding) var(--space-8);gap:var(--space-7);flex-direction:column;margin-inline:auto;display:flex}.tf-legal-lang{min-height:48px;font-size:var(--text-secondary-size);color:var(--text-link);align-self:flex-end;align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.tf-legal-updated{font-size:var(--text-secondary-size);color:var(--text-meta);margin:0}.tf-legal-section{gap:var(--space-3);flex-direction:column;display:flex}.tf-legal-section h2{font-size:var(--text-card-title-size);line-height:var(--text-card-title-line);margin:0;font-weight:600}.tf-legal-section p{font-size:var(--text-body-size);line-height:var(--text-body-line);color:var(--text-prose);text-wrap:pretty;margin:0}.tf-legal-links{align-items:center;gap:var(--space-2);font-size:var(--text-secondary-size);color:var(--text-meta);flex-wrap:wrap;display:flex}.tf-auth>.tf-legal-links{margin-top:auto}.tf-legal-links a{min-height:48px;color:var(--text-link);align-items:center;text-decoration:none;display:inline-flex}.tf-auth-switch{font-size:var(--text-body-size);color:var(--text-meta);align-items:center;gap:8px;display:flex}.tf-teacher-switch{flex-wrap:wrap;gap:8px;padding:12px 16px 0;display:flex}.tf-teacher-switch .tf-filter-chip{text-decoration:none}.tf-teacher-switch .tf-filter-chip[aria-current=page]{border-color:var(--accent);background:var(--accent);color:var(--text-on-accent)}.tf-auth-switch .tf-auth-link{font-size:var(--text-body-size)}.tf-auth-sent{padding:var(--space-5);border-radius:var(--radius-tile);background:var(--status-done-bg);color:var(--status-done-ink);flex-direction:column;gap:4px;display:flex}.tf-auth-sent>span:first-child{font-size:var(--text-secondary-size)}.tf-auth-sent>span:last-child{font-size:var(--text-control-size);word-break:break-all;align-self:flex-start;font-weight:600}.tf-auth-note{flex-direction:column;gap:2px;display:flex}.tf-auth-note>span{font-size:var(--text-secondary-size);color:var(--text-meta);text-wrap:pretty;line-height:1.55}.tf-auth-note>div{flex-wrap:wrap;gap:4px 16px;display:flex}.tf-auth-invite{border-radius:var(--radius-tile);background:var(--surface-card);border:1px solid var(--border-card);align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.tf-auth-invite>div{flex-direction:column;flex:1;min-width:0;display:flex}.tf-auth-invite>div>span:first-child{font-size:var(--text-body-size);font-weight:500}.tf-auth-invite>div>span:last-child{font-size:var(--text-secondary-size);color:var(--text-secondary);text-wrap:pretty;line-height:1.5}@media (hover:hover){.tf-auth .tf-button[data-variant=quiet]:hover{background:var(--accent-tint)}.tf-auth-link:not(:disabled):hover{color:var(--text-link-hover)}}.tf-shell{min-height:100vh}.tf-shell-main{padding-bottom:calc(60px + var(--space-6) + env(safe-area-inset-bottom))}.tf-shell-nav{z-index:10;inset-inline:0;position:fixed;bottom:0}.tf-sheet-scrim{z-index:50;animation:tf-fade var(--motion-surface) var(--motion-ease);background:#2a0f3d3d;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.tf-sheet{width:100%;max-width:var(--content-max);background:var(--surface-card);border-radius:var(--radius-frame) var(--radius-frame) 0 0;max-height:92vh;box-shadow:var(--shadow-sheet);animation:tf-sheet-in var(--motion-surface) var(--motion-ease);outline:none;flex-direction:column;display:flex}.tf-sheet-head{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--screen-padding) var(--space-2);display:flex}.tf-sheet-title{font-size:var(--text-card-title-size);margin:0;font-weight:500}.tf-sheet-body{padding:var(--space-2) var(--screen-padding) calc(var(--space-6) + env(safe-area-inset-bottom));gap:var(--section-gap);flex-direction:column;display:flex;overflow-y:auto}@keyframes tf-sheet-in{0%{opacity:0;transform:translateY(24px)}}@keyframes tf-fade{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.tf-sheet,.tf-sheet-scrim{animation:none}}.tf-row-link{padding:var(--card-padding);border:1px solid var(--border-card);border-radius:var(--radius-card);background:var(--surface-card);color:var(--text-body);justify-content:space-between;align-items:center;text-decoration:none;display:flex}.tf-account-banner{max-width:var(--content-max);margin:var(--space-3) auto 0;width:calc(100% - 2 * var(--screen-padding));justify-content:space-between;align-items:center;gap:var(--space-3);padding:12px var(--space-4);border-radius:var(--radius-tile);background:var(--surface-attention);color:var(--text-on-attention);font-size:var(--text-secondary-size);text-decoration:none;display:flex}.tf-update-banner{top:calc(env(safe-area-inset-top) + var(--space-2));z-index:20;background:var(--purple-100);color:var(--text-body);padding-block:var(--space-2);position:sticky}@media (width>=1024px){.tf-shell{display:flex}.tf-shell-nav{flex-shrink:0;height:100vh;position:sticky;top:0}.tf-shell-main{min-width:0;padding-bottom:var(--space-8);flex:1}}.tf-icon-button{width:var(--tap-min);height:var(--tap-min);border-radius:var(--radius-input);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin-inline-end:calc(var(--space-3) * -1);display:inline-flex;position:relative}.tf-badge{top:var(--space-2);min-width:var(--space-5);height:var(--space-5);padding:0 var(--space-1);border-radius:var(--radius-chip);background:var(--accent);color:var(--text-on-accent);font-size:var(--text-meta-size);line-height:var(--space-5);text-align:center;position:absolute;inset-inline-end:var(--space-1)}.tf-icon-button[data-active=true]{color:var(--accent)}.tf-icon-button[data-bell][data-unread=false]{color:var(--purple-300)}.tf-icon-button[data-bell][data-unread=true]{color:var(--accent)}@media (hover:hover){.tf-icon-button:hover{background:var(--accent-tint)}}.tf-grid{grid-template-columns:var(--grid-time-col) repeat(var(--grid-days,7), minmax(0, 1fr));grid-template-rows:auto repeat(var(--grid-slots), var(--grid-row));border:1px solid var(--border-card);border-radius:var(--radius-tile);background:var(--surface-card);display:grid;overflow:hidden}.tf-grid-corner{border-bottom:1px solid var(--border-card);grid-area:1/1}.tf-grid-day{padding:var(--space-3) 0;text-align:center;font-size:var(--text-secondary-size);color:var(--text-secondary);border-bottom:1px solid var(--border-card);grid-row:1;font-weight:500}.tf-grid-hour{padding:var(--space-1) var(--space-2) 0;font-size:var(--text-meta-size);color:var(--text-meta);text-align:center;border-top:1px solid var(--border-inner);grid-column:1;line-height:1}.tf-grid-body{grid-area:2/2/-1/-1;grid-template-columns:repeat(var(--grid-days,7), minmax(0, 1fr));grid-template-rows:repeat(var(--grid-slots), var(--grid-row));touch-action:none;-webkit-user-select:none;user-select:none;display:grid}.tf-grid-cell{appearance:none;padding:0 var(--space-1);border:none;border-inline-start:1px solid var(--border-inner);border-top:1px dashed var(--border-inner);background:var(--surface-card);font-family:var(--font-sans);font-size:var(--text-meta-size);line-height:var(--grid-row);color:var(--text-on-attention);text-align:start;white-space:nowrap;cursor:pointer;transition:background var(--motion-state) var(--motion-ease);margin:0;overflow:hidden}.tf-grid-cell[data-hour=true]{border-top-style:solid}.tf-grid-cell[data-state=instant]{background:var(--accent-tint);border-inline-start:3px solid var(--accent-soft)}.tf-grid-cell[data-state=manual]{background:var(--accent-tint);border-inline-start:3px solid var(--accent)}.tf-grid-cell:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media (hover:hover){.tf-grid-cell[data-state=none]:hover{background:var(--accent-tint)}}.tf-grid-day[data-today=true]{color:var(--accent)}.tf-grid-daynum{font-size:var(--text-meta-size);font-weight:400}.tf-grid-daynote{max-width:100%;padding:1px var(--space-1);border-radius:var(--space-1);background:var(--surface-inactive);color:var(--text-prose);font-size:var(--text-meta-size);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-weight:400;overflow:hidden}.tf-cal-body{touch-action:auto;-webkit-user-select:auto;user-select:auto}.tf-cal-line{z-index:1;cursor:default;pointer-events:none;background:0 0;position:relative}.tf-cal-col{pointer-events:none;grid-row:1/-1;position:relative}.tf-cal-item[data-layer=back]{z-index:0}.tf-cal-item{box-sizing:border-box;padding:var(--space-1) var(--space-1);font-family:var(--font-sans);font-size:var(--text-meta-size);line-height:var(--text-meta-line);text-align:start;pointer-events:auto;border:none;flex-direction:column;margin:0;display:flex;position:absolute;inset-inline:0;overflow:hidden}.tf-cal-item[data-layer=front]{z-index:2;inset-inline:var(--space-1);border-radius:var(--space-2)}button.tf-cal-item{cursor:pointer}.tf-cal-title{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.tf-cal-sub{white-space:nowrap;text-overflow:ellipsis;opacity:.85;overflow:hidden}.tf-cal-item[data-kind=open]{background:var(--status-done-bg);color:var(--status-done-ink)}.tf-cal-item[data-kind=openApproval]{border:1px dashed var(--status-done-ink);color:var(--status-done-ink);background:0 0}.tf-cal-item[data-kind=unbookable]{background:var(--green-bg);color:var(--text-secondary);opacity:.6}.tf-cal-item[data-kind=lesson]{background:var(--accent);color:var(--text-on-accent)}.tf-cal-item[data-kind=lessonPast]{background:var(--accent-tint);color:var(--accent)}.tf-cal-item[data-kind=pending]{background:var(--surface-attention);color:var(--text-on-attention)}.tf-cal-item[data-kind=blocked]{background:var(--danger-tint);color:var(--danger)}@media (hover:hover){button.tf-cal-item[data-kind=lesson]:hover{background:var(--accent-press)}button.tf-cal-item[data-kind=lessonPast]:hover{background:var(--surface-tile-hover)}}.tf-cal-now{z-index:3;background:var(--danger);pointer-events:none;height:2px;position:absolute;inset-inline:0}.tf-cal-now:before{content:"";border-radius:var(--radius-chip);background:var(--danger);inset-inline-start:-4px;width:8px;height:8px;position:absolute;top:-3px}.tf-cal-item[data-kind=busy]{background:var(--surface-inactive);border-inline-start:3px solid var(--border-input);border-top:1px solid var(--surface-page);border-bottom:1px solid var(--border-input);color:var(--text-prose)}.tf-cal-item[data-kind=busy]:has(.tf-cal-title){z-index:1;background:var(--surface-card);border:1px solid var(--border-card);border-inline-start:3px solid var(--border-input);inset-inline-end:var(--space-1)}.tf-swatch.tf-cal-item{border-radius:var(--space-1);padding:0}.tf-month-head{justify-content:space-between;align-items:center;display:flex}.tf-month-head .tf-icon-button{color:var(--accent);margin:0}.tf-month-head .tf-icon-button:disabled{color:var(--text-disabled);cursor:default}.tf-month-title{font-size:var(--text-card-title-size);font-weight:500}.tf-month-grid{gap:var(--space-2) 0;margin-top:var(--space-3);grid-template-columns:repeat(7,minmax(0,1fr));justify-items:center;display:grid}.tf-month-weekday{font-size:var(--text-meta-size);color:var(--text-secondary);padding-bottom:var(--space-2);font-weight:500}.tf-month-day{width:var(--tap-min);height:var(--tap-min);border-radius:var(--radius-chip);font-family:var(--font-sans);font-size:var(--text-control-size);color:var(--text-disabled);cursor:default;transition:background var(--motion-state) var(--motion-ease), color var(--motion-state) var(--motion-ease);background:0 0;border:none;position:relative}.tf-month-day[data-state=open]{background:var(--accent-tint);color:var(--accent);cursor:pointer;font-weight:500}.tf-month-day[data-state=open]:active{background:var(--surface-tile-hover)}.tf-month-day[data-state=selected]{background:var(--accent);color:var(--text-on-accent);font-weight:500}.tf-month-day[data-today=true]:after{content:"";bottom:var(--space-1);border-radius:var(--radius-chip);background:currentColor;width:4px;height:4px;margin-inline:auto;position:absolute;inset-inline:0}@media (hover:hover){.tf-month-day[data-state=open]:hover{background:var(--surface-tile-hover)}}.tf-recorder{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.tf-recorder[data-state=recorded]{flex-direction:column;align-items:stretch}.tf-recorder-dot{width:var(--space-3);height:var(--space-3);border-radius:var(--radius-chip);background:var(--accent)}.tf-media{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border-inner);border-radius:var(--radius-input);background:var(--surface-card);flex-direction:column;display:flex}.tf-media-head{align-items:center;gap:var(--space-2);font-size:var(--text-secondary-size);color:var(--text-secondary);display:flex}.tf-media-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tf-media-audio{width:100%;height:var(--tap-min)}.tf-media-visual{object-fit:contain;border-radius:var(--radius-input);background:var(--surface-inactive);width:100%;max-height:360px;display:block}.tf-media-frame{aspect-ratio:16/9;border-radius:var(--radius-input);background:var(--surface-inactive);width:100%;position:relative;overflow:hidden}.tf-media-frame iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.tf-media-placeholder{height:var(--tap-min);border-radius:var(--radius-input);background:var(--surface-inactive)}.tf-media-footer{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.tf-swatch{width:var(--space-4);height:var(--space-4);border-radius:var(--space-1);vertical-align:middle;margin-inline-end:var(--space-2);display:inline-block}.tf-swatch[data-mode=instant]{background:var(--accent-tint);border-inline-start:3px solid var(--accent-soft)}.tf-swatch[data-mode=manual]{background:var(--accent-tint);border-inline-start:3px solid var(--accent)}.tf-swatch[data-mode=erase]{background:var(--surface-card);border:1px solid var(--border-input)}.tf-pressable{transition:background var(--motion-state) var(--motion-ease)}.tf-screen-wide[data-layout=detail],.tf-screen-wide[data-layout=narrow]{gap:14px;padding:4px 16px 24px}.tf-screen-wide[data-layout=narrow]{max-width:var(--content-max);gap:12px}@media (width>=1024px){.tf-screen-wide[data-layout=detail],.tf-screen-wide[data-layout=narrow]{gap:var(--space-7);padding:24px 40px 40px}.tf-screen-wide[data-layout=narrow]{gap:var(--space-5)}}.tf-pill-button[data-size=lg]{border-radius:var(--radius-button);height:44px;padding:0 16px;font-weight:600}.tf-pill-button[data-tone=attention-soft]{background:var(--surface-attention-soft);color:var(--text-on-attention)}.tf-pill-button[data-tone=danger-filled]{background:var(--danger);color:var(--cream-card)}@media (hover:hover){.tf-pill-button[data-tone=danger-filled]:not(:disabled):hover{background:var(--danger-press)}}.tf-add-grid{gap:var(--space-2);border-top:1px solid var(--border-inner);grid-template-columns:repeat(3,minmax(0,1fr));padding:10px 16px 14px;display:grid}.tf-add-tile{justify-content:center;align-items:center;gap:var(--space-1);border-radius:var(--radius-input);background:var(--accent-tint);height:56px;color:var(--accent);font-family:inherit;font-size:var(--text-meta-size);cursor:pointer;transition:background var(--motion-state) var(--motion-ease);border:0;flex-direction:column;padding:0 4px;font-weight:500;display:flex}.tf-add-tile[aria-pressed=true]{background:var(--surface-tile-hover)}.tf-add-tile:disabled{opacity:.6;cursor:default}.tf-add-panel{gap:var(--space-3);flex-direction:column;padding:0 16px 14px;display:flex}@media (hover:hover){.tf-add-tile:not(:disabled):hover{background:var(--surface-tile-hover)}}.tf-share-submit{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.tf-share-submit .tf-portal-cta{height:var(--tap-min);font-size:var(--text-body-size);flex:auto;padding:0 20px}@media (width>=1024px){.tf-share-submit .tf-portal-cta{flex:none}}.tf-row-hit{align-items:center;gap:var(--space-3);min-width:0;min-height:44px;font-family:inherit;font-size:var(--text-body-size);color:inherit;text-align:start;cursor:pointer;background:0 0;border:0;flex:1;padding:0;display:flex}.tf-row-text{flex-direction:column;flex:1;min-width:0;display:flex}.tf-row-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.tf-row-meta{font-size:var(--text-meta-size);color:var(--text-meta);font-variant-numeric:tabular-nums}.tf-share-toggle{border:1px solid var(--border-input);border-radius:var(--radius-chip);height:32px;color:var(--text-secondary);font-family:inherit;font-size:var(--text-meta-size);cursor:pointer;transition:background var(--motion-state) var(--motion-ease);background:0 0;flex-shrink:0;align-items:center;gap:4px;padding:0 10px;font-weight:500;display:inline-flex}.tf-share-toggle[aria-pressed=true]{background:var(--status-done-bg);color:var(--status-done-ink);border-color:#0000}.tf-share-toggle:disabled{opacity:.6;cursor:default}.tf-audio{align-items:center;gap:var(--space-3);border-radius:var(--radius-button);background:var(--accent-tint);padding:8px 10px;display:flex}.tf-audio-play{border-radius:var(--radius-chip);background:var(--accent);width:44px;height:44px;color:var(--text-on-accent);cursor:pointer;transition:background var(--motion-state) var(--motion-ease);border:0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.tf-audio-play:disabled{opacity:.6;cursor:default}.tf-audio-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.tf-audio-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.tf-audio-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.tf-audio-time{font-size:var(--text-meta-size);color:var(--text-meta);font-variant-numeric:tabular-nums;direction:ltr;flex-shrink:0}.tf-audio-bar{border-radius:var(--radius-chip);background:var(--surface-tile-hover);cursor:pointer;direction:ltr;height:4px;overflow:hidden}.tf-audio-fill{background:var(--accent);height:100%}@media (hover:hover){.tf-audio-play:not(:disabled):hover{background:var(--accent-press)}}.tf-week-tabs{flex-wrap:wrap;gap:6px;display:flex}.tf-week-tab{font-variant-numeric:tabular-nums;transition:background var(--motion-state) var(--motion-ease);gap:6px;padding:0 14px}.tf-avail-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;display:grid}.tf-avail-side{flex-direction:column;order:-1;gap:10px;min-width:0;display:flex}.tf-avail-side-group,.tf-avail-section{flex-direction:column;gap:10px;min-width:0;display:flex}@media (width>=1024px){.tf-avail-layout{gap:var(--space-7);grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.tf-avail-side{order:0}}.tf-avail-head{justify-content:space-between;align-items:center;gap:10px;min-height:28px;display:flex}.tf-avail-h2{font-size:var(--text-body-size);margin:0;font-weight:500}.tf-avail-status{font-size:var(--text-meta-size);color:var(--text-secondary)}.tf-avail-status[data-tone=danger]{color:var(--danger)}.tf-avail-chip{border-radius:var(--radius-chip);background:var(--status-done-bg);height:24px;color:var(--status-done-ink);font-size:var(--text-meta-size);flex-shrink:0;align-items:center;gap:4px;padding:0 10px;font-weight:500;display:inline-flex}.tf-avail-chip[data-size=lg]{height:28px;font-size:var(--text-secondary-size);padding:0 12px}.tf-avail-note{font-size:var(--text-secondary-size);color:var(--text-secondary);text-wrap:pretty;margin:0;line-height:1.55}.tf-avail-meta{font-size:var(--text-meta-size);color:var(--text-secondary);text-wrap:pretty;line-height:1.5}.tf-avail-card{border-radius:var(--radius-tile);background:var(--surface-card);border:1px solid var(--border-card);flex-wrap:wrap;align-items:center;gap:10px 12px;padding:12px 14px;display:flex}.tf-avail-confirm{gap:12px 16px;padding:14px 16px}.tf-avail-card-text{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.tf-avail-card-title{font-size:var(--text-secondary-size);font-weight:500}.tf-avail-card-title[data-size=lg]{font-size:var(--text-body-size)}.tf-avail-actions{flex-wrap:wrap;gap:8px;display:flex}.tf-avail-action{border:1px solid var(--border-input);border-radius:var(--radius-button);height:40px;color:var(--text-body);font-family:inherit;font-size:var(--text-secondary-size);cursor:pointer;transition:background var(--motion-state) var(--motion-ease);background:0 0;padding:0 14px;font-weight:500}.tf-avail-action[data-tone=accent]{border-color:var(--accent);color:var(--accent);font-weight:600}.tf-avail-action:disabled{opacity:.6;cursor:default}.tf-avail-brushes{flex-wrap:wrap;gap:6px;display:flex}.tf-avail-brush{border:1px solid var(--border-input);border-radius:var(--radius-input);height:40px;color:var(--text-secondary);font-family:inherit;font-size:var(--text-secondary-size);cursor:pointer;transition:background var(--motion-state) var(--motion-ease);background:0 0;align-items:center;gap:8px;padding:0 14px;font-weight:500;display:inline-flex}.tf-avail-brush[aria-checked=true]{border-color:var(--accent);background:var(--accent-tint);color:var(--accent)}.tf-avail-dot{box-sizing:border-box;border-radius:var(--radius-chip);background:var(--green-ink);flex-shrink:0;width:8px;height:8px;display:inline-block}.tf-avail-dot[data-mode=manual]{background:var(--amber)}.tf-avail-dot[data-size=lg]{background:var(--green-bg);width:14px;height:14px}.tf-avail-dot[data-size=lg][data-mode=manual]{background:var(--gold-tint)}.tf-avail-dot[data-size=lg][data-mode=erase]{border:1px solid var(--border-input);background:0 0}.tf-avail-grid .tf-grid{--grid-time-col:48px}@media (width>=1024px){.tf-avail-grid .tf-grid[data-variant=paint]{--grid-row:20px}}.tf-avail-grid .tf-grid-hour{border-top:0;align-self:start;padding:0;transform:translateY(-50%)}.tf-avail-grid .tf-grid-day+.tf-grid-hour{visibility:hidden}.tf-avail-grid .tf-grid-cell[data-past=true]{background:var(--surface-inactive);cursor:default}.tf-grid-event-block{z-index:1;box-sizing:border-box;border:1px solid var(--border-input);background:repeating-linear-gradient(135deg, var(--text-body) 0 4px, var(--surface-card) 4px 8px);border-radius:6px;min-width:0;margin:1px 2px;padding:2px 5px}@supports (color:color-mix(in lab, red, red)){.tf-grid-event-block{background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--text-body) 8%, transparent) 0 4px, color-mix(in srgb, var(--surface-card) 55%, transparent) 4px 8px)}}.tf-grid-event-block{pointer-events:none;font-size:var(--text-meta-size);color:var(--text-body);white-space:nowrap;text-overflow:ellipsis;line-height:1.3;overflow:hidden}.tf-avail-legend{font-size:var(--text-meta-size);color:var(--text-secondary);align-items:center;gap:8px;display:flex}.tf-avail-hatch{box-sizing:border-box;border:1px solid var(--border-input);background:repeating-linear-gradient(135deg, var(--text-body) 0 3px, transparent 3px 6px);border-radius:4px;flex-shrink:0;width:14px;height:14px}@supports (color:color-mix(in lab, red, red)){.tf-avail-hatch{background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--text-body) 12%, transparent) 0 3px, transparent 3px 6px)}}.tf-wgrid{--wgrid-row:28px;--wgrid-time:48px;overscroll-behavior:contain;border-radius:var(--radius-tile);background:var(--surface-card);border:1px solid var(--border-card);max-height:460px;position:relative;overflow:auto}.tf-wgrid-inner{width:calc(var(--wgrid-time) + (100% - var(--wgrid-time)) * 7 / 5);min-width:100%}@media (width>=1024px){.tf-wgrid{--wgrid-row:22px;max-height:640px}.tf-wgrid-inner{width:100%}}.tf-wgrid-head{z-index:6;background:var(--surface-card);border-bottom:1px solid var(--border-inner);display:flex;position:sticky;top:0}.tf-wgrid-corner,.tf-wgrid-hours{width:var(--wgrid-time);background:var(--surface-card);flex-shrink:0;position:sticky;inset-inline-start:0}.tf-wgrid-corner{z-index:7}.tf-wgrid-day{border-inline-start:1px solid var(--border-inner);text-align:center;min-width:0;font-size:var(--text-meta-size);color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;flex:1;padding:8px 0;font-weight:500}.tf-wgrid-body{display:flex}.tf-wgrid-hours{z-index:5;height:calc(var(--wgrid-slots) * var(--wgrid-row))}.tf-wgrid-hour{text-align:center;font-size:var(--text-meta-size);color:var(--text-meta);font-variant-numeric:tabular-nums;position:absolute;inset-inline:0;transform:translateY(-50%)}.tf-wgrid-col{min-width:0;height:calc(var(--wgrid-slots) * var(--wgrid-row));border-inline-start:1px solid var(--border-inner);background:repeating-linear-gradient(to bottom, transparent 0 calc(var(--wgrid-row) * 2 - 1px), var(--border-inner) calc(var(--wgrid-row) * 2 - 1px) calc(var(--wgrid-row) * 2));cursor:pointer;flex:1;position:relative}.tf-wgrid-past{background:var(--surface-inactive);pointer-events:none;position:absolute;inset-inline:0}.tf-wgrid-block{z-index:1;box-sizing:border-box;border:1px solid var(--green-ink);background:var(--green-bg);color:var(--text-body);cursor:pointer;border-radius:8px;margin-top:1px;padding:4px 6px;position:absolute;inset-inline:3px}.tf-wgrid-block[data-mode=manual]{border-color:var(--amber);background:var(--gold-tint)}.tf-wgrid-block[data-selected]{z-index:4;border-color:var(--accent);outline:2px solid var(--accent)}.tf-wgrid-block:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tf-wgrid-times{height:100%;font-size:var(--text-meta-size);font-variant-numeric:tabular-nums;flex-direction:column;font-weight:600;line-height:1.3;display:flex;overflow:hidden}.tf-wgrid-handle{touch-action:none;cursor:ns-resize;justify-content:center;align-items:center;width:44px;height:36px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.tf-wgrid-handle[data-edge=start]{top:-18px}.tf-wgrid-handle[data-edge=end]{bottom:-18px}.tf-wgrid-handle>span{box-sizing:border-box;border-radius:var(--radius-chip);background:var(--surface-card);border:2px solid var(--accent);width:16px;height:16px}.tf-wgrid-event{z-index:2;box-sizing:border-box;border:1px solid var(--border-input);background:repeating-linear-gradient(135deg, var(--text-body) 0 4px, var(--surface-card) 4px 8px);border-radius:6px;width:45%;padding:2px 4px;position:absolute;inset-inline-end:3px}@supports (color:color-mix(in lab, red, red)){.tf-wgrid-event{background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--text-body) 10%, transparent) 0 4px, color-mix(in srgb, var(--surface-card) 85%, transparent) 4px 8px)}}.tf-wgrid-event{pointer-events:none;color:var(--text-body);font-size:11px;line-height:1.25;overflow:hidden}.tf-avail-tabs{border-radius:var(--radius-button);background:var(--surface-card);border:1px solid var(--border-card);grid-template-columns:1fr 1fr;gap:4px;max-width:420px;padding:4px;display:grid}.tf-avail-tab{height:40px;color:var(--text-secondary);cursor:pointer;transition:background var(--motion-state) var(--motion-ease);background:0 0;border:0;border-radius:10px;font-family:inherit;font-size:14px;font-weight:500}.tf-avail-tab[aria-selected=true]{background:var(--accent-tint);color:var(--accent)}.tf-avail-weeknav{align-items:center;gap:8px;display:flex}.tf-avail-weeknav-btn{border:1px solid var(--border-input);background:var(--surface-card);width:44px;height:44px;color:var(--accent);cursor:pointer;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.tf-avail-weeknav-btn:disabled{opacity:.4;cursor:default}.tf-avail-weeknav-label{text-align:center;flex-direction:column;flex:1;align-items:center;min-width:0;display:flex}.tf-avail-weeknav-range{font-size:var(--text-body-size);font-variant-numeric:tabular-nums;font-weight:500}.tf-avail-hintrow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;display:flex}.tf-avail-keys{font-size:var(--text-meta-size);color:var(--text-secondary);align-items:center;gap:12px;display:flex}.tf-avail-key{align-items:center;gap:6px;display:inline-flex}.tf-avail-key:before{content:"";box-sizing:border-box;border:1px solid var(--green-ink);background:var(--green-bg);border-radius:4px;width:12px;height:12px}.tf-avail-key[data-mode=manual]:before{border-color:var(--amber);background:var(--gold-tint)}.tf-wedit{border-radius:var(--radius-card);background:var(--surface-card);border:1px solid var(--border-card);flex-direction:column;gap:14px;padding:16px;display:flex}.tf-wedit[data-compact]{z-index:20;border-radius:var(--radius-tile);box-shadow:var(--shadow-sheet);gap:6px;padding:8px;padding-inline-start:14px;position:sticky;bottom:12px}.tf-wedit-head{align-items:flex-start;gap:12px;display:flex}.tf-wedit-range{color:var(--accent);font-variant-numeric:tabular-nums;font-size:22px;font-weight:600;line-height:1.2}.tf-wedit-row{align-items:center;gap:6px;display:flex}.tf-wedit-select{box-sizing:border-box;border-radius:var(--radius-input);border:1px solid var(--border-input);background:var(--surface-page);min-width:0;max-width:96px;height:44px;color:var(--accent);font-family:inherit;font-size:var(--text-control-size);text-align:center;font-variant-numeric:tabular-nums;appearance:none;cursor:pointer;flex:1;padding:0 10px;font-weight:600}.tf-wedit-steppers{grid-template-columns:1fr 1fr;gap:8px;display:grid}.tf-wedit-stepper{background:var(--surface-page);border:1px solid var(--border-inner);border-radius:12px;flex-direction:column;gap:4px;padding:8px;display:flex}.tf-wedit-stepper-row{align-items:center;display:flex}.tf-wedit-stepper-value{text-align:center;font-size:var(--text-control-size);font-variant-numeric:tabular-nums;flex:1;font-weight:600}.tf-wedit-step{background:var(--accent-tint);width:44px;height:44px;color:var(--accent);cursor:pointer;border:0;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.tf-wedit-step:disabled{opacity:.4;cursor:default}.tf-wedit-modes{flex:1;grid-template-columns:1fr 1fr;gap:6px;min-width:0;display:grid}.tf-wedit-mode{border:1px solid var(--border-input);height:44px;color:var(--text-secondary);white-space:nowrap;cursor:pointer;background:0 0;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 6px;font-family:inherit;font-size:14px;font-weight:500;display:flex}.tf-wedit-mode[aria-checked=true]{border-color:var(--accent);background:var(--accent-tint);color:var(--accent)}.tf-wedit-icon{width:44px;height:44px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.tf-wedit-icon[data-tone=danger]{color:var(--danger)}.tf-wedit-icon[data-tone=accent]{background:var(--accent);color:var(--text-on-accent)}.tf-wedit-delete{height:44px;color:var(--danger);cursor:pointer;background:0 0;border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;font-family:inherit;font-size:14px;font-weight:500;display:flex}.tf-wedit-undo{z-index:20;border-radius:var(--radius-button);background:var(--text-body);color:var(--surface-card);align-items:center;gap:12px;padding:6px;padding-inline-start:16px;font-size:14px;display:flex;position:sticky;bottom:12px}.tf-wedit-undo button{height:40px;color:var(--gold);cursor:pointer;background:0 0;border:0;border-radius:10px;padding:0 14px;font-family:inherit;font-size:14px;font-weight:600}.tf-tour{box-sizing:border-box;background:var(--surface-page);border-inline:1px solid var(--border-card);width:100%;max-width:430px;height:100dvh;color:var(--text-body);flex-direction:column;margin-inline:auto;display:flex;position:relative;overflow:hidden}.tf-tour-intro{flex-direction:column;flex:1;gap:28px;min-height:0;padding:16px 24px 28px;display:flex;overflow-y:auto}.tf-tour-top{justify-content:space-between;align-items:center;min-height:44px;display:flex}.tf-tour-brand{font-size:var(--text-card-title-size);color:var(--accent);font-weight:600}.tf-tour-intro-main{flex-direction:column;flex:1;justify-content:center;gap:24px;display:flex}.tf-tour-display{font-size:var(--text-display-size);line-height:var(--text-display-line);letter-spacing:var(--text-display-tracking);text-wrap:balance;margin:0;font-weight:600}.tf-tour-title{margin:0;font-size:22px;font-weight:600;line-height:1.25}.tf-tour-lead{font-size:var(--text-body-size);color:var(--text-secondary);text-wrap:pretty;margin:0;line-height:1.55}.tf-tour-meta{font-size:var(--text-meta-size);color:var(--text-meta)}.tf-tour-sub{font-size:var(--text-secondary-size);color:var(--text-secondary);text-wrap:pretty;line-height:1.5}.tf-tour-list{border-radius:var(--radius-card);background:var(--surface-card);border:1px solid var(--border-card);flex-direction:column;padding:4px 16px;display:flex}.tf-tour-list-row{min-height:52px;font-size:var(--text-body-size);align-items:center;gap:12px;font-weight:500;line-height:1.45;display:flex}.tf-tour-list-row+.tf-tour-list-row{border-top:1px solid var(--border-inner)}.tf-tour-tile{background:var(--surface-tile);width:36px;height:36px;color:var(--accent);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.tf-tour-steps{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.tf-tour-scroll{flex:1;min-height:0;position:relative;overflow-y:auto}.tf-tour-scroll[data-pad=bubble]{padding-bottom:280px}.tf-tour-shot{position:relative;overflow:hidden}.tf-tour-shot img{width:100%;height:auto;display:block}.tf-tour-hole{box-sizing:border-box;border:2px solid var(--gold);box-shadow:0 0 0 3000px var(--purple-900);border-radius:18px;position:absolute}@supports (color:color-mix(in lab, red, red)){.tf-tour-hole{box-shadow:0 0 0 3000px color-mix(in srgb, var(--purple-900) 40%, transparent)}}.tf-tour-hole{pointer-events:none}.tf-tour-page{flex-direction:column;gap:12px;padding:16px;display:flex}.tf-tour-card{border-radius:var(--radius-tile);background:var(--surface-card);border:2px solid var(--gold);flex-direction:column;gap:12px;padding:14px 16px 16px;display:flex}.tf-tour-card[data-flat]{background:0 0;border:0;padding:0}.tf-tour-card-title{font-size:var(--text-body-size);margin:0;font-weight:500}.tf-tour-field{flex-direction:column;gap:6px;display:flex}.tf-tour-row{align-items:center;gap:8px;display:flex}.tf-tour-chips{flex-wrap:wrap;gap:6px;display:flex}.tf-tour-chip{border-radius:var(--radius-chip);border:1px solid var(--border-input);height:40px;color:var(--text-secondary);font-family:inherit;font-size:var(--text-secondary-size);font-variant-numeric:tabular-nums;cursor:pointer;transition:background var(--motion-state) var(--motion-ease);background:0 0;padding:0 14px;font-weight:500}.tf-tour-chip[aria-checked=true]{border-color:var(--accent);background:var(--accent);color:var(--text-on-accent)}.tf-tour-options{flex-direction:column;gap:8px;display:flex}.tf-tour-option{border:1px solid var(--border-input);background:var(--surface-page);min-height:64px;color:var(--text-body);font-family:inherit;font-size:var(--text-body-size);text-align:start;cursor:pointer;border-radius:14px;align-items:center;gap:12px;padding:10px 14px;font-weight:500;display:flex}.tf-tour-option[aria-checked=true]{border:2px solid var(--accent);background:var(--accent-tint)}.tf-tour-radio{box-sizing:border-box;border-radius:var(--radius-chip);border:2px solid var(--border-input);flex-shrink:0;width:20px;height:20px}.tf-tour-option[aria-checked=true] .tf-tour-radio{border-color:var(--accent);background:var(--accent);box-shadow:inset 0 0 0 3px var(--accent-tint)}.tf-tour-option-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.tf-tour-price{font-size:var(--text-card-title-size);font-variant-numeric:tabular-nums;flex-direction:column;flex-shrink:0;align-items:flex-end;display:flex}.tf-tour-bubble{z-index:30;border-radius:var(--radius-card);background:var(--surface-card);border:1px solid var(--border-card);inset-inline:16px;flex-direction:column;gap:10px;padding:16px;display:flex;position:absolute;bottom:16px}.tf-tour-bubble-title{font-size:var(--text-card-title-size);margin:0;font-weight:600;line-height:1.3}.tf-tour-progress{align-items:center;gap:8px;display:flex}.tf-tour-bars{flex:1;gap:3px;display:flex}.tf-tour-bars span{border-radius:var(--radius-chip);background:var(--border-input);flex:1;height:3px}.tf-tour-bars span[data-on]{background:var(--accent)}.tf-tour-actions{align-items:center;gap:12px;display:flex}.tf-tour-actions-end{align-items:center;gap:12px;margin-inline-start:auto;display:flex}.tf-tour-textbtn{min-height:44px;color:var(--text-link);font-family:inherit;font-size:var(--text-secondary-size);cursor:pointer;background:0 0;border:0;align-self:center;padding:0;font-weight:500}.tf-tour-skiplink{color:var(--text-meta);font-family:inherit;font-size:var(--text-meta-size);text-underline-offset:2px;cursor:pointer;background:0 0;border:0;align-self:center;padding:2px 4px;text-decoration:underline}@media (width>=1024px){.tf-tour{border-inline:0;flex-direction:row;justify-content:center;align-items:center;gap:40px;max-width:1120px;padding:40px}.tf-tour-bubble{flex:0 0 380px;order:-1;padding:24px;position:relative;inset:auto}.tf-tour-bubble-title{font-size:22px}.tf-tour-scroll{align-self:stretch;max-width:640px}.tf-tour-scroll[data-pad=bubble]{padding-bottom:0}.tf-tour-scroll:empty{display:none}.tf-tour-page{box-sizing:border-box;justify-content:center;min-height:100%;padding:24px 0}.tf-tour-card{gap:16px;padding:20px 24px 24px}.tf-tour-shot{border-radius:var(--radius-card);border:1px solid var(--border-card);max-width:390px;margin-inline:auto}.tf-tour-intro{flex:0 560px;max-height:100%}.tf-tour-sheet{border-radius:var(--radius-card);border:1px solid var(--border-card);flex:0 520px;max-height:100%;padding:28px;position:relative;inset:auto}}.tf-tour-sheet{z-index:30;border-radius:var(--radius-card) var(--radius-card) 0 0;background:var(--surface-card);max-height:90%;box-shadow:var(--shadow-sheet);inset-inline:0;flex-direction:column;gap:14px;padding:20px 16px 24px;display:flex;position:absolute;bottom:0;overflow-y:auto}.tf-avail-slots{border-radius:var(--radius-card);background:var(--surface-card);border:1px solid var(--border-card);flex-direction:column;gap:12px;padding:16px;display:flex}.tf-avail-slots-head{align-items:center;gap:12px;display:flex}.tf-avail-slots-head .tf-icon-button{flex-shrink:0;margin-inline-end:-8px}.tf-avail-slots-count{letter-spacing:-.015em;color:var(--accent);font-variant-numeric:tabular-nums;font-size:22px;font-weight:600;line-height:1.15}@media (width>=1024px){.tf-avail-slots-count{font-size:34px}}.tf-avail-slots .tf-day-summary{align-items:baseline;gap:12px}.tf-avail-ranges{flex-wrap:wrap;flex:1;gap:4px 12px;min-width:0;display:flex}.tf-avail-range{align-items:center;gap:6px;display:inline-flex}.tf-avail-rules-toggle{border-radius:var(--radius-tile);border:1px solid var(--border-card);background:var(--surface-card);width:100%;min-height:56px;color:inherit;text-align:start;cursor:pointer;align-items:center;gap:12px;padding:8px 16px;font-family:inherit;display:flex}.tf-avail-rules-summary{font-size:var(--text-meta-size);color:var(--text-meta);white-space:nowrap;text-overflow:ellipsis;line-height:1.45;overflow:hidden}.tf-avail-rules{border-radius:var(--radius-tile);background:var(--surface-card);border:1px solid var(--border-card);overflow:hidden}.tf-avail-rules[data-layout=rows] .tf-stepper{gap:12px;min-height:60px;padding:8px 16px}.tf-avail-rules[data-layout=rows] .tf-stepper-controls{border:1px solid var(--border-input);border-radius:var(--radius-input);background:var(--surface-page);gap:0}.tf-avail-rules[data-layout=rows] .tf-stepper-button{background:0 0;border:0;width:40px;height:40px}.tf-avail-rules[data-layout=rows] .tf-stepper-value{min-width:64px;font-size:var(--text-body-size);font-weight:500}.tf-avail-rules[data-layout=tiles]{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:12px;display:grid}.tf-avail-rules[data-layout=tiles] .tf-stepper{border-radius:var(--radius-input);background:var(--surface-page);border:1px solid var(--border-inner);flex-direction:column;align-items:stretch;gap:4px;min-width:0;min-height:0;padding:8px}.tf-avail-rules[data-layout=tiles] .tf-stepper-label{font-size:var(--text-meta-size);color:var(--text-secondary);flex:none;line-height:1.35}.tf-avail-rules[data-layout=tiles] .tf-stepper-controls{gap:0}.tf-avail-rules[data-layout=tiles] .tf-stepper-button{background:var(--accent-tint);border:0;width:40px;height:40px}.tf-avail-rules[data-layout=tiles] .tf-stepper-value{min-width:0;font-size:var(--text-body-size);white-space:nowrap;flex:1;font-weight:500}.tf-avail-switch-row{border-radius:var(--radius-tile);background:var(--surface-card);border:1px solid var(--border-card);align-items:center;gap:12px;min-height:60px;padding:8px 16px;display:flex}.tf-avail-switch-row .tf-switch{flex-direction:row-reverse;flex:1;justify-content:space-between;gap:12px;min-width:0;line-height:1.35}.tf-avail-switch-row .tf-switch-text{gap:2px}.tf-avail-switch-row .tf-switch-track{background:var(--text-meta);width:48px;height:28px}.tf-avail-switch-row .tf-switch-track[data-on=true]{background:var(--accent)}.tf-avail-switch-row .tf-switch-knob{width:22px;height:22px}.tf-avail-switch-row .tf-switch-track[data-on=true] .tf-switch-knob{inset-inline-start:23px}@media (hover:hover){.tf-avail-action:not(:disabled):hover,.tf-avail-brush[aria-checked=false]:hover{background:var(--surface-inactive)}.tf-avail-action[data-tone=accent]:not(:disabled):hover{background:var(--accent-tint)}}.tf-all-lessons .tf-portal-row{min-height:60px;padding-block:8px}.tf-all-lessons .tf-portal-row .tf-badge-pill[data-tone=attention]{border:1px solid var(--gold);background:var(--gold-tint);flex-shrink:0;height:24px;padding:0 10px}.tf-all-lessons .tf-portal-row[aria-current=true] .tf-portal-mini{background:var(--surface-card)}@media (hover:hover){.tf-all-lessons a.tf-portal-row[aria-current=true]:hover{background:var(--surface-tile-hover)}}}@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.-top-12{top:calc(var(--spacing) * -12)}.top-0{top:0}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-3\.5{top:calc(var(--spacing) * 3.5)}.top-4{top:calc(var(--spacing) * 4)}.top-\[1px\]{top:1px}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.-right-12{right:calc(var(--spacing) * -12)}.right-0{right:0}.right-1{right:var(--spacing)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.-bottom-12{bottom:calc(var(--spacing) * -12)}.bottom-0{bottom:0}.-left-12{left:calc(var(--spacing) * -12)}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-\[50\%\]{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[1\]{z-index:1}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-3\.5{margin-inline:calc(var(--spacing) * 3.5)}.mx-auto{margin-inline:auto}.my-0\.5{margin-block:calc(var(--spacing) * .5)}.my-1{margin-block:var(--spacing)}.-mt-4{margin-top:calc(var(--spacing) * -4)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-24{margin-top:calc(var(--spacing) * 24)}.mt-auto{margin-top:auto}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:var(--spacing)}.-ml-4{margin-left:calc(var(--spacing) * -4)}.ml-1{margin-left:var(--spacing)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.size-\(--cell-size\){width:var(--cell-size);height:var(--cell-size)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.h-\(--cell-size\){height:var(--cell-size)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-\[1px\]{height:1px}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-svh{height:100svh}.max-h-\(--radix-context-menu-content-available-height\){max-height:var(--radix-context-menu-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-\[300px\]{max-height:300px}.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\]{max-height:var(--radix-dropdown-menu-content-available-height)}.min-h-0{min-height:0}.min-h-\[60px\]{min-height:60px}.min-h-svh{min-height:100svh}.w-\(--cell-size\){width:var(--cell-size)}.w-\(--sidebar-width\){width:var(--sidebar-width)}.w-0{width:0}.w-1{width:var(--spacing)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-\[1px\]{width:1px}.w-\[100px\]{width:100px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-\(--skeleton-width\){max-width:var(--skeleton-width)}.max-w-lg{max-width:var(--container-lg)}.max-w-max{max-width:max-content}.min-w-\(--cell-size\){min-width:var(--cell-size)}.min-w-0{min-width:0}.min-w-5{min-width:calc(var(--spacing) * 5)}.min-w-8{min-width:calc(var(--spacing) * 8)}.min-w-9{min-width:calc(var(--spacing) * 9)}.min-w-10{min-width:calc(var(--spacing) * 10)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-\(--radix-context-menu-content-transform-origin\){transform-origin:var(--radix-context-menu-content-transform-origin)}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-hover-card-content-transform-origin\){transform-origin:var(--radix-hover-card-content-transform-origin)}.origin-\(--radix-menubar-content-transform-origin\){transform-origin:var(--radix-menubar-content-transform-origin)}.origin-\(--radix-popover-content-transform-origin\){transform-origin:var(--radix-popover-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-px{--tw-translate-x:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-px{--tw-translate-x:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-caret-blink{animation:1.25s ease-out infinite caret-blink}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-pulse{animation:var(--animate-pulse)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.list-none{list-style-type:none}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(var(--spacing) * var(--tw-space-x-reverse));margin-inline-end:calc(var(--spacing) * calc(1 - var(--tw-space-x-reverse)))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\(--color-border\){border-color:var(--color-border)}.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/50{border-color:color-mix(in oklab, var(--border) 50%, transparent)}}.border-destructive\/50{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/50{border-color:color-mix(in oklab, var(--destructive) 50%, transparent)}}.border-input{border-color:var(--input)}.border-primary,.border-primary\/50{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.border-primary\/50{border-color:color-mix(in oklab, var(--primary) 50%, transparent)}}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-\(--color-bg\){background-color:var(--color-bg)}.bg-accent{background-color:var(--accent-tint)}.bg-background{background-color:var(--background)}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\/80{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive{background-color:var(--destructive)}.bg-foreground{background-color:var(--foreground)}.bg-muted,.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/50{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary,.bg-primary\/10{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab, var(--primary) 10%, transparent)}}.bg-primary\/20{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/20{background-color:color-mix(in oklab, var(--primary) 20%, transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.fill-current{fill:currentColor}.fill-primary{fill:var(--primary)}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-\[1px\]{padding:1px}.px-\(--cell-size\){padding-inline:var(--cell-size)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.pt-0{padding-top:0}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-2\.5{padding-right:calc(var(--spacing) * 2.5)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.text-accent-foreground{color:var(--accent-foreground)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-destructive{color:var(--destructive)}.text-destructive-foreground{color:var(--destructive-foreground)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_1px_var\(--sidebar-border\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--sidebar-border));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-ring{--tw-ring-color:var(--ring)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-1000{--tw-duration:1s;transition-duration:1s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}.\[--cell-size\:2rem\]{--cell-size:2rem}.\[sms\:test-mode\]{sms:test-mode}.paused{animation-play-state:paused}.running{animation-play-state:running}.group-focus-within\/menu-item\:opacity-100:is(:where(.group\/menu-item):focus-within *){opacity:1}@media (hover:hover){.group-hover\/menu-item\:opacity-100:is(:where(.group\/menu-item):hover *){opacity:1}}.group-has-\[\[data-sidebar\=menu-action\]\]\/menu-item\:pr-8:is(:where(.group\/menu-item):has([data-sidebar=menu-action]) *){padding-right:calc(var(--spacing) * 8)}.group-data-\[collapsible\=icon\]\:-mt-8:is(:where(.group)[data-collapsible=icon] *){margin-top:calc(var(--spacing) * -8)}.group-data-\[collapsible\=icon\]\:hidden:is(:where(.group)[data-collapsible=icon] *){display:none}.group-data-\[collapsible\=icon\]\:\!size-8:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--spacing) * 8)!important;height:calc(var(--spacing) * 8)!important}.group-data-\[collapsible\=icon\]\:w-\(--sidebar-width-icon\):is(:where(.group)[data-collapsible=icon] *){width:var(--sidebar-width-icon)}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + 1rem)}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)_\+2px\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + 1rem + 2px)}.group-data-\[collapsible\=icon\]\:overflow-hidden:is(:where(.group)[data-collapsible=icon] *){overflow:hidden}.group-data-\[collapsible\=icon\]\:\!p-0:is(:where(.group)[data-collapsible=icon] *){padding:0!important}.group-data-\[collapsible\=icon\]\:\!p-2:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing) * 2)!important}.group-data-\[collapsible\=icon\]\:opacity-0:is(:where(.group)[data-collapsible=icon] *){opacity:0}.group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]:is(:where(.group)[data-collapsible=offcanvas] *){right:calc(var(--sidebar-width) * -1)}.group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]:is(:where(.group)[data-collapsible=offcanvas] *){left:calc(var(--sidebar-width) * -1)}.group-data-\[collapsible\=offcanvas\]\:w-0:is(:where(.group)[data-collapsible=offcanvas] *){width:0}.group-data-\[collapsible\=offcanvas\]\:translate-x-0:is(:where(.group)[data-collapsible=offcanvas] *){--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.group-data-\[focused\=true\]\/day\:relative:is(:where(.group\/day)[data-focused=true] *){position:relative}.group-data-\[focused\=true\]\/day\:z-10:is(:where(.group\/day)[data-focused=true] *){z-index:10}.group-data-\[focused\=true\]\/day\:border-ring:is(:where(.group\/day)[data-focused=true] *){border-color:var(--ring)}.group-data-\[focused\=true\]\/day\:ring-\[3px\]:is(:where(.group\/day)[data-focused=true] *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.group-data-\[focused\=true\]\/day\:ring-ring\/50:is(:where(.group\/day)[data-focused=true] *){--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.group-data-\[focused\=true\]\/day\:ring-ring\/50:is(:where(.group\/day)[data-focused=true] *){--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.group-data-\[side\=left\]\:-right-4:is(:where(.group)[data-side=left] *){right:calc(var(--spacing) * -4)}.group-data-\[side\=left\]\:border-r:is(:where(.group)[data-side=left] *){border-right-style:var(--tw-border-style);border-right-width:1px}.group-data-\[side\=right\]\:left-0:is(:where(.group)[data-side=right] *){left:0}.group-data-\[side\=right\]\:rotate-180:is(:where(.group)[data-side=right] *){rotate:180deg}.group-data-\[side\=right\]\:border-l:is(:where(.group)[data-side=right] *){border-left-style:var(--tw-border-style);border-left-width:1px}.group-data-\[state\=open\]\:rotate-180:is(:where(.group)[data-state=open] *){rotate:180deg}.group-data-\[variant\=floating\]\:rounded-lg:is(:where(.group)[data-variant=floating] *){border-radius:var(--radius)}.group-data-\[variant\=floating\]\:border:is(:where(.group)[data-variant=floating] *){border-style:var(--tw-border-style);border-width:1px}.group-data-\[variant\=floating\]\:shadow:is(:where(.group)[data-variant=floating] *){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.group-\[\.toast\]\:bg-muted:is(:where(.group).toast *){background-color:var(--muted)}.group-\[\.toast\]\:bg-primary:is(:where(.group).toast *){background-color:var(--primary)}.group-\[\.toast\]\:text-muted-foreground:is(:where(.group).toast *){color:var(--muted-foreground)}.group-\[\.toast\]\:text-primary-foreground:is(:where(.group).toast *){color:var(--primary-foreground)}.group-\[\.toaster\]\:border-border:is(:where(.group).toaster *){border-color:var(--border)}.group-\[\.toaster\]\:bg-background:is(:where(.group).toaster *){background-color:var(--background)}.group-\[\.toaster\]\:text-foreground:is(:where(.group).toaster *){color:var(--foreground)}.group-\[\.toaster\]\:shadow-lg:is(:where(.group).toaster *){--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.peer-data-\[size\=default\]\/menu-button\:top-1\.5:is(:where(.peer\/menu-button)[data-size=default]~*){top:calc(var(--spacing) * 1.5)}.peer-data-\[size\=lg\]\/menu-button\:top-2\.5:is(:where(.peer\/menu-button)[data-size=lg]~*){top:calc(var(--spacing) * 2.5)}.peer-data-\[size\=sm\]\/menu-button\:top-1:is(:where(.peer\/menu-button)[data-size=sm]~*){top:var(--spacing)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:calc(var(--spacing) * -2)}.after\:inset-y-0:after{content:var(--tw-content);inset-block:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-1:after{content:var(--tw-content);width:var(--spacing)}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-data-\[collapsible\=offcanvas\]\:after\:left-full:is(:where(.group)[data-collapsible=offcanvas] *):after{content:var(--tw-content);left:100%}.first\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.first\:border-l:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.last\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}@media (hover:hover){.hover\:bg-accent:hover{background-color:var(--accent-tint)}.hover\:bg-destructive\/80:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/80:hover{background-color:color-mix(in oklab, var(--destructive) 80%, transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.hover\:bg-muted:hover,.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.hover\:bg-primary\/80:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab, var(--primary) 80%, transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_0_1px_var\(--sidebar-accent\)\]:hover{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--sidebar-accent));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\:bg-accent:focus{background-color:var(--accent-tint)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--ring)}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--background)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-focus\:border-ring:has(:focus){border-color:var(--ring)}.has-focus\:ring-\[3px\]:has(:focus){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.has-focus\:ring-ring\/50:has(:focus){--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.has-focus\:ring-ring\/50:has(:focus){--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:text-muted-foreground[aria-selected=true]{color:var(--muted-foreground)}.data-\[active\=true\]\:font-medium[data-active=true]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x:calc(52*var(--spacing))}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x:calc(52*var(--spacing)*-1)}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x:calc(52*var(--spacing))}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x:calc(52*var(--spacing)*-1)}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity:0}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-]{--tw-exit-opacity:0}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:0}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:var(--spacing)}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:calc(var(--radius) - 2px)}.data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:var(--primary)}.data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:var(--primary-foreground)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:var(--accent-tint)}.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:var(--accent-foreground)}.data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:calc(var(--radius) - 2px)}.data-\[range-start\=true\]\:bg-primary[data-range-start=true]{background-color:var(--primary)}.data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true]{color:var(--primary-foreground)}.data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:var(--primary)}.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:var(--primary-foreground)}.data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:var(--accent-tint)}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:var(--accent-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.data-\[state\=hidden\]\:animate-out[data-state=hidden]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity:0}.data-\[state\=on\]\:bg-accent[data-state=on]{background-color:var(--accent-tint)}.data-\[state\=on\]\:text-accent-foreground[data-state=on]{color:var(--accent-foreground)}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open],.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:var(--accent-tint)}@supports (color:color-mix(in lab, red, red)){.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:color-mix(in oklab, var(--accent-tint) 50%, transparent)}}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:var(--secondary)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale:.9}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}@media (hover:hover){.data-\[state\=open\]\:hover\:bg-accent[data-state=open]:hover{background-color:var(--accent-tint)}}.data-\[state\=open\]\:focus\:bg-accent[data-state=open]:focus{background-color:var(--accent-tint)}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--input)}.data-\[state\=visible\]\:animate-in[data-state=visible]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity:0}@media (width>=40rem){.sm\:mt-0{margin-top:0}.sm\:flex{display:flex}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:calc(var(--spacing) * 2.5)}:where(.sm\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}}@media (width>=48rem){.md\:absolute{position:absolute}.md\:block{display:block}.md\:flex{display:flex}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:flex-row{flex-direction:row}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.md\:opacity-0{opacity:0}.md\:peer-data-\[variant\=inset\]\:m-2:is(:where(.peer)[data-variant=inset]~*){margin:calc(var(--spacing) * 2)}.md\:peer-data-\[variant\=inset\]\:ml-0:is(:where(.peer)[data-variant=inset]~*){margin-left:0}.md\:peer-data-\[variant\=inset\]\:rounded-xl:is(:where(.peer)[data-variant=inset]~*){border-radius:calc(var(--radius) + 4px)}.md\:peer-data-\[variant\=inset\]\:shadow:is(:where(.peer)[data-variant=inset]~*){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.md\:peer-data-\[state\=collapsed\]\:peer-data-\[variant\=inset\]\:ml-2:is(:where(.peer)[data-state=collapsed]~*):is(:where(.peer)[data-variant=inset]~*){margin-left:calc(var(--spacing) * 2)}}.after\:md\:hidden:after{content:var(--tw-content)}@media (width>=48rem){.after\:md\:hidden:after{display:none}}@media (prefers-color-scheme:dark){.dark\:border-destructive{border-color:var(--destructive)}}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:var(--muted-foreground)}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke=\#ccc]{stroke:var(--border)}@supports (color:color-mix(in lab, red, red)){.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke=\#ccc]{stroke:color-mix(in oklab, var(--border) 50%, transparent)}}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:var(--border)}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke=\#fff]{stroke:#0000}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{--tw-outline-style:none;outline-style:none}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke=\#ccc]{stroke:var(--border)}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:var(--muted)}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke=\#ccc]{stroke:var(--border)}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector{--tw-outline-style:none;outline-style:none}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke=\#fff]{stroke:#0000}.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{--tw-outline-style:none;outline-style:none}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-block:calc(var(--spacing) * 1.5)}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:var(--muted-foreground)}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:calc(var(--spacing) * 5)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:calc(var(--spacing) * 5)}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:calc(var(--spacing) * 12)}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-block:calc(var(--spacing) * 3)}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:calc(var(--spacing) * 5)}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:calc(var(--spacing) * 5)}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}:is(.rtl\:\*\*\:\[\.rdp-button\\_next\>svg\]\:rotate-180:where(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),[dir=rtl],[dir=rtl] *) *):is(.rdp-button_next>svg),:is(.rtl\:\*\*\:\[\.rdp-button\\_previous\>svg\]\:rotate-180:where(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),[dir=rtl],[dir=rtl] *) *):is(.rdp-button_previous>svg){rotate:180deg}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\]\:line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[\&\>span\]\:text-xs>span{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>span\:last-child\]\:truncate>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:top-4>svg{top:calc(var(--spacing) * 4)}.\[\&\>svg\]\:left-4>svg{left:calc(var(--spacing) * 4)}.\[\&\>svg\]\:size-3\.5>svg{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:h-2\.5>svg{height:calc(var(--spacing) * 2.5)}.\[\&\>svg\]\:h-3>svg{height:calc(var(--spacing) * 3)}.\[\&\>svg\]\:h-3\.5>svg{height:calc(var(--spacing) * 3.5)}.\[\&\>svg\]\:w-2\.5>svg{width:calc(var(--spacing) * 2.5)}.\[\&\>svg\]\:w-3>svg{width:calc(var(--spacing) * 3)}.\[\&\>svg\]\:w-3\.5>svg{width:calc(var(--spacing) * 3.5)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-destructive>svg{color:var(--destructive)}.\[\&\>svg\]\:text-foreground>svg{color:var(--foreground)}.\[\&\>svg\]\:text-muted-foreground>svg{color:var(--muted-foreground)}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y:-3px;translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:calc(var(--spacing) * 7)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{rotate:90deg}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{rotate:180deg}[data-side=left] .\[\[data-side\=left\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:calc(var(--spacing) * -2)}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize,[data-side=right] .\[\[data-side\=right\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:calc(var(--spacing) * -2)}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:#0000}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--purple-900:#2a0f3d;--purple-800:#43146a;--purple-700:#581c87;--purple-500:#5c4a66;--purple-400:#6b5a72;--purple-300:#a596ab;--purple-100:#e9ddf0;--gold:#ffcb69;--gold-ink:#4a2e00;--orange:#ff7900;--crimson-600:#a4133c;--crimson-700:#7e0f2e;--crimson-050:#fbe3e3;--cream:#fef6e4;--cream-card:#fffbf3;--cream-inactive:#f3ead8;--rose-tint:#f4e8ec;--rose-tint-hover:#ebdce3;--line-100:#f5ead3;--line-200:#f0e2c8;--line-300:#e6d3b0;--green-bg:#e9efea;--green-ink:#3f5a46;--gold-tint:#ffe3ad;--amber:#c98a00;--accent:var(--purple-700);--accent-press:var(--purple-800);--accent-soft:var(--gold);--accent-tint:var(--rose-tint);--surface-page:var(--cream);--surface-card:var(--cream-card);--surface-tile:var(--rose-tint);--surface-tile-hover:var(--rose-tint-hover);--surface-attention:var(--gold);--attention-tint:var(--gold-tint);--surface-attention-soft:#ffe3ad;--surface-inactive:var(--cream-inactive);--border-card:var(--line-200);--border-inner:var(--line-100);--border-input:var(--line-300);--border-accent:var(--orange);--border-danger:var(--danger);--text-body:var(--purple-900);--text-prose:var(--purple-500);--text-secondary:var(--purple-500);--text-meta:var(--purple-400);--text-disabled:var(--purple-300);--text-link:var(--purple-700);--text-link-hover:var(--crimson-600);--text-on-accent:var(--cream);--text-on-attention:var(--gold-ink);--text-on-danger:var(--cream);--status-done-bg:var(--green-bg);--status-done-ink:var(--green-ink);--danger:var(--crimson-600);--danger-press:var(--crimson-700);--danger-tint:var(--crimson-050);--nav-bg:var(--purple-700);--nav-active:var(--gold);--nav-inactive:var(--purple-100);--nav-active-bg:var(--purple-800);--status-owed-bg:var(--gold-tint);--dot-instant:var(--green-ink);--dot-manual:var(--amber);--font-sans:"Heebo", "Assistant", system-ui, sans-serif;--font-long-form:"Assistant", "Heebo", system-ui, sans-serif;--text-display-size:34px;--text-display-line:1.15;--text-display-weight:600;--text-display-tracking:-.015em;--text-title-size:26px;--text-title-line:1.25;--text-title-weight:500;--text-card-title-size:17px;--text-card-title-line:1.3;--text-card-title-weight:500;--text-body-size:15px;--text-body-line:1.6;--text-body-weight:400;--text-secondary-size:13px;--text-secondary-line:1.45;--text-meta-size:12px;--text-meta-line:1.4;--text-control-size:16px;--text-control-weight:500;--text-numeral-size:18px;--text-tile-value-size:22px;--numeral-feature:tabular-nums;--space-1:2px;--space-2:6px;--space-3:10px;--space-4:14px;--space-5:16px;--space-6:20px;--space-7:24px;--space-8:32px;--card-gap:var(--space-3);--card-padding:var(--space-5);--screen-padding:var(--space-6);--section-gap:var(--space-5);--radius-chip:999px;--radius-input:12px;--radius-button:14px;--radius-tile:16px;--radius-card:20px;--radius-frame:28px;--shadow-sheet:0 -8px 24px #2a0f3d1a;--tap-min:48px;--button-height:50px;--button-height-student:54px;--content-max:720px;--rail-width:72px;--lesson-time-column:52px;--icon-size:22px;--icon-stroke:1.75;--grid-time-col:44px;--grid-row:24px;--motion-state:.14s;--motion-surface:.22s;--motion-ease:cubic-bezier(.2, 0, .2, 1);--swipe-commit:40%;--radius:var(--radius-input);--background:var(--surface-page);--foreground:var(--text-body);--card:var(--surface-card);--card-foreground:var(--text-body);--popover:var(--surface-card);--popover-foreground:var(--text-body);--primary:var(--accent);--primary-foreground:var(--text-on-accent);--secondary:var(--accent-tint);--secondary-foreground:var(--text-body);--muted:var(--surface-inactive);--muted-foreground:var(--text-secondary);--accent-foreground:var(--text-body);--destructive:var(--danger);--destructive-foreground:var(--text-on-danger);--border:var(--border-card);--input:var(--border-input);--ring:var(--accent)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto)))))}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto)))))}to{height:0}}@keyframes caret-blink{0%,70%,to{opacity:1}20%,50%{opacity:0}}
