:root { color-scheme: light; --ink:#172033; --muted:#65718a; --blue:#3158e6; --line:#e6eaf2; --bg:#f4f6fa; --danger:#be3343; }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font:16px -apple-system,BlinkMacSystemFont,"PingFang SC","Helvetica Neue",sans-serif; }
h1,h2,p { margin-top:0; } h1 { font-size:24px; margin-bottom:0; } h2 { font-size:18px; margin-bottom:8px; }
.topbar { padding:20px max(18px, calc((100vw - 720px)/2)); display:flex; justify-content:space-between; align-items:center; background:#fff; border-bottom:1px solid var(--line); }
.page,.login-card { max-width:720px; margin:0 auto; padding:18px; }.login-page { display:grid; min-height:100dvh; place-items:center; }.login-card { width:min(100%, 420px); background:#fff; box-shadow:0 10px 32px #1a274014; border-radius:18px; }
.eyebrow { color:var(--blue); letter-spacing:.11em; font-size:11px; font-weight:700; margin-bottom:5px; }.muted { color:var(--muted); font-size:14px; line-height:1.55; }
.card { background:#fff; padding:18px; margin-bottom:14px; border-radius:14px; border:1px solid var(--line); }.section-title { display:flex; justify-content:space-between; align-items:center; }.section-title span { color:var(--blue); font-weight:700; }
.position { padding:14px 0; border-top:1px solid var(--line); }.position > div { display:flex; flex-direction:column; gap:4px; }.position span { color:var(--muted); font-size:13px; }.position dl { display:grid; grid-template-columns:1fr 1fr; gap:8px; }.position dl div { background:#f8f9fc; padding:10px; border-radius:9px; }.position dt { color:var(--muted); font-size:12px; }.position dd { margin:4px 0 0; font-weight:650; }.note { margin:8px 0; color:var(--muted); font-size:13px; }
.recommendation { border-color:#d8defa; background:linear-gradient(145deg,#fff 0%,#f6f8ff 100%); }.plan-list { display:grid; gap:8px; }.plan-row { display:grid; grid-template-columns:auto 1fr auto; gap:10px; align-items:start; background:#fff; border:1px solid var(--line); border-radius:10px; padding:11px; }.plan-main { display:grid; gap:4px; }.plan-main small,.risk-card span { color:var(--muted); font-size:12px; }.action-badge { min-width:40px; padding:4px 6px; border-radius:6px; text-align:center; font-size:12px; font-weight:700; background:#edf0f6; color:#516078; }.plan-row.买入 .action-badge { background:#e9f7ef; color:#137041; }.plan-row.卖出 .action-badge { background:#fff0f1; color:#b0293a; }.plan-row details summary { margin:0; }.plan-row details p { margin:8px 0 0; color:var(--muted); font-size:13px; line-height:1.45; }.expand-panel { margin-top:13px; padding-top:13px; border-top:1px solid var(--line); }.risk-card { background:#fff; margin-top:10px; border-radius:10px; border:1px solid var(--line); padding:12px; }.risk-card > div { display:flex; justify-content:space-between; gap:8px; }.risk-card dl { display:grid; grid-template-columns:1fr 1fr; gap:8px; }.risk-card dl div { padding:8px; background:#f8f9fc; border-radius:7px; }.risk-card dt { color:var(--muted); font-size:11px; }.risk-card dd { margin:3px 0 0; font-weight:650; }.candidate-list { display:grid; grid-template-columns:repeat(5,minmax(112px,1fr)); gap:8px; overflow-x:auto; margin-top:12px; padding-bottom:4px; }.candidate-list article { display:grid; gap:4px; min-width:112px; padding:10px; border-radius:9px; background:#fff; border:1px solid var(--line); }.candidate-list span { color:var(--blue); font-size:11px; font-weight:700; }.candidate-list small { color:var(--muted); font-size:11px; line-height:1.4; }
.form-stack,.form-grid { display:grid; gap:13px; }.form-grid { grid-template-columns:1fr 1fr; }.form-grid .wide { grid-column:1/-1; }.compact { margin-top:12px; }.form-stack label,.form-grid label { display:grid; gap:6px; color:#37435d; font-size:13px; font-weight:600; }
input { appearance:none; width:100%; min-height:44px; border:1px solid #cbd3e2; border-radius:9px; padding:10px; font:inherit; color:var(--ink); background:#fff; } input:focus { outline:3px solid #bfcaff; border-color:var(--blue); }
button { min-height:44px; border:0; border-radius:9px; background:var(--blue); color:#fff; padding:10px 14px; font:inherit; font-weight:650; cursor:pointer; }.link-button { color:var(--blue); background:transparent; min-height:auto; }.danger { background:var(--danger); }.notice { padding:10px 12px; border-radius:9px; font-size:14px; }.notice.success { background:#e8f7ef; color:#13653f; }.notice.error { background:#fff0f1; color:#a02335; } details summary { margin-top:10px; color:var(--blue); cursor:pointer; font-size:14px; }.history p { font-size:14px; margin:10px 0; }
@media (max-width:430px) { .form-grid { grid-template-columns:1fr; }.form-grid .wide { grid-column:auto; }.topbar { padding:16px 18px; } }
