:root{--font: -apple-system, BlinkMacSystemFont, "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", system-ui, sans-serif;--bg: #f6f7f9;--surface: #ffffff;--surface-2: #f9fafb;--surface-3: #f2f4f7;--line: #e6e8ec;--line-strong: #d5d9e0;--ink: #111827;--ink-2: #374151;--muted: #6b7280;--subtle: #9ca3af;--accent: #2563eb;--accent-hover: #1d4ed8;--accent-soft: #eef3fe;--accent-soft-2: #dbe6fd;--accent-ink: #1e40af;--success: #047857;--success-soft: #ecfdf5;--success-line: #a7f3d0;--warning: #b45309;--warning-soft: #fff7ed;--warning-line: #fed7aa;--danger: #b91c1c;--danger-soft: #fef2f2;--danger-line: #fecaca;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--shadow-1: 0 1px 2px rgb(16 24 40 / .05);--shadow-2: 0 8px 24px rgb(16 24 40 / .08);--sidebar-w: 248px;--rail-w: 76px;--topbar-h: 56px;--tabbar-h: 64px;--content-max: 1200px;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px)}:root{font-family:var(--font);color:var(--ink);background:var(--bg);font-synthesis:none;line-height:1.6;font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:var(--bg);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}a,button,summary{touch-action:manipulation}button{cursor:pointer;border:0;background:none}button:disabled{cursor:not-allowed}img,svg{display:block;max-width:100%}.icon{flex-shrink:0}h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}ul,ol{padding:0}h1{font-size:1.5rem;line-height:1.35;font-weight:700;letter-spacing:-.01em}h2{font-size:1.125rem;line-height:1.45;font-weight:650}h3{font-size:1rem;line-height:1.5;font-weight:600}p,dd,li{overflow-wrap:anywhere}small{font-size:.8125rem}::selection{background:var(--accent-soft-2)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(min-width:768px){h1{font-size:1.75rem;line-height:1.3}h2{font-size:1.25rem}}input,select,textarea{width:100%;max-width:100%;min-height:48px;padding:11px 14px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);font-size:1rem;font-weight:400;line-height:1.5;transition:border-color .15s ease-out,box-shadow .15s ease-out}input::placeholder,textarea::placeholder{color:var(--subtle)}input:hover,select:hover,textarea:hover{border-color:var(--subtle)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft-2)}input[readonly],input:disabled,select:disabled,textarea:disabled{background:var(--surface-2);color:var(--muted)}select{appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}textarea{resize:vertical}input[type=checkbox],input[type=radio]{width:20px;height:20px;min-height:20px;margin:2px 0 0;padding:0;flex-shrink:0;accent-color:var(--accent);box-shadow:none}input[type=file]{padding:10px;font-size:.9375rem}input[type=search]{-webkit-appearance:none;appearance:none}.field{display:grid;gap:6px;margin:0 0 16px;min-width:0;font-size:.875rem;font-weight:600;color:var(--ink-2)}.field>span{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.field small,.field .help{font-weight:400;color:var(--muted)}.check-field{display:flex;align-items:flex-start;gap:10px;margin:14px 0;font-size:.875rem;line-height:1.6;color:var(--ink-2);cursor:pointer}.form-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}.form-columns>*{min-width:0}.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:10px 18px;border:1px solid transparent;border-radius:var(--radius-md);font-weight:600;font-size:.9375rem;line-height:1.4;text-align:center;cursor:pointer;transition:background-color .15s ease-out,border-color .15s ease-out,color .15s ease-out}.button.primary{background:var(--accent);color:#fff}.button.primary:hover:not(:disabled){background:var(--accent-hover)}.button.secondary{background:var(--surface);color:var(--accent-ink);border-color:var(--line-strong)}.button.secondary:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent-soft-2)}.button.soft{background:var(--accent-soft);color:var(--accent-ink)}.button.soft:hover:not(:disabled){background:var(--accent-soft-2)}.button.danger{background:var(--surface);color:var(--danger);border-color:var(--danger-line)}.button.danger:hover:not(:disabled){background:var(--danger-soft)}.button:disabled{opacity:.5}.button.full{width:100%}.button.small{min-height:44px;padding:8px 14px;font-size:.875rem}.button-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.button-row>*{flex:1 1 auto}.button-stack{display:grid;gap:10px}.text-link{display:inline-flex;align-items:center;gap:4px;min-height:44px;color:var(--accent);font-size:.875rem;font-weight:600}.text-link:hover{color:var(--accent-hover);text-decoration:underline;text-underline-offset:3px}.subtle-button{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 4px;color:var(--muted);font-size:.875rem;font-weight:600}.subtle-button:hover:not(:disabled){color:var(--accent)}.icon-button{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-md);color:var(--ink-2)}.icon-button:hover{background:var(--surface-3);color:var(--accent)}.eyebrow{margin-bottom:4px;color:var(--accent);font-size:.8125rem;font-weight:600}.intro{margin-top:6px;max-width:62ch;color:var(--muted);font-size:.9375rem}.help{margin:8px 0;color:var(--muted);font-size:.8125rem;line-height:1.7}.muted{color:var(--muted)}.micro{color:var(--muted);font-size:.75rem;line-height:1.5}.readable{max-width:68ch;color:var(--ink-2);font-size:.9375rem;line-height:1.75;white-space:pre-line}.num{font-variant-numeric:tabular-nums}.space-top{margin-top:16px}.no-margin{margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:fixed;left:12px;top:-100px;z-index:100;padding:12px 16px;border-radius:var(--radius-md);background:var(--accent);color:#fff;font-weight:600}.skip-link:focus{top:12px}.mobile-only{display:none}@media(max-width:767px){.desktop-only{display:none!important}.mobile-only{display:revert}}@media(max-width:359px){.form-columns{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}.app{min-height:100dvh}.app-body{min-width:0;min-height:100dvh;display:flex;flex-direction:column}.app-main{flex:1;outline:none;padding:20px 16px 28px}.app-content{width:100%;max-width:var(--content-max);margin:0 auto}.app-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;padding:16px 16px calc(var(--tabbar-h) + var(--safe-bottom) + 20px);color:var(--muted);font-size:.75rem}.brand-mark{display:inline-grid;place-items:center;flex-shrink:0;width:36px;height:36px;border-radius:10px;background:var(--accent);color:#fff;font-size:1.125rem;font-weight:800;letter-spacing:-.02em}.brand-mark.sm{width:30px;height:30px;border-radius:8px;font-size:.9375rem}.brand-name{display:grid;line-height:1.25;font-weight:700;font-size:1rem;letter-spacing:-.01em}.brand-name small{color:var(--muted);font-size:.75rem;font-weight:500;letter-spacing:0}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:calc(var(--topbar-h) + var(--safe-top));padding:var(--safe-top) 8px 0 16px;background:#fffffff0;border-bottom:1px solid var(--line);-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px)}.topbar-brand{display:flex;align-items:center;gap:10px;min-height:44px;min-width:0;font-weight:700}.topbar{border-bottom-color:transparent;transition:border-color .15s ease-out}.topbar.scrolled{border-bottom-color:var(--line)}.topbar-back{display:inline-flex;align-items:center;gap:0;min-height:44px;margin-left:-8px;padding:0 8px 0 2px;border-radius:var(--radius-md);color:var(--accent);font-size:1rem;font-weight:500}.topbar-title{position:absolute;left:50%;bottom:0;max-width:52%;height:var(--topbar-h);transform:translate(-50%);overflow:hidden;color:var(--ink);font-size:1rem;font-weight:650;line-height:var(--topbar-h);text-overflow:ellipsis;white-space:nowrap;pointer-events:none}.topbar-actions{display:flex;align-items:center;gap:2px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:6px 8px calc(6px + var(--safe-bottom));background:#fffffff5;border-top:1px solid var(--line);-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px)}.tabbar.tabs-3{grid-template-columns:repeat(3,minmax(0,1fr))}.tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;padding:2px;border-radius:var(--radius-md);color:var(--muted);font-size:.75rem;font-weight:500;line-height:1.25;text-align:center;overflow-wrap:anywhere}.tabbar a.is-active{color:var(--accent);font-weight:650}.tabbar a.is-active .icon{stroke-width:2.2}.sidenav,.nav-short{display:none}@media(min-width:768px){.topbar,.tabbar{display:none}.sidenav{position:fixed;inset:0 auto 0 0;z-index:30;display:flex;flex-direction:column;gap:8px;width:var(--rail-w);padding:16px 8px;background:var(--surface);border-right:1px solid var(--line);overflow-y:auto;overscroll-behavior:contain}.app-body{margin-left:var(--rail-w)}.app-main{padding:32px 32px 40px}.app-footer{padding:0 32px 28px}.sidenav-brand{display:flex;justify-content:center;align-items:center;gap:10px;min-height:48px;margin-bottom:8px;border-radius:var(--radius-md)}.sidenav-brand .brand-name{display:none}.sidenav nav{flex:1}.sidenav-group{display:none}.sidenav ul{list-style:none;display:grid;gap:4px}.sidenav ul+.sidenav-group,.sidenav ul+ul{margin-top:12px}.nav-link{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:56px;padding:6px 2px;border-radius:var(--radius-md);color:var(--ink-2);font-size:.6875rem;font-weight:500;line-height:1.2;text-align:center}.nav-link .nav-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.nav-link .nav-short{display:block}.nav-link:hover{background:var(--surface-3);color:var(--ink)}.nav-link.is-active{background:var(--accent-soft);color:var(--accent-ink);font-weight:650}.nav-link.is-active .icon{color:var(--accent)}.sidenav-foot{display:grid;gap:8px;padding-top:12px;border-top:1px solid var(--line)}.user-card{display:flex;justify-content:center;align-items:center;gap:10px;min-height:52px;padding:6px;border-radius:var(--radius-md)}.user-card:hover,.user-card.is-active{background:var(--surface-3)}.user-card .user-text,.user-card .chev,.sidenav-meta{display:none}}@media(min-width:1080px){.sidenav{width:var(--sidebar-w);padding:20px 14px 16px}.app-body{margin-left:var(--sidebar-w)}.app-main{padding:36px 40px 48px}.app-footer{padding:0 40px 32px}.sidenav-brand{justify-content:flex-start;padding:4px 8px;margin-bottom:16px}.sidenav-brand .brand-name{display:grid}.sidenav-group{display:block;margin:0 10px 6px;color:var(--muted);font-size:.75rem;font-weight:600}.sidenav ul+.sidenav-group{margin-top:20px}.nav-link{flex-direction:row;justify-content:flex-start;gap:12px;min-height:44px;padding:8px 12px;font-size:.9375rem;text-align:left}.nav-link .nav-label{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.nav-link .nav-short{display:none}.user-card{justify-content:flex-start;padding:8px 10px}.user-card .user-text{display:grid;flex:1;min-width:0;line-height:1.35}.user-card .user-text strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9375rem}.user-card .user-text small{color:var(--muted);font-size:.75rem}.user-card .chev{display:block;color:var(--subtle)}.sidenav-meta{display:block;padding:4px 10px 0;color:var(--muted);font-size:.75rem}}@media(min-width:1440px){:root{--content-max: 1280px}.app-main{padding:40px 48px 56px}.app-footer{padding:0 48px 32px}}.page-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}.page-main,.page-aside{display:grid;gap:16px;min-width:0}@media(min-width:1080px){.page-grid{grid-template-columns:minmax(0,1fr) 360px;gap:24px}.page-grid.single{grid-template-columns:minmax(0,1fr)}.page-grid.aside-first{grid-template-columns:340px minmax(0,1fr)}.page-main,.page-aside{gap:20px}.page-aside.sticky{position:sticky;top:24px}}@media(min-width:1440px){.page-grid{grid-template-columns:minmax(0,1fr) 380px}}.auth{min-height:100dvh;background:var(--surface)}.auth-aside{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px;padding:calc(10px + var(--safe-top)) 16px 10px;border-bottom:1px solid var(--line)}.auth-brand{display:flex;align-items:center;gap:10px;min-height:44px}.auth-pitch,.auth-foot{display:none}.auth-main{padding:24px 16px 40px}.auth-card{width:100%;max-width:440px;margin:0 auto}@media(min-width:960px){.auth{display:grid;grid-template-columns:minmax(380px,5fr) 7fr}.auth-aside{position:sticky;top:0;height:100dvh;flex-direction:column;flex-wrap:nowrap;align-items:stretch;justify-content:space-between;gap:32px;padding:40px 48px;border-bottom:0;border-right:1px solid var(--accent-soft-2);background:radial-gradient(120% 80% at 0% 0%,rgb(37 99 235 / .1),transparent 60%),var(--accent-soft)}.auth-aside .auth-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.auth-pitch,.auth-foot{display:block}.auth-main{display:grid;place-items:center;padding:56px 48px}}.auth-top{display:contents}.page-heading{margin:0 0 20px}.back-link{display:inline-flex;align-items:center;gap:2px;min-height:44px;margin:-10px 0 4px -6px;padding:0 6px;border-radius:var(--radius-sm);color:var(--muted);font-size:.875rem;font-weight:600}.back-link:hover{color:var(--accent)}.page-heading-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 24px}.page-heading-text{flex:1 1 320px;min-width:0}.page-heading-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}.page-actions{display:flex;flex-wrap:wrap;gap:10px}@media(max-width:767px){.page-actions{flex:1 1 100%}.page-actions>*{flex:1 1 auto}}@media(min-width:768px){.page-heading{margin-bottom:28px}}.panel{min-width:0;padding:18px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1)}.panel-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin-bottom:14px}.panel-head h2{font-size:1.0625rem}.panel-head .text-link{min-height:36px}.panel>h2{margin-bottom:12px;font-size:1.0625rem}.panel-sub{margin:-8px 0 14px;color:var(--muted);font-size:.8125rem}.panel-divider{margin:18px 0;border:0;border-top:1px solid var(--line)}.panel>:last-child,.panel>.form-columns:last-child>.field{margin-bottom:0}.panel.flush{padding:0;overflow:hidden}.panel.danger-panel{border-color:var(--danger-line)}.panel.soft{background:var(--surface-2);box-shadow:none}@media(min-width:768px){.panel{padding:22px 24px}.panel.flush{padding:0}}.status{display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:2px 10px;border-radius:999px;font-size:.75rem;font-weight:600;line-height:1.4;white-space:normal;vertical-align:middle}.status:before{content:"";width:6px;height:6px;flex-shrink:0;border-radius:50%;background:currentColor}.status.good{color:var(--success);background:var(--success-soft)}.status.pending{color:var(--warning);background:var(--warning-soft)}.status.info{color:var(--accent-ink);background:var(--accent-soft)}.status.quiet{color:var(--muted);background:var(--surface-3)}.message{display:flex;gap:10px;margin:12px 0;padding:12px 14px;border:1px solid transparent;border-radius:var(--radius-md);font-size:.875rem;line-height:1.65}.message:before{content:"";width:18px;height:18px;margin-top:2px;flex-shrink:0;background:currentColor;-webkit-mask:var(--message-icon) center / contain no-repeat;mask:var(--message-icon) center / contain no-repeat}.message.info{--message-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 7.5h.01'/%3E%3C/svg%3E");color:var(--accent-ink);background:var(--accent-soft);border-color:var(--accent-soft-2)}.message.success{--message-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m8 12.5 2.5 2.5L16 9.5'/%3E%3C/svg%3E");color:var(--success);background:var(--success-soft);border-color:var(--success-line)}.message.error{--message-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5M12 16h.01'/%3E%3C/svg%3E");color:var(--danger);background:var(--danger-soft);border-color:var(--danger-line)}.message.warning{--message-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5M12 16h.01'/%3E%3C/svg%3E");color:var(--warning);background:var(--warning-soft);border-color:var(--warning-line)}.avatar{display:inline-grid;place-items:center;flex-shrink:0;width:44px;height:44px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);font-size:1rem;font-weight:650}.avatar.sm{width:36px;height:36px;font-size:.875rem}.avatar.lg{width:60px;height:60px;font-size:1.375rem}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:4px;min-height:26px;padding:2px 10px;border-radius:999px;background:var(--surface-3);color:var(--ink-2);font-size:.75rem;font-weight:500}.chip.accent{background:var(--accent-soft);color:var(--accent-ink)}.segmented{display:inline-flex;width:100%;gap:4px;padding:4px;border-radius:var(--radius-md);background:var(--surface-3)}.segmented button{flex:1 1 0;min-width:0;min-height:40px;padding:8px 12px;border-radius:8px;color:var(--muted);font-size:.875rem;font-weight:600;line-height:1.3}.segmented button:hover{color:var(--ink)}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--accent-ink);box-shadow:0 1px 3px #1018281a}@media(min-width:768px){.segmented.fit{width:auto}.segmented.fit button{flex:0 0 auto;padding-inline:16px}}.detail-list{display:grid;grid-template-columns:minmax(0,1fr);margin:0}.detail-item{display:grid;grid-template-columns:minmax(84px,32%) minmax(0,1fr);gap:4px 14px;padding:11px 0;border-top:1px solid var(--line)}.detail-item:first-child{border-top:0;padding-top:0}.detail-item:last-child{padding-bottom:0}.detail-item dt{color:var(--muted);font-size:.875rem}.detail-item dd{margin:0;color:var(--ink);font-size:.9375rem;overflow-wrap:anywhere}.detail-item dd strong{font-weight:650}.detail-item dd p+p{margin-top:2px}.amount{font-size:1.25rem;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em}@media(min-width:560px){.detail-list.cols-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px}.detail-list.cols-2 .detail-item{grid-template-columns:1fr;gap:2px;padding:0;border-top:0}.detail-list.cols-2 .detail-item.wide{grid-column:1 / -1}}@media(max-width:359px){.detail-item{grid-template-columns:1fr;gap:2px}}.fee-table{width:100%;border-collapse:collapse;font-size:.9375rem}.fee-table th,.fee-table td{padding:9px 0;border-bottom:1px solid var(--line);text-align:left;font-weight:400}.fee-table td{text-align:right;font-variant-numeric:tabular-nums}.fee-table th{color:var(--muted)}.fee-table tr.total th,.fee-table tr.total td{border-bottom:0;padding-top:12px;color:var(--ink);font-weight:700}.fee-table tr.total td{font-size:1.125rem}.data-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);overflow:hidden}.data-head{display:none}.data-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:0;padding:14px 16px;border-top:1px solid var(--line);transition:background-color .12s ease-out}.data-row:before{content:"";order:2;flex-basis:100%;height:0}.data-head+.data-row,.data-row:first-child{border-top:0}a.data-row:hover{background:var(--surface-2)}.data-row .cell{order:3;flex:0 1 auto;min-width:0;margin-top:4px;color:var(--muted);font-size:.8125rem;overflow-wrap:anywhere}.data-row .cell+.cell:before{content:"·";margin:0 6px;color:var(--subtle)}.data-row .cell-main{order:0;flex:1 1 0;min-width:0;color:var(--ink)}.data-row .cell-main strong{display:block;font-size:1rem;font-weight:600;line-height:1.45}.data-row .cell-main small{display:block;margin-top:2px;color:var(--muted)}.data-row .cell-status{order:1;flex:0 0 auto;margin-left:12px}.data-row .cell-arrow{display:none}.cell-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.cell.keep-label .cell-label{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;margin-right:4px}@media(min-width:1080px){.data-head,.data-row{display:grid;grid-template-columns:var(--cols);align-items:center;gap:16px;padding:14px 20px}.data-row:before,.data-row .cell+.cell:before{content:none;display:none}.data-row .cell{margin-top:0;color:var(--ink-2);font-size:.875rem}.data-row .cell-status{margin-left:0}.data-head{display:grid;padding-block:10px;background:var(--surface-2);border-bottom:1px solid var(--line);color:var(--muted);font-size:.8125rem;font-weight:600}.data-row .cell,.data-row .cell-main,.data-row .cell-status{grid-column:auto;grid-row:auto;justify-self:start}.data-row .cell.num,.data-head .num{justify-self:end;text-align:right}.data-row .cell-arrow{display:block;justify-self:end;color:var(--subtle)}a.data-row:hover .cell-arrow{color:var(--accent)}.cell.keep-label .cell-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}.link-list{list-style:none}.link-list a,.link-list .link-row{display:flex;align-items:center;gap:14px;min-height:60px;padding:12px 16px;border-top:1px solid var(--line)}.link-list li:first-child a,.link-list li:first-child .link-row{border-top:0}.link-list a:hover{background:var(--surface-2)}.link-icon{display:grid;place-items:center;flex-shrink:0;width:38px;height:38px;border-radius:var(--radius-md);background:var(--accent-soft);color:var(--accent)}.link-text{display:grid;flex:1;min-width:0;line-height:1.4}.link-text strong{font-size:.9375rem;font-weight:600}.link-text small{color:var(--muted)}.link-list .chev{color:var(--subtle)}.lesson-card{display:flex;align-items:stretch;gap:14px;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);transition:border-color .12s ease-out,box-shadow .12s ease-out}.lesson-card+.lesson-card{margin-top:10px}.lesson-card:hover{border-color:var(--accent-soft-2);box-shadow:var(--shadow-2)}.lesson-date{display:grid;align-content:center;justify-items:center;flex-shrink:0;width:60px;padding:8px 4px;border-radius:var(--radius-md);background:var(--accent-soft);color:var(--accent-ink);line-height:1.2;text-align:center}.lesson-date .month{font-size:.75rem;font-weight:600}.lesson-date .day{font-size:1.5rem;font-weight:750;font-variant-numeric:tabular-nums}.lesson-date .weekday{font-size:.75rem}.lesson-body{flex:1;min-width:0;display:grid;gap:3px;align-content:center}.lesson-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 10px}.lesson-time{color:var(--ink);font-size:.875rem;font-weight:650;font-variant-numeric:tabular-nums}.lesson-body h3{font-size:1rem}.meta-line{display:flex;align-items:center;gap:6px;min-width:0;color:var(--muted);font-size:.8125rem}.meta-line .icon{color:var(--subtle)}.meta-line span{min-width:0;overflow-wrap:anywhere}.row-chevron{align-self:center;color:var(--subtle)}.lesson-card:hover .row-chevron{color:var(--accent)}.empty-state{display:grid;justify-items:center;gap:4px;padding:32px 20px;background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--radius-lg);text-align:center}.empty-state .empty-icon{display:grid;place-items:center;width:48px;height:48px;margin-bottom:8px;border-radius:50%;background:var(--accent-soft);color:var(--accent)}.empty-state h2,.empty-state h3{font-size:1.0625rem}.empty-state p{max-width:46ch;margin:4px auto 12px;color:var(--muted);font-size:.875rem}.empty-state .button+.text-link{margin-top:4px}.empty-state.compact{padding:24px 16px}.panel .empty-state{border-style:dashed;background:var(--surface-2)}.loading-state{display:grid;gap:12px}.skeleton-card{padding:18px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg)}.skeleton{display:block;height:12px;width:70%;margin:10px 0;border-radius:6px;background:linear-gradient(90deg,var(--surface-3),var(--surface-2),var(--surface-3));background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite}.skeleton.long{width:88%;height:18px}.skeleton.short{width:42%}.loading-state p{color:var(--muted);font-size:.8125rem}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.state-card{max-width:560px;margin:0 auto}.state-card .page-heading{text-align:center}.state-card .page-heading-text{display:grid;justify-items:center}.state-icon{display:grid;place-items:center;width:56px;height:56px;margin:8px auto 16px;border-radius:50%;background:var(--accent-soft);color:var(--accent)}.child-picker{margin-bottom:12px}.steps{list-style:none;display:grid;gap:2px}.steps li{position:relative;display:flex;gap:12px;padding:0 0 16px}.steps li:last-child{padding-bottom:0}.steps li:after{content:"";position:absolute;left:15px;top:34px;bottom:2px;width:1px;background:var(--line)}.steps li:last-child:after{display:none}.step-icon{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;border-radius:50%;background:var(--accent-soft);color:var(--accent)}.steps strong{display:block;font-size:.9375rem;font-weight:600}.steps p{color:var(--muted);font-size:.8125rem;line-height:1.6}.note-list{list-style:none;display:grid;gap:10px}.note-list li{display:flex;gap:10px;color:var(--ink-2);font-size:.875rem;line-height:1.6}.note-list .icon{margin-top:2px;color:var(--accent)}.disclosure summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;cursor:pointer;list-style:none;font-weight:600}.disclosure summary::-webkit-details-marker{display:none}.disclosure summary .icon{color:var(--muted);transition:transform .15s ease-out}.disclosure[open] summary .icon{transform:rotate(90deg)}.disclosure[open] summary{margin-bottom:10px}.code-box{padding:12px 14px;border:1px dashed var(--line-strong);border-radius:var(--radius-md);background:var(--surface-2);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9375rem;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.auth-content{outline:none}.auth-heading{margin-bottom:20px}.auth-heading p{margin-top:6px;color:var(--muted);font-size:.9375rem}.auth-form{margin-top:16px}.auth-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0 16px;margin-top:8px}.auth-note{display:flex;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:.8125rem;line-height:1.65}.auth-note .icon{margin-top:2px;color:var(--accent)}.auth-headline{color:var(--ink);font-size:2.25rem;font-weight:750;line-height:1.3;letter-spacing:-.02em}.auth-points{list-style:none;display:grid;gap:14px;margin-top:32px}.auth-points li{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;background:#ffffffbf;border:1px solid var(--accent-soft-2);border-radius:var(--radius-lg)}.auth-points .link-icon{background:var(--surface)}.auth-points strong{display:block;font-size:.9375rem}.auth-points small{display:block;color:var(--muted)}.auth-foot{color:var(--muted);font-size:.75rem}.phone-row{display:grid;grid-template-columns:minmax(0,1fr);gap:0 10px;margin-bottom:16px}.phone-row .field{margin-bottom:10px}@media(min-width:480px){.phone-row{grid-template-columns:minmax(0,1fr) auto;align-items:end}.phone-row .field{margin-bottom:0}}@media(min-width:960px){.auth-heading h1{font-size:1.875rem}}.home-head{margin-bottom:20px}.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}.quick-tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-height:112px;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);transition:border-color .12s ease-out,box-shadow .12s ease-out}.quick-tile:hover{border-color:var(--accent-soft-2);box-shadow:var(--shadow-2)}.quick-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--radius-md);background:var(--accent-soft);color:var(--accent)}.quick-text{display:grid;gap:2px;line-height:1.35}.quick-text strong{font-size:.9375rem;font-weight:650}.quick-text small{color:var(--muted);font-size:.75rem}.quick-chev{position:absolute;top:16px;right:12px;color:var(--subtle)}.quick-tile.featured{background:var(--accent);border-color:var(--accent);color:#fff}.quick-tile.featured:hover{background:var(--accent-hover)}.quick-tile.featured .quick-icon{background:#ffffff29;color:#fff}.quick-tile.featured small,.quick-tile.featured .quick-chev{color:#fffc}.home-grid,.home-main,.home-aside{display:grid;gap:16px;min-width:0}@media(min-width:768px){.quick-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.quick-tile{padding:16px}}@media(min-width:1080px){.home-grid{grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}.home-main,.home-aside{gap:20px}.home-head{margin-bottom:24px}}.next-lesson{display:flex;align-items:stretch;gap:16px;padding:16px;border-radius:var(--radius-lg);background:var(--accent-soft);border:1px solid var(--accent-soft-2);transition:border-color .12s ease-out}.next-lesson:hover{border-color:var(--accent)}.next-when{display:grid;align-content:center;gap:2px;flex-shrink:0;min-width:112px;padding-right:16px;border-right:1px solid var(--accent-soft-2)}.next-badge{justify-self:start;padding:1px 8px;border-radius:999px;background:var(--accent);color:#fff;font-size:.75rem;font-weight:650}.next-date{margin-top:4px;color:var(--accent-ink);font-size:.875rem;font-weight:600}.next-time{color:var(--ink);font-size:1.25rem;font-weight:750;letter-spacing:-.01em}.next-body{display:grid;align-content:center;gap:3px;flex:1;min-width:0}.next-type{color:var(--accent-ink);font-size:.75rem;font-weight:600}.next-body h3{font-size:1.0625rem}.next-lesson .row-chevron{color:var(--accent)}.home-upcoming{margin-top:16px}.home-upcoming .micro{margin-bottom:8px;font-weight:600}@media(max-width:479px){.next-lesson{flex-direction:column;gap:12px}.next-when{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;min-width:0;padding:0 0 12px;border-right:0;border-bottom:1px solid var(--accent-soft-2)}.next-date{margin-top:0}.next-lesson .row-chevron{display:none}}.feedback-list{list-style:none;display:grid;gap:10px}.feedback-item{display:grid;gap:2px;padding:12px 14px;border-radius:var(--radius-md);background:var(--surface-2);border:1px solid var(--line)}.feedback-item:hover{border-color:var(--accent-soft-2)}.feedback-meta{color:var(--muted);font-size:.75rem}.feedback-item strong{font-size:.9375rem;font-weight:600}.feedback-text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--ink-2);font-size:.875rem}.kid-list{list-style:none;display:grid;gap:4px}.kid-item{display:flex;align-items:center;gap:12px;min-height:52px;padding:6px 8px;margin:0 -8px;border-radius:var(--radius-md)}.kid-item:hover{background:var(--surface-2)}.kid-text{display:grid;flex:1;min-width:0;line-height:1.35}.kid-text strong{font-weight:600}.kid-text small{color:var(--muted)}.home-note{display:flex;gap:12px;color:var(--ink-2);font-size:.875rem}.home-note .icon{margin-top:2px;color:var(--accent)}.toolbar{display:grid;gap:4px 16px;margin-bottom:16px}.toolbar .field{margin-bottom:8px}@media(min-width:768px){.toolbar{grid-template-columns:minmax(0,360px) auto;justify-content:space-between;align-items:end}.toolbar:has(>:only-child){grid-template-columns:auto;justify-content:start}.toolbar .field{margin-bottom:0}}.section-heading{margin:0 0 12px;font-size:1.0625rem}.list-section+.list-section{margin-top:28px}.cols-tutoring{--cols: minmax(0, 1.6fr) minmax(0, 1.4fr) 170px 20px}.cols-payments{--cols: minmax(0, 2fr) minmax(0, 1.2fr) 140px 150px 20px}.cols-pending{--cols: minmax(0, 2.4fr) 140px 170px 20px}.cols-services{--cols: minmax(0, 1.3fr) minmax(0, 1.6fr) 140px 150px 20px}.filter-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px;padding:16px 16px 0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1)}.filter-bar .filter-search{grid-column:1 / -1}.field>.input-icon{position:relative;display:block}.input-icon .icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--subtle);pointer-events:none}.input-icon input{padding-left:40px}@media(min-width:768px){.filter-bar{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:0 16px;padding:18px 20px 2px}.filter-bar .filter-search{grid-column:auto}}@media(max-width:359px){.filter-bar{grid-template-columns:1fr}}.result-count{margin:14px 2px 12px;color:var(--muted);font-size:.8125rem}.result-count strong{color:var(--ink)}.course-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}@media(min-width:640px){.course-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}@media(min-width:1280px){.course-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}}.course-card{display:flex;flex-direction:column;gap:10px;min-width:0;padding:18px 16px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);transition:border-color .12s ease-out,box-shadow .12s ease-out}.course-card:hover{border-color:var(--accent-soft-2);box-shadow:var(--shadow-2)}.course-card-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.course-tags{color:var(--muted);font-size:.75rem}.course-card h2{font-size:1.0625rem;line-height:1.45}.course-facts{list-style:none;display:grid;gap:4px}.course-card-foot{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px 12px;margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}.course-card-foot>div{display:grid;gap:2px}.price{color:var(--ink);font-size:1.25rem;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.course-card-foot small{color:var(--muted);font-size:.75rem}.course-cta{display:inline-flex;align-items:center;gap:2px;color:var(--accent);font-size:.875rem;font-weight:600}@media(min-width:768px){.course-card{padding:20px}}.jump-link{display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:4px 12px;border-radius:999px;background:var(--accent);color:#fff;font-size:.8125rem;font-weight:600}@media(min-width:1080px){.jump-link{display:none}}.panel-subtitle{margin:20px 0 4px;font-size:.9375rem}.enroll-card h2{margin-bottom:8px;font-size:1.0625rem}.enroll-price{color:var(--ink);font-size:1.75rem;font-weight:750;line-height:1.25;letter-spacing:-.01em}#enroll{scroll-margin-top:calc(var(--topbar-h) + 16px);outline:none}.day-group+.day-group{margin-top:20px}.day-title{display:flex;align-items:center;gap:8px;margin:0 2px 10px;color:var(--ink-2);font-size:.9375rem;font-weight:650}.feedback-body.empty{color:var(--muted)}.child-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}@media(min-width:640px){.child-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1280px){.page-grid.single .child-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.child-card{display:flex;align-items:center;gap:14px;min-width:0;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);transition:border-color .12s ease-out,box-shadow .12s ease-out}.child-card:hover{border-color:var(--accent-soft-2);box-shadow:var(--shadow-2)}.child-card-body{display:grid;justify-items:start;gap:4px;flex:1;min-width:0}.child-card-body p{color:var(--muted);font-size:.8125rem}.child-card:hover .row-chevron{color:var(--accent)}.profile-head{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:18px}.profile-text{flex:1;min-width:0}.profile-text h2{font-size:1.25rem}.profile-panel .profile-head{margin-bottom:0}.danger-zone{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.tutoring-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}@media(min-width:1080px){.tutoring-grid{grid-template-columns:minmax(0,1fr) 360px;grid-template-rows:auto auto 1fr;grid-template-areas:"summary candidates" "offer candidates" "actions candidates";gap:20px 24px}.area-summary{grid-area:summary}.area-candidates{grid-area:candidates}.area-offer{grid-area:offer}.area-actions{grid-area:actions}}@media(min-width:1440px){.tutoring-grid{grid-template-columns:minmax(0,1fr) 380px}}.candidate{padding:14px 0;border-top:1px solid var(--line)}.candidate:first-of-type{border-top:0;padding-top:0}.candidate:last-child{padding-bottom:0}.candidate-head{display:flex;align-items:center;gap:12px;margin-bottom:8px}.candidate-name{flex:1;min-width:0}.candidate-reason{color:var(--ink-2);font-size:.875rem}@media(max-width:359px){.stack-sm{grid-template-columns:1fr}}@media(max-width:479px){.form-columns.stack-sm{grid-template-columns:1fr}}.return-note{margin:0 0 16px}.receipt-amount{display:grid;gap:2px;margin:4px 0 18px;padding:16px;border-radius:var(--radius-md);background:var(--surface-2);border:1px dashed var(--line-strong)}.amount-lg{color:var(--ink);font-size:1.75rem;font-weight:750;line-height:1.25;letter-spacing:-.01em}.notice-list{display:grid;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);overflow:hidden}.notice-card{display:flex;gap:12px;padding:16px;border-top:1px solid var(--line)}.notice-card:first-child{border-top:0}.notice-card.unread{background:linear-gradient(90deg,var(--accent-soft),var(--surface) 55%)}.notice-icon{display:grid;place-items:center;flex-shrink:0;width:36px;height:36px;border-radius:50%;background:var(--surface-3);color:var(--muted)}.notice-card.unread .notice-icon{background:var(--accent);color:#fff}.notice-body{flex:1;min-width:0}.notice-meta{display:flex;flex-wrap:wrap;gap:4px 12px;color:var(--muted);font-size:.75rem}.notice-card.unread .notice-state{color:var(--accent-ink);font-weight:650}.notice-body h2{margin-top:2px;font-size:1rem}.notice-body>p{margin-top:4px;color:var(--ink-2);font-size:.875rem}.notice-actions{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:10px}@media(min-width:768px){.notice-card{padding:18px 22px}}.list-title{padding:16px 16px 4px;color:var(--muted);font-size:.8125rem;font-weight:600}@media(min-width:768px){.list-title{padding:18px 20px 6px}.link-list a,.link-list .link-row{padding-inline:20px}}@media(max-width:767px){:root{--bg: #ffffff}.app-main{padding-top:12px}.app-main .page-heading{margin-bottom:18px}.app-main .page-heading .eyebrow,.app-main .back-link{display:none}.app-main .page-heading .intro{font-size:.875rem}.page-heading-meta{margin-top:10px}.panel{padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}.panel.soft{background:transparent}.panel>h2,.panel-head h2{font-size:1.0625rem}.page-grid,.page-main,.page-aside,.home-grid,.home-main,.home-aside,.tutoring-grid{gap:32px}.panel .empty-state,.empty-state{padding:28px 8px;background:transparent;border:0}.skeleton-card{padding:4px 0;border:0}.panel.enroll-card{padding:18px 16px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-lg)}.detail-item{grid-template-columns:auto minmax(0,1fr);gap:16px;padding:12px 0}.detail-item dd{text-align:right}.data-list,.notice-list{background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible}.data-row{padding:14px 0}a.data-row:hover{background:transparent}.lesson-card{padding:14px 0;border:0;border-bottom:1px solid var(--line);border-radius:0}.lesson-card+.lesson-card{margin-top:0}.lesson-card:hover{box-shadow:none}.lesson-date{width:54px}.child-grid{gap:0}.child-card{padding:14px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none}.child-card .avatar.lg{width:48px;height:48px;font-size:1.125rem}.notice-card{padding:16px 0}.notice-card.unread{background:transparent}.link-list a,.link-list .link-row{padding-inline:0}.list-title{padding:0 0 4px}.feedback-list{gap:0}.feedback-item{padding:12px 0;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0}.kid-item{margin:0;padding:8px 0}.home-head .intro{font-size:.875rem}.quick-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin-bottom:28px}.quick-tile,.quick-tile.featured,.quick-tile:hover,.quick-tile.featured:hover{align-items:center;gap:8px;min-height:0;padding:4px 0;background:transparent;border:0;box-shadow:none;color:var(--ink);text-align:center}.quick-icon{width:52px;height:52px;border-radius:16px}.quick-tile.featured .quick-icon{background:var(--accent);color:#fff}.quick-text strong{font-size:.8125rem;font-weight:500}.quick-text small,.quick-chev{display:none}.filter-bar{padding:0;gap:8px;background:transparent;border:0;box-shadow:none}.filter-bar .field{margin:0}.filter-bar .field>span:not(.input-icon){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.filter-bar input,.filter-bar select{min-height:44px;border-color:transparent;background-color:var(--surface-3)}.filter-bar select{border-radius:999px;font-size:.875rem}.result-count{margin:12px 0 0}.course-grid{gap:0}.course-card{gap:8px;padding:18px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none}.course-card:hover{box-shadow:none}.course-card-foot{padding-top:4px;border-top:0}.course-cta{display:none}.receipt-amount{margin-top:0}.danger-zone{margin-top:20px}}
