:root{--forest:#0d2a21;--forest2:#143d30;--mint:#4dd4a4;--cream:#f6f3eb;--paper:#fffdf8;--ink:#14251f;--muted:#667870;--line:rgba(20,61,48,.14);--red:#b73845;--shadow:0 24px 80px rgba(7,35,26,.12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:15px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC",sans-serif;color:var(--ink);background:var(--cream)}a{color:inherit;text-decoration:none}button,input{font:inherit}.public-nav{height:76px;display:flex;align-items:center;max-width:1200px;margin:auto;padding:0 24px;gap:28px}.logo{display:flex;align-items:center;gap:12px;font-weight:800;margin-right:auto}.logo-mark{width:42px;height:42px;border-radius:13px;background:var(--forest);color:white;display:grid;place-items:center;font:700 20px Georgia}.nav-links{display:flex;gap:28px;color:#41584f;font-weight:650}.nav-actions{display:flex;gap:10px}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:12px;padding:11px 18px;border:1px solid var(--line);font-weight:800;cursor:pointer;background:transparent}.btn.primary{color:white;background:var(--forest);border-color:var(--forest)}.btn.mint{color:var(--forest);background:var(--mint);border-color:var(--mint)}.hero{overflow:hidden;background:var(--forest);color:white;min-height:640px;position:relative}.hero:before{content:"";position:absolute;width:650px;height:650px;border-radius:50%;right:-220px;top:-280px;background:radial-gradient(circle,rgba(77,212,164,.25),transparent 65%)}.hero-inner{max-width:1200px;margin:auto;padding:78px 24px 92px;display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center;position:relative}.kicker{font-size:12px;letter-spacing:.18em;font-weight:850;color:var(--mint);text-transform:uppercase}.hero h1{font-size:clamp(44px,5.5vw,78px);line-height:1.04;letter-spacing:-.045em;margin:18px 0 24px;max-width:760px}.hero-copy{font-size:18px;color:#c5d9d0;max-width:620px}.hero-actions{display:flex;gap:12px;margin-top:32px}.trust-line{display:flex;gap:20px;flex-wrap:wrap;color:#a9c6ba;font-size:12px;margin-top:28px}.trust-line span:before{content:"✓";color:var(--mint);margin-right:7px}.market-card{background:#fdfcf7;color:var(--ink);border-radius:24px;padding:26px;box-shadow:0 40px 120px rgba(0,0,0,.26);transform:rotate(1.2deg)}.market-head{display:flex;justify-content:space-between;align-items:center}.market-head b{font-size:17px}.live-dot{font-size:11px;font-weight:800;color:#087c59;background:#dff6ed;padding:6px 10px;border-radius:20px}.fake-price{font:800 44px/1 ui-monospace,SFMono-Regular,Menlo,monospace;margin:28px 0 20px}.mini-chart{height:170px;border-radius:14px;background:linear-gradient(180deg,#f2f7f4,#fff);position:relative;overflow:hidden;border:1px solid #e6eee9}.mini-chart svg{width:100%;height:100%}.market-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}.market-stats span{display:block;color:var(--muted);font-size:11px}.market-stats b{font:700 15px ui-monospace,monospace}.section{max-width:1200px;margin:auto;padding:92px 24px}.section-title{max-width:720px;margin-bottom:44px}.section-title h2{font-size:clamp(32px,4vw,52px);line-height:1.12;letter-spacing:-.035em;margin:12px 0}.section-title p{color:var(--muted);font-size:17px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.feature-card{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:28px;min-height:220px}.feature-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#e1f6ee;color:#087d5b;font-weight:900}.feature-card h3{font-size:20px;margin:22px 0 10px}.feature-card p{color:var(--muted);margin:0}.permission{background:#e9f0ec}.plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.plan{border:1px solid var(--line);border-radius:24px;background:#fff;padding:34px;position:relative}.plan.highlight{background:var(--forest);color:white;box-shadow:var(--shadow)}.plan-badge{font-size:11px;font-weight:850;letter-spacing:.08em;color:#087c59;background:#dcf5eb;padding:6px 10px;border-radius:16px;position:absolute;right:24px;top:24px}.price{font-size:44px;font-weight:850;letter-spacing:-.04em;margin:10px 0}.price small{font-size:14px;font-weight:600;letter-spacing:0}.plan p{color:var(--muted)}.plan.highlight p{color:#b8d0c6}.plan ul{padding:0;margin:24px 0;list-style:none}.plan li{padding:9px 0;border-bottom:1px solid var(--line)}.plan li:before{content:"✓";color:var(--mint);margin-right:10px}.admin-note{margin-top:22px;border:1px dashed #91aaa0;border-radius:16px;padding:20px;color:#50665d;background:rgba(255,255,255,.5)}.admin-note b{color:var(--ink)}.disclaimer{background:#fff6dd;border:1px solid #efdca3;border-radius:18px;padding:24px;margin-top:24px;color:#6e5720}.cta{max-width:1152px;margin:0 auto 80px;border-radius:28px;background:var(--forest);color:white;padding:54px;display:flex;align-items:center;gap:30px}.cta h2{font-size:36px;margin:0 0 8px}.cta p{margin:0;color:#bcd1c8}.cta .btn{margin-left:auto}.public-footer{max-width:1200px;margin:auto;padding:30px 24px 50px;display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.auth-page{min-height:100vh;background:var(--forest);display:grid;place-items:center;padding:30px}.auth-shell{width:min(980px,100%);display:grid;grid-template-columns:1fr 1fr;background:var(--paper);border-radius:28px;overflow:hidden;box-shadow:0 35px 120px rgba(0,0,0,.3)}.auth-story{background:linear-gradient(145deg,#143d30,#0d2a21);color:white;padding:50px;display:flex;flex-direction:column}.auth-story h1{font-size:38px;line-height:1.1;margin:34px 0 18px}.auth-story p{color:#bbd1c7}.auth-points{margin-top:auto}.auth-points div{border-top:1px solid rgba(255,255,255,.13);padding:15px 0}.auth-form{padding:48px}.auth-form h2{font-size:30px;margin:10px 0 6px}.subtle{color:var(--muted)}label{display:block;font-size:12px;font-weight:800;margin:15px 0;color:#40564d}input{width:100%;border:1px solid #cbd9d2;border-radius:11px;padding:12px;margin-top:7px;background:white;color:var(--ink);outline:none}input:focus{border-color:#13936c;box-shadow:0 0 0 4px rgba(19,147,108,.1)}.wide{width:100%;margin-top:12px}.auth-links{text-align:center;margin-top:18px;color:var(--muted);font-size:13px}.auth-links a{color:#087d5b;font-weight:800}.form-error{display:none;background:#feecef;color:var(--red);padding:10px 12px;border-radius:10px;margin:14px 0}.auth-page.error .form-error{display:block}.check{display:flex;gap:10px;align-items:flex-start;font-weight:500}.check input{width:auto;margin-top:4px}.policy-box{background:#eef5f1;border-radius:13px;padding:14px;font-size:12px;color:#496057;margin:15px 0}.policy-box b{color:var(--ink)}@media(max-width:800px){.nav-links{display:none}.hero-inner{grid-template-columns:1fr;padding-top:60px}.market-card{transform:none}.feature-grid{grid-template-columns:1fr}.plan-grid{grid-template-columns:1fr}.cta{margin:0 18px 55px;display:block;padding:38px}.cta .btn{margin-top:24px}.auth-shell{grid-template-columns:1fr}.auth-story{display:none}}@media(max-width:560px){.public-nav{padding:0 16px}.nav-actions .btn:first-child{display:none}.hero h1{font-size:43px}.hero-inner,.section{padding-left:18px;padding-right:18px}.market-card{padding:18px}.plan{padding:26px}.public-footer{display:block}.auth-page{padding:12px}.auth-form{padding:30px 22px}}

:root {
  --forest: #18263a;
  --forest2: #2b4967;
  --mint: #8bb7dc;
  --cream: #f4f3ef;
  --paper: #fbfaf7;
  --ink: #1f2a3d;
  --muted: #6f7985;
  --line: rgba(36, 60, 86, .15);
  --shadow: 0 24px 80px rgba(22, 40, 59, .14);
}

body { background: radial-gradient(circle at 12% 4%, rgba(102, 151, 194, .11), transparent 30rem), var(--cream); }
.logo-mark { background: linear-gradient(145deg, #18263a, #356ca5); }
.nav-links { color: #4f5c69; }
.btn.primary { background: linear-gradient(135deg, #243b55, #4679a8); border-color: #386b99; }
.btn.mint { color: #17283b; background: #9bc3e3; border-color: #9bc3e3; }
.hero { background: linear-gradient(135deg, #152337 0%, #244866 58%, #416d8f 100%); }
.hero:before { background: radial-gradient(circle, rgba(137, 191, 228, .34), transparent 65%); }
.kicker { color: #aed1ec; }
.hero-copy { color: #d5e2eb; }
.trust-line { color: #c1d2df; }
.trust-line span:before { color: #9dc5e2; }
.market-card { box-shadow: 0 40px 120px rgba(10, 27, 43, .34); }
.live-dot { color: #2d659d; background: #eaf2fa; }
.mini-chart { background: linear-gradient(180deg, #eff5fa, #fff); border-color: #e0e8ef; }
.mini-chart canvas { display: block; width: 100%; height: 100%; }
.mini-chart > span { position: absolute; inset: 0; display: grid; place-items: center; color: var(--muted); font-size: 12px; }
.mini-chart > span[hidden] { display: none; }
.chart-legend { display: flex; gap: 12px; margin-top: 10px; color: var(--muted); font-size: 10px; font-weight: 750; }
.chart-legend .up { color: #d33b42; }
.chart-legend .down { color: #22c55e; }
.chart-legend .ma5 { color: #356ca5; }
.chart-legend .ma20 { color: #9b6a1d; }
.chart-legend .zoom-hint { margin-left: auto; color: var(--muted); }
.market-stats b.live { color: #2d659d; }
.market-stats b.stale { color: #9b6a1d; }
.feature-icon { background: #eaf2fa; color: #356ca5; }
.permission { background: #edf1f4; }
.plan.highlight,.cta { background: linear-gradient(135deg, #18263a, #355d7f); }
.plan-badge { color: #2d659d; background: #eaf2fa; }
.plan.highlight p,.cta p { color: #d0dce6; }
.plan li:before { color: #8db7d8; }
.admin-note { border-color: #a8b3bd; color: #5c6875; }
.auth-page { background: radial-gradient(circle at 20% 10%, #416d8f, transparent 34%), #152337; }
.auth-story { background: linear-gradient(145deg, #31597e, #18263a); }
.auth-story p { color: #d1dde7; }
label { color: #4e5b68; }
input { border-color: #ced7df; }
input:focus { border-color: #4f84b7; box-shadow: 0 0 0 4px rgba(53, 108, 165, .12); }
.auth-links a { color: #356ca5; }
.policy-box { background: #eef2f5; color: #596674; }
.google-auth-btn { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; margin-top: 22px; padding: 12px 16px; border: 1px solid #cbd5df; border-radius: 12px; background: #fff; color: #263445; font-weight: 800; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.google-auth-btn:hover { border-color: #8da8c1; box-shadow: 0 8px 22px rgba(24,38,58,.1); transform: translateY(-1px); }
.google-g { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: #fff; background: #356ca5; font: 900 14px/1 Arial,sans-serif; }
.oauth-divider { display: flex; align-items: center; gap: 12px; margin: 18px 0 4px; color: #8a949f; font-size: 11px; font-weight: 750; text-transform: uppercase; }
.oauth-divider:before,.oauth-divider:after { content: ""; height: 1px; flex: 1; background: #dce3e9; }
.google-error { display: none; background: #fff3d9; color: #815c11; padding: 10px 12px; border-radius: 10px; margin: 14px 0; }
.auth-page.google-error-state .google-error { display: block; }
.legal-page { width: min(860px, calc(100% - 36px)); margin: 34px auto 80px; padding: 52px 58px; border: 1px solid var(--line); border-radius: 24px; background: var(--paper); box-shadow: var(--shadow); }
.legal-page .kicker { color: #356ca5; }
.legal-page h1 { margin: 8px 0 0; font-size: clamp(38px, 6vw, 58px); line-height: 1.08; letter-spacing: -.04em; }
.legal-updated { margin: 10px 0 38px; color: var(--muted); }
.legal-page section { padding: 25px 0; border-top: 1px solid var(--line); }
.legal-page section h2 { margin: 0 0 9px; font-size: 21px; }
.legal-page section p { margin: 0; color: #586574; }
.legal-page code { padding: 2px 6px; border-radius: 6px; background: #eaf2fa; color: #274c70; }
.legal-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 28px; }
@media(max-width:600px){.legal-page{padding:34px 22px}.legal-actions{align-items:stretch;flex-direction:column}.legal-actions .btn{width:100%}}

.logo-mark {
  background: #0b1020 url('/assets/icon-192.png') center / cover no-repeat !important;
  color: transparent !important;
  font-size: 0 !important;
  overflow: hidden;
}

.hidden { display: none !important; }
.subscription-shell { padding-top: 54px; padding-bottom: 90px; }
.subscription-shell .section-title { text-align: center; margin-inline: auto; }
.subscription-shell .section-title .kicker { color: #356ca5; }
.subscription-shell .policy-box { margin: 28px auto; max-width: 760px; text-align: center; }
.subscription-shell .plan-grid { align-items: stretch; }
.subscription-shell .plan { display: flex; flex-direction: column; }
.subscription-shell .plan ul { flex: 1; }
.subscription-shell .plan button { width: 100%; }
.billing-email-card { max-width: 760px; margin: 0 auto 28px; padding: 20px 22px; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: 0 12px 34px rgba(24, 42, 63, .06); }
.billing-email-card label { margin: 0; font-size: 13px; }
.billing-email-card input { margin-top: 8px; }
.billing-email-card input[aria-invalid="true"] { border-color: #d33b42; box-shadow: 0 0 0 4px rgba(211, 59, 66, .10); }
.billing-email-card small { display: block; margin-top: 8px; color: var(--muted); }
.field-error { min-height: 1.4em; margin: 6px 0 0; color: #c9323a; font-size: 12px; font-weight: 750; }
.subscription-actions { display: grid; gap: 14px; max-width: 620px; margin: 30px auto; }
.subscription-actions label { display: grid; gap: 8px; font-weight: 750; }
.subscription-actions .btn { width: 100%; text-align: center; }
.subscription-page .disclaimer { max-width: 900px; margin: 26px auto 0; }

