@import"https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;700;900&family=Open+Sans:wght@400;500;600;700&display=swap";:root{--c-black: #000000;--c-white: #FFFFFF;--gray-900: #0A0D12;--gray-800: #252B37;--gray-700: #424651;--gray-600: #717680;--gray-500: #A3A7AE;--gray-400: #D5D7DA;--gray-300: #D6D7DB;--gray-200: #E9EAEB;--gray-100: #F5F5F5;--gray-50: #FAFAFA;--brand-900: #1C1F8C;--brand-800: #1B1CB2;--brand-700: #191FDC;--brand-600: #2133EF;--brand-500: #415DFA;--brand-400: #5D80FD;--brand-300: #91ACFF;--brand-200: #BECCFF;--brand-100: #DAE2FF;--brand-50: #EFF2FF;--warning-900: #411D07;--warning-800: #723A15;--warning-700: #AA5913;--warning-600: #CD7C12;--warning-500: #E7A119;--warning-400: #EEC031;--warning-300: #F2D357;--warning-200: #F4DF75;--warning-100: #FBF3CA;--warning-50: #FEFBEC;--success-900: #1F4317;--success-800: #2F5E1F;--success-700: #496E2D;--success-600: #5C8E37;--success-500: #6DA544;--success-400: #8DC067;--success-300: #B0D693;--success-200: #D0E7BA;--success-100: #E8F2DA;--success-50: #F4F8EC;--error-900: #5A0010;--error-800: #8A0019;--error-700: #B71E1E;--error-600: #D80027;--error-500: #DA2A2A;--error-400: #ED4646;--error-300: #F37777;--error-200: #F9A6A6;--error-100: #FCE8E8;--error-50: #FFF5F5;--teal-500: #0598A8;--teal-100: #E1F6FF;--oat-500: #B8915E;--oat-100: #FCF0E1;--lime-500: #8BC53F;--lime-100: #ECF7DA;--orange-500: #F4A024;--orange-100: #FCEACB;--magenta-500: #E8178A;--magenta-100: #FFE5F0;--violet-500: #9747FF;--primary: var(--brand-500);--primary-hover: var(--brand-600);--primary-press: var(--brand-700);--primary-soft: var(--brand-50);--primary-soft-2: var(--brand-100);--success: var(--success-500);--success-soft: var(--success-100);--danger: var(--error-600);--danger-soft: var(--error-100);--warning: var(--warning-500);--warning-soft: var(--warning-100);--info: var(--teal-500);--info-soft: var(--teal-100);--fg-1: var(--gray-900);--fg-2: var(--gray-800);--fg-3: var(--gray-700);--fg-4: var(--gray-600);--fg-5: var(--gray-500);--fg-on-color: var(--c-white);--bg-1: var(--c-white);--bg-2: var(--gray-50);--bg-3: var(--gray-100);--bg-4: var(--gray-200);--bg-inverse: var(--gray-900);--border-subtle: var(--gray-200);--border-default: var(--gray-300);--border-strong: var(--gray-400);--border-focus: var(--brand-500);--radius-none: 0;--radius-xxxs: 2px;--radius-xxs: 4px;--radius-xs: 6px;--radius-s: 8px;--radius-m: 10px;--radius-l: 12px;--radius-xl: 16px;--radius-xxl: 20px;--radius-xxxl: 32px;--radius-xxxxl: 48px;--radius-max: 9999px;--radius-sm: var(--radius-xs);--radius-md: var(--radius-s);--radius-lg: var(--radius-l);--radius-2xl: var(--radius-xxl);--radius-pill: var(--radius-max);--shadow-xs: 0 1px 2px rgba(11,13,18,.04);--shadow-sm: 0 1px 3px rgba(11,13,18,.08), 0 1px 2px rgba(11,13,18,.04);--shadow-md: 0 4px 8px rgba(11,13,18,.08), 0 2px 4px rgba(11,13,18,.04);--shadow-lg: 0 12px 24px rgba(20,28,37,.1), 0 4px 8px rgba(20,28,37,.05);--shadow-xl: 0 20px 40px rgba(20,28,37,.12);--shadow-focus: 0 0 0 4px rgba(65,93,250,.2);--sp-0: 0px;--sp-2: 2px;--sp-4: 4px;--sp-6: 6px;--sp-8: 8px;--sp-10: 10px;--sp-12: 12px;--sp-14: 14px;--sp-16: 16px;--sp-20: 20px;--sp-24: 24px;--sp-28: 28px;--sp-32: 32px;--sp-36: 36px;--sp-40: 40px;--sp-48: 48px;--sp-56: 56px;--sp-64: 64px;--sp-72: 72px;--sp-80: 80px;--sp-max: 999px;--space-1: var(--sp-4);--space-2: var(--sp-8);--space-3: var(--sp-12);--space-4: var(--sp-16);--space-5: var(--sp-20);--space-6: var(--sp-24);--space-7: var(--sp-32);--space-8: var(--sp-40);--space-9: var(--sp-48);--space-10: var(--sp-64);--space-11: var(--sp-80);--font-sans: "PingFang TC", "Noto Sans TC", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display: "Noto Sans TC", "PingFang TC", system-ui, sans-serif;--font-number: "Open Sans", "PingFang TC", system-ui, sans-serif;--t-display-xl: 700 56px/64px var(--font-display);--t-heading-xl: 700 40px/48px var(--font-display);--t-heading-l: 700 32px/40px var(--font-display);--t-heading-m: 700 28px/36px var(--font-display);--t-heading-s: 700 24px/32px var(--font-display);--t-heading-xs: 700 20px/28px var(--font-display);--t-label-l-r: 400 18px/24px var(--font-sans);--t-label-l-m: 500 18px/24px var(--font-sans);--t-label-m-r: 400 16px/24px var(--font-sans);--t-label-m-m: 500 16px/24px var(--font-sans);--t-label-s-r: 400 14px/20px var(--font-sans);--t-label-s-m: 500 14px/20px var(--font-sans);--t-label-xs-r: 400 12px/16px var(--font-sans);--t-label-xs-m: 500 12px/16px var(--font-sans);--t-para-l-r: 400 18px/28px var(--font-sans);--t-para-l-m: 500 18px/28px var(--font-sans);--t-para-m-r: 400 16px/24px var(--font-sans);--t-para-m-m: 500 16px/24px var(--font-sans);--t-para-s-r: 400 14px/20px var(--font-sans);--t-para-s-m: 500 14px/20px var(--font-sans);--t-num-xxlarge-r: 400 48px/1 var(--font-number);--t-num-xxlarge-b: 700 48px/1 var(--font-number);--t-num-xlarge-r: 400 32px/1 var(--font-number);--t-num-xlarge-b: 500 32px/1 var(--font-number);--t-num-large-r: 400 24px/1 var(--font-number);--t-num-large-b: 500 24px/1 var(--font-number);--t-num-medium-r: 400 18px/1 var(--font-number);--t-num-medium-b: 500 18px/1 var(--font-number);--t-num-small-r: 400 16px/1 var(--font-number);--t-num-small-b: 500 16px/1 var(--font-number);--t-num-xsmall-r: 400 14px/1 var(--font-number);--t-num-xsmall-b: 500 14px/1 var(--font-number);--t-num-xxsmall-r: 400 12px/16px var(--font-number);--t-num-xxsmall-b: 500 12px/1 var(--font-number);--t-num-xxl: var(--t-num-xlarge-b);--t-num-xl: var(--t-num-large-b);--t-num-l: var(--t-num-medium-b);--t-num-m: var(--t-num-small-b);--t-num-s: var(--t-num-xsmall-b);--t-num-xs: var(--t-num-xxsmall-b);--ls-display: -.02em;--ls-tight: -.01em;--ls-body: .5px;--ls-eyebrow: .16em}html{font-family:var(--font-sans);color:var(--fg-1);-webkit-font-smoothing:antialiased}body{background:var(--bg-1);color:var(--fg-1)}h1,.h1{font:var(--t-heading-xl);letter-spacing:var(--ls-tight);margin:0;color:var(--fg-1)}h2,.h2{font:var(--t-heading-l);letter-spacing:var(--ls-tight);margin:0;color:var(--fg-1)}h3,.h3{font:var(--t-heading-m);letter-spacing:var(--ls-tight);margin:0;color:var(--fg-1)}h4,.h4{font:var(--t-heading-s);letter-spacing:var(--ls-tight);margin:0;color:var(--fg-1)}h5,.h5{font:var(--t-heading-xs);margin:0;color:var(--fg-1)}.display{font:var(--t-display-xl);letter-spacing:var(--ls-display);color:var(--fg-1)}p,.body{font:var(--t-para-m-r);letter-spacing:var(--ls-body);color:var(--fg-3);margin:0}.callout{font:var(--t-para-m-m);letter-spacing:var(--ls-body);color:var(--fg-2)}.label{font:var(--t-label-m-m);letter-spacing:var(--ls-body);color:var(--fg-2)}.label-sm{font:var(--t-label-s-m);letter-spacing:var(--ls-body);color:var(--fg-3)}.caption{font:var(--t-label-xs-m);letter-spacing:var(--ls-body);color:var(--fg-4)}.eyebrow{font-family:var(--font-display);font-weight:700;font-size:11px;letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--fg-4)}.number{font-family:var(--font-number);font-variant-numeric:tabular-nums;font-feature-settings:"tnum";font-weight:600}a:hover{color:var(--primary-hover);text-decoration:underline}.focus-ring,:focus-visible{outline:2px solid var(--border-focus);outline-offset:1px;box-shadow:var(--shadow-focus)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;background:var(--bg-2);color:var(--fg-1);font-family:Noto Sans TC,PingFang TC,system-ui,-apple-system,sans-serif}#root{min-height:100vh;max-width:480px;margin:0 auto;background:var(--bg-2)}button{font-family:inherit;cursor:pointer}a{color:var(--primary);text-decoration:none}.app-shell{display:flex;flex-direction:column;min-height:100vh;padding-bottom:env(safe-area-inset-bottom)}.app-main{flex:1;padding:var(--sp-16)}.card{background:var(--bg-1);border:1px solid var(--border-subtle);border-radius:var(--radius-l);padding:var(--sp-16);box-shadow:var(--shadow-xs);margin-bottom:var(--sp-12)}.page-title{font-size:20px;font-weight:700;margin:0 0 var(--sp-12)}.empty-state{text-align:center;color:var(--fg-4);padding:var(--sp-20)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-6);border:none;border-radius:var(--radius-m);padding:var(--sp-12) var(--sp-16);font-size:15px;font-weight:600}.btn-full{width:100%}.btn-primary{background:var(--primary);color:var(--fg-on-color)}.btn-secondary{background:var(--bg-3);color:var(--fg-2)}.badge{display:inline-flex;align-items:center;border-radius:var(--radius-max);padding:2px var(--sp-8);font-size:12px;font-weight:600;background:var(--bg-3);color:var(--fg-3)}.badge-danger{background:var(--danger-soft);color:var(--danger)}@keyframes bind-spin{to{transform:rotate(360deg)}}.bind-spin{animation:bind-spin .8s linear infinite}
