*{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}html,body,#root{height:100%}:root{--bg:#eaeff7;--card:#fff;--line:#e6ecf6;--ink:#101c33;--ink2:#5c6c8a;--ink3:#9aa8bf;--blue:#2f6bff;--blue-deep:#0c2f6e;--up:#e2484d;--down:#0f9b58;--gold:#f5a623;--shadow:0 6px 24px #1c397012;--num:"Chivo Mono", ui-monospace, "SF Mono", Consolas, monospace}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:PingFang SC,HarmonyOS Sans SC,MiSans,Microsoft YaHei,sans-serif}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}input{font:inherit;color:inherit}ul{list-style:none}.hero-num,.hero-row span,.hold-num p,.dprice p,.mcell b,.navdate,.mypl,.jbody small,.news small,.hold-sub,.import-nums input,.chart text{font-family:var(--num);font-variant-numeric:tabular-nums}.app{background:radial-gradient(900px 420px at 50% -220px, #dfe9f9 0%, var(--bg) 68%);flex-direction:column;display:flex;position:fixed;inset:0}.screen{-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.page{padding:calc(16px + env(safe-area-inset-top)) 14px calc(28px + env(safe-area-inset-bottom));max-width:560px;margin:0 auto}.card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px;padding:15px}.hero{text-align:center;color:#fff;background:radial-gradient(120% 90% at 85% -20%,#60a9ff99 0%,#0000 58%),radial-gradient(90% 80% at 6% 115%,#1046a5bf 0%,#0000 55%),linear-gradient(150deg,#0c2f6e 0%,#1c56c6 55%,#3d86f7 100%);border:none;margin-bottom:14px;position:relative;overflow:hidden;box-shadow:0 14px 34px #123a8a52}.hero:after{content:"";pointer-events:none;opacity:.5;background:repeating-linear-gradient(0deg,#ffffff0a 0 1px,#0000 1px 26px),repeating-linear-gradient(90deg,#ffffff0a 0 1px,#0000 1px 26px);position:absolute;inset:0}.hero>*{z-index:1;position:relative}.hero-label{color:#ffffffad;letter-spacing:.2em;font-size:13px}.hero-num{margin:5px 0 3px;font-size:36px;font-weight:700}.hero-row{justify-content:center;gap:8px;font-size:13px;display:flex}.hero-row span{background:#ffffff24;border-radius:999px;padding:3px 10px}.hero-time{color:#ffffff8c;margin-top:6px;font-size:12px}.hero-tools{z-index:2;gap:6px;display:flex;position:absolute;top:8px;right:8px}.hero-tool{color:#fffc;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff1f;border:1px solid #ffffff42;border-radius:50%;place-items:center;width:26px;height:26px;display:grid}.hero-tool svg{width:13px;height:13px}.hero-tool:active{transform:scale(.9)}.hero .up{color:#ffb0b4}.hero .down{color:#8fe8bb}.up{color:var(--up)}.down{color:var(--down)}.primary{color:#fff;letter-spacing:.2em;text-indent:.2em;background:linear-gradient(135deg,#2f6bff,#5f8dff);border-radius:14px;width:100%;margin-top:12px;padding:12px;font-size:15px;font-weight:600;display:block;box-shadow:0 8px 20px #2f6bff52}.primary:active{transform:scale(.98)}.hero .primary{color:var(--blue-deep);background:#fff;box-shadow:0 6px 16px #06183c40}.hero .primary.soft{color:#fff;box-shadow:none;background:#ffffff29;border:1px solid #ffffff73}.empty{text-align:center;color:var(--ink3);padding:44px 24px;font-size:14px;line-height:1.9}.holdings{flex-direction:column;gap:10px;display:flex}.hold{align-items:center;gap:12px;transition:transform .15s;display:flex}.hold:active{transform:scale(.985)}.hold-main{flex:1;min-width:0}.hold-name{font-size:16px;font-weight:700}.hold-name small{color:var(--ink3);margin-left:8px;font-size:12px;font-weight:400}.hold-sub{color:var(--ink2);margin:3px 0 7px;font-size:12px}.hold-num{text-align:right;font-size:16px;font-weight:700}.hold-num p+p{margin-top:2px;font-size:12px;font-weight:500}.bar{background:#eaeff8;border-radius:2px;height:3px;display:block;overflow:hidden}.bar b{background:linear-gradient(90deg,#2f6bff,#6ea0ff);border-radius:2px;height:100%;display:block}.sheet-mask{z-index:40;background:#0a183473;align-items:flex-end;animation:.18s fadein;display:flex;position:fixed;inset:0}.sheet{background:var(--card);width:100%;max-width:560px;padding:16px 16px calc(18px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;margin:0 auto;animation:.2s rise;position:relative}.sheet:before{content:"";background:#dde5f1;border-radius:2px;width:38px;height:4px;margin:0 auto 12px;display:block}.sheet h3{letter-spacing:.08em;margin-bottom:10px;font-size:16px}.sheet input{background:#f5f8fd;border:1px solid #dfe7f3;border-radius:12px;width:100%;margin-bottom:8px;padding:11px 12px;display:block}.sheet input:focus{border-color:var(--blue);background:#fff;outline:none}@keyframes fadein{0%{opacity:0}}@keyframes rise{0%{opacity:.4;transform:translateY(26px)}}.cands{flex-direction:column;gap:2px;margin-bottom:8px;display:flex}.cands button{text-align:left;border-bottom:1px solid #eef2f9;justify-content:space-between;padding:11px 8px;display:flex}.cands small{color:var(--ink3);flex:none;margin-left:10px}.picked{margin-bottom:10px;font-weight:700}.kindtag{color:#a06a00;background:#f5a62324;border-radius:999px;margin-left:6px;padding:2px 8px;font-size:11px;font-weight:400}.linkbtn{color:var(--blue);margin-left:8px;font-size:12px;text-decoration:underline}.form-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.form-grid label{color:var(--ink2);font-size:12px}.form-grid .span2{grid-column:span 2}.form-grid input{background:#f5f8fd;border:1px solid #dfe7f3;border-radius:12px;width:100%;margin-top:4px;padding:11px 12px}.form-grid input:focus{border-color:var(--blue);background:#fff;outline:none}.jinput{gap:8px;margin-top:10px;display:flex}.jinput input{background:#f5f8fd;border:1px solid #dfe7f3;border-radius:12px;flex:1;min-width:0;padding:11px 12px}.jinput input:focus{border-color:var(--blue);background:#fff;outline:none}.jinput .primary{width:auto;margin:0;padding:0 22px}.jlist{flex-direction:column;gap:8px;display:flex}.jrow{align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.jkind{color:#fff;background:linear-gradient(135deg,#7f96b4,#a9bacf);border-radius:10px;flex:none;place-items:center;width:28px;height:28px;font-size:13px;display:grid}.jkind.buy{background:linear-gradient(135deg,#e2484d,#f0797d)}.jkind.sell{background:linear-gradient(135deg,#0f9b58,#4dbd87)}.jbody p{font-size:14px;line-height:1.6}.jbody small{color:var(--ink3)}.sec-title{color:var(--ink2);letter-spacing:.12em;margin-bottom:8px;font-size:13px;font-weight:600}section.card{margin-bottom:10px}.ghost{width:100%;color:var(--ink2);background:#fff;border:1px solid #dfe7f3;border-radius:14px;margin-top:8px;padding:12px;display:block}.ghost.danger{color:var(--up);background:#fdf6f6;border-color:#f3d2d4}.page .hero .hold-sub{color:#ffffffb8}.gate{min-height:100dvh;padding:calc(24px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom));color:#fff;background:radial-gradient(120% 70% at 80% -10%,#60a9ff73 0%,#0000 55%),radial-gradient(90% 60% at 10% 108%,#1046a599 0%,#0000 55%),linear-gradient(160deg,#0a2452 0%,#14418f 60%,#2a63d5 100%);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.gate-logo{flex-direction:column;align-items:center;gap:14px;display:flex}.gate-logo-mark{filter:drop-shadow(0 12px 28px #020c2880)}.gate-word{letter-spacing:.32em;text-indent:.32em;text-shadow:0 4px 24px #000a2866;font-size:25px;font-weight:800}.gate-word i{color:var(--gold);font-style:normal}.gate-sub{color:#ffffffb3;margin-bottom:8px;font-size:13px}.chip{color:var(--ink);background:#f5f8fd;border:1px solid #dfe7f3;border-radius:999px;padding:7px 16px;font-size:14px}.chip.on{border-color:var(--gold);background:#f5a62329}.gate-form{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-direction:column;gap:8px;width:100%;max-width:320px;display:flex;background:#ffffff1a!important;border:1px solid #ffffff38!important;box-shadow:0 16px 40px #04102c59!important}.gate-form input{color:#fff;background:#ffffff1f;border:1px solid #ffffff4d;border-radius:12px;padding:12px}.gate-form input::placeholder{color:#ffffff8c}.gate-form .primary{color:var(--blue-deep);background:linear-gradient(135deg,#fff,#dbe7ff);box-shadow:0 8px 22px #04102c59}.gate-form .primary:disabled{opacity:.6}.gate-tabs{gap:6px;margin-bottom:2px;display:flex}.gate-tabs button{color:#ffffffa6;background:#ffffff14;border-radius:10px;flex:1;padding:8px;font-size:14px}.gate-tabs button.on{color:var(--blue-deep);background:#fff;font-weight:700}.gate-err{color:#ffb0b4;font-size:13px}.set-nick{margin-bottom:12px}.splash{min-height:100dvh;color:var(--ink3);letter-spacing:.4em;place-items:center;display:grid}.toast{top:calc(14px + env(safe-area-inset-top));z-index:60;color:#f2f6ff;background:#101c33e6;border-radius:999px;width:max-content;max-width:86vw;margin:0 auto;padding:9px 18px;font-size:13px;animation:.15s fadein;position:fixed;left:0;right:0}.detail{z-index:50;background:var(--bg);-webkit-overflow-scrolling:touch;padding:calc(10px + env(safe-area-inset-top)) 14px calc(24px + env(safe-area-inset-bottom));animation:.18s slidein;position:fixed;inset:0;overflow-y:auto}@keyframes slidein{0%{opacity:.5;transform:translate(26px)}}.dhead{align-items:center;gap:6px;max-width:560px;margin-bottom:10px;margin-left:auto;margin-right:auto;display:flex}.dhead .back{border:1px solid var(--line);width:36px;height:36px;color:var(--ink);box-shadow:var(--shadow);background:#fff;border-radius:12px;font-size:26px;line-height:1}.dhead-title{flex:1;min-width:0}.dprice{text-align:center;max-width:560px;margin-bottom:10px;margin-left:auto;margin-right:auto}.dprice p:first-child{font-size:32px;font-weight:700}.navdate{color:var(--ink3);font-size:11px;font-weight:400}.mypl{margin-top:6px;font-size:13px}.detail section.card{max-width:560px;margin-bottom:10px;margin-left:auto;margin-right:auto}.mgrid{border-top:1px solid #eef2f9;grid-template-columns:repeat(3,1fr);gap:10px 6px;margin-top:10px;padding-top:10px;display:grid}.mcell{flex-direction:column;gap:2px;min-width:0;display:flex}.mcell small{color:var(--ink3);font-size:10.5px}.mcell b{color:var(--ink);font-size:13px;font-weight:600}.ghost.sm{border-radius:999px;width:auto;margin-top:10px;padding:8px 18px;font-size:13px;display:inline-block}.chart{width:100%;height:auto;display:block}.jline{color:var(--ink2);font-size:13px;line-height:1.7}.detail .jlist{margin-top:6px}.detail .jlist .jrow{border-bottom:1px solid #eef2f9;border-radius:0;align-items:flex-start;gap:10px;padding:10px 0;display:flex}.detail .jlist .jrow:last-child{border-bottom:none}.news li{border-bottom:1px solid #eef2f9}.news li:last-child{border-bottom:none}.news a{color:inherit;padding:10px 0;text-decoration:none;display:block}.news-item{text-align:left;width:100%;color:inherit;padding:10px 0;display:block}.news-plain{color:var(--ink2);padding:10px 0;display:block}.news p{font-size:13.5px;line-height:1.5}.news small{color:var(--ink3);font-size:11px}.reader-title{margin-bottom:6px;font-size:19px;line-height:1.55}.reader-meta{color:var(--ink3);margin-bottom:12px;font-size:11.5px}.reader-p{text-align:justify;margin-bottom:12px;font-size:15px;line-height:1.9}.hero-btns{gap:8px;margin-top:12px;display:flex}.hero-btns>*{flex:1;min-width:0;margin-top:0}.seg{background:#eef2f9;border-radius:12px;gap:4px;margin:12px 0;padding:4px;display:flex}.seg button{color:var(--ink2);background:0 0;border-radius:9px;flex:1;padding:9px 0;font-size:14px;font-weight:600}.seg button.on{color:var(--ink);background:#fff;box-shadow:0 1px 4px #172b541f}.seg button.on:first-child{color:#e2484d}.seg button.on:last-child{color:#0f9b58}.grp-title{color:var(--ink3);letter-spacing:.12em;margin:14px 2px 8px;font-size:12px;font-weight:700}.grp-title:first-of-type{margin-top:4px}.import-sheet{flex-direction:column;max-height:86dvh;display:flex}.import-drop{text-align:center;cursor:pointer;background:#f7faff;border:1.5px dashed #c3d3ee;border-radius:18px;flex-direction:column;align-items:center;gap:4px;margin-top:6px;padding:34px 20px 30px;transition:border-color .15s,background .15s;display:flex}.import-drop:active{border-color:var(--blue);background:#eef4ff}.import-drop>svg{width:40px;height:40px;color:var(--blue);margin-bottom:8px}.import-drop-t{color:var(--blue-deep);font-size:15.5px;font-weight:700}.import-drop-s{color:var(--ink3);margin-top:6px;font-size:12px;line-height:1.7}.import-loading{color:var(--ink2);place-items:center;gap:12px;padding:46px 0 52px;font-size:14px;display:grid}.spin{border:3px solid #dfe7f3;border-top-color:var(--blue);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.import-list{flex-direction:column;flex:1;gap:10px;min-height:0;margin:4px 0 8px;display:flex;overflow-y:auto}.import-row{border:1px solid var(--line);background:#fbfcfe;border-radius:14px;padding:10px 12px}.import-row.off{opacity:.5}.import-top{align-items:flex-start;gap:8px;display:flex}.import-main{flex:1;min-width:0}.import-top input[type=checkbox]{width:20px;height:20px;accent-color:var(--blue);flex:none;margin-top:2px}.import-cands{margin:6px 0 0}.import-cands button{font-size:13px}.unmatched{color:var(--blue);font-weight:600}.matchbtn{color:var(--blue);background:#2f6bff14;border:1px solid #2f6bff38;border-radius:8px;margin-top:5px;padding:4px 10px;font-size:12px}.matchbtn:active{background:#2f6bff29}.row-match{margin-top:8px}.row-match input{border:1px solid var(--blue);background:#fff;border-radius:10px;margin-bottom:4px;padding:10px 11px}.row-match .cands{max-height:190px;margin-bottom:2px;overflow-y:auto}.row-match .cands button{font-size:13px}.import-main{cursor:pointer}.import-nums{grid-template-columns:repeat(2,1fr);gap:8px;margin-top:8px;display:grid}.import-nums label{color:var(--ink2);min-width:0;font-size:12px}.import-nums input{background:#f5f8fd;border:1px solid #dfe7f3;border-radius:10px;width:100%;margin-top:4px;padding:8px 10px}.import-quote{margin:7px 0 0}.chat{z-index:50;background:var(--bg);padding:calc(10px + env(safe-area-inset-top)) 14px 0;flex-direction:column;animation:.18s slidein;display:flex;position:fixed;inset:0}.chat>.dhead{flex:none;width:100%;max-width:560px;margin-left:auto;margin-right:auto}.chat .dhead-title h2{letter-spacing:.08em;font-size:17px}.chat-list{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:8px;width:100%;max-width:560px;margin:0 auto;padding:6px 0 14px;display:flex;overflow-y:auto}.chat-suggest{margin:6px auto 0;display:block}.msg{white-space:pre-wrap;word-break:break-word;border-radius:16px;max-width:82%;padding:10px 14px;font-size:14px;line-height:1.7}.msg.user{color:#fff;background:linear-gradient(135deg,#2f6bff,#5f8dff);border-bottom-right-radius:5px;align-self:flex-end;box-shadow:0 4px 14px #2f6bff40}.msg.ai{border:1px solid var(--line);background:#fff;border-bottom-left-radius:5px;align-self:flex-start}.msg.err{color:var(--up);background:#fdf0f0;border:1px solid #f3d2d4;align-self:flex-start}.msg.toolline{color:var(--ink3);background:0 0;border:none;align-self:flex-start;padding:0 4px;font-size:12px}.msg.thinking i.dots:after{content:"…";animation:1.2s infinite blink}@keyframes blink{50%{opacity:.2}}.msg-card{border:1px dashed var(--blue);background:#fff;align-self:stretch;max-width:100%}.msg-card.done{opacity:.65;border-style:solid}.msg-card-text{font-size:14px;line-height:1.7}.msg-card-foot{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.msg-card-foot small{color:var(--ink3);font-size:12px}.msg-card-foot .chip{color:#fff;background:linear-gradient(135deg,#2f6bff,#5f8dff);border:none;padding:5px 14px}.chat-input{padding-bottom:calc(10px + env(safe-area-inset-bottom));background:var(--bg);flex:none;gap:8px;width:100%;max-width:560px;margin:0 auto;display:flex}.chat-input input{background:#fff;border:1px solid #dfe7f3;border-radius:14px;flex:1;min-width:0;padding:12px 14px}.chat-input input:focus{border-color:var(--blue);outline:none}.chat-input .primary{flex:none;width:auto;margin:0;padding:0 22px}.chat-input .primary:disabled{opacity:.45}@keyframes fadeup{0%{opacity:0;transform:translateY(10px)}}.holdings li,.jlist li{animation:.3s backwards fadeup}.holdings li:nth-child(2),.jlist li:nth-child(2){animation-delay:40ms}.holdings li:nth-child(3),.jlist li:nth-child(3){animation-delay:80ms}.holdings li:nth-child(4),.jlist li:nth-child(4){animation-delay:.12s}.holdings li:nth-child(5),.jlist li:nth-child(5){animation-delay:.16s}.holdings li:nth-child(n+6),.jlist li:nth-child(n+6){animation-delay:.2s}
