
:root{
 --bg:#0a0e16; --bg2:#070a10; --surface:rgba(22,29,45,.72); --surface-solid:#161d2d;
 --border:rgba(120,150,200,.16); --text:#e8eef8; --muted:#93a4bd; --muted2:#6b7d99;
 --accent:#5b8cff; --accent2:#7c5cff; --up:#22c55e; --down:#f0536b; --warn:#f0b24a;
 --shadow:0 10px 30px rgba(0,0,0,.35); --radius:16px;
}
[data-theme="light"]{
 --bg:#eef2f8; --bg2:#e6ebf3; --surface:rgba(255,255,255,.85); --surface-solid:#fff;
 --border:rgba(30,50,90,.12); --text:#0f1b2d; --muted:#5a6b82; --muted2:#8797ab;
 --shadow:0 10px 30px rgba(30,50,90,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:radial-gradient(1200px 700px at 80% -10%,rgba(124,92,255,.18),transparent 60%),radial-gradient(900px 600px at -10% 10%,rgba(91,140,255,.16),transparent 55%),var(--bg);
 color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Noto Sans TC','PingFang TC','Microsoft JhengHei',sans-serif;
 -webkit-font-smoothing:antialiased;line-height:1.6;}
.wrap{max-width:1040px;margin:0 auto;padding:0 16px 60px}
a{color:inherit;text-decoration:none}
.top{position:sticky;top:0;z-index:20;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
 background:linear-gradient(180deg,var(--surface),rgba(10,14,22,.55));border-bottom:1px solid var(--border);margin:0 -16px;padding:12px 16px}
[data-theme="light"] .top{background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(238,242,248,.7))}
.top .row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;max-width:1040px;margin:0 auto}
.brand{font-weight:800;font-size:19px;letter-spacing:.3px;display:flex;align-items:center;gap:8px}
.brand .sub{font-weight:500;font-size:12px;color:var(--muted);letter-spacing:2px}
.grow{flex:1}
.tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
input.search,select.sort{background:var(--surface-solid);border:1px solid var(--border);color:var(--text);
 border-radius:10px;padding:8px 12px;font-size:13px;outline:none;transition:.2s}
input.search:focus,select.sort:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(91,140,255,.18)}
.iconbtn{cursor:pointer;background:var(--surface-solid);border:1px solid var(--border);color:var(--text);
 border-radius:10px;padding:8px 11px;font-size:13px}
.iconbtn:hover{border-color:var(--accent)}
.rf{cursor:pointer;background:linear-gradient(92deg,rgba(91,140,255,.16),rgba(124,92,255,.16));border:1px solid var(--border);color:var(--text);
 border-radius:10px;padding:8px 12px;font-size:13px;font-weight:700;white-space:nowrap;transition:.2s}
.rf:hover{border-color:var(--accent)}
.rf[disabled]{opacity:.55;cursor:default}
.prices .live{color:#7ee2a8}
.prices .live b{color:#7ee2a8;font-weight:800}
.prices .live.dn{color:#ff8a9d}.prices .live.dn b{color:#ff8a9d}
.chip.livechip{color:#7ee2a8;border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.08)}
.hero{padding:26px 4px 6px}
.hero-kicker{display:inline-flex;align-items:center;margin-bottom:8px;padding:4px 9px;border:1px solid rgba(91,140,255,.35);border-radius:999px;color:#9dbaff;background:rgba(91,140,255,.1);font-size:11px;font-weight:800;letter-spacing:.08em}
.hero h1{margin:0;font-size:clamp(26px,4.4vw,40px);font-weight:800;letter-spacing:-.02em;
 background:linear-gradient(92deg,var(--text),var(--accent) 60%,var(--accent2));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .meta{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.chip{display:inline-flex;align-items:center;gap:5px;background:var(--surface-solid);border:1px solid var(--border);
 border-radius:999px;padding:4px 11px;font-size:12px;color:var(--muted);white-space:nowrap}
.chip.live{color:#7ee2a8;border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.08)}
.chip.t1{color:#6ee7a0;border-color:rgba(34,197,94,.35)} .chip.t2{color:var(--warn);border-color:rgba(240,178,74,.35)}
.chip.t3{color:#ff8a9d;border-color:rgba(240,83,107,.35)}
.chip.hz{color:#a99bff;border-color:rgba(124,92,255,.4)}
.tabs{position:sticky;top:58px;z-index:15;display:flex;gap:8px;margin:18px -16px 0;padding:10px 16px;overflow-x:auto;
 background:linear-gradient(180deg,var(--bg),rgba(10,14,22,.0))}
.tab{cursor:pointer;white-space:nowrap;border:1px solid var(--border);background:var(--surface-solid);color:var(--muted);
 padding:9px 15px;border-radius:999px;font-size:13.5px;font-weight:600;transition:.2s}
.tab:hover{color:var(--text);transform:translateY(-1px)}
.tab.active{color:#fff;background:linear-gradient(92deg,var(--accent),var(--accent2));border-color:transparent;box-shadow:0 6px 18px rgba(91,140,255,.35)}
.overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 2fr;gap:10px;margin:14px 0 4px}
.account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}
.account-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}
.account-card h3{margin:0;font-size:18px}.account-card .account-meta{color:var(--muted);font-size:12px;margin-top:2px}.account-card .account-total{margin:12px 0;font-size:22px;font-weight:800}.account-card .account-total small{display:block;color:var(--muted);font-size:11px;font-weight:400}.account-card .pf{margin-top:8px;background:transparent}
.account-card .pf td,.account-card .pf th{padding-left:6px;padding-right:6px}.account-card .pf td{font-size:12.5px}.account-card .cash-row td{color:#6ee7a0}
.dashboard-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:14px;margin-top:14px}.lower-grid{margin-top:14px}.dashboard-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);min-width:0}.panel-title{font-size:15px;font-weight:800;margin-bottom:10px}.panel-note{font-size:11px;font-weight:500;color:var(--muted);margin-left:6px}.exposure{margin-top:0}.exposure td,.exposure th{font-size:12px;padding:8px 6px}.risk-list{display:grid;gap:8px}.risk-list>div,.decision-list>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px dashed var(--border);font-size:12.5px}.risk-list>div:last-child,.decision-list>div:last-child{border-bottom:none}.risk-list span,.decision-list b{color:var(--muted)}.risk-list b{font-weight:800}.danger{color:#ff8a9d}.warn{color:var(--warn)}.risk-callout{margin-top:12px;padding:10px 12px;background:rgba(240,178,74,.1);border:1px solid rgba(240,178,74,.3);border-radius:10px;color:var(--warn);font-size:12px}.timeline{display:grid;gap:8px}.timeline>div{display:grid;grid-template-columns:90px 1fr;gap:10px;padding:8px 0;border-bottom:1px dashed var(--border);font-size:12.5px}.timeline>div:last-child{border-bottom:none}.timeline b{color:var(--accent)}.timeline span{color:var(--muted)}.decision-list span{color:var(--text);text-align:right}.metric,.risk-note{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:12px 14px;box-shadow:var(--shadow)}
.metric{display:flex;flex-direction:column;gap:2px}.metric span,.metric small{color:var(--muted);font-size:11px}.metric b{font-size:20px;line-height:1.35}.metric b.positive{color:#6ee7a0}.risk-note{display:flex;flex-direction:column;justify-content:center;gap:3px;color:var(--muted);font-size:12px}.risk-note strong{color:var(--warn);font-size:13px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px;margin-top:14px}
.card{background:var(--surface);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border);
 border-radius:var(--radius);padding:16px 16px 14px;box-shadow:var(--shadow);transition:.25s cubic-bezier(.2,.7,.3,1);position:relative;overflow:hidden}
.card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent2));opacity:.85}
.card:hover{transform:translateY(-3px);border-color:rgba(120,150,200,.34)}
.card .hd{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.sym{font-size:19px;font-weight:800;letter-spacing:.2px}
.name{font-size:12.5px;color:var(--muted);margin-left:7px}
.mkt{font-size:11px;font-weight:700;border-radius:6px;padding:2px 8px}
.mkt.us{background:rgba(91,140,255,.16);color:#9dbaff} .mkt.tw{background:rgba(34,197,94,.14);color:#7ee2a8}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.vrow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}
.pill{font-size:12.5px;font-weight:700;border-radius:999px;padding:5px 12px}
.p-bull{background:rgba(34,197,94,.14);color:#6ee7a0} .p-bear{background:rgba(240,83,107,.14);color:#ff8a9d}
.p-neutral{background:rgba(147,164,189,.14);color:var(--muted)} .p-warn{background:rgba(240,178,74,.14);color:var(--warn)}
.score{font-size:18px;font-weight:800;font-variant-numeric:tabular-nums}
.score.up{color:#6ee7a0} .score.dn{color:#ff8a9d} .score.fl{color:var(--muted)}
.prices{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.prices b{color:var(--text);font-weight:700}
.pre{color:#9dbaff}
.reason{margin:10px 0 0;font-size:13px;color:var(--muted);border-top:1px dashed var(--border);padding-top:10px}
.more{display:inline-flex;align-items:center;gap:5px;margin-top:11px;font-size:12.5px;font-weight:700;color:var(--accent)}
.card{cursor:pointer}
.card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.card:hover .more{gap:9px}
/* 卡片細節彈窗（整張卡可點） */
.modal{position:fixed;inset:0;z-index:60;display:none}
.modal.open{display:block}
.modal .bd{position:absolute;inset:0;background:rgba(4,7,13,.66);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);animation:fade .2s ease}
.modal .pn{position:relative;z-index:1;max-width:820px;margin:26px auto;max-height:calc(100vh - 52px);overflow:auto;
 background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 24px 60px rgba(0,0,0,.55);
 animation:pop .24s cubic-bezier(.2,.7,.3,1)}
.modal .pn .doc{margin:0;max-width:none}
.modal .pn .back{display:none}
.modal-close{position:sticky;top:10px;float:right;margin:10px 10px 0 0;z-index:3;cursor:pointer;border:1px solid var(--border);
 background:var(--surface-solid);color:var(--text);border-radius:10px;width:36px;height:36px;font-size:15px;font-weight:700;
 display:flex;align-items:center;justify-content:center}
.modal-close:hover{border-color:var(--accent)}
.mloading{padding:26px 22px;color:var(--muted);font-size:13.5px}
@keyframes pop{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
body.modal-open{overflow:hidden}
@media(max-width:560px){.modal .pn{margin:0;max-height:100vh;border-radius:0}}
table.pf{width:100%;border-collapse:collapse;font-size:13.5px;margin-top:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
table.pf th{text-align:left;color:var(--muted2);font-size:11px;font-weight:600;padding:10px 14px;border-bottom:1px solid var(--border)}
table.pf td{padding:11px 14px;border-bottom:1px solid var(--border)}
table.pf tr:last-child td{border-bottom:none}
.advice{margin-top:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:15px 17px;font-size:13.5px;color:var(--text);white-space:pre-line}
.advice b{color:var(--accent)}
.warnbox{background:rgba(240,178,74,.1);border:1px solid rgba(240,178,74,.35);border-radius:var(--radius);padding:14px 16px;color:#f2cd8f;font-size:13px}
.tabpane{display:none;animation:fade .3s ease} .tabpane.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.sec-h{display:flex;align-items:center;gap:9px;margin:20px 0 0;font-size:15px;font-weight:800}
.sec-h .dot{width:9px;height:9px;border-radius:50%;background:linear-gradient(92deg,var(--accent),var(--accent2))}
.foot{margin-top:34px;text-align:center;font-size:11.5px;color:var(--muted2);line-height:1.9}
.empty{color:var(--muted2);font-size:13px;padding:10px 0}
/* 卡片內頁 */
.doc{max-width:760px;margin:0 auto}
.doc .pane{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.doc .pane .pad{padding:18px 22px}
.doc h2{margin:0;font-size:24px;font-weight:800}
.kv{width:100%;border-collapse:collapse;font-size:14px}
.kv td{padding:7px 0;border-bottom:1px solid var(--border);color:var(--muted)}
.kv tr:last-child td{border-bottom:none}
.rng{display:flex;gap:6px;align-items:center}
.bar{height:11px;border-radius:8px;background:rgba(240,83,107,.22);overflow:hidden;margin-top:5px}
.bar>i{display:block;height:11px;border-radius:8px;background:linear-gradient(90deg,#22c55e,#5be08a)}
.note{font-size:11.5px;color:var(--muted2)}
.blk{margin-top:16px}
.blk .t{font-weight:800;font-size:15px;display:flex;align-items:center;gap:8px}
.blk .t::before{content:"";width:4px;height:16px;border-radius:2px;background:linear-gradient(180deg,var(--accent),var(--accent2))}
.blk .c{margin-top:7px;font-size:13.5px;color:var(--text)}
.blk ol,.blk ul{margin:7px 0 0;padding-left:20px;font-size:13.5px}
.ovr{margin-top:10px;background:rgba(240,178,74,.1);border:1px solid rgba(240,178,74,.35);border-radius:10px;padding:10px 13px;font-size:12.5px;color:#f2cd8f}
.back{display:inline-flex;gap:6px;font-size:12.5px;color:var(--muted);margin-bottom:12px}
.back:hover{color:var(--accent)}
@media(max-width:760px){.overview{grid-template-columns:repeat(3,minmax(0,1fr))}.risk-note{grid-column:1/-1}.account-grid,.dashboard-grid{grid-template-columns:1fr}}
@media(max-width:560px){.grid{grid-template-columns:1fr}.top .row{gap:8px}.overview{grid-template-columns:1fr 1fr}.risk-note{grid-column:1/-1}.metric b{font-size:18px}.dashboard-panel{padding:13px}.exposure{min-width:560px}.dashboard-panel:has(.exposure){overflow-x:auto}.timeline>div{grid-template-columns:78px 1fr}.decision-list>div{display:block}.decision-list span{display:block;text-align:left;margin-top:3px}}
