@import"https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700&display=swap";.app-header{display:flex;align-items:center;justify-content:space-between;padding:52px 20px 14px;background:var(--bg);position:sticky;top:0;z-index:50;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}[data-theme=dark] .app-header{background:#0a0a0dd9}@media (max-width: 639px){.app-header{padding-top:16px}}.user-bar{display:flex;align-items:center;gap:10px}.user-avatar{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--primary-dim, #5856D6),var(--primary));color:#fff;font-size:15px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:-.3px;box-shadow:0 2px 8px var(--primary-glow, rgba(124,122,255,.3))}.user-info{display:flex;flex-direction:column;line-height:1.25}.user-greeting{font-size:11px;color:var(--text-2);font-weight:400}.user-name{font-size:15px;font-weight:600;color:var(--text);letter-spacing:-.3px}.theme-toggle{width:32px;height:32px;border-radius:50%;border:none;background:#7878801f;cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;transition:transform .15s,opacity .15s}.theme-toggle:active{transform:scale(.88);opacity:.7}.install-banner{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--primary-soft);border-bottom:1px solid var(--primary-border);font-size:14px;gap:12px;color:var(--text)}.bottom-nav{position:absolute;bottom:0;left:0;right:0;height:var(--nav-h);background:#ffffffeb;border-top:1px solid var(--border);display:flex;align-items:stretch;z-index:100;backdrop-filter:blur(32px) saturate(180%);-webkit-backdrop-filter:blur(32px) saturate(180%);padding-bottom:4px}[data-theme=dark] .bottom-nav{background:#0a0a0de6;border-top:1px solid rgba(255,255,255,.07)}@media (max-width: 639px){.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);max-width:480px;width:100%}}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:none;cursor:pointer;color:var(--text-3);transition:color .15s;-webkit-tap-highlight-color:transparent;padding-top:4px}.nav-item.active{color:var(--primary)}.nav-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px}.nav-icon svg{stroke:var(--text-3);transition:stroke .15s}.nav-item.active .nav-icon svg{stroke:var(--primary)}.nav-label{font-size:10px;font-weight:500;letter-spacing:-.2px}.nav-fab-slot{flex:1;position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;-webkit-tap-highlight-color:transparent}.nav-fab{position:absolute;bottom:12px;left:50%;transform:translate(-50%);width:56px;height:56px;border-radius:50%;border:none;background:var(--primary);color:#fff;font-size:26px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-fab, 0 4px 16px rgba(88,86,214,.4), 0 1px 4px rgba(0,0,0,.12));transition:transform .12s,box-shadow .12s,opacity .12s;-webkit-tap-highlight-color:transparent}[data-theme=dark] .nav-fab{animation:glowPulse 3s ease-in-out infinite}.nav-fab:active{transform:translate(-50%) scale(.92);opacity:.9;animation:none}.nav-fab-label{font-size:10px;font-weight:500;color:var(--primary);letter-spacing:-.2px;margin-top:36px}.plans-header{display:flex;align-items:center;justify-content:space-between;padding:4px 16px 8px}.plans-tabs{display:flex;gap:6px;background:#78788014;border-radius:99px;padding:3px}.plans-tab{font-size:13px;font-weight:500;padding:4px 14px;border-radius:99px;border:none;cursor:pointer;background:transparent;color:var(--text-2);transition:background .15s,color .15s}.plans-tab.active{background:var(--primary);color:#fff}.btn-icon-add{width:32px;height:32px;border-radius:50%;border:none;background:var(--primary);color:#fff;font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .15s,transform .12s;-webkit-tap-highlight-color:transparent}.btn-icon-add:active{transform:scale(.88);opacity:.8}.plans-form-card{margin:0 16px 8px}.plans-form-card .form-input{margin-bottom:8px}.plans-form-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.plans-form-actions{display:flex;gap:8px}.plans-list{display:flex;flex-direction:column;gap:1px;margin:0 16px;border-radius:14px;overflow:hidden;background:var(--card);box-shadow:var(--shadow)}.plan-row{padding:14px 16px 12px;cursor:pointer;background:var(--card);transition:opacity .15s;-webkit-tap-highlight-color:transparent;border-bottom:1px solid var(--border)}.plan-row:last-child{border-bottom:none}.plan-row:active{opacity:.6}.plan-row-main{display:flex;align-items:center;gap:8px;margin-bottom:6px}.plan-row-title{font-size:15px;font-weight:600;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-row-meta{display:flex;align-items:center;gap:8px;margin-bottom:6px}.plan-row-date{font-size:11px;color:var(--text-3);flex:1}.plan-row-pct{font-size:12px;font-weight:600;color:var(--primary)}.plan-row-chevron{font-size:18px;color:var(--text-3);line-height:1}.plan-row-bar{margin:0;height:3px;border-radius:99px}.empty-sub{font-size:13px;color:var(--text-3);margin-top:4px}:root{--primary: #5856D6;--primary-light: #7B7AE8;--primary-soft: rgba(88,86,214,.12);--primary-border: rgba(88,86,214,.28);--success: #34C759;--success-soft: rgba(52,199,89,.12);--warning: #FF9500;--danger: #FF3B30;--danger-soft: rgba(255,59,48,.1);--bg: #F2F2F7;--bg-elevated: #FFFFFF;--card: #FFFFFF;--card-hover: #F9F9F9;--overlay: #FFFFFF;--border: rgba(60,60,67,.18);--border-strong: rgba(60,60,67,.29);--text: #000000;--text-2: #8E8E93;--text-3: #C7C7CC;--nav-bg: rgba(242,242,247,.85);--nav-h: 64px;--radius: 10px;--radius-md: 12px;--radius-lg: 16px;--shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--shadow-sm: 0 1px 0 rgba(0,0,0,.06);--heat-0: #E5E5EA;--heat-1: #C7C6F2;--heat-2: #9B99E8;--heat-3: #6E6CDE;--heat-4: #5856D6;--shell-bg: #E5E5EA;--shell-frame: #D1D1D6;--shell-ring: #C7C7CC;--primary-dark: #4543B8;--warning-soft: rgba(255,149,0,.12);--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 20px;--space-2xl: 24px;--space-3xl: 32px;--space-4xl: 64px;--text-large-title: 34px;--text-title2: 28px;--text-headline: 17px;--text-body: 17px;--text-callout: 16px;--text-subheadline: 15px;--text-footnote: 13px;--text-caption: 12px;--text-caption2: 11px;--text-nav: 10px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.47;--line-height-relaxed: 1.6;--radius-pill: 999px;--radius-icon: 20px;--radius-shell: 52px;--grade-s-bg: rgba(255,204,0,.15);--grade-s-text: #B8860B;--grade-a-bg: rgba(52,199,89,.12);--grade-a-text: #34C759;--grade-b-bg: rgba(88,86,214,.12);--grade-b-text: #5856D6;--grade-c-bg: rgba(120,120,128,.12);--grade-c-text: #8E8E93;--shadow-card: 0 1px 4px rgba(0,0,0,.06), 0 0 0 1px rgba(0,0,0,.04);--shadow-fab: 0 4px 16px rgba(88,86,214,.4), 0 1px 4px rgba(0,0,0,.12)}[data-theme=dark]{--primary: #7C7AFF;--primary-light: #9B99E8;--primary-dim: #5856D6;--primary-soft: rgba(124,122,255,.1);--primary-glow: rgba(124,122,255,.18);--primary-border: rgba(124,122,255,.25);--success: #34D058;--success-soft: rgba(52,208,88,.12);--warning: #F0A732;--danger: #FF5C5C;--danger-soft: rgba(255,92,92,.12);--bg: #0A0A0D;--bg-elevated: #111116;--card: #17171D;--card-hover: #1E1E26;--overlay: #17171D;--surface: #111116;--border: rgba(255,255,255,.07);--border-strong: rgba(255,255,255,.11);--border-md: rgba(255,255,255,.11);--text: #EEEEF3;--text-2: rgba(238,238,243,.5);--text-3: rgba(238,238,243,.25);--nav-bg: rgba(10,10,13,.9);--shadow: 0 1px 3px rgba(0,0,0,.5);--shadow-sm: 0 1px 0 rgba(255,255,255,.04);--shadow-fab: 0 4px 20px rgba(124,122,255,.45), 0 1px 4px rgba(0,0,0,.2);--heat-0: rgba(255,255,255,.05);--heat-1: #2D2B6B;--heat-2: #3E3B9E;--heat-3: #5553C4;--heat-4: #7C7AFF;--shell-bg: #060608;--shell-frame: #111114;--shell-ring: rgba(255,255,255,.12);--grade-s-bg: rgba(255,200,40,.14);--grade-s-text: #F0A732;--grade-a-bg: rgba(52,208,88,.12);--grade-a-text: #34D058;--grade-b-bg: rgba(124,122,255,.12);--grade-b-text: #7C7AFF;--grade-c-bg: rgba(255,255,255,.06);--grade-c-text: rgba(238,238,243,.45)}@keyframes pageIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes glowPulse{0%,to{box-shadow:0 0 16px #7c7aff66,0 4px 20px #7c7aff33}50%{box-shadow:0 0 28px #7c7aff99,0 4px 24px #7c7aff4d}}@keyframes dotBlink{0%,80%,to{opacity:.2;transform:scale(.85)}40%{opacity:1;transform:scale(1)}}@keyframes msgIn{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes countUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes spinnerRing{to{transform:rotate(360deg)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box;transition:border-color .2s ease,color .15s ease}body,.card,.app-header,.bottom-nav,.btn,.nav-item{transition:background-color .2s ease,border-color .2s ease,color .15s ease}html{background:var(--bg);min-height:100%}#root{background:var(--bg);min-height:100dvh}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Noto Sans TC,Helvetica Neue,sans-serif;background:var(--bg);color:var(--text);max-width:480px;margin:0 auto;min-height:100dvh;-webkit-font-smoothing:antialiased;font-size:17px;line-height:1.47}.page,.page-content{padding:0 0 calc(var(--nav-h) + 44px);min-height:100dvh;background:var(--bg)}.page-title{font-size:34px;font-weight:700;letter-spacing:.37px;color:var(--text);padding:12px 20px 16px;line-height:1.15}.card{background:var(--card);border-radius:var(--radius-lg);padding:20px;margin:0 16px 10px;box-shadow:var(--shadow-sm)}[data-theme=light] .card{box-shadow:0 1px 4px #0000000f,0 0 0 1px #0000000a}.section-label{font-size:13px;font-weight:500;color:var(--text-2);padding:20px 20px 8px;letter-spacing:.1px;text-transform:uppercase}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:13px 20px;border-radius:var(--radius-md);border:none;font-size:16px;font-weight:500;font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .12s,transform .08s}.btn:active{opacity:.7;transform:scale(.98)}.btn:disabled{opacity:.3;cursor:not-allowed;transform:none}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{opacity:.92}.btn-success{background:var(--success);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-ghost{background:var(--bg-elevated);color:var(--primary);border:none}.btn-outline{background:transparent;color:var(--primary);border:1px solid var(--primary-border)}.btn-subtle{background:#7878801f;color:var(--text);border:none;font-size:14px;padding:8px 14px}.btn-full{width:100%}.form-group{margin-bottom:16px}.form-group:last-of-type{margin-bottom:0}.form-label{display:block;font-size:13px;font-weight:500;color:var(--text-2);margin-bottom:7px;padding:0 2px;letter-spacing:.1px}.form-input,.form-select,.input{width:100%;background:var(--bg);border:none;border-radius:var(--radius-md);padding:14px 16px;color:var(--text);font-size:16px;font-family:inherit;box-shadow:inset 0 0 0 1.5px var(--border);transition:box-shadow .15s}[data-theme=light] .form-input,[data-theme=light] .form-select,[data-theme=light] .input{background:var(--bg-elevated);box-shadow:inset 0 0 0 1.5px var(--border-strong)}.form-input::placeholder,.form-select::placeholder,.input::placeholder{color:var(--text-3)}.form-input:focus,.form-select:focus,.input:focus{outline:none;box-shadow:inset 0 0 0 2px var(--primary),0 0 0 4px var(--primary-soft);background:var(--overlay)}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238E8E93' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px;cursor:pointer}.form-section{display:flex;flex-direction:column;gap:16px}.badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:8px;font-size:12px;font-weight:600;letter-spacing:-.1px}.badge-S{background:#ffcc0026;color:#b8860b}[data-theme=dark] .badge-S{color:#fc0;background:#ffcc002e}.badge-A{background:var(--success-soft);color:var(--success)}.badge-B{background:var(--primary-soft);color:var(--primary)}.badge-C{background:#7878801f;color:var(--text-2)}.trend-up{color:var(--success)}.trend-down{color:var(--danger)}.trend-flat{color:var(--text-3)}.progress-bar{background:#78788029;border-radius:999px;height:5px;overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:var(--primary);transition:width .5s cubic-bezier(.4,0,.2,1)}.empty-state{text-align:center;color:var(--text-2);padding:64px 20px 48px;font-size:15px;line-height:2}.error-msg{background:var(--danger-soft);color:var(--danger);border-radius:var(--radius-md);padding:14px 16px;margin:0 16px 12px;font-size:14px;font-weight:500}.success-msg{background:var(--success-soft);color:var(--success);border-radius:var(--radius-md);padding:14px 16px;margin:0 16px 12px;font-size:14px;font-weight:500}.spinner{display:flex;justify-content:center;align-items:center;padding:56px;color:var(--text-2);font-size:15px;min-height:200px}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 16px 10px}.stat-card{background:var(--card);border-radius:var(--radius-lg);padding:20px 16px;text-align:center;box-shadow:var(--shadow-sm)}.stat-value{font-size:34px;font-weight:700;letter-spacing:.37px;color:var(--text);line-height:1.1}.stat-label{font-size:12px;color:var(--text-2);margin-top:6px;font-weight:400}.heatmap-wrapper{overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.heatmap-wrapper::-webkit-scrollbar{display:none}.divider{height:1px;background:var(--border);margin:16px 0}.glass{background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}@media (min-width: 640px){html{background:var(--shell-bg);max-width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center}body{max-width:100%;background:transparent;display:flex;align-items:center;justify-content:center;min-height:100vh}.phone-shell{position:relative;width:393px;height:852px;border-radius:52px;background:var(--bg);overflow:hidden;box-shadow:0 0 0 1px var(--shell-ring),0 0 0 10px var(--shell-frame),0 0 0 11px var(--shell-ring),0 60px 140px #00000080,0 0 80px #7c7aff0f}.phone-shell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:52px;border:10px solid var(--shell-frame);pointer-events:none;z-index:300}.phone-notch{position:absolute;top:12px;left:50%;transform:translate(-50%);width:116px;height:32px;background:#000;border-radius:999px;z-index:200}.phone-screen{width:100%;height:100%;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none;background:var(--bg)}.phone-screen::-webkit-scrollbar{display:none}.phone-home-bar{position:absolute;bottom:10px;left:50%;transform:translate(-50%);width:134px;height:5px;background:#00000040;border-radius:999px;z-index:200}[data-theme=dark] .phone-home-bar{background:#ffffff40}.phone-side-btn{position:absolute;background:var(--shell-frame);border-radius:2px}.phone-side-btn.vol-up{left:-10px;top:132px;width:3px;height:30px}.phone-side-btn.vol-down{left:-10px;top:172px;width:3px;height:30px}.phone-side-btn.power{right:-10px;top:162px;width:3px;height:56px}}@media (max-width: 639px){html,body,#root,.phone-shell,.phone-screen{background:var(--bg)}}.t-large-title{font-size:34px;font-weight:700;letter-spacing:.37px;line-height:1.15}.t-title2{font-size:28px;font-weight:700;letter-spacing:.36px;line-height:1.2}.t-headline{font-size:17px;font-weight:600;line-height:1.29}.t-body{font-size:17px;font-weight:400;line-height:1.47}.t-callout{font-size:16px;font-weight:400;line-height:1.31}.t-subheadline{font-size:15px;font-weight:600;line-height:1.33}.t-footnote{font-size:13px;font-weight:500;line-height:1.38}.t-caption{font-size:12px;font-weight:400;line-height:1.33}.t-caption2{font-size:11px;font-weight:400;line-height:1.18}.t-nav{font-size:10px;font-weight:500;line-height:1.2}
