:root { color-scheme: light; --ink:#13222e; --muted:#697a87; --line:#dce4e9; --blue:#1688bc; --blue-dark:#0a557e; --green:#20955f; --orange:#ec8617; --surface:#fff; --bg:#f3f6f8; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--bg); font-size:14px; }
a { color:inherit; }
button,input { font:inherit; }
.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; }
.topbar { height:70px; padding:0 32px; background:#fff; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; }
.brand { display:flex; align-items:center; gap:12px; text-decoration:none; letter-spacing:.12em; }
.brand-mark { width:42px; height:42px; border-radius:12px; display:grid; place-items:center; background:linear-gradient(135deg,#268db7,#0a4b72); color:white; font:italic 800 27px/1 Arial,sans-serif; box-shadow:0 5px 16px #0a557e33; transform:skew(-8deg); }
.brand strong,.brand small { display:block; }.brand strong { font-size:14px; }.brand small { margin-top:4px; color:#7f919e; font-size:9px; letter-spacing:.22em; }
.profile { display:flex; align-items:center; gap:16px; color:#506575; font-size:12px; font-weight:700; }.avatar { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; background:#edf2f5; color:#8798a3; }
.page-shell { max-width:1200px; margin:0 auto; padding:42px 32px 24px; }
.hero { display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:48px; align-items:end; }
.eyebrow { margin:0 0 9px; color:#238abb; font-size:11px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; }
h1 { margin:0; font-size:44px; line-height:1.12; letter-spacing:-.055em; } .lede { margin:12px 0 0; color:#637785; font-size:15px; }
.search-box { height:48px; padding:0 13px; display:flex; align-items:center; gap:10px; background:white; border:1px solid #d4dee5; border-radius:12px; box-shadow:0 8px 22px #2c4c6010; }
.search-box svg { width:17px; height:17px; fill:none; stroke:#247da9; stroke-width:2; }.search-box input { min-width:0; flex:1; border:0; outline:0; color:var(--ink); }.search-box input::placeholder { color:#91a0aa; }.search-box kbd { color:#6e818e; background:#f5f7f8; border:1px solid #d8e0e5; border-radius:5px; padding:2px 6px; font-size:10px; }
.freshness { margin-top:26px; min-height:72px; padding:16px 18px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:16px; border:1px solid #a9dbc3; border-left:4px solid #2ca46b; border-radius:11px; background:#eff9f4; color:#244f3d; }
.freshness strong { font-size:13px; }.freshness p { margin:5px 0 0; font-size:12px; }.check { width:29px; height:29px; border-radius:50%; display:grid; place-items:center; background:#2ba268; color:#fff; font-weight:900; }.fresh-pill { padding:7px 11px; border-radius:16px; background:#d8f0e4; color:#16784c; font-size:10px; font-weight:800; }
.tabs { margin-top:22px; display:flex; gap:6px; border-bottom:1px solid var(--line); }.tab { padding:13px 14px 15px; border:0; border-bottom:2px solid transparent; background:none; color:#61717c; cursor:pointer; font-weight:750; }.tab:hover,.tab:focus-visible { color:var(--blue-dark); }.tab.active { color:#076b9a; border-color:#0e8ec5; }.tab span { margin-left:5px; padding:3px 7px; border-radius:10px; background:#e9eef1; color:#84939c; font-size:10px; }
.ai-summary { margin-top:18px; padding:19px 21px; display:grid; grid-template-columns:auto 1fr; gap:15px; border:1px solid #badbe9; border-left:4px solid #278fbd; border-radius:12px; background:#fff; box-shadow:0 12px 26px #2146580a; }.ai-badge { width:37px; height:37px; border-radius:9px; display:grid; place-items:center; background:linear-gradient(135deg,#2c94bf,#0b5b83); color:#fff; font-size:11px; font-weight:800; box-shadow:0 5px 12px #147da83d; }.section-title-line { display:flex; align-items:center; gap:12px; }.section-title-line h2 { margin:0; font-size:15px; }.section-title-line span { padding:4px 8px; border-radius:10px; color:#3785a8; background:#edf7fb; font-size:9px; font-weight:700; }.ai-summary p { margin:7px 0 0; color:#455e6d; font-size:12px; line-height:1.65; }
.metrics { margin-top:18px; display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }.metric { min-height:143px; padding:22px 20px; position:relative; overflow:hidden; border:1px solid #d9e2e7; border-top:3px solid; border-radius:12px; background:white; box-shadow:0 14px 30px #1d3d4e0d; }.metric::after { content:""; position:absolute; right:-7px; bottom:-36px; width:75px; height:75px; border:13px solid #f0f4f6; border-radius:50%; }.metric p { margin:0; color:#61727e; font-size:12px; font-weight:750; }.metric div { margin-top:20px; display:flex; align-items:end; justify-content:space-between; gap:8px; }.metric strong { font-size:37px; line-height:1; letter-spacing:-.05em; }.metric span { position:relative; z-index:1; color:#758690; font-size:10px; font-weight:700; }.metric-dark { border-top-color:#243c4a; }.metric-blue { border-top-color:#168dc3; }.metric-orange { border-top-color:#ed8618; }.metric-green { border-top-color:#299766; }
#content { margin-top:24px; }.overview-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:start; }.chart-card,.data-card { border:1px solid #dae3e8; border-radius:12px; background:#fff; box-shadow:0 12px 26px #1c3d4f0a; overflow:hidden; }.overview-grid .data-card { height:100%; }.card-heading { min-height:78px; padding:20px 22px 15px; display:flex; align-items:start; justify-content:space-between; gap:20px; }.card-heading .eyebrow { margin-bottom:6px; color:#7b919f; font-size:9px; }.card-heading h2 { margin:0; font-size:17px; }.card-heading p:not(.eyebrow) { margin:7px 0 0; color:#7a8993; font-size:11px; }.card-heading > span { flex:none; padding:6px 9px; color:#4587a6; background:#edf7fb; border-radius:12px; font-size:10px; font-weight:700; }
.chart { height:290px; margin:0 22px 20px; padding:38px 10px 8px; display:flex; align-items:end; justify-content:space-around; gap:12px; border-top:1px solid #eef2f4; background:repeating-linear-gradient(to bottom,transparent 0,transparent 72px,#edf1f3 73px); }.bar-item { height:100%; min-width:36px; flex:1; display:flex; flex-direction:column; align-items:center; justify-content:end; gap:7px; }.bar { width:min(38px,80%); min-height:3px; border-radius:5px 5px 2px 2px; background:linear-gradient(#35a3d2,#147ba8); }.bar-value { color:#4e6675; font-size:10px; font-weight:700; }.bar-date { color:#87959e; font-size:10px; }
.table-wrap { width:100%; overflow-x:auto; } table { width:100%; border-collapse:collapse; } th { padding:11px 13px; color:#71838f; background:#f7f9fa; border-top:1px solid #edf1f3; border-bottom:1px solid #e7ecef; font-size:9px; letter-spacing:.04em; text-align:left; white-space:nowrap; } td { padding:10px 13px; border-bottom:1px solid #edf1f3; color:#506571; font-size:11px; white-space:nowrap; } tbody tr:last-child td { border-bottom:0; }.product-link { display:flex; flex-direction:column; gap:2px; text-decoration:none; }.product-link:hover strong { color:#0876a8; }.product-link strong { color:#1c3442; font-size:11px; }.product-link small { color:#82919a; font-size:9px; }.delta { padding:3px 6px; border-radius:8px; font-weight:800; }.negative { color:#c85046; background:#fff0ee; }.positive { color:#198153; background:#e9f7ef; }.status { padding:4px 7px; border-radius:9px; font-size:9px; font-weight:800; }.warning { color:#b1650e; background:#fff4e4; }.empty { padding:32px!important; text-align:center; color:#8b99a2; }
.release-grid { padding:0 22px 22px; display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }.release-card { min-height:145px; padding:16px; display:flex; flex-direction:column; border:1px solid #e0e7eb; border-radius:10px; text-decoration:none; transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }.release-card:hover { transform:translateY(-2px); border-color:#8bc9e2; box-shadow:0 10px 22px #1f71951a; }.release-month { width:max-content; padding:4px 7px; border-radius:9px; color:#287fa4; background:#edf7fb; font-size:9px; }.release-card strong { margin-top:13px; font-size:14px; }.release-card small { margin-top:6px; color:#87959e; }.open-link { margin-top:auto; color:#137ca9; font-size:10px; font-weight:750; }
footer { padding:26px 2px 6px; display:flex; justify-content:space-between; gap:20px; color:#7d8c95; font-size:10px; } footer a { text-decoration:none; } footer a:hover { color:#167fae; }.fatal { margin:30px auto; max-width:700px; padding:22px; border:1px solid #efc3bd; border-radius:10px; background:#fff1ef; color:#9c3f35; }.fatal small { display:block; margin-top:8px; }
@media (max-width:900px) { .hero { grid-template-columns:1fr; gap:22px; }.metrics { grid-template-columns:repeat(2,1fr); }.overview-grid { grid-template-columns:1fr; }.release-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .topbar { height:62px; padding:0 17px; }.brand-mark { width:36px; height:36px; }.profile > span:first-child { display:none; }.page-shell { padding:28px 16px 18px; } h1 { font-size:36px; }.lede { font-size:14px; line-height:1.55; }.freshness { grid-template-columns:auto 1fr; }.fresh-pill { display:none; }.tabs { gap:0; justify-content:space-between; overflow-x:auto; }.tab { flex:none; padding:13px 8px 15px; }.tab span { margin-left:2px; padding-inline:6px; }.metrics { grid-template-columns:1fr 1fr; gap:10px; }.metric { min-height:125px; padding:17px 14px; }.metric strong { font-size:31px; }.metric div { margin-top:16px; flex-direction:column; align-items:start; }.metric::after { opacity:.6; }.ai-summary { padding:16px 14px; }.section-title-line { align-items:start; flex-direction:column; gap:5px; }.chart { height:230px; margin-inline:10px; gap:5px; }.bar-date { font-size:8px; }.card-heading { padding-inline:15px; }.release-grid { grid-template-columns:1fr; padding-inline:15px; } footer { flex-direction:column; } }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; } }
