@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/poppins-devanagari-400-normal-CJDn6rn8.woff2)format("woff2"),url(/assets/poppins-devanagari-400-normal-CqVvlrh5.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/poppins-latin-ext-400-normal-by3JarPu.woff2)format("woff2"),url(/assets/poppins-latin-ext-400-normal-DaBSavcJ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/poppins-latin-400-normal-cpxAROuN.woff2)format("woff2"),url(/assets/poppins-latin-400-normal-BOb3E3N0.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/poppins-devanagari-500-normal-BIdkeU1p.woff2)format("woff2"),url(/assets/poppins-devanagari-500-normal-DMPDjHtT.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/poppins-latin-ext-500-normal-CK-6C4Hw.woff2)format("woff2"),url(/assets/poppins-latin-ext-500-normal-CgAe2rWW.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/poppins-latin-500-normal-C8OXljZJ.woff2)format("woff2"),url(/assets/poppins-latin-500-normal-DGXqpDMm.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/poppins-devanagari-600-normal-STEjXBNN.woff2)format("woff2"),url(/assets/poppins-devanagari-600-normal-ClASKHrr.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/poppins-latin-ext-600-normal-CAhIAdZj.woff2)format("woff2"),url(/assets/poppins-latin-ext-600-normal-Df5ffKXP.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/poppins-latin-600-normal-zEkxB9Mr.woff2)format("woff2"),url(/assets/poppins-latin-600-normal-BJdTmd5m.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/poppins-devanagari-700-normal-O-jipLrW.woff2)format("woff2"),url(/assets/poppins-devanagari-700-normal-fHs-vx92.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/poppins-latin-ext-700-normal-cby-RkWa.woff2)format("woff2"),url(/assets/poppins-latin-ext-700-normal-DctTR6Tg.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/poppins-latin-700-normal-Qrb0O0WB.woff2)format("woff2"),url(/assets/poppins-latin-700-normal-BVuQR_eA.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page-bg:#090a0d;--bg:#111218;--surface:#191b22;--surface-2:#22252e;--surface-3:#2b2f3a;--chrome:#0c0d11;--input:#16181e;--line:#2b2e38;--line-2:#3d424f;--text:#f6f3f0;--muted:#b8b1ad;--muted-2:#89888f;--accent:#df745e;--accent-hover:#ee8972;--accent-soft:#3b2420;--primary-button:#b95240;--primary-button-hover:#cc634e;--coral:#df745e;--coral-2:#ee8972;--coral-soft:#3b2420;--sage:#6db58a;--sage-soft:#182c22;--blue:#7c98eb;--blue-soft:#1d2745;--amber:#dfa349;--amber-soft:#372a19;--unpaid:#ed7b70;--unpaid-soft:#3b2221;--cancelled:#a9a4a3;--cancelled-soft:#292a30;--paid:var(--sage);--paid-soft:var(--sage-soft);--pending:var(--blue);--pending-soft:var(--blue-soft);--font-body:"Poppins", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display:var(--font-body);--radius-small:10px;--radius-large:17px;--radius-round:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--space-10:40px;--space-12:48px;--shadow-card:0 16px 40px #0000001c;--shadow-elevated:0 22px 54px #00000047;--shadow-floating:0 14px 32px #0000006b;--focus-ring:0 0 0 3px var(--accent-soft);--motion-fast:.14s;--motion-normal:.18s;--ease-standard:cubic-bezier(.2, .8, .2, 1);--sidebar-width:242px;--topbar-height:72px;--mobile-nav-height:76px;--content-max-width:1480px}*,:before,:after{box-sizing:border-box}html,body,#root{width:100%;height:100%;min-height:100%}html{background:var(--page-bg);-webkit-text-size-adjust:100%;text-rendering:optimizelegibility}body{background:var(--page-bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:14px;line-height:1.55;overflow:hidden}button,input,select,textarea{color:inherit;font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{border:0}a{color:inherit;text-decoration:none}img,svg{max-width:100%;display:block}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{color:var(--text);font-family:var(--font-display);letter-spacing:-.02em;font-weight:600;line-height:1.2}p{color:var(--muted)}input,select,textarea{border:1px solid var(--line-2);border-radius:var(--radius-small);background:var(--input);width:100%;min-height:44px;color:var(--text);transition:border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard);outline:none}input,select{padding:9px 12px}textarea{resize:vertical;min-height:104px;padding:11px 12px}input::placeholder,textarea::placeholder{color:var(--muted-2);opacity:1}input:hover,select:hover,textarea:hover{border-color:var(--muted-2)}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.55}input[type=checkbox],input[type=radio]{width:18px;min-height:18px;accent-color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background:var(--accent-soft);color:var(--text)}*{scrollbar-color:var(--line-2) transparent;scrollbar-width:thin}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{border-radius:var(--radius-round);background:var(--line-2)}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.num,.tabular-nums{font-variant-numeric:tabular-nums}.tf-button{border-radius:var(--radius-small);cursor:pointer;white-space:nowrap;min-width:0;min-height:44px;transition:color var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);border:1px solid #0000;justify-content:center;align-items:center;font-size:13px;font-weight:600;line-height:1;display:inline-flex;position:relative}.tf-button:not(:disabled):active{transform:translateY(1px)}.tf-button:disabled{cursor:not-allowed;opacity:.5}.tf-button__content{justify-content:center;align-items:center;gap:8px;display:inline-flex}.tf-button__content[aria-hidden=true]{visibility:hidden}.tf-button__icon,.tf-button__icon svg{flex:none;width:17px;height:17px}.tf-button--small{padding:8px 11px;font-size:12px}.tf-button--medium{padding:10px 15px}.tf-button--large{min-height:48px;padding:12px 18px;font-size:14px}.tf-button--icon{width:44px;padding:0}.tf-button--full{width:100%}.tf-button--primary{background:var(--primary-button);color:#fff;box-shadow:0 8px 24px #b9524038}.tf-button--primary:not(:disabled):hover{background:var(--primary-button-hover)}.tf-button--secondary{border-color:var(--line-2);background:var(--surface-2);color:var(--text)}.tf-button--secondary:not(:disabled):hover{border-color:var(--muted-2);background:var(--surface-3)}.tf-button--ghost{color:var(--muted);background:0 0}.tf-button--ghost:not(:disabled):hover{background:var(--surface-2);color:var(--text)}.tf-button--danger{border-color:var(--line-2);color:var(--unpaid);background:0 0}.tf-button--danger:not(:disabled):hover{border-color:var(--unpaid-soft);background:var(--unpaid-soft)}.tf-button__loader,.tf-loading-state__spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite tf-spin}.tf-button__loader{margin:auto;position:absolute;inset:0}.tf-card{border:1px solid var(--line);border-radius:var(--radius-large);background:var(--surface);min-width:0}.tf-card--subtle{background:var(--surface-2)}.tf-card--elevated{box-shadow:var(--shadow-card)}.tf-card--attention{border-color:#51332e;border-left:3px solid var(--coral);background:linear-gradient(145deg, #2c1c1a, var(--surface));box-shadow:var(--shadow-card)}.tf-card--padding-none{padding:0}.tf-card--padding-compact{padding:14px}.tf-card--padding-regular{padding:18px}.tf-card__header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.tf-card__title{letter-spacing:-.01em;margin:0;font-size:14px}.tf-card__description{color:var(--muted-2);margin:5px 0 0;font-size:12px}.tf-card__body>:last-child{margin-bottom:0}.tf-status-badge{border-radius:var(--radius-round);background:var(--surface-2);min-height:27px;color:var(--muted);white-space:nowrap;align-items:center;gap:6px;padding:4px 9px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.tf-status-badge__icon,.tf-status-badge__icon svg{flex:none;width:13px;height:13px}.tf-status-badge--paid,.tf-status-badge--active{background:var(--sage-soft);color:var(--sage)}.tf-status-badge--unpaid{background:var(--unpaid-soft);color:var(--unpaid)}.tf-status-badge--pending{background:var(--blue-soft);color:var(--blue)}.tf-status-badge--warning{background:var(--amber-soft);color:var(--amber)}.tf-status-badge--cancelled{background:var(--cancelled-soft);color:var(--cancelled)}.tf-avatar{border-radius:var(--radius-small);background:var(--accent-soft);color:var(--accent-hover);letter-spacing:.02em;border:1px solid #df745e2e;flex:none;place-items:center;font-weight:700;line-height:1;display:inline-grid;overflow:hidden}.tf-avatar img{object-fit:cover;width:100%;height:100%}.tf-avatar--small{width:30px;height:30px;font-size:10px}.tf-avatar--medium{width:38px;height:38px;font-size:12px}.tf-avatar--large{border-radius:14px;width:52px;height:52px;font-size:15px}.tf-empty-state,.tf-loading-state{min-height:220px;padding:var(--space-8) var(--space-5);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.tf-empty-state__icon,.tf-shell-message__icon{width:48px;height:48px;margin-bottom:var(--space-4);border:1px solid var(--line);background:var(--surface-2);color:var(--accent);border-radius:14px;place-items:center;display:grid}.tf-empty-state__icon svg,.tf-shell-message__icon svg{width:22px;height:22px}.tf-empty-state h2{margin-bottom:7px;font-size:17px}.tf-empty-state p{max-width:460px;margin-bottom:0;font-size:13px}.tf-empty-state__action{margin-top:var(--space-5);justify-content:center;display:flex}.tf-loading-state{gap:var(--space-3);color:var(--muted);font-size:13px}.tf-loading-state__spinner{color:var(--accent)}.tf-loading-state--fullscreen{background:radial-gradient(circle at 70% -10%, #526ab61f, transparent 35%), var(--bg);width:100%;height:100dvh;min-height:100%}@keyframes tf-spin{to{transform:rotate(360deg)}}@media (width<=640px){body{font-size:13px}.tf-card--padding-regular{padding:15px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.tf-app-shell{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);background:var(--page-bg);width:100%;height:100dvh;min-height:0;display:grid;overflow:hidden}.tf-skip-link{z-index:1000;border-radius:var(--radius-small);background:var(--text);color:var(--chrome);transition:transform var(--motion-fast) var(--ease-standard);padding:10px 14px;font-weight:600;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.tf-skip-link:focus{transform:translateY(0)}.tf-sidebar{z-index:20;min-width:0;min-height:0;padding:max(16px, env(safe-area-inset-top)) 12px max(16px, env(safe-area-inset-bottom));border-right:1px solid var(--line);background:var(--chrome);flex-direction:column;gap:3px;display:flex;position:relative}.tf-brand{align-items:center;gap:10px;min-height:48px;padding:2px 10px 14px;display:flex}.tf-brand__mark{background:linear-gradient(145deg, #6e4b42, var(--coral));color:#fff;border-radius:10px;flex:none;place-items:center;width:34px;height:34px;font-size:15px;font-weight:700;display:grid;box-shadow:0 8px 22px #0000004d}.tf-brand__copy{min-width:0;display:block}.tf-brand__copy strong,.tf-brand__copy span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.tf-brand__copy strong{letter-spacing:-.02em;font-size:17px;font-weight:600}.tf-brand__copy span{color:var(--muted-2);margin-top:1px;font-size:10.5px}.tf-sidebar__label{color:var(--muted-2);letter-spacing:.11em;text-transform:uppercase;margin:0;padding:14px 10px 6px;font-size:10px;font-weight:600}.tf-sidebar__nav{flex-direction:column;gap:3px;display:flex}.tf-nav-link{border-radius:var(--radius-small);min-height:44px;color:var(--muted);transition:color var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard);align-items:center;gap:11px;padding:9px 11px;font-size:13px;font-weight:500;display:flex}.tf-nav-link svg{stroke-width:1.8px;flex:none;width:18px;height:18px}.tf-nav-link:hover{background:var(--surface-2);color:var(--text)}.tf-nav-link.is-active{background:var(--coral-soft);color:#ef927d}.tf-sidebar__footer{border-top:1px solid var(--line);margin-top:auto;padding-top:12px}.tf-profile-link{min-height:58px;transition:background-color var(--motion-fast) var(--ease-standard);border-radius:12px;align-items:center;gap:10px;padding:8px;display:flex}.tf-profile-link:hover,.tf-profile-link.is-active{background:var(--surface-2)}.tf-profile-link__copy{flex:1;min-width:0}.tf-profile-link__copy strong,.tf-profile-link__copy span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.tf-profile-link__copy strong{font-size:12.5px;font-weight:600}.tf-profile-link__copy span{color:var(--muted-2);margin-top:2px;font-size:10.5px}.tf-profile-link__settings{width:17px;height:17px;color:var(--muted-2);stroke-width:1.8px;flex:none}.tf-app-main{background:radial-gradient(circle at 76% -15%, #526ab61f, transparent 34%), var(--bg);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.tf-topbar{z-index:15;min-width:0;min-height:var(--topbar-height);align-items:center;gap:var(--space-4);padding:max(10px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) 10px max(24px, env(safe-area-inset-left));border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0c0d11f0;flex:none;display:flex;position:relative}.tf-topbar__context{flex-direction:column;min-width:0;display:flex}.tf-topbar__context strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.tf-topbar__eyebrow{color:var(--muted-2);letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap;margin-bottom:1px;font-size:10.5px;font-weight:500;overflow:hidden}.tf-topbar__actions{align-items:center;gap:var(--space-2);flex:none;margin-left:auto;display:flex}.tf-topbar__notification,.tf-topbar__profile{border-radius:var(--radius-small);place-items:center;width:44px;height:44px;display:grid}.tf-topbar__notification{color:var(--muted)}.tf-topbar__notification svg{stroke-width:1.8px;width:19px;height:19px}.tf-topbar__profile{transition:background-color var(--motion-fast) var(--ease-standard)}.tf-topbar__profile:hover{background:var(--surface-2)}.tf-app-content{overscroll-behavior-y:contain;width:100%;min-width:0;min-height:0;padding:26px max(26px, env(safe-area-inset-right)) max(48px, env(safe-area-inset-bottom)) max(26px, env(safe-area-inset-left));scroll-behavior:auto;-webkit-overflow-scrolling:touch;flex:auto;position:relative;overflow:hidden auto}.tf-app-content>*{width:min(100%, var(--content-max-width));margin-inline:auto}.tf-mobile-nav,.tf-mobile-fab{display:none}.tf-shell-message{width:100%;height:100dvh;padding:var(--space-8) var(--space-5);background:radial-gradient(circle at 70% -10%, #526ab61f, transparent 35%), var(--bg);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.tf-shell-message h1{margin-bottom:8px;font-size:clamp(21px,4vw,28px)}.tf-shell-message p{max-width:520px;margin-bottom:4px}.tf-shell-message__hint{color:var(--muted-2);font-size:12px}@media (width<=1080px){.tf-app-shell{grid-template-columns:minmax(0,1fr)}.tf-sidebar{display:none}.tf-app-main{padding-bottom:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom))}.tf-topbar__add{display:none}.tf-mobile-nav{z-index:40;height:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));padding:8px max(8px, env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0c0d11f7;display:block;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -12px 32px #00000061}.tf-mobile-nav__items{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 70px minmax(0,1fr) minmax(0,1fr);width:min(100%,640px);height:60px;margin-inline:auto;display:grid}.tf-mobile-nav__link{min-width:0;min-height:56px;color:var(--muted-2);transition:color var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:5px 3px;font-size:10.5px;font-weight:500;line-height:1;display:flex;position:relative}.tf-mobile-nav__link:first-child{grid-column:1}.tf-mobile-nav__link:nth-child(2){grid-column:2}.tf-mobile-nav__link:nth-child(3){grid-column:4}.tf-mobile-nav__link:nth-child(4){grid-column:5}.tf-mobile-nav__link svg{stroke-width:1.8px;flex:none;width:21px;height:21px}.tf-mobile-nav__link:hover{color:var(--text)}.tf-mobile-nav__link.is-active{background:var(--coral-soft);color:#ef927d}.tf-mobile-fab{z-index:45;right:50%;bottom:calc(48px + env(safe-area-inset-bottom));border:4px solid var(--chrome);background:var(--primary-button);color:#fff;cursor:pointer;width:58px;height:58px;transition:background-color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);border-radius:50%;place-items:center;display:grid;position:fixed;transform:translate(50%);box-shadow:0 12px 30px #00000075,0 8px 22px #b952403d}.tf-mobile-fab:hover{background:var(--primary-button-hover)}.tf-mobile-fab:active{transform:translate(50%)translateY(1px)}.tf-mobile-fab svg{stroke-width:2px;width:24px;height:24px}.tf-app-content{padding:20px max(16px, env(safe-area-inset-right)) 36px max(16px, env(safe-area-inset-left))}}@media (width<=640px){:root{--topbar-height:64px}.tf-app-main{background:radial-gradient(circle at 85% -8%, #526ab61a, transparent 30%), var(--bg)}.tf-topbar{gap:var(--space-2);padding:max(8px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) 8px max(12px, env(safe-area-inset-left))}.tf-topbar__actions{gap:2px}.tf-topbar__notification,.tf-topbar__profile{width:44px;height:44px}.tf-topbar__profile .tf-avatar{width:34px;height:34px}.tf-app-content{padding:18px max(12px, env(safe-area-inset-right)) 32px max(12px, env(safe-area-inset-left))}.tf-mobile-nav__items{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 64px minmax(0,1fr) minmax(0,1fr)}}@media (width<=370px){.tf-mobile-nav{padding-left:max(4px, env(safe-area-inset-left));padding-right:max(4px, env(safe-area-inset-right))}.tf-mobile-nav__items{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 58px minmax(0,1fr) minmax(0,1fr)}.tf-mobile-nav__link{font-size:9.5px}}.tf-page{width:min(100%,1440px);margin:0 auto;padding:30px clamp(18px,3vw,44px) 56px}.tf-page-header{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px;display:flex}.tf-page-header__copy{min-width:0}.tf-page-eyebrow{color:var(--coral);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:8px;margin:0 0 7px;font-size:.72rem;font-weight:600;display:flex}.tf-page-title{color:var(--text);letter-spacing:-.035em;margin:0;font-size:clamp(1.65rem,2.5vw,2.2rem);font-weight:600;line-height:1.16}.tf-page-description{max-width:660px;color:var(--muted);margin:8px 0 0;font-size:.86rem;line-height:1.6}.tf-page-actions,.tf-inline-actions{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.tf-inline-actions--spaced{margin-top:14px}.tf-inline-actions--compact-spaced{margin-top:12px}.tf-section--spaced{margin-top:18px}.tf-page-grid{grid-template-columns:minmax(0,1.5fr) minmax(280px,.5fr);align-items:start;gap:18px;display:grid}.tf-stack{gap:18px;display:grid}.tf-section{min-width:0}.tf-section--accent{border-color:color-mix(in srgb, var(--coral) 36%, var(--line));background:linear-gradient(145deg, color-mix(in srgb, var(--coral-soft) 62%, var(--surface)), var(--surface) 70%)}.tf-section-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:15px;display:flex}.tf-section-header__title{align-items:center;gap:9px;min-width:0;display:flex}.tf-section-header h2,.tf-section-header h3{color:var(--text);letter-spacing:-.01em;margin:0;font-size:.91rem;font-weight:600}.tf-section-header svg{width:17px;height:17px;color:var(--muted-2);flex:none}.tf-text-link{color:var(--muted);align-items:center;gap:5px;padding:3px;font-size:.76rem;font-weight:500;text-decoration:none;display:inline-flex}.tf-text-link:hover{color:var(--coral)}.tf-text-link svg{width:14px;height:14px}.tf-metrics{border:1px solid var(--line);border-radius:var(--radius-lg,17px);background:color-mix(in srgb, var(--surface) 93%, transparent);grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px;display:grid;overflow:hidden;box-shadow:0 20px 50px #00000021}.tf-metric{min-width:0;padding:18px 21px 17px;position:relative}.tf-metric+.tf-metric{border-left:1px solid var(--line)}.tf-metric:before{background:var(--metric-color,var(--coral));content:"";border-radius:999px;width:28px;height:3px;margin-bottom:12px;display:block}.tf-metric--amber{--metric-color:var(--amber)}.tf-metric--sage{--metric-color:var(--sage)}.tf-metric--blue{--metric-color:var(--blue)}.tf-metric--coral{--metric-color:var(--coral)}.tf-metric__label{color:var(--muted-2);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:.68rem;font-weight:600}.tf-metric__value{color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.035em;margin:7px 0 0;font-size:clamp(1.5rem,2.4vw,2rem);font-weight:600;line-height:1.16}.tf-metric__meta{color:var(--muted-2);margin:4px 0 0;font-size:.7rem;line-height:1.45}.tf-next-lesson{border:1px solid color-mix(in srgb, var(--coral) 38%, var(--line));border-radius:var(--radius-lg,17px);background:radial-gradient(circle at 96% -30%, #df745e30, transparent 50%), linear-gradient(140deg, #241b1d, var(--surface) 62%);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:17px;margin-bottom:18px;padding:20px;display:grid;box-shadow:0 22px 54px #0000002b}.tf-next-lesson__time{background:var(--coral-soft);color:#f6a18e;font-variant-numeric:tabular-nums;border:1px solid #df745e59;border-radius:14px;place-items:center;min-width:72px;min-height:68px;padding:8px 12px;font-size:1.1rem;font-weight:600;display:grid}.tf-next-lesson__eyebrow{color:#f19a87;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:7px;margin:0 0 4px;font-size:.7rem;font-weight:600;display:flex}.tf-next-lesson__eyebrow svg{width:14px;height:14px}.tf-next-lesson h2{color:var(--text);margin:0;font-size:1.06rem;font-weight:600}.tf-next-lesson__meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px 13px;margin:5px 0 0;font-size:.76rem;display:flex}.tf-next-lesson__meta span{align-items:center;gap:5px;display:inline-flex}.tf-next-lesson__meta svg{width:14px;height:14px}.tf-next-lesson__action{justify-content:flex-end;display:flex}.tf-event-list{gap:3px;display:grid}.tf-event-row{border:0;border-bottom:1px solid var(--line);width:100%;min-width:0;color:inherit;text-align:left;background:0 0;border-radius:10px;grid-template-columns:74px minmax(0,1fr) auto;align-items:center;gap:14px;padding:13px 10px;display:grid;position:relative}button.tf-event-row{cursor:pointer}button.tf-event-row:hover{background:var(--surface-2)}.tf-event-row:last-child{border-bottom-color:#0000}.tf-event-row:before{background:var(--event-color,var(--blue));content:"";border-radius:999px;width:3px;position:absolute;top:18px;bottom:18px;left:0}.tf-event-row--paid{--event-color:var(--paid)}.tf-event-row--unpaid{--event-color:var(--unpaid)}.tf-event-row--planned{--event-color:var(--pending)}.tf-event-row--cancelled{--event-color:var(--cancelled)}.tf-event-row--personal{--event-color:var(--amber)}.tf-event-row__time{color:var(--text);font-variant-numeric:tabular-nums;align-content:center;gap:1px;padding-left:10px;font-size:.83rem;font-weight:600;display:grid}.tf-event-row__end{color:var(--muted-2);font-size:.66rem;font-weight:500}.tf-event-row__content{min-width:0}.tf-event-row__title{min-width:0;color:var(--text);align-items:center;gap:7px;margin:0;font-size:.84rem;font-weight:600;display:flex}.tf-event-row__title>span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tf-event-row__title svg{width:14px;height:14px;color:var(--muted-2);flex:none}.tf-event-row__meta{color:var(--muted-2);flex-wrap:wrap;gap:5px 10px;margin-top:3px;font-size:.7rem;line-height:1.45;display:flex}.tf-event-row__note{text-overflow:ellipsis;white-space:nowrap;max-width:430px;overflow:hidden}.tf-event-row__aside{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.tf-event-statuses-compact{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;min-width:0;display:inline-flex}.tf-event-row__amount{color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.8rem;font-weight:600}.tf-status{background:var(--status-bg,var(--surface-2));width:fit-content;color:var(--status-color,var(--muted));white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:4px 8px;font-size:.66rem;font-weight:600;line-height:1.15;display:inline-flex}.tf-status svg{flex:none;width:12px;height:12px}.tf-status--paid{--status-bg:var(--paid-soft);--status-color:var(--paid)}.tf-status--unpaid{--status-bg:var(--unpaid-soft);--status-color:var(--unpaid)}.tf-status--planned{--status-bg:var(--pending-soft);--status-color:var(--pending)}.tf-status--cancelled{--status-bg:var(--cancelled-soft);--status-color:var(--cancelled)}.tf-status--personal{--status-bg:var(--amber-soft);--status-color:var(--amber)}.tf-attention-list{display:grid}.tf-attention-item{border:0;border-bottom:1px solid color-mix(in srgb, var(--coral) 19%, var(--line));width:100%;color:inherit;cursor:pointer;text-align:left;background:0 0;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding:12px 4px;display:grid}.tf-attention-item:hover{background:color-mix(in srgb, var(--coral-soft) 34%, transparent)}.tf-attention-item:last-child{border-bottom:0}.tf-attention-item strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.79rem;font-weight:600;overflow:hidden}.tf-attention-item span{color:var(--muted);font-size:.69rem}.tf-attention-item b{color:var(--unpaid);font-variant-numeric:tabular-nums;white-space:nowrap;grid-area:1/2/span 2;align-self:center;font-size:.82rem;font-weight:600}.tf-calendar-toolbar{justify-content:space-between;align-items:center;gap:14px;margin-bottom:15px;display:flex}.tf-calendar-nav{align-items:center;gap:8px;display:flex}.tf-calendar-nav__label{min-width:185px;color:var(--text);text-transform:capitalize;margin:0;font-size:.98rem;font-weight:600}.tf-icon-button{border:1px solid var(--line);background:var(--surface-2);width:36px;height:36px;color:var(--muted);cursor:pointer;border-radius:10px;place-items:center;padding:0;display:inline-grid}.tf-icon-button:hover{border-color:var(--line-2);color:var(--text)}.tf-icon-button svg{width:17px;height:17px}.tf-date-strip{scrollbar-width:none;grid-template-columns:repeat(7,minmax(40px,1fr));gap:4px;margin:0 -2px 14px;padding:2px;display:none;overflow-x:auto}.tf-date-strip::-webkit-scrollbar{display:none}.tf-date-strip.is-desktop-visible{display:grid}.tf-date-strip__day{border:1px solid var(--line);background:var(--surface);min-height:64px;color:var(--muted);cursor:pointer;border-radius:12px;justify-items:center;gap:3px;padding:8px 7px;display:grid}.tf-date-strip__day span:first-child{letter-spacing:.05em;text-transform:uppercase;font-size:.63rem;font-weight:600}.tf-date-strip__day strong{font-variant-numeric:tabular-nums;font-size:.91rem;font-weight:600}.tf-date-strip__day span:last-child{background:0 0;border-radius:50%;width:5px;height:5px}.tf-date-strip__day.has-events span:last-child{background:var(--pending)}.tf-date-strip__day.is-selected{border-color:var(--coral);background:var(--coral-soft);color:#f19a87}.tf-week-calendar{border:1px solid var(--line);border-radius:var(--radius-lg,17px);background:var(--surface);overflow:hidden;box-shadow:0 20px 50px #0000001f}.tf-week-calendar.is-desktop-hidden{display:none}.tf-week-calendar__grid{grid-template-columns:repeat(7,minmax(0,1fr));min-width:0;display:grid}.tf-week-day{border-right:1px solid var(--line);min-width:0;min-height:360px;padding:12px 8px 14px}.tf-week-day:last-child{border-right:0}.tf-week-day.is-today{background:linear-gradient(#df745e14,#0000 34%)}.tf-week-day__header{color:var(--muted-2);text-align:center;place-items:center;gap:3px;margin:-2px 0 12px;display:grid}.tf-week-day__header span{letter-spacing:.07em;text-transform:uppercase;font-size:.63rem;font-weight:600}.tf-week-day__header strong{width:30px;height:30px;color:var(--text);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;font-size:.78rem;font-weight:600;display:grid}.tf-week-day.is-today .tf-week-day__header strong{background:var(--coral);color:#fff}.tf-week-day__events{gap:6px;display:grid}.tf-calendar-event{border:1px solid color-mix(in srgb, var(--event-color,var(--pending)) 18%, transparent);background:color-mix(in srgb, var(--event-color,var(--pending)) 13%, var(--surface));width:100%;min-width:0;color:var(--text);text-align:left;border-radius:9px;gap:2px;padding:8px;display:grid}button.tf-calendar-event{cursor:pointer}.tf-calendar-event--paid{--event-color:var(--paid);--legend-color:var(--paid)}.tf-calendar-event--unpaid{--event-color:var(--unpaid);--legend-color:var(--unpaid)}.tf-calendar-event--planned{--event-color:var(--pending);--legend-color:var(--pending)}.tf-calendar-event--cancelled{--event-color:var(--cancelled);--legend-color:var(--cancelled)}.tf-calendar-event--personal{--event-color:var(--amber);--legend-color:var(--amber)}.tf-calendar-event__time{color:var(--event-color);font-variant-numeric:tabular-nums;font-size:.66rem;font-weight:600}.tf-calendar-event__title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;font-weight:600;overflow:hidden}.tf-calendar-event__status{color:var(--event-color);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;margin-top:2px;font-size:.62rem;font-weight:600;display:flex;overflow:hidden}.tf-calendar-event__status svg{flex:none;width:10px;height:10px}.tf-calendar-legend{color:var(--muted);flex-wrap:wrap;gap:8px 16px;margin-top:13px;font-size:.68rem;display:flex}.tf-calendar-legend span{align-items:center;gap:6px;display:inline-flex}.tf-calendar-legend i{background:var(--legend-color);border-radius:50%;width:7px;height:7px}.tf-day-calendar{display:none}.tf-day-calendar.is-desktop-visible{display:block}.tf-day-calendar__label{color:var(--muted);text-transform:capitalize;margin:0 0 11px;font-size:.76rem}.tf-filter-row{align-items:center;gap:10px;margin-bottom:16px;display:flex}.tf-search-field{flex:280px;max-width:440px;position:relative}.tf-search-field svg{width:16px;height:16px;color:var(--muted-2);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.tf-search-field input{border:1px solid var(--line);background:var(--input);width:100%;height:40px;color:var(--text);border-radius:11px;padding:0 12px 0 38px}.tf-tabs{background:var(--surface-2);border-radius:11px;gap:3px;padding:3px;display:inline-flex}.tf-tab{min-height:34px;color:var(--muted);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:6px 12px;font-size:.72rem;font-weight:500}.tf-tab[aria-selected=true],.tf-tab[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 5px 15px #00000029}.tf-table-card{padding:7px 10px;overflow:hidden}.tf-table-row{grid-template-columns:minmax(210px,1.25fr) minmax(160px,1fr) minmax(80px,.45fr) minmax(130px,.65fr) auto;align-items:center;gap:14px;min-width:0;padding:11px 12px;display:grid}.tf-table-row--head{border-bottom:1px solid var(--line);color:var(--muted-2);letter-spacing:.08em;text-transform:uppercase;font-size:.62rem;font-weight:600}.tf-table-row--body{border:0;border-bottom:1px solid color-mix(in srgb, var(--line) 75%, transparent);width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border-radius:10px}.tf-table-row--body:last-child{border-bottom-color:#0000}.tf-table-row--body:hover{background:var(--surface-2)}.tf-table-row__person{align-items:center;gap:10px;min-width:0;display:flex}.tf-table-row__person-text,.tf-table-row__cell{min-width:0}.tf-table-row__person strong,.tf-table-row__cell strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:600;display:block;overflow:hidden}.tf-table-row__person span,.tf-table-row__cell span{color:var(--muted-2);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.68rem;display:block;overflow:hidden}.tf-student-grid{gap:10px;display:none}.tf-student-card{border:1px solid var(--line);background:var(--surface);width:100%;color:inherit;text-align:left;cursor:pointer;border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:14px;display:grid}.tf-student-card__body{min-width:0}.tf-student-card__body strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.83rem;font-weight:600;display:block;overflow:hidden}.tf-student-card__body>span{color:var(--muted-2);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.75rem;display:block;overflow:hidden}.tf-student-card__body>.tf-student-card__meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.tf-student-card__meta span{color:var(--muted);font-size:.75rem}.tf-student-card>svg{width:17px;height:17px;color:var(--muted-2)}.tf-avatar{border:1px solid color-mix(in srgb, var(--avatar-color,var(--blue)) 35%, transparent);background:color-mix(in srgb, var(--avatar-color,var(--blue)) 17%, var(--surface));width:38px;height:38px;color:var(--avatar-color,var(--blue));border-radius:11px;flex:none;place-items:center;font-size:.71rem;font-weight:700;display:grid}.tf-avatar--coral{--avatar-color:var(--coral)}.tf-avatar--blue{--avatar-color:var(--blue)}.tf-avatar--sage{--avatar-color:var(--sage)}.tf-avatar--amber{--avatar-color:var(--amber)}.tf-profile-grid{grid-template-columns:minmax(280px,.42fr) minmax(0,1fr);align-items:start;gap:18px;display:grid}.tf-profile-person{align-items:center;gap:13px;display:flex}.tf-profile-person .tf-avatar{border-radius:14px;width:50px;height:50px;font-size:.87rem}.tf-profile-person__text{min-width:0}.tf-profile-person__text strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.94rem;font-weight:600;display:block;overflow:hidden}.tf-profile-person__text span{overflow-wrap:anywhere;color:var(--muted);margin-top:3px;font-size:.72rem;line-height:1.5;display:block}.tf-profile-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:17px;display:grid}.tf-profile-stat{background:var(--surface-2);border-radius:11px;min-width:0;padding:12px}.tf-profile-stat span{color:var(--muted-2);font-size:.65rem;display:block}.tf-profile-stat strong{color:var(--text);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;margin-top:5px;font-size:1rem;font-weight:600;display:block;overflow:hidden}.tf-profile-note{color:var(--muted);white-space:pre-wrap;margin:0;font-size:.76rem;line-height:1.65}.tf-back-link{color:var(--muted);align-items:center;gap:6px;margin-bottom:14px;font-size:.75rem;font-weight:500;text-decoration:none;display:inline-flex}.tf-back-link:hover{color:var(--text)}.tf-back-link svg{width:15px;height:15px}.tf-finance-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:17px;display:grid}.tf-finance-summary__item{border:1px solid var(--line);background:var(--surface);border-radius:14px;align-items:center;gap:11px;min-width:0;padding:14px;display:flex}.tf-finance-summary__icon{background:var(--summary-bg,var(--surface-2));width:36px;height:36px;color:var(--summary-color,var(--muted));border-radius:10px;flex:none;place-items:center;display:grid}.tf-finance-summary__icon svg{width:17px;height:17px}.tf-finance-summary__item--paid{--summary-bg:var(--paid-soft);--summary-color:var(--paid)}.tf-finance-summary__item--unpaid{--summary-bg:var(--unpaid-soft);--summary-color:var(--unpaid)}.tf-finance-summary__item--planned{--summary-bg:var(--pending-soft);--summary-color:var(--pending)}.tf-finance-summary__copy{min-width:0}.tf-finance-summary__copy span{color:var(--muted-2);font-size:.65rem;display:block}.tf-finance-summary__copy strong{color:var(--text);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:1rem;font-weight:600;display:block;overflow:hidden}.tf-finance-row{grid-template-columns:minmax(190px,1.15fr) minmax(120px,.65fr) minmax(88px,.45fr) minmax(120px,.65fr) auto;align-items:center;gap:14px;min-width:0;padding:11px 12px;display:grid}.tf-finance-row--head{border-bottom:1px solid var(--line);color:var(--muted-2);letter-spacing:.08em;text-transform:uppercase;font-size:.62rem;font-weight:600}.tf-finance-row--body{border-bottom:1px solid color-mix(in srgb, var(--line) 75%, transparent);border-radius:10px}.tf-finance-row--body.is-expanded{background:color-mix(in srgb, var(--surface-2) 42%, transparent);border-bottom-color:#0000}.tf-finance-row--body:last-child{border-bottom-color:#0000}.tf-finance-row__primary,.tf-finance-row__cell{min-width:0}.tf-finance-row__toggle{width:100%;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:6px;display:flex}.tf-finance-row__toggle:hover{background:var(--surface-2)}.tf-finance-row__primary-copy{min-width:0}.tf-finance-row__toggle>svg{width:16px;height:16px;color:var(--muted);flex:none;transition:transform .16s}.tf-finance-row__toggle[aria-expanded=true]>svg{transform:rotate(180deg)}.tf-finance-row__primary strong,.tf-finance-row__cell strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.77rem;font-weight:600;display:block;overflow:hidden}.tf-finance-row__primary span,.tf-finance-row__cell span{color:var(--muted-2);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.67rem;display:block;overflow:hidden}.tf-finance-row__mobile-meta{display:none}.tf-finance-lessons{border:1px solid var(--line);background:color-mix(in srgb, var(--input) 80%, var(--surface));border-radius:12px;margin:0 12px 12px;padding:9px 12px 12px}.tf-finance-lessons__hint{color:var(--muted-2);margin:0 4px 5px;font-size:.67rem}.tf-finance-action-review{border:1px solid color-mix(in srgb, var(--unpaid) 45%, var(--line));background:color-mix(in srgb, var(--unpaid-soft) 65%, var(--surface));border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;margin-bottom:16px;padding:16px;display:grid}.tf-finance-action-review>svg{width:22px;height:22px;color:var(--unpaid)}.tf-finance-action-review h2,.tf-finance-action-review p{margin:0}.tf-finance-action-review h2{font-size:.9rem}.tf-finance-action-review p{color:var(--muted);margin-top:4px;font-size:.72rem;line-height:1.55}.tf-finance-selection-header,.tf-finance-selection-summary,.tf-finance-selectable-lesson,.tf-payment-history-item__summary,.tf-payment-allocation{align-items:center;display:flex}.tf-finance-selection-header{color:var(--muted);justify-content:space-between;gap:12px;padding:5px 4px 10px;font-size:.7rem}.tf-finance-selection-header label,.tf-finance-selectable-lesson label{cursor:pointer;align-items:center;gap:10px;min-width:0;display:flex}.tf-finance-selection-header input,.tf-finance-selectable-lesson input{width:18px;height:18px;accent-color:var(--accent);flex:none}.tf-finance-selectable-list{gap:6px;display:grid}.tf-finance-selectable-lesson{background:var(--surface-2);border-radius:10px;gap:12px;min-width:0;padding:10px}.tf-finance-selectable-lesson label{flex:1}.tf-finance-selectable-lesson label>span,.tf-payment-history-item__summary>span,.tf-payment-allocation>span{min-width:0;display:grid}.tf-finance-selectable-lesson strong,.tf-payment-allocation strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.73rem;overflow:hidden}.tf-finance-selectable-lesson small,.tf-payment-allocation small{color:var(--muted-2);margin-top:2px;font-size:.65rem}.tf-finance-selectable-lesson>b,.tf-payment-allocation>b{color:var(--text);font-variant-numeric:tabular-nums;flex:none;font-size:.75rem}.tf-finance-selection-summary{border-top:1px solid var(--line);justify-content:flex-end;gap:14px;margin-top:10px;padding:12px 4px 1px}.tf-finance-selection-summary>span{margin-right:auto;display:grid}.tf-finance-selection-summary small{color:var(--muted-2);font-size:.65rem}.tf-finance-selection-summary strong{font-variant-numeric:tabular-nums;font-size:.9rem}.tf-payment-history{gap:8px;display:grid}.tf-payment-history-item{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-2) 52%, transparent);border-radius:12px;scroll-margin:100px;overflow:hidden}.tf-payment-history-item:focus{box-shadow:var(--focus-ring);outline:none}.tf-payment-history-item.is-highlighted{border-color:color-mix(in srgb, var(--accent) 60%, var(--line))}.tf-payment-history-item__summary{width:100%;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:minmax(160px,1fr) minmax(150px,auto) auto auto;gap:14px;padding:13px 14px;display:grid}.tf-payment-history-item__summary:hover{background:var(--surface-2)}.tf-payment-history-item__summary strong,.tf-payment-history-item__summary small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tf-payment-history-item__summary strong{font-size:.76rem}.tf-payment-history-item__summary small{color:var(--muted-2);margin-top:3px;font-size:.65rem}.tf-payment-history-item__summary>svg{width:17px;height:17px;color:var(--muted);transition:transform var(--motion-fast) var(--ease-standard)}.tf-payment-history-item__summary[aria-expanded=true]>svg{transform:rotate(180deg)}.tf-payment-history-item__details{border-top:1px solid var(--line);background:color-mix(in srgb, var(--input) 72%, var(--surface));gap:14px;padding:14px;display:grid}.tf-payment-history-values{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;display:grid}.tf-payment-history-values>div{background:var(--surface-2);border-radius:9px;padding:10px}.tf-payment-history-values dt{color:var(--muted-2);font-size:.62rem}.tf-payment-history-values dd{color:var(--text);font-variant-numeric:tabular-nums;margin:4px 0 0;font-size:.75rem;font-weight:600}.tf-payment-allocation-list{gap:6px;display:grid}.tf-payment-allocation{background:var(--surface-2);border:1px solid #0000;border-radius:10px;gap:10px;min-width:0;padding:9px 10px}.tf-payment-allocation>span{flex:1}.tf-payment-allocation.is-corrected{border-color:var(--line);opacity:.7}.tf-payment-allocation.is-corrected strong,.tf-payment-allocation.is-corrected>b{text-decoration:line-through}.tf-payment-history-item__actions{justify-content:flex-end;display:flex}.tf-settings-grid{grid-template-columns:minmax(0,1fr) minmax(280px,.55fr);align-items:start;gap:18px;display:grid}.tf-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.tf-field{gap:7px;min-width:0;display:grid}fieldset.tf-field{border:0;margin:0;padding:0}fieldset.tf-field>label{cursor:pointer;align-items:center;gap:8px;width:fit-content;min-height:44px;display:inline-flex}.tf-field--full{grid-column:1/-1}.tf-field label,.tf-field__label{color:var(--muted);font-size:.7rem;font-weight:600}.tf-field input,.tf-field select,.tf-field textarea{border:1px solid var(--line-2);background:var(--input);width:100%;min-width:0;min-height:42px;color:var(--text);font:inherit;border-radius:10px;outline:none;padding:9px 11px;font-size:.78rem}.tf-field textarea{resize:vertical;min-height:88px}.tf-field input[type=checkbox]{width:18px;height:18px;min-height:18px;accent-color:var(--coral);flex:none;padding:0}.tf-field input:focus,.tf-field select:focus,.tf-field textarea:focus{border-color:var(--coral);box-shadow:0 0 0 3px var(--coral-soft)}.tf-field input::placeholder,.tf-field textarea::placeholder{color:var(--muted-2)}.tf-field__hint{color:var(--muted-2);margin:-1px 0 0;font-size:.75rem;line-height:1.5}.tf-form-actions{justify-content:flex-end;gap:9px;margin-top:17px;display:flex}.tf-settings-note{color:var(--muted);align-items:flex-start;gap:10px;margin:0;font-size:.73rem;line-height:1.65;display:flex}.tf-settings-note svg{width:17px;height:17px;color:var(--blue);flex:none;margin-top:2px}.tf-feedback{min-height:22px;color:var(--paid);align-items:center;gap:7px;margin:11px 0 0;font-size:.7rem;display:flex}.tf-feedback svg{width:14px;height:14px}.tf-loading,.tf-error,.tf-empty{border:1px dashed var(--line-2);min-height:180px;color:var(--muted);text-align:center;border-radius:14px;place-items:center;padding:28px 18px;display:grid}.tf-error{border-color:color-mix(in srgb, var(--unpaid) 42%, var(--line));color:var(--unpaid)}.tf-empty__icon{background:var(--surface-2);width:42px;height:42px;color:var(--muted-2);border-radius:12px;place-items:center;margin-bottom:9px;display:grid}.tf-empty__icon svg{width:20px;height:20px}.tf-empty strong{color:var(--text);font-size:.82rem;font-weight:600}.tf-empty p{max-width:380px;color:var(--muted-2);margin:5px 0 0;font-size:.69rem;line-height:1.55}.tf-not-found{text-align:center;place-items:center;min-height:min(620px,100dvh - 150px);padding:32px 18px;display:grid}.tf-not-found__code{color:var(--coral);letter-spacing:-.08em;opacity:.85;margin:0;font-size:clamp(3.8rem,13vw,7rem);font-weight:700;line-height:.9}.tf-not-found h1{color:var(--text);margin:18px 0 0;font-size:1.45rem;font-weight:600}.tf-not-found p{max-width:430px;color:var(--muted);margin:8px 0 20px;font-size:.79rem;line-height:1.6}.tf-quick-add-backdrop{z-index:90;opacity:0;pointer-events:none;background:#000000b3;transition:opacity .18s;position:fixed;inset:0}.tf-quick-add-backdrop.is-open{opacity:1;pointer-events:auto}.tf-quick-add{z-index:100;border-left:1px solid var(--line);background:var(--chrome);flex-direction:column;width:min(450px,100vw);transition:transform .22s cubic-bezier(.3,.9,.3,1);display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(102%);box-shadow:-24px 0 64px #00000073}.tf-quick-add.is-open{transform:translate(0)}.tf-quick-add__header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:17px 20px;display:flex}.tf-quick-add__header h2{color:var(--text);margin:0;font-size:1rem;font-weight:600}.tf-quick-add__body{overscroll-behavior:contain;flex:1;min-height:0;padding:20px;overflow-y:auto}.tf-quick-add__editor.is-hidden{display:none}.tf-frequency-picker{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;display:grid}.tf-frequency-picker legend{color:var(--muted-2);grid-column:1/-1;margin-bottom:1px;font-size:.7rem;font-weight:500}.tf-frequency-picker label{cursor:pointer;position:relative}.tf-frequency-picker input{opacity:0;pointer-events:none;position:absolute}.tf-frequency-picker span{border:1px solid var(--line);background:var(--surface);min-height:42px;color:var(--muted);border-radius:10px;justify-content:center;align-items:center;gap:7px;padding:9px 11px;font-size:.73rem;font-weight:600;display:flex}.tf-frequency-picker span svg{width:15px;height:15px}.tf-frequency-picker input:checked+span{border-color:color-mix(in srgb, var(--coral) 62%, var(--line));background:var(--coral-soft);color:var(--coral-2)}.tf-frequency-picker input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}.tf-series-summary{border:1px solid color-mix(in srgb, var(--blue) 34%, var(--line));background:var(--blue-soft);color:var(--blue);border-radius:11px;align-items:flex-start;gap:9px;padding:12px;display:flex}.tf-series-summary>svg{flex:none;width:17px;height:17px;margin-top:1px}.tf-series-summary span,.tf-series-summary strong,.tf-series-summary small{display:block}.tf-series-summary strong{font-size:.73rem;line-height:1.45}.tf-series-summary small{color:var(--muted);margin-top:4px;font-size:.67rem;line-height:1.5}.tf-quick-add__types{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:20px;display:grid}.tf-quick-add__type{border:1px solid var(--line);background:var(--surface);min-height:72px;color:var(--muted);cursor:pointer;border-radius:12px;place-items:center;gap:6px;padding:9px 6px;font-size:.75rem;font-weight:600;display:grid}.tf-quick-add__type svg{width:19px;height:19px}.tf-quick-add__type[aria-pressed=true]{border-color:color-mix(in srgb, var(--coral) 60%, var(--line));background:var(--coral-soft);color:#f19a87}.tf-quick-add__footer{padding:14px 20px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--chrome);justify-content:flex-end;gap:9px;display:flex}.tf-form-error{border:1px solid color-mix(in srgb, var(--unpaid) 35%, var(--line));background:var(--unpaid-soft);color:var(--unpaid);border-radius:9px;align-items:flex-start;gap:7px;margin:0 0 13px;padding:9px 10px;font-size:.75rem;line-height:1.5;display:flex}.tf-form-error svg{flex:none;width:14px;height:14px;margin-top:1px}.tf-visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.tf-student-table{overflow:visible}.tf-student-table-row{border-bottom:1px solid color-mix(in srgb, var(--line) 75%, transparent);border-radius:10px;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:2px;min-width:0;display:grid;position:relative}.tf-student-table-row:last-child{border-bottom-color:#0000}.tf-student-table-row:hover,.tf-student-table-row:focus-within{background:var(--surface-2)}.tf-student-table-row__main{width:100%;min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;grid-template-columns:minmax(210px,1.25fr) minmax(160px,1fr) minmax(80px,.45fr) minmax(130px,.65fr);align-items:center;gap:14px;padding:11px 8px 11px 12px;display:grid}.tf-student-card{cursor:default;grid-template-columns:minmax(0,1fr) 44px;gap:2px;padding:0 7px 0 0}.tf-student-card__main{width:100%;min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:14px 7px 14px 14px;display:grid}.tf-student-card:hover,.tf-student-card:focus-within{border-color:var(--line-2);background:var(--surface-2)}.tf-student-card__main>svg{width:17px;height:17px;color:var(--muted-2)}.tf-student-card__body>.tf-student-card__connection{text-overflow:clip;max-width:100%;min-height:25px;margin-top:9px;display:inline-flex;overflow:visible}.tf-student-actions{z-index:5;justify-self:end;place-items:center;display:grid;position:relative}.tf-student-actions:has(.tf-student-actions__menu){z-index:80}.tf-student-actions__trigger{width:40px;min-width:40px;height:40px;min-height:40px}.tf-student-actions__menu{z-index:70;border:1px solid var(--line-2);background:var(--chrome);border-radius:11px;width:184px;padding:5px;display:grid;position:absolute;top:calc(100% + 5px);right:0;box-shadow:0 18px 48px #0000006b}.tf-student-actions__item{min-height:40px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:9px;padding:9px 10px;font-size:.74rem;font-weight:500;display:flex}.tf-student-actions__item:hover,.tf-student-actions__item:focus-visible{background:var(--surface-2)}.tf-student-actions__item--danger{color:var(--unpaid)}.tf-student-actions__item svg{flex:none;width:16px;height:16px}.tf-contact-button{text-decoration:none}.tf-readonly-status{border:1px solid var(--line);background:var(--surface);border-radius:11px;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;margin-top:15px;padding:12px 13px;display:grid}.tf-readonly-status>span,.tf-readonly-status>small{color:var(--muted-2);font-size:.75rem}.tf-readonly-status>strong{color:var(--text);font-size:.78rem;font-weight:600}.tf-readonly-status>small{grid-column:1/-1}.tf-quick-add__footer--discard{border-top-color:color-mix(in srgb, var(--amber) 35%, var(--line));background:color-mix(in srgb, var(--amber-soft) 48%, var(--chrome));flex-wrap:wrap}.tf-quick-add__footer--discard p{color:var(--text);text-align:right;flex:1 0 100%;margin:0 0 2px;font-size:.75rem;font-weight:600}.tf-quick-add__footer--conflict{border-top-color:color-mix(in srgb, var(--amber) 36%, var(--line))}.tf-dialog-backdrop{z-index:130;background:#000000bd;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.tf-dialog{border:1px solid var(--line-2);background:var(--chrome);border-radius:18px;width:min(100%,520px);max-height:min(88dvh,720px);overflow:hidden;box-shadow:0 28px 80px #0000008c}.tf-dialog form{max-height:inherit;flex-direction:column;display:flex}.tf-dialog__header{border-bottom:1px solid var(--line);padding:20px 21px 15px}.tf-dialog__eyebrow{color:var(--coral);letter-spacing:.09em;text-transform:uppercase;margin:0 0 6px;font-size:.66rem;font-weight:600}.tf-dialog__header h2{color:var(--text);margin:0;font-size:1.08rem;font-weight:600}.tf-dialog__body{overscroll-behavior:contain;min-height:0;padding:18px 21px;overflow-y:auto}.tf-dialog__message,.tf-dialog__notice{color:var(--muted);margin:0;font-size:.76rem;line-height:1.6}.tf-dialog__message strong{color:var(--text)}.tf-dialog__stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0;display:grid}.tf-dialog__stat{background:var(--surface-2);border-radius:11px;padding:12px}.tf-dialog__stat dt{color:var(--muted-2);font-size:.75rem}.tf-dialog__stat dd{color:var(--text);font-variant-numeric:tabular-nums;margin:5px 0 0;font-size:1.05rem;font-weight:600}.tf-dialog__choices{border:0;gap:8px;margin:17px 0;padding:0;display:grid}.tf-dialog__choices legend{color:var(--text);margin-bottom:8px;font-size:.75rem;font-weight:600}.tf-dialog-choice{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:11px;align-items:flex-start;gap:11px;min-height:58px;padding:12px;display:flex}.tf-dialog-choice:has(input:checked){border-color:color-mix(in srgb, var(--coral) 60%, var(--line));background:var(--coral-soft)}.tf-dialog-choice input{width:18px;height:18px;accent-color:var(--coral);flex:none;margin:2px 0 0}.tf-dialog-choice__text{min-width:0}.tf-dialog-choice__text strong,.tf-dialog-choice__text span{display:block}.tf-dialog-choice__text strong{color:var(--text);font-size:.75rem;font-weight:600}.tf-dialog-choice__text span{color:var(--muted);margin-top:3px;font-size:.75rem;line-height:1.5}.tf-dialog__notice{background:var(--surface-2);border-radius:9px;padding:10px 11px;font-size:.75rem}.tf-dialog__body .tf-form-error{margin:12px 0 0}.tf-dialog__footer{padding:14px 21px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--chrome);justify-content:flex-end;gap:9px;display:flex}.tf-toast{z-index:150;border:1px solid color-mix(in srgb, var(--sage) 35%, var(--line));background:var(--chrome);width:min(390px,100vw - 32px);color:var(--text);border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:12px 10px 12px 13px;font-size:.75rem;line-height:1.45;display:grid;position:fixed;bottom:22px;right:22px;box-shadow:0 18px 48px #00000075}.tf-toast>svg{width:18px;height:18px;color:var(--sage)}.tf-toast--error{border-color:color-mix(in srgb, var(--unpaid) 45%, var(--line))}.tf-toast--error>svg{color:var(--unpaid)}.tf-toast button{width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;padding:0;display:grid}.tf-toast button:hover{background:var(--surface-2);color:var(--text)}.tf-toast button svg{width:16px;height:16px}.tf-toast .tf-toast__action{width:auto;min-width:44px;color:var(--accent-hover);font:inherit;gap:6px;padding:0 10px;font-weight:600;display:inline-flex}.tf-event-panel-backdrop{z-index:110;cursor:default;background:#000000b8;border:0;position:fixed;inset:0}.tf-event-panel{z-index:120;border-left:1px solid var(--line);background:var(--chrome);flex-direction:column;width:min(490px,100vw);min-height:0;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-28px 0 72px #00000080}.tf-event-panel__header{border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:flex-start;gap:16px;padding:19px 20px 17px;display:flex}.tf-event-panel__header>div{min-width:0}.tf-event-panel__header p,.tf-event-panel__header h2,.tf-event-panel__header span{text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.tf-event-panel__header p{color:var(--coral-2);letter-spacing:.08em;text-transform:uppercase;margin-bottom:3px;font-size:.66rem;font-weight:600}.tf-event-panel__header h2{font-size:1.02rem}.tf-event-panel__header span{color:var(--muted-2);font-variant-numeric:tabular-nums;margin-top:5px;font-size:.7rem;display:block}.tf-event-panel__body{overscroll-behavior:contain;flex:auto;min-height:0;padding:20px;overflow-y:auto}.tf-event-statuses{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:15px;display:grid}.tf-event-statuses__item{border:1px solid var(--line);background:var(--surface);border-radius:11px;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;padding:11px;display:flex}.tf-event-statuses__item small{color:var(--muted-2);font-size:.65rem}.tf-event-panel__student{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);cursor:pointer;text-align:left;border-radius:11px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px;padding:12px 13px;display:flex}.tf-event-panel__student:hover{border-color:var(--line-2);background:var(--surface-2)}.tf-event-panel__student span,.tf-event-panel__student small,.tf-event-panel__student strong,.tf-event-panel__student em{min-width:0;display:block}.tf-event-panel__student small,.tf-event-panel__student em{color:var(--muted-2);font-size:.68rem;font-style:normal}.tf-event-panel__student strong{margin-block:2px;font-size:.8rem}.tf-event-panel__student svg{width:17px;color:var(--muted);flex:none}.tf-event-panel__editor{min-width:0}.tf-event-panel__series{border:1px solid color-mix(in srgb, var(--blue) 28%, var(--line));background:color-mix(in srgb, var(--blue-soft) 56%, var(--surface));border-radius:12px;gap:7px;margin:0 0 15px;padding:13px;display:grid}.tf-event-panel__series-heading{align-items:flex-start;gap:9px;min-width:0;display:flex}.tf-event-panel__series-heading>svg{width:18px;height:18px;color:var(--blue);flex:none;margin-top:1px}.tf-event-panel__series-heading span,.tf-event-panel__series-heading small,.tf-event-panel__series-heading strong{min-width:0;display:block}.tf-event-panel__series-heading small{color:var(--blue);letter-spacing:.04em;text-transform:uppercase;margin-bottom:2px;font-size:.65rem;font-weight:600}.tf-event-panel__series-heading strong{overflow-wrap:anywhere;font-size:.78rem;line-height:1.4}.tf-event-panel__series p{color:var(--muted);margin:0;font-size:.7rem;line-height:1.55}.tf-event-panel__series .tf-event-panel__series-exception{color:var(--amber);font-weight:500}.tf-event-panel__payment{border:1px solid var(--line);border-radius:var(--radius-small);background:var(--surface);gap:12px;margin:16px 0;padding:14px;display:grid}.tf-event-panel__payment>div:first-child{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.tf-event-panel__payment small,.tf-event-panel__payment p,.tf-event-panel__payment dt{color:var(--muted-2);font-size:.72rem}.tf-event-panel__payment dl{gap:8px;margin:0;display:grid}.tf-event-panel__payment dl>div{justify-content:space-between;gap:12px;display:flex}.tf-event-panel__payment dt,.tf-event-panel__payment dd,.tf-event-panel__payment p{margin:0}.tf-event-panel__payment dd{text-align:right}.tf-event-panel__scope{border:1px solid var(--line);background:var(--surface);border-radius:12px;gap:7px;min-width:0;margin:0 0 16px;padding:12px;display:grid}.tf-event-panel__scope legend{color:var(--muted);letter-spacing:.04em;padding:0 6px;font-size:.68rem;font-weight:600}.tf-event-panel__scope-option{border:1px solid var(--line);background:var(--input);min-width:0;color:var(--text);cursor:pointer;border-radius:10px;align-items:flex-start;gap:9px;padding:10px;display:flex}.tf-event-panel__scope-option:hover{border-color:var(--line-2);background:var(--surface-2)}.tf-event-panel__scope-option:has(input:checked){border-color:color-mix(in srgb, var(--coral) 58%, var(--line));background:color-mix(in srgb, var(--coral-soft) 62%, var(--input))}.tf-event-panel__scope-option input{width:15px;height:15px;accent-color:var(--coral);flex:none;margin:2px 0 0}.tf-event-panel__scope-option span{gap:3px;min-width:0;display:grid}.tf-event-panel__scope-option strong,.tf-event-panel__scope-option small{overflow-wrap:anywhere;display:block}.tf-event-panel__scope-option strong{font-size:.74rem;line-height:1.35}.tf-event-panel__scope-option small{color:var(--muted-2);font-size:.66rem;line-height:1.5}.tf-event-panel__scope-hint{color:var(--muted-2);margin:2px 1px 0;font-size:.68rem;line-height:1.5}.tf-event-panel__review{gap:13px;min-width:0;display:grid}.tf-event-panel__review>header{align-items:flex-start;gap:10px;display:flex}.tf-event-panel__review>header>svg{width:22px;height:22px;color:var(--amber);flex:none}.tf-event-panel__review header p,.tf-event-panel__review header h3,.tf-event-panel__review>p{margin:0}.tf-event-panel__review header p{color:var(--amber);letter-spacing:.06em;text-transform:uppercase;font-size:.66rem;font-weight:600}.tf-event-panel__review header h3{margin-top:3px;font-size:1rem}.tf-event-panel__review>p{color:var(--muted);font-size:.75rem;line-height:1.6}.tf-event-panel__review .tf-event-panel__review-count{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:10px;padding:10px 11px}.tf-event-panel__scope--review{margin-bottom:0}.tf-event-panel__series-note{background:var(--blue-soft);color:var(--blue);border-radius:9px;align-items:center;gap:7px;margin:0 0 14px;padding:9px 10px;font-size:.7rem;display:flex}.tf-event-panel__series-note svg,.tf-event-panel .tf-field label svg{flex:none;width:14px;height:14px}.tf-event-panel .tf-field label{align-items:center;gap:5px;display:flex}.tf-schedule-conflicts{border:1px solid color-mix(in srgb, var(--amber) 42%, var(--line));background:color-mix(in srgb, var(--amber-soft) 56%, var(--surface));border-radius:13px;width:100%;padding:15px}.tf-schedule-conflicts__header{align-items:flex-start;gap:11px;display:flex}.tf-schedule-conflicts__header>div{min-width:0}.tf-schedule-conflicts__icon{background:color-mix(in srgb, var(--amber) 17%, transparent);width:34px;height:34px;color:var(--amber);border-radius:10px;flex:none;place-items:center;display:grid}.tf-schedule-conflicts__icon svg{width:18px;height:18px}.tf-schedule-conflicts__eyebrow,.tf-schedule-conflicts__header h3,.tf-schedule-conflicts__description{margin:0}.tf-schedule-conflicts__eyebrow{color:var(--amber);letter-spacing:.07em;text-transform:uppercase;font-size:.68rem;font-weight:600}.tf-schedule-conflicts__header h3{overflow-wrap:anywhere;margin-top:3px;font-size:.92rem}.tf-schedule-conflicts__description{color:var(--muted);margin-top:5px;font-size:.72rem;line-height:1.55}.tf-schedule-conflicts__list{gap:10px;margin:14px 0 0;padding:0;list-style:none;display:grid}.tf-schedule-conflict{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 92%, var(--amber-soft));border-radius:11px;min-width:0;padding:12px}.tf-schedule-conflict__heading{min-width:0;color:var(--text);justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;font-size:.7rem;font-weight:600;display:flex}.tf-schedule-conflict__recurring{background:var(--blue-soft);min-width:0;color:var(--blue);border-radius:999px;align-items:center;gap:5px;padding:4px 7px;font-size:.66rem;line-height:1.2;display:inline-flex}.tf-schedule-conflict__recurring svg{flex:none;width:12px;height:12px}.tf-schedule-conflict__participants{gap:7px;display:grid}.tf-schedule-conflict__participant{border:1px solid var(--line);background:var(--input);border-radius:9px;gap:3px;min-width:0;padding:10px;display:grid}.tf-schedule-conflict__participant-label{color:var(--muted-2);letter-spacing:.05em;text-transform:uppercase;font-size:.66rem;font-weight:600}.tf-schedule-conflict__participant-kind{color:var(--amber);font-size:.68rem;font-weight:600}.tf-schedule-conflict__participant strong{overflow-wrap:anywhere;color:var(--text);font-size:.78rem;font-weight:600}.tf-schedule-conflict__interval{overflow-wrap:anywhere;color:var(--muted);font-variant-numeric:tabular-nums;font-size:.72rem;line-height:1.5;display:block}.tf-schedule-conflict__interval time{color:inherit}.tf-schedule-conflict__divider{color:var(--muted-2);text-transform:uppercase;align-items:center;gap:7px;font-size:.66rem;display:flex}.tf-schedule-conflict__divider:before,.tf-schedule-conflict__divider:after{background:var(--line);content:"";flex:1;height:1px}.tf-schedule-conflict__note,.tf-schedule-conflicts__empty{color:var(--muted-2);margin:9px 1px 0;font-size:.7rem;line-height:1.5}.tf-schedule-conflicts__empty{background:var(--surface);border-radius:9px;margin-top:13px;padding:10px}.tf-event-panel__actions{border-top:1px solid var(--line);gap:8px;margin-top:18px;padding-top:17px;display:grid}.tf-event-panel__actions .tf-button{justify-content:flex-start;width:100%}.tf-event-panel__footer{padding:14px 20px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--chrome);flex:none;justify-content:flex-end;align-items:center;gap:9px;display:flex}.tf-event-panel__footer>span{color:var(--muted);margin-right:auto;font-size:.72rem;font-weight:600}.tf-event-panel__footer--confirm{border-top-color:color-mix(in srgb, var(--amber) 38%, var(--line));background:color-mix(in srgb, var(--amber-soft) 48%, var(--chrome));flex-wrap:wrap}.tf-event-panel__footer--confirm p{color:var(--text);text-align:right;flex:1 0 100%;margin:0 0 3px;font-size:.74rem;font-weight:600}.tf-event-panel__footer--conflict{border-top-color:color-mix(in srgb, var(--amber) 38%, var(--line));background:color-mix(in srgb, var(--amber-soft) 40%, var(--chrome))}@media (width<=540px){.tf-event-panel{border-top:1px solid var(--line);border-left:0;border-radius:20px 20px 0 0;width:100%;height:min(93dvh,820px);top:auto;box-shadow:0 -28px 72px #0000008c}.tf-event-panel__header,.tf-event-panel__body,.tf-event-panel__footer{padding-inline:16px}.tf-event-panel__footer .tf-button{flex:1}.tf-event-panel__footer>span{display:none}.tf-event-panel__footer--confirm p{text-align:left}.tf-event-panel__scope{padding:10px}}@media (width<=380px){.tf-event-statuses{grid-template-columns:1fr}.tf-event-panel__body{padding-block:16px}.tf-event-panel__footer--conflict,.tf-event-panel__footer--confirm{flex-direction:column;align-items:stretch}.tf-event-panel__footer--confirm p{flex-basis:auto}.tf-schedule-conflicts{padding:12px}.tf-schedule-conflicts__header{gap:9px}.tf-schedule-conflicts__icon{width:30px;height:30px}.tf-schedule-conflict{padding:10px}.tf-schedule-conflict__heading{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){.tf-event-panel,.tf-event-panel-backdrop{scroll-behavior:auto}}.tf-payment-panel-backdrop{z-index:210;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#07080bc2;border:0;position:fixed;inset:0}.tf-payment-panel{z-index:220;border:1px solid var(--line-2);border-radius:var(--radius-large);background:var(--chrome);width:min(520px,100vw - 32px);box-shadow:var(--shadow-elevated);grid-template-rows:auto minmax(0,1fr) auto;display:grid;position:fixed;top:16px;bottom:16px;right:16px;overflow:hidden}.tf-payment-panel__header,.tf-payment-panel__footer{align-items:center;gap:var(--space-3);padding:var(--space-5);border-color:var(--line);background:var(--chrome);display:flex}.tf-payment-panel__header{border-bottom:1px solid var(--line);justify-content:space-between}.tf-payment-panel__header>div{min-width:0}.tf-payment-panel__header p,.tf-payment-panel__header h2,.tf-payment-panel__header span{margin:0}.tf-payment-panel__header p{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:700}.tf-payment-panel__header h2{margin-top:var(--space-1);font-size:clamp(1.15rem,2vw,1.5rem)}.tf-payment-panel__header span{margin-top:var(--space-1);color:var(--muted-2);font-size:.82rem;display:block}.tf-payment-panel__body{min-height:0;padding:var(--space-5);overscroll-behavior:contain;overflow-y:auto}.tf-payment-panel__footer{border-top:1px solid var(--line);justify-content:flex-end}.tf-payment-summary{gap:var(--space-4);margin-bottom:var(--space-5);padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-large);background:var(--surface);display:grid}.tf-payment-summary__student,.tf-payment-summary__student span,.tf-payment-summary__amount{display:flex}.tf-payment-summary__student{align-items:center;gap:var(--space-3)}.tf-payment-summary__student>svg{width:22px;color:var(--paid)}.tf-payment-summary__student span,.tf-payment-summary__amount{flex-direction:column}.tf-payment-summary small,.tf-payment-summary__amount span{color:var(--muted-2);font-size:.78rem}.tf-payment-summary__amount strong{color:var(--paid);font-size:1.8rem}.tf-payment-summary__lessons{gap:var(--space-2);max-height:240px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.tf-payment-summary__lessons li{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-small);background:var(--surface-2);display:flex}.tf-payment-summary__lessons li>span{flex-direction:column;min-width:0;display:flex}.tf-payment-form-grid{margin-bottom:var(--space-4)}.tf-payment-panel__discard{justify-items:center;gap:var(--space-3);text-align:center;align-content:center;min-height:260px;display:grid}.tf-payment-panel__discard svg{width:40px;height:40px;color:var(--amber)}.tf-payment-panel__discard h3,.tf-payment-panel__discard p{margin:0}.tf-payment-panel__discard p{color:var(--muted-2)}@media (width<=640px){.tf-payment-panel{top:max(8px, env(safe-area-inset-top));border-radius:var(--radius-large) var(--radius-large) 0 0;width:100%;bottom:0;right:0}.tf-payment-panel__header,.tf-payment-panel__body,.tf-payment-panel__footer{padding-right:var(--space-4);padding-left:var(--space-4)}.tf-payment-panel__footer{padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom))}.tf-payment-panel__footer .tf-button{flex:1}}@media (width<=1180px){.tf-page{padding-inline:22px}.tf-page-grid{grid-template-columns:minmax(0,1fr) 300px}.tf-week-day,.tf-calendar-event{padding-inline:6px}}@media (width<=1024px){.tf-page{padding:24px 18px calc(112px + env(safe-area-inset-bottom))}.tf-page-grid,.tf-profile-grid,.tf-settings-grid{grid-template-columns:1fr}.tf-student-table{display:none}.tf-student-grid{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.tf-finance-row{grid-template-columns:minmax(180px,1.1fr) 100px 100px minmax(112px,.65fr) auto;gap:10px}}@media (width<=760px){.tf-page{padding:20px 14px calc(108px + env(safe-area-inset-bottom))}.tf-page-header{align-items:flex-start;margin-bottom:19px}.tf-page-description{max-width:520px}.tf-page-actions{width:100%}.tf-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.tf-metric{padding:15px 13px}.tf-next-lesson{grid-template-columns:auto minmax(0,1fr)}.tf-next-lesson__action{grid-column:1/-1}.tf-next-lesson__action .tf-button{justify-content:center;width:100%}.tf-calendar-toolbar{flex-direction:column;align-items:flex-start}.tf-calendar-toolbar .tf-tabs{display:none}.tf-calendar-nav{width:100%}.tf-calendar-nav__label{flex:1;min-width:0}.tf-date-strip{display:grid}.tf-week-calendar{display:none}.tf-day-calendar{display:block}.tf-student-grid,.tf-finance-summary{grid-template-columns:1fr}.tf-finance-summary__item{padding:12px}.tf-finance-table .tf-finance-row--head{display:none}.tf-finance-row--body{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:14px 8px}.tf-finance-row--body>.tf-finance-row__cell{display:none}.tf-finance-row__primary{grid-column:1}.tf-finance-row__mobile-meta{color:var(--muted);flex-wrap:wrap;grid-column:1;align-items:center;gap:7px;font-size:.67rem;display:flex}.tf-finance-row__mobile-meta strong{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.tf-finance-row__actions{grid-area:1/2/span 2;align-self:center}.tf-finance-lessons{margin-inline:8px;padding-inline:8px}.tf-finance-action-review{grid-template-columns:auto minmax(0,1fr)}.tf-finance-action-review .tf-inline-actions{grid-column:1/-1;justify-content:flex-end}.tf-payment-history-item__summary{grid-template-columns:minmax(0,1fr) auto auto}.tf-payment-history-item__summary>span:nth-child(2){display:none}.tf-payment-history-values,.tf-form-grid{grid-template-columns:1fr}.tf-field--full{grid-column:auto}}@media (width<=640px){.tf-field input:not([type=checkbox]),.tf-field select,.tf-field textarea,.tf-search-field input{min-height:44px;font-size:16px}.tf-tab,.tf-back-link,.tf-text-link{min-height:44px}}@media (width<=540px){.tf-page{padding-inline:12px}.tf-page-header{grid-template-columns:minmax(0,1fr);justify-content:stretch;gap:13px;display:grid}.tf-page-title{font-size:1.55rem}.tf-page-actions .tf-button{flex:1;justify-content:center}.tf-page-actions>.tf-student-actions,.tf-profile-actions>.tf-student-actions{flex:none}.tf-finance-selectable-lesson,.tf-payment-allocation{flex-wrap:wrap;align-items:flex-start}.tf-finance-selectable-lesson label,.tf-payment-allocation>span{flex-basis:calc(100% - 90px)}.tf-finance-selectable-lesson>.tf-button,.tf-payment-allocation>.tf-button{flex:auto}.tf-finance-selection-summary{flex-direction:column;align-items:stretch}.tf-finance-selection-summary .tf-button{width:100%}.tf-payment-history-item__summary{grid-template-columns:minmax(0,1fr) auto;gap:8px}.tf-payment-history-item__summary .tf-status-badge{grid-column:1;justify-self:start}.tf-payment-history-item__summary>svg{grid-area:1/2/span 2}.tf-toast{right:12px;bottom:calc(var(--mobile-nav-height) + 14px);grid-template-columns:auto minmax(0,1fr) auto;width:calc(100vw - 24px)}.tf-toast .tf-toast__action{grid-column:2;justify-self:start}.tf-toast .tf-toast__close{grid-area:1/3/span 2}.tf-profile-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.tf-profile-actions>.tf-button{width:100%;padding-inline:10px;font-size:12px}.tf-profile-actions>.tf-student-actions{grid-column:2;justify-self:end}.tf-page-actions .tf-student-actions__trigger{flex:0 0 44px;width:44px;min-width:44px;min-height:44px}.tf-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.tf-metric:nth-child(3){border-top:1px solid var(--line);border-left:0;grid-column:1/-1}.tf-metric:nth-child(2){border-left:1px solid var(--line)}.tf-metric__value{font-size:1.42rem}.tf-next-lesson{grid-template-columns:1fr;gap:12px;padding:16px}.tf-next-lesson__time{justify-self:start;min-width:62px;min-height:46px}.tf-event-row{grid-template-columns:58px minmax(0,1fr);gap:9px;padding-inline:6px}.tf-event-row__time{padding-left:7px;font-size:.76rem}.tf-event-row__aside{flex-wrap:wrap;grid-column:2;justify-content:flex-start}.tf-event-row__note{max-width:min(66vw,280px)}.tf-filter-row{flex-direction:column;align-items:stretch}.tf-search-field{flex:none;max-width:none}.tf-filter-row .tf-tabs{scrollbar-width:none;max-width:100%;overflow-x:auto}.tf-filter-row .tf-tabs::-webkit-scrollbar{display:none}.tf-profile-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.tf-student-card__main{padding-left:12px}.tf-student-actions__trigger{width:44px;min-width:44px;height:44px;min-height:44px}.tf-student-actions__item{min-height:44px;font-size:.79rem}.tf-dialog-backdrop{place-items:end center;padding:0}.tf-dialog{border-bottom:0;border-left:0;border-right:0;border-radius:20px 20px 0 0;width:100%;max-height:min(92dvh,760px)}.tf-dialog__header,.tf-dialog__body,.tf-dialog__footer{padding-inline:16px}.tf-dialog__footer .tf-button{flex:1}.tf-toast{right:12px;bottom:calc(92px + env(safe-area-inset-bottom));width:calc(100vw - 24px)}.tf-quick-add{border-top:1px solid var(--line);border-left:0;border-radius:20px 20px 0 0;width:100%;height:min(91dvh,780px);top:auto;transform:translateY(102%);box-shadow:0 -24px 64px #0000007a}.tf-quick-add.is-open{transform:translateY(0)}.tf-quick-add__header{padding:14px 16px}.tf-quick-add__body{padding:16px}.tf-quick-add__footer{padding-inline:16px}.tf-quick-add__footer .tf-button{flex:1;justify-content:center}.tf-quick-add__footer--discard p{text-align:left}}@media (width<=380px){.tf-page{padding-inline:10px}.tf-page-title{font-size:1.42rem}.tf-metric{padding:13px 10px}.tf-metric__label{letter-spacing:.035em;font-size:.6rem}.tf-profile-stats,.tf-dialog__stats{grid-template-columns:1fr}.tf-quick-add__types{gap:5px}.tf-quick-add__type{min-height:66px;padding-inline:4px;font-size:.75rem}.tf-quick-add__footer--conflict{flex-direction:column;align-items:stretch}.tf-quick-add__footer--conflict .tf-button{width:100%}}@media (prefers-reduced-motion:reduce){.tf-quick-add,.tf-quick-add-backdrop,.tf-finance-row__toggle>svg{transition:none}}.tf-calendar-page{--calendar-hour-height:72px}.tf-calendar-page__header{margin-bottom:18px}.tf-calendar-range-status{color:var(--muted);margin:-3px 0 15px;font-size:.8rem}.tf-calendar-range-feedback{gap:12px;margin-bottom:15px;display:grid}.tf-calendar-range-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.tf-calendar-range-notice{border:1px solid color-mix(in srgb, var(--amber) 38%, var(--line));background:color-mix(in srgb, var(--amber-soft) 48%, var(--surface));border-radius:13px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:15px;padding:13px 15px;display:flex}.tf-calendar-range-notice--error{border-color:color-mix(in srgb, var(--coral) 42%, var(--line));background:color-mix(in srgb, var(--coral-soft) 48%, var(--surface))}.tf-calendar-range-notice>div:first-child{gap:3px;min-width:0;display:grid}.tf-calendar-range-notice strong{color:var(--text);font-size:.82rem}.tf-calendar-range-notice span{overflow-wrap:anywhere;color:var(--muted);font-size:.76rem;line-height:1.5}.tf-calendar-view-tabs{flex:none}.tf-calendar-desktop-week{display:block}.tf-calendar-mobile-week{display:none}.tf-time-grid{border:1px solid var(--line);border-radius:var(--radius-large);background:var(--surface);box-shadow:var(--shadow-card);overflow:hidden}.tf-time-grid__scroller{overscroll-behavior-x:contain;overflow-x:auto}.tf-time-grid__inner{min-width:820px}.tf-time-grid--day .tf-time-grid__inner{min-width:0}.tf-time-grid__header,.tf-time-grid__body{grid-template-columns:64px repeat(var(--tf-calendar-days), minmax(0, 1fr));display:grid}.tf-time-grid__header{z-index:6;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--surface) 94%, var(--chrome));min-height:58px;position:sticky;top:0}.tf-time-grid__corner{border-right:1px solid var(--line)}.tf-time-grid__day-heading{border-right:1px solid var(--line);min-width:0;color:var(--muted);text-transform:capitalize;justify-content:center;align-items:center;gap:7px;padding:9px 5px;display:flex}.tf-time-grid__day-heading:last-child{border-right:0}.tf-time-grid__day-heading span:first-child{letter-spacing:.04em;text-transform:uppercase;font-size:.67rem;font-weight:600}.tf-time-grid__day-heading strong{width:31px;height:31px;color:var(--text);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;font-size:.77rem;font-weight:600;display:grid}.tf-time-grid__day-heading.is-today{color:var(--coral-2)}.tf-time-grid__day-heading.is-today strong{background:var(--coral);color:#fff}.tf-time-grid__body{position:relative}.tf-time-grid__hours{border-right:1px solid var(--line);background:var(--surface);grid-area:1/1;position:relative}.tf-time-grid__hours span{color:var(--muted-2);font-variant-numeric:tabular-nums;font-size:.62rem;position:absolute;right:9px;transform:translateY(-50%)}.tf-time-grid__hours span:first-child{transform:translateY(4px)}.tf-time-grid__day{border-right:1px solid var(--line);background:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--calendar-hour-height) / 2 - 1px), color-mix(in srgb, var(--line) 40%, transparent) calc(var(--calendar-hour-height) / 2 - 1px), color-mix(in srgb, var(--line) 40%, transparent) calc(var(--calendar-hour-height) / 2), transparent calc(var(--calendar-hour-height) / 2), transparent calc(var(--calendar-hour-height) - 1px), var(--line) calc(var(--calendar-hour-height) - 1px), var(--line) var(--calendar-hour-height));grid-row:1;min-width:0;position:relative}.tf-time-grid__day:nth-child(2){grid-column:2}.tf-time-grid__day:nth-child(3){grid-column:3}.tf-time-grid__day:nth-child(4){grid-column:4}.tf-time-grid__day:nth-child(5){grid-column:5}.tf-time-grid__day:nth-child(6){grid-column:6}.tf-time-grid__day:nth-child(7){grid-column:7}.tf-time-grid__day:nth-child(8){border-right:0;grid-column:8}.tf-time-grid__day.is-today{background-color:color-mix(in srgb, var(--coral-soft) 25%, transparent)}.tf-time-grid__slot{z-index:1;cursor:pointer;background:0 0;border-radius:4px;position:absolute;left:0;right:0}.tf-time-grid__slot:hover,.tf-time-grid__slot:focus-visible{background:color-mix(in srgb, var(--blue-soft) 55%, transparent)}.tf-time-grid__slot:focus-visible:after{color:var(--blue);content:"+ dodaj";font-size:.61rem;font-weight:600;position:absolute;top:4px;left:6px}.tf-time-grid__now-line{z-index:5;background:var(--coral);height:2px;box-shadow:0 0 10px color-mix(in srgb, var(--coral) 65%, transparent);pointer-events:none;position:absolute;left:0;right:0}.tf-time-grid__now-line span{background:var(--coral);border-radius:50%;width:9px;height:9px;position:absolute;top:-4px;left:-4px}.tf-schedule-event{--event-color:var(--blue);--event-soft:var(--blue-soft);z-index:3;border:1px solid color-mix(in srgb, var(--event-color) 45%, var(--line));border-left:3px solid var(--event-color);background:color-mix(in srgb, var(--event-soft) 90%, var(--surface));min-width:0;min-height:26px;color:var(--text);cursor:pointer;text-align:left;border-radius:7px;flex-direction:column;align-items:flex-start;gap:2px;padding:7px 8px;display:flex;position:absolute;overflow:hidden;box-shadow:0 5px 16px #0000002e}.tf-schedule-event:hover,.tf-schedule-event:focus-visible{z-index:4;filter:brightness(1.12)}.tf-schedule-event--completed{--event-color:var(--sage);--event-soft:var(--sage-soft)}.tf-schedule-event--cancelled{--event-color:var(--cancelled);--event-soft:var(--cancelled-soft);opacity:.78}.tf-schedule-event--private{--event-color:var(--amber);--event-soft:var(--amber-soft)}.tf-schedule-event__time{color:var(--event-color);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.62rem;font-weight:600;line-height:1.25}.tf-schedule-event__title{color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.68rem;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.tf-schedule-event__statuses{max-width:100%;color:var(--muted);white-space:nowrap;gap:4px;margin-top:auto;font-size:.55rem;line-height:1.25;display:flex;overflow:hidden}.tf-schedule-event__statuses span+span{border-left:1px solid color-mix(in srgb, var(--event-color) 45%, transparent);padding-left:4px}.tf-schedule-event.is-compact{justify-content:center;padding-block:3px}.tf-schedule-event.is-compact .tf-schedule-event__title,.tf-schedule-event.is-compact .tf-schedule-event__statuses{display:none}.tf-month-calendar{border:1px solid var(--line);border-radius:var(--radius-large);background:var(--surface);box-shadow:var(--shadow-card);overflow:hidden}.tf-month-calendar__weekdays,.tf-month-calendar__grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.tf-month-calendar__weekdays{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--surface) 94%, var(--chrome))}.tf-month-calendar__weekdays span{border-right:1px solid var(--line);color:var(--muted-2);letter-spacing:.04em;text-align:center;text-transform:uppercase;padding:11px 8px;font-size:.65rem;font-weight:600}.tf-month-calendar__weekdays span:last-child{border-right:0}.tf-month-day{border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface);min-width:0;min-height:124px;padding:8px}.tf-month-day:nth-child(7n){border-right:0}.tf-month-day:nth-last-child(-n+7){border-bottom:0}.tf-month-day.is-outside{background:color-mix(in srgb, var(--chrome) 55%, var(--surface));opacity:.58}.tf-month-day.is-today{background:color-mix(in srgb, var(--coral-soft) 28%, var(--surface))}.tf-month-day__date{width:29px;height:29px;color:var(--muted);cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border-radius:50%;place-items:center;margin:0 0 6px auto;font-size:.7rem;font-weight:600;display:grid}.tf-month-day__date:hover{background:var(--surface-2);color:var(--text)}.tf-month-day.is-today .tf-month-day__date{background:var(--coral);color:#fff}.tf-month-day__events{gap:4px;display:grid}.tf-month-event{--event-color:var(--blue);background:color-mix(in srgb, var(--event-color) 10%, transparent);min-width:0;color:var(--text);cursor:pointer;text-align:left;border-radius:6px;grid-template-columns:6px auto minmax(0,1fr);align-items:center;gap:5px;padding:4px 5px;display:grid}.tf-month-event:hover{background:color-mix(in srgb, var(--event-color) 19%, transparent)}.tf-month-event--completed{--event-color:var(--sage)}.tf-month-event--cancelled{--event-color:var(--cancelled)}.tf-month-event--private{--event-color:var(--amber)}.tf-month-event__dot{background:var(--event-color);border-radius:50%;width:6px;height:6px}.tf-month-event__time,.tf-month-event__title{text-overflow:ellipsis;white-space:nowrap;font-size:.58rem;overflow:hidden}.tf-month-event__time{color:var(--event-color);font-variant-numeric:tabular-nums;font-weight:600}.tf-month-event__title{color:var(--muted)}.tf-month-day__more{color:var(--muted-2);padding-left:6px;font-size:.58rem}.tf-compact-week{border:1px solid var(--line);border-radius:var(--radius-large);background:var(--surface);box-shadow:var(--shadow-card);overflow:hidden}.tf-compact-week__days{border-bottom:1px solid var(--line);grid-template-columns:36px repeat(7,minmax(0,1fr));display:grid}.tf-compact-week__corner{border-right:1px solid var(--line);color:var(--muted-2);letter-spacing:.03em;text-transform:uppercase;place-items:end center;padding-bottom:10px;font-size:.48rem;display:grid}.tf-compact-week__day{border-right:1px solid var(--line);background:var(--surface);min-width:0;padding:7px 2px 8px}.tf-compact-week__day:last-child{border-right:0}.tf-compact-week__day.is-selected{background:var(--blue-soft)}.tf-compact-week__day.is-today{box-shadow:inset 0 2px 0 var(--coral)}.tf-compact-week__date{width:100%;min-height:43px;color:var(--muted);cursor:pointer;background:0 0;place-items:center;gap:1px;display:grid}.tf-compact-week__date span{text-transform:uppercase;font-size:.61rem}.tf-compact-week__date strong{font-variant-numeric:tabular-nums;font-size:.73rem}.tf-compact-week__day.is-selected .tf-compact-week__date{color:var(--blue)}.tf-compact-week__dots{flex-wrap:wrap;justify-content:center;align-items:center;gap:2px;min-height:16px;display:flex}.tf-calendar-dot{--event-color:var(--blue);border:2px solid var(--surface);background:var(--event-color);cursor:pointer;border-radius:50%;width:9px;height:9px;padding:0}.tf-calendar-dot--completed{--event-color:var(--sage)}.tf-calendar-dot--cancelled{--event-color:var(--cancelled)}.tf-calendar-dot--private{--event-color:var(--amber)}.tf-compact-week__dots>span{color:var(--muted-2);font-size:.52rem}.tf-compact-week__timeline{border-bottom:1px solid var(--line);background:var(--surface);grid-template-columns:36px repeat(7,minmax(0,1fr));display:grid;position:relative}.tf-compact-week__hours{border-right:1px solid var(--line);position:relative}.tf-compact-week__hours span{color:var(--muted-2);font-variant-numeric:tabular-nums;font-size:.46rem;line-height:1;position:absolute;right:4px;transform:translateY(-50%)}.tf-compact-week__hours span:first-child{transform:translateY(2px)}.tf-compact-week__time-column{border-right:1px solid var(--line);background:repeating-linear-gradient(to bottom, transparent 0, transparent 71px, color-mix(in srgb, var(--line) 78%, transparent) 71px, color-mix(in srgb, var(--line) 78%, transparent) 72px);min-width:0;position:relative}.tf-compact-week__time-column:last-child{border-right:0}.tf-compact-week__time-column.is-selected{background-color:color-mix(in srgb, var(--blue-soft) 28%, transparent)}.tf-compact-week__time-column.is-today{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--coral) 25%, transparent)}.tf-compact-week__slot{z-index:1;cursor:pointer;background:0 0;border-radius:3px;padding:0;position:absolute;left:0;right:0}.tf-compact-week__slot:hover,.tf-compact-week__slot:focus-visible{background:color-mix(in srgb, var(--blue-soft) 62%, transparent)}.tf-compact-week__time-event{--event-color:var(--blue);z-index:2;border:1px solid var(--surface);background:var(--event-color);cursor:pointer;border-radius:3px;min-height:2px;padding:0;position:absolute}.tf-compact-week__time-event:hover,.tf-compact-week__time-event:focus-visible{z-index:4;filter:brightness(1.25)}.tf-compact-week__time-event--completed{--event-color:var(--sage)}.tf-compact-week__time-event--cancelled{--event-color:var(--cancelled)}.tf-compact-week__time-event--private{--event-color:var(--amber)}.tf-compact-week__now-line{z-index:3;background:var(--coral);pointer-events:none;height:1px;position:absolute;left:0;right:0}.tf-compact-week__agenda{padding:14px}.tf-compact-week__agenda h2{color:var(--muted);text-transform:capitalize;margin:0 0 10px;font-size:.75rem}.tf-compact-agenda-list{gap:7px;display:grid}.tf-compact-agenda-item{--event-color:var(--blue);border:1px solid color-mix(in srgb, var(--event-color) 30%, var(--line));border-left:3px solid var(--event-color);background:color-mix(in srgb, var(--event-color) 9%, var(--surface));width:100%;min-width:0;min-height:58px;color:var(--text);cursor:pointer;text-align:left;border-radius:9px;grid-template-columns:53px minmax(0,1fr);align-items:center;gap:10px;padding:8px 10px;display:grid}.tf-compact-agenda-item--completed{--event-color:var(--sage)}.tf-compact-agenda-item--cancelled{--event-color:var(--cancelled)}.tf-compact-agenda-item--private{--event-color:var(--amber)}.tf-compact-agenda-item__time,.tf-compact-agenda-item__copy{min-width:0;display:grid}.tf-compact-agenda-item__time{color:var(--event-color);font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:600}.tf-compact-agenda-item__time small,.tf-compact-agenda-item__copy small{color:var(--muted-2);font-size:.6rem;font-weight:500}.tf-compact-agenda-item__copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:.73rem;overflow:hidden}.tf-compact-week__empty{min-height:76px;color:var(--muted-2);justify-content:center;align-items:center;gap:8px;font-size:.68rem;display:flex}.tf-compact-week__empty svg{width:17px}.tf-legend-dot--planned{--legend-color:var(--blue)}.tf-legend-dot--completed{--legend-color:var(--sage)}.tf-legend-dot--cancelled{--legend-color:var(--cancelled)}.tf-legend-dot--private{--legend-color:var(--amber)}.tf-calendar-legend__hint{margin-left:auto}.tf-calendar-legend__hint svg{width:14px;height:14px}@media (width<=760px){.tf-calendar-range-actions,.tf-calendar-range-notice{flex-direction:column;align-items:stretch}.tf-calendar-range-actions .tf-button,.tf-calendar-range-notice>.tf-button{width:100%}.tf-calendar-toolbar{gap:10px}.tf-calendar-toolbar .tf-tabs{display:flex}.tf-calendar-view-tabs{width:100%}.tf-calendar-view-tabs .tf-tab{flex:1;min-width:0}.tf-calendar-nav{gap:4px}.tf-calendar-nav__label{font-size:.76rem;line-height:1.35}.tf-calendar-nav .tf-button--secondary{padding-inline:10px}.tf-calendar-desktop-week{display:none}.tf-calendar-mobile-week{display:block}.tf-time-grid--day .tf-time-grid__header,.tf-time-grid--day .tf-time-grid__body{grid-template-columns:50px minmax(0,1fr)}.tf-time-grid__hours span{font-size:.56rem;right:6px}.tf-schedule-event{padding-inline:7px}.tf-schedule-event__title{font-size:.66rem}.tf-month-calendar__weekdays span{letter-spacing:0;padding:8px 1px;font-size:.54rem;overflow:hidden}.tf-month-day{min-height:65px;padding:4px 2px}.tf-month-day__date{width:27px;height:27px;margin:0 auto 3px;font-size:.65rem}.tf-month-day__events{flex-wrap:wrap;justify-content:center;align-items:center;gap:1px;min-height:12px;display:flex}.tf-month-event{background:0 0;border-radius:50%;place-items:center;width:10px;height:10px;min-height:10px;padding:0;display:grid}.tf-month-event__dot{width:7px;height:7px}.tf-month-event__time,.tf-month-event__title{display:none}.tf-month-day__more{padding:0 1px;font-size:.48rem;line-height:1}.tf-calendar-legend__hint{width:100%;margin-left:0}}@media (width<=380px){.tf-calendar-nav__label{font-size:.7rem}.tf-compact-week__day{padding-inline:1px}.tf-compact-week__days,.tf-compact-week__timeline{grid-template-columns:34px repeat(7,minmax(0,1fr))}.tf-calendar-dot{width:8px;height:8px}.tf-month-day{min-height:61px}}@media (prefers-reduced-motion:reduce){.tf-time-grid__scroller{scroll-behavior:auto}}.bootstrap-page{background:var(--page-bg);height:100%;padding:clamp(16px,5vw,64px);scroll-padding-block:24px;overflow-y:auto}.bootstrap-card{border:1px solid var(--line);border-radius:var(--radius-large);background:var(--surface);width:min(100%,720px);box-shadow:var(--shadow-card);overflow-wrap:anywhere;margin:0 auto;padding:clamp(20px,4vw,40px)}.bootstrap-label{color:var(--muted);letter-spacing:.06em;font-size:12px}.bootstrap-card h1{font-size:clamp(24px,4vw,32px)}.bootstrap-card h1:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.bootstrap-card h2{margin-top:28px;font-size:20px}.bootstrap-card p{color:var(--muted)}.bootstrap-card .bootstrap-notice{color:var(--amber);background:var(--amber-soft);border-radius:var(--radius-small);padding:16px}.bootstrap-profile{margin-block:24px}.bootstrap-profile div{border-bottom:1px solid var(--line);padding-block:12px}.bootstrap-profile dt{color:var(--muted);font-size:12px}.bootstrap-profile dd{margin:4px 0 0}.bootstrap-variants{padding:0;list-style:none}.bootstrap-variants li{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:8px 16px;padding:14px 0;display:flex}.bootstrap-default{color:var(--sage)}.bootstrap-card .tf-button{white-space:normal;max-width:100%;min-height:44px}@media (width<=420px){.bootstrap-card .tf-button{width:100%}}.auth-card{max-width:560px}.auth-form{gap:12px;display:grid}.auth-form label{gap:8px;font-weight:500;display:grid}.auth-form input{border:1px solid var(--line);border-radius:var(--radius-small);width:100%;min-width:0;min-height:48px;color:var(--text);background:var(--page-bg);font:inherit;padding:12px}.auth-form input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.auth-form input[aria-invalid=true]{border-color:var(--amber)}.auth-password{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.auth-password input{flex:160px;min-width:min(100%,160px)}.auth-password .tf-button{flex-shrink:0;width:auto}.auth-links{flex-wrap:wrap;align-items:center;gap:16px;margin-top:24px;display:flex}.auth-links a{color:var(--text);align-items:center;min-height:44px;display:inline-flex}.auth-links a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.auth-card [aria-disabled=true]{opacity:.7}#auth-status:empty{margin:0}@media (prefers-reduced-motion:reduce){.auth-card *,.auth-card :before,.auth-card :after{transition:none!important;animation:none!important}}.onboarding-form>fieldset,.onboarding-form fieldset fieldset{border:0;gap:16px;min-width:0;margin:0;padding:0;display:grid}.onboarding-form>fieldset{gap:24px}.onboarding-form legend{margin-bottom:8px;font-weight:600}.onboarding-form p{margin-top:8px;font-size:13px}.onboarding-subject{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.onboarding-subject label{flex:240px;min-width:0}.onboarding-form .onboarding-choice{align-items:center;gap:12px;display:flex}.onboarding-choice input{width:22px;min-height:22px;accent-color:var(--accent)}.onboarding-actions{flex-wrap:wrap;gap:12px;margin-block:20px;display:flex}.onboarding-card a.tf-button{justify-content:center;align-items:center;padding:12px 16px;display:inline-flex}.onboarding-card [aria-disabled=true],.onboarding-dialog [aria-disabled=true]{opacity:.65}.onboarding-conflict{border:1px solid var(--amber);border-radius:var(--radius-small);padding:16px}.onboarding-form fieldset.onboarding-variant{border:1px solid var(--line);border-radius:var(--radius-small);margin-block:20px;padding:16px}.onboarding-variant-values{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.onboarding-variant-actions{flex-wrap:wrap;gap:8px;display:flex}.onboarding-variant .onboarding-choice,[data-field=initialSchedulePath] .onboarding-choice{min-height:44px}.onboarding-card [role=alert]:focus-visible,.onboarding-card [role=status]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.onboarding-background{scroll-padding-bottom:max(24px, env(safe-area-inset-bottom))}@media (width<=600px){.onboarding-variant-values{grid-template-columns:minmax(0,1fr)}}.onboarding-dialog{width:min(560px,100vw - 32px);max-height:calc(100dvh - 32px);padding:24px;overflow-y:auto}.onboarding-card input:focus-visible,.onboarding-card a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}@media (width<=420px){.onboarding-actions{flex-direction:column}.onboarding-subject>.tf-button{width:auto}}@media (prefers-reduced-motion:reduce){.onboarding-card *,.onboarding-dialog *,.onboarding-card :before{transition:none!important;animation:none!important}}.onboarding-conflict-group{border:1px solid var(--line);border-radius:var(--radius-small);min-width:0;margin-block:16px;padding:16px}.onboarding-conflict-group legend{font-weight:600}.onboarding-comparison{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.onboarding-comparison dd{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.onboarding-comparison ol,.onboarding-comparison ul{padding-left:20px}.onboarding-conflict-group .onboarding-choice{align-items:center;gap:12px;min-height:44px;display:flex}@media (width<=768px){.onboarding-comparison{grid-template-columns:minmax(0,1fr)}}
