:root{--abyss:#06090c;--deep:#0a1015;--hull:#101a20;--hull-2:#16232a;--hull-3:#1d2f37;--line:#24363f;--line-soft:#1a2a32;--rust:#8c6b4f;--rust-bright:#b08a63;--rust-deep:#5f4835;--silt:#c2a878;--silt-bright:#d9c496;--silt-dim:#8a7a5c;--moss:#6b8f5e;--moss-bright:#8fb37f;--moss-deep:#3f5738;--text:#dce5e4;--text-dim:#9fb0b0;--muted:#6b7d7e;--faint:#465658;--up:#c96a4e;--down:#5f9a6e;--danger:#b5563f;--font-hand:"Zhi Mang Xing", "Xingkai SC", "STXingkai", "Kaiti SC", "KaiTi", "楷体", cursive;--font-logo:"Caveat", "Zhi Mang Xing", cursive;--font-mono:ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body{max-width:100vw;overflow-x:hidden}body{background:var(--abyss);color:var(--text);-webkit-font-smoothing:antialiased;background-image:radial-gradient(1200px 660px at 50% -10%,#26485499 0%,#0c181e66 45%,#0000 72%),radial-gradient(760px 500px at 88% 110%,#7a5c3842 0%,#0000 62%),radial-gradient(620px 420px at 8% 82%,#4e68442e 0%,#0000 60%);min-height:100vh;font-family:ui-sans-serif,system-ui,-apple-system,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}.app{max-width:1040px;margin:0 auto;padding:30px 20px 72px}.brand{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.brand-mark{background:linear-gradient(160deg,#16232a 0%,#0d1519 100%);border:1px solid #b08a6357;border-radius:13px;flex:0 0 46px;place-items:center;width:46px;height:46px;display:grid;box-shadow:0 6px 20px #00000080,inset 0 1px #ffffff0d}.brand h1{letter-spacing:.6px;color:var(--silt-bright);font-size:26px;font-weight:400;font-family:var(--font-logo);line-height:1.25}.brand h1 .en{font-family:var(--font-logo);background:linear-gradient(96deg,#c9a06a,#d9c496 60%,#b08a63);color:#0000;-webkit-background-clip:text;background-clip:text;font-weight:600}.brand span{color:var(--muted);letter-spacing:.4px;font-size:12.5px}.disclaimer{color:var(--faint);border-left:2px solid var(--rust-deep);margin-top:14px;padding-left:11px;font-size:12px;line-height:1.7}.toolbar{flex-wrap:wrap;gap:10px;margin:22px 0 16px;display:flex}.toolbar input,.toolbar select,.toolbar button{background:var(--hull);border:1px solid var(--line);color:var(--text);border-radius:9px;outline:none;padding:10px 14px;font-family:inherit;font-size:14px}.toolbar input{width:150px}.toolbar input:focus,.toolbar select:focus{border-color:var(--rust-bright)}.toolbar button,.journal-form button,.alert-form button,.btn-primary{background:linear-gradient(150deg, var(--rust) 0%, var(--rust-deep) 100%);color:#f4ece0;cursor:pointer;border:1px solid #b08a6352;padding:10px 20px;font-weight:600;transition:filter .15s,transform .12s;box-shadow:0 4px 14px #0000005c}.toolbar button:hover,.journal-form button:hover,.alert-form button:hover,.btn-primary:hover{filter:brightness(1.14)}.toolbar button:active{transform:translateY(1px)}.toolbar button:disabled,.journal-form button:disabled,.alert-form button:disabled{opacity:.45;cursor:default;filter:none}.toolbar .hint{color:var(--muted);align-self:center;font-size:12px}.panel{border:1px solid var(--line);background:linear-gradient(168deg,#18262deb 0%,#101a20f0 55%,#1e191280 100%);border-radius:14px;padding:18px}.section{margin-top:30px}.section h2{color:var(--silt);letter-spacing:.3px;align-items:center;gap:9px;margin-bottom:14px;font-size:15px;font-weight:600;display:flex}.section h2:before{content:"";background:linear-gradient(180deg, var(--rust-bright), var(--rust-deep));border-radius:2px;width:3px;height:15px}.section-head-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px;display:flex}.section-head-row h2{margin-bottom:0}.section-sub{color:var(--muted);margin:-8px 0 14px;font-size:12.5px;line-height:1.75}.stats{grid-template-columns:repeat(auto-fit,minmax(146px,1fr));gap:12px;margin:16px 0 0;display:grid}.stat{border:1px solid var(--line);background:linear-gradient(160deg,#1b2b32db 0%,#101a20ed 100%);border-radius:12px;padding:14px 15px;position:relative;overflow:hidden}.stat:after{content:"";background:linear-gradient(90deg, var(--rust-deep), transparent);height:2px;position:absolute;inset:auto 0 0}.stat .label{color:var(--muted);letter-spacing:.3px;font-size:11.5px}.stat .value{color:var(--silt-bright);font-variant-numeric:tabular-nums;margin-top:6px;font-size:21px;font-weight:680}.stat .value.mossy{color:var(--moss-bright)}.stat .value.rusty{color:var(--rust-bright)}.up{color:var(--up)}.down{color:var(--down)}.journal-form,.alert-form{background:var(--hull);border:1px solid var(--line);border-radius:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;padding:15px;display:grid}.journal-form input,.journal-form select,.journal-form textarea,.alert-form input,.alert-form select{background:var(--deep);border:1px solid var(--line);color:var(--text);border-radius:8px;outline:none;padding:9px 11px;font-family:inherit;font-size:13px}.journal-form input:focus,.journal-form select:focus,.journal-form textarea:focus,.alert-form input:focus,.alert-form select:focus{border-color:var(--rust-bright);background:var(--hull-2)}.journal-form textarea{resize:vertical;grid-column:1/-1;min-height:64px;line-height:1.6}.journal-form button,.alert-form button{border-radius:8px;grid-column:1/-1;padding:11px;font-family:inherit;font-size:14px}.entry,.alert-item{background:var(--hull);border:1px solid var(--line);border-left:3px solid var(--rust);border-radius:10px;margin-top:10px;padding:12px 14px}.entry .meta,.alert-item .meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:12px;display:flex}.entry .tag,.alert-item .tag{background:var(--hull-3);border:1px solid var(--line);color:var(--silt);border-radius:999px;padding:2px 9px}.entry .reason{white-space:pre-wrap;margin-top:8px;font-size:14px;line-height:1.65}.entry .del,.alert-item .del{color:var(--faint);cursor:pointer;background:0 0;border:none;margin-left:auto;font-family:inherit;font-size:12px}.entry .del:hover,.alert-item .del:hover{color:var(--danger)}.alert-item.alert-hit{border-left-color:var(--moss);background:#6b8f5e17}.hit-flag{color:var(--moss-bright);margin-top:8px;font-size:13px;font-weight:600}.empty{color:var(--muted);border:1px dashed var(--line);text-align:center;background:#0a101580;border-radius:12px;padding:26px 16px;font-size:13px}.empty .mascot{object-fit:contain;opacity:.72;filter:drop-shadow(0 6px 14px #0000008c);width:96px;height:96px;margin-bottom:8px}.error{color:#e0a08c;background:#b5563f1f;border:1px solid #b5563f6b;border-radius:10px;margin-bottom:16px;padding:12px 14px;font-size:13px}.hint-sm{color:var(--muted);font-size:12px;line-height:1.7}.login-wrap{place-items:center;min-height:100vh;padding:32px 20px;display:grid}.login-shell{text-align:center;width:100%;max-width:460px}.login-brand{justify-content:center;align-items:center;margin-bottom:4px;display:flex;position:relative}.login-logo{z-index:2;background:linear-gradient(160deg,#1e323b 0%,#0c1418 100%);border:1px solid #b08a636b;border-radius:16px;place-items:center;width:60px;height:60px;display:grid;position:absolute;top:-6px;left:50%;transform:translate(-50%);box-shadow:0 12px 28px #0009,inset 0 1px #ffffff12}.login-mascot{object-fit:contain;filter:drop-shadow(0 14px 30px #0000009e);width:178px;height:178px;margin:26px auto 4px;animation:5.5s ease-in-out infinite float}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.login-title{color:#0000;letter-spacing:.8px;font-size:38px;font-weight:400;font-family:var(--font-logo);background:linear-gradient(96deg,#c9a06a,#d9c496 55%,#b08a63);-webkit-background-clip:text;background-clip:text;margin-bottom:8px}.login-title .zh{font-family:var(--font-hand);letter-spacing:2px;color:var(--silt);background:0 0;-webkit-background-clip:border-box;background-clip:border-box;margin-top:2px;font-size:34px;display:block}.login-sub{color:var(--muted);margin-bottom:26px;font-size:13.5px;line-height:1.85}.login-card{background:var(--hull);border:1px solid var(--line);border-radius:16px;padding:26px 24px;box-shadow:0 20px 50px #0000007a}.btn-google{background:linear-gradient(150deg, var(--rust) 0%, var(--rust-deep) 100%);color:#f6efe4;cursor:pointer;border:1px solid #b08a6357;border-radius:11px;justify-content:center;align-items:center;gap:11px;width:100%;padding:15px 20px;font-family:inherit;font-size:15.5px;font-weight:640;transition:filter .15s,transform .12s;display:flex;box-shadow:0 8px 24px #0000006b,inset 0 1px #ffffff14}.btn-google:hover{filter:brightness(1.15)}.btn-google:active{transform:translateY(1px)}.btn-google:disabled{opacity:.5;cursor:default;filter:none}.google-g{flex:0 0 19px;width:19px;height:19px}.login-alt{border-top:1px solid var(--line-soft);margin-top:18px;padding-top:16px}.login-alt details summary{cursor:pointer;color:var(--faint);font-size:12px;list-style:none;transition:color .15s}.login-alt details summary:hover{color:var(--silt-dim)}.login-alt .login-email{flex-direction:column;gap:9px;margin-top:14px;display:flex}.login-email input{background:var(--deep);border:1px solid var(--line);color:var(--text);border-radius:8px;outline:none;padding:10px 12px;font-family:inherit;font-size:14px}.login-email input:focus{border-color:var(--rust-bright)}.login-email-btns{flex-wrap:wrap;gap:9px;display:flex}.login-email-btns button{background:var(--hull-3);border:1px solid var(--line);min-width:110px;color:var(--text-dim);cursor:pointer;border-radius:8px;flex:1;padding:9px 14px;font-family:inherit;font-size:13px}.login-email-btns button:hover{border-color:var(--rust);color:var(--silt)}.login-creed{color:var(--faint);letter-spacing:.2px;margin-top:24px;font-size:12.5px;line-height:1.95}.login-creed em{color:var(--silt-dim);font-style:normal}.onboard{max-width:720px;margin:0 auto}.onboard-head{text-align:center;margin-bottom:26px}.onboard-head .mascot{object-fit:contain;filter:drop-shadow(0 10px 22px #0000008c);width:108px;height:108px}.onboard-head h1{color:var(--silt-bright);margin:6px 0 8px;font-size:23px;font-weight:640}.onboard-head p{color:var(--muted);font-size:13.5px;line-height:1.85}.step-card{background:var(--hull);border:1px solid var(--line);border-radius:15px;margin-bottom:16px;padding:22px;box-shadow:0 12px 32px #00000052}.step-head{align-items:center;gap:11px;margin-bottom:16px;display:flex}.step-num{background:var(--rust-deep);width:26px;height:26px;color:var(--silt-bright);border:1px solid #b08a6366;border-radius:50%;flex:0 0 26px;place-items:center;font-size:12.5px;font-weight:700;display:grid}.step-head h2{color:var(--silt);font-size:15px;font-weight:620}.step-head .step-note{color:var(--faint);margin-left:auto;font-size:12px}.field-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:11px;display:grid}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--muted);letter-spacing:.2px;font-size:12px}.field input,.field select,.field textarea{background:var(--deep);border:1px solid var(--line);color:var(--text);border-radius:8px;outline:none;width:100%;padding:10px 12px;font-family:inherit;font-size:14px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--rust-bright);background:var(--hull-2)}.field input::placeholder,.field select::placeholder,.field textarea::placeholder,.journal-form input::placeholder,.journal-form select::placeholder,.journal-form textarea::placeholder,.alert-form input::placeholder,.alert-form select::placeholder,.toolbar input::placeholder,.login-email input::placeholder,.cp-input::placeholder,.sim-row select::placeholder{color:#3d4a4c;opacity:.55;font-style:italic}.field input:placeholder-shown,.journal-form input:placeholder-shown,.alert-form input:placeholder-shown{color:var(--faint)}.field input:not(:placeholder-shown),.alert-form input:not(:placeholder-shown){font-variant-numeric:tabular-nums}.field .unit{color:var(--faint);font-size:11.5px}.pick-row{background:var(--deep);border:1px solid var(--line-soft);border-radius:10px;grid-template-columns:1.5fr 1.3fr .85fr .85fr .9fr auto;align-items:end;gap:9px;margin-bottom:9px;padding:12px;display:grid}@media (max-width:720px){.pick-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:13px;position:relative}.pick-row .sym-field{grid-column:1/-1}.pick-row .field:has(.sym-input-wrap)+.field{grid-column:1/-1}.pick-del{z-index:2;width:30px;height:30px;margin:0;font-size:14px;position:absolute;top:8px;right:8px}.pick-row .sym-field{padding-right:38px}.pick-row .field:has(input[placeholder="40"]){grid-column:1/-1}.pick-row input{min-height:42px;font-size:15px}.pick-row .field label{margin-bottom:4px;font-size:11px}.sym-item{min-height:52px;padding:10px 12px}.sym-input-wrap input{min-height:44px;font-size:16px}.sym-clear{width:34px;height:34px}}.pct-slider{width:auto;min-width:0;accent-color:var(--rust);flex:1;height:28px;margin:0}.pct-slider-row{align-items:center;gap:12px;display:flex}.pct-slider-row input[type=number]{flex:0 0 82px;width:82px;min-width:0}@media (max-width:720px){.pct-slider-row{gap:10px}.pct-slider-row input[type=number]{flex:0 0 72px;width:72px}}.pick-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}@media (max-width:720px){.pick-actions{z-index:20;padding:12px 0 calc(12px + env(safe-area-inset-bottom,0px));background:linear-gradient(#0b121700 0%,#0b1217f0 22%,#0b1217fc 100%);margin:14px -4px 0;position:sticky;bottom:0}.pick-actions .btn-primary{flex:1;min-height:48px}}.pick-row .field label{font-size:11px}.pick-del{border:1px solid var(--line);color:var(--faint);cursor:pointer;background:0 0;border-radius:8px;width:38px;height:38px;margin-bottom:1px;font-family:inherit;font-size:15px}.pick-del:hover{border-color:var(--danger);color:var(--danger)}.sym-field{position:relative}.sym-input-wrap{align-items:center;display:flex;position:relative}.sym-input-wrap input{padding-right:30px}.sym-clear{color:var(--faint);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-family:inherit;font-size:15px;line-height:1;position:absolute;right:8px}.sym-clear:hover{color:var(--danger)}.sym-spin{border:2px solid var(--line);border-top-color:var(--rust-bright);pointer-events:none;border-radius:50%;width:13px;height:13px;animation:.7s linear infinite spin;position:absolute;right:10px}@keyframes spin{to{transform:rotate(360deg)}}.sym-dropdown{z-index:30;background:var(--hull-2);border:1px solid var(--line);border-radius:10px;max-height:264px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 14px 34px #0000009e}.sym-dropdown.flip-up{top:auto;bottom:calc(100% + 4px);box-shadow:0 -14px 34px #0000009e}.sym-item{cursor:pointer;border-bottom:1px solid var(--line-soft);align-items:center;gap:9px;padding:9px 11px;font-size:13px;display:flex}.sym-item:last-child{border-bottom:none}.sym-item:hover,.sym-item.hl{background:#8c6b4f33}.sym-item .s{color:var(--silt-bright);font-weight:640;font-family:var(--font-mono);min-width:58px;font-size:12.5px}.sym-item .n{min-width:0;color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.sym-item .p{color:var(--moss-bright);font-variant-numeric:tabular-nums;font-size:12.5px}.sym-hint{color:var(--faint);margin-top:5px;font-size:11.5px}.sym-hint.on{color:var(--moss-bright)}.alloc-compare{grid-template-columns:1fr 1fr;gap:10px;margin-top:6px;display:grid}.alloc-col{background:var(--deep);border:1px solid var(--line-soft);border-radius:9px;padding:9px 11px}.alloc-col .k{color:var(--muted);justify-content:space-between;gap:6px;font-size:11px;display:flex}.alloc-col .k b{color:var(--silt);font-variant-numeric:tabular-nums;font-weight:600}.alloc-col.over .k b{color:var(--up)}.alloc-col.under .k b{color:var(--moss-bright)}.pct-bar{background:var(--hull-3);border-radius:3px;height:5px;margin-top:6px;overflow:hidden}.pct-fill{background:linear-gradient(90deg, var(--moss), var(--rust));height:100%;transition:width .25s}.pct-warn{color:var(--danger);margin-top:8px;font-size:12px}.anchor-hero{border:1px solid var(--line);background:linear-gradient(135deg,#101a20f2 0%,#0c1419e6 60%,#281e148c 100%);border-radius:16px;align-items:center;gap:20px;margin-bottom:20px;padding:22px 24px;display:flex;position:relative;overflow:hidden}.anchor-hero:before{content:"";pointer-events:none;background:radial-gradient(620px 260px at 88%,#8c6b4f29 0%,#0000 70%);position:absolute;inset:0}.anchor-hero .mascot{object-fit:contain;filter:drop-shadow(0 10px 24px #0000008c);flex:0 0 118px;width:118px;height:118px;position:relative}.anchor-hero-body{flex:1;min-width:0;position:relative}.anchor-hero-body h1{color:var(--silt-bright);margin-bottom:5px;font-size:20px;font-weight:640}.anchor-creed{color:var(--muted);margin-top:8px;font-size:13px;line-height:1.8}.anchor-creed b{color:var(--silt);font-weight:600}.hero-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.hero-amount{font-variant-numeric:tabular-nums;color:var(--silt-bright)}.quote-refresh{background:var(--hull-2);border:1px solid var(--line);color:var(--text-dim);cursor:pointer;border-radius:8px;align-items:center;gap:7px;padding:5px 11px;font-family:inherit;font-size:12px;transition:border-color .15s,color .15s;display:inline-flex}.quote-refresh:hover{border-color:var(--rust);color:var(--silt)}.quote-refresh.busy{opacity:.65;cursor:default}.quote-at{color:var(--faint);font-variant-numeric:tabular-nums;font-size:11px}.stat-sub{color:var(--faint);margin-top:4px;font-size:11px}.pct-table{border-collapse:collapse;width:100%;font-size:13.5px}.pct-table th{text-align:right;color:var(--muted);border-bottom:1px solid var(--line);letter-spacing:.2px;padding:0 10px 9px;font-size:11.5px;font-weight:500}.pct-table th:first-child,.pct-table td:first-child{text-align:left}.pct-table td{text-align:right;border-bottom:1px solid var(--line-soft);font-variant-numeric:tabular-nums;padding:11px 10px}.pct-table tr:last-child td{border-bottom:none}.sym-cell{align-items:center;gap:9px;display:flex}.sym-dot{background:var(--rust);border-radius:50%;flex:0 0 8px;width:8px;height:8px}.sym-name{color:var(--text);letter-spacing:.3px;font-weight:620}.sym-note{color:var(--faint);font-size:11.5px}.dev-badge{border:1px solid;border-radius:999px;margin-left:6px;padding:1px 7px;font-size:10.5px;font-weight:500;display:inline-block}.dev-over{color:var(--up);background:#c96a4e1a;border-color:#c96a4e73}.dev-under{color:var(--moss-bright);background:#6b8f5e1a;border-color:#8fb37f66}.dev-ok{color:var(--text-dim);border-color:var(--line)}.alloc-bar{border:1px solid var(--line);background:var(--deep);border-radius:7px;height:26px;display:flex;overflow:hidden}.alloc-seg{color:#0000009e;white-space:nowrap;place-items:center;height:100%;font-size:10.5px;font-weight:700;display:grid;overflow:hidden}.alloc-legend{color:var(--muted);flex-wrap:wrap;gap:16px;margin-top:11px;font-size:12px;display:flex}.alloc-legend span{align-items:center;gap:6px;display:inline-flex}.legend-swatch{border-radius:2px;width:9px;height:9px}.trade-row{background:var(--hull);border:1px solid var(--line-soft);border-radius:9px;grid-template-columns:92px 62px 1fr 1fr 1fr auto;align-items:center;gap:10px;margin-bottom:8px;padding:11px 13px;font-size:13px;display:grid}.trade-row .t-date{color:var(--muted);font-size:12px}.trade-side{text-align:center;border-radius:5px;padding:2px 8px;font-size:11px;font-weight:700}.trade-side.buy{color:var(--up);background:#c96a4e24;border:1px solid #c96a4e4d}.trade-side.sell{color:var(--down);background:#5f9a6e24;border:1px solid #5f9a6e4d}.trade-num{font-variant-numeric:tabular-nums;color:var(--text-dim)}.trade-reason{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.sell-sim{border:1px solid var(--line);background:#0c1419bf;border-radius:12px;margin-top:12px;padding:16px}.sim-row{flex-wrap:wrap;align-items:center;gap:11px;margin-bottom:12px;display:flex}.sim-row select{background:var(--deep);border:1px solid var(--line);color:var(--text);border-radius:8px;outline:none;flex:1;min-width:220px;padding:9px 11px;font-family:inherit;font-size:13px}.sim-row select:focus{border-color:var(--rust-bright)}.sim-result{border-top:1px dashed var(--line);grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:11px;padding-top:13px;display:grid}.sim-cell{background:var(--hull-2);border:1px solid var(--line-soft);border-radius:9px;padding:11px 13px}.sim-cell .k{color:var(--muted);font-size:11.5px}.sim-cell .v{color:var(--silt-bright);font-variant-numeric:tabular-nums;margin-top:4px;font-size:17px;font-weight:660}.goal-track{background:var(--hull-3);border-radius:5px;height:9px;margin-top:9px;position:relative;overflow:hidden}.goal-fill{background:linear-gradient(90deg, var(--moss-deep), var(--moss));height:100%;transition:width .3s}.goal-marker{background:var(--silt-bright);width:2px;height:15px;position:absolute;top:-3px;box-shadow:0 0 6px #000000b3}.goal-legend{color:var(--faint);justify-content:space-between;margin-top:6px;font-size:11.5px;display:flex}.watchlist{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.wl-label{color:var(--muted);font-size:13px}.chip{background:var(--hull);border:1px solid var(--line);border-radius:999px;align-items:center;display:inline-flex;overflow:hidden}.chip.active{border-color:var(--rust);background:var(--hull-2)}.chip-btn{color:var(--text);cursor:pointer;background:0 0;border:none;padding:5px 11px;font-family:inherit;font-size:13px}.chip.active .chip-btn{color:var(--silt-bright);font-weight:620}.chip-x{color:var(--faint);cursor:pointer;background:0 0;border:none;padding:5px 9px 5px 2px;font-family:inherit;font-size:14px}.chip-x:hover{color:var(--danger)}.chart-card{background:var(--hull);border:1px solid var(--line);border-radius:14px;padding:12px}.chart-head{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;font-size:13px;display:flex}#tv_chart_container{background:var(--deep);border-radius:10px;width:100%;min-height:320px;overflow:hidden}#tv_chart_container iframe{border:0;display:block}.chart-h{border:1px solid var(--line);background:var(--deep);border-radius:7px;display:inline-flex;overflow:hidden}.chart-h-btn{color:var(--faint);cursor:pointer;border:none;border-right:1px solid var(--line-soft);background:0 0;padding:4px 10px;font-family:inherit;font-size:11.5px;font-weight:600;transition:background .12s,color .12s}.chart-h-btn:last-child{border-right:none}.chart-h-btn:hover{color:var(--silt);background:var(--hull-2)}.chart-h-btn.on{background:var(--rust-deep);color:var(--silt-bright)}.curve-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.curve-toolbar .chart-h{flex-wrap:wrap}.curve-stats{align-items:baseline;gap:11px;font-size:13px;display:flex}.curve-latest{color:var(--silt-bright);font-variant-numeric:tabular-nums;font-size:19px;font-weight:660}.curve-gain{font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.curve-count{color:var(--faint);font-size:11.5px}.curve-box{width:100%;height:300px}.curve-empty{padding:34px 20px}.curve-empty-sub{color:var(--faint);margin-top:8px;font-size:12px}.hcard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}@media (min-width:640px){.hcard-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}}@media (min-width:1024px){.hcard-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.hcard{border:1px solid var(--line);background:linear-gradient(165deg,#18262de6 0%,#0f181ef2 100%);border-radius:13px;flex-direction:column;gap:9px;min-width:0;padding:13px 13px 11px;display:flex}.hcard-top{justify-content:space-between;align-items:flex-start;gap:6px;display:flex}.hcard-id{align-items:center;gap:7px;min-width:0;display:flex}.hcard-dot{border-radius:50%;flex:0 0 7px;width:7px;height:7px}.hcard-name{min-width:0}.hcard-sym{color:var(--text);letter-spacing:.4px;font-size:14px;font-weight:660;line-height:1.25}.hcard-sub{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.hcard-star{vertical-align:1px;margin-left:5px;font-size:11px;line-height:1;display:inline-block;position:relative}.hcard-star-bg{color:#96826447}.hcard-star-fg{white-space:nowrap;color:var(--rust-bright);position:absolute;top:0;left:0;overflow:hidden}.hcard-note{color:var(--muted);border-left:2px solid var(--rust-deep);-webkit-line-clamp:2;background:#8c6b4f1a;border-radius:0 6px 6px 0;-webkit-box-orient:vertical;padding:5px 7px;font-size:10.5px;line-height:1.5;display:-webkit-box;overflow:hidden}.hcard-added{color:var(--faint);font-variant-numeric:tabular-nums;font-size:10px}.hcard-alert{color:var(--silt-dim);background:var(--hull-3);border:1px solid var(--line);border-radius:999px;flex:none;padding:1px 6px;font-size:10px}.hcard-alloc{position:relative}.hcard-alloc-row{justify-content:space-between;align-items:baseline;font-size:11.5px;line-height:1.6;display:flex}.hcard-alloc-k{color:var(--faint)}.hcard-alloc-v{color:var(--text-dim);font-variant-numeric:tabular-nums;font-weight:600}.hcard-alloc-v.strong{color:var(--silt-bright);font-size:13px}.hcard-bar{background:var(--hull-3);border-radius:3px;height:5px;margin:6px 0 5px;position:relative;overflow:visible}.hcard-bar-fill{opacity:.85;border-radius:3px;height:100%}.hcard-bar-target{background:var(--silt-bright);z-index:2;border-radius:1px;width:2px;height:9px;position:absolute;top:-2px;box-shadow:0 0 4px #000000b3}.hcard-alloc .dev-badge{padding:0 5px;font-size:10px;position:absolute;top:0;right:0}.hcard-nums{border-top:1px solid var(--line-soft);grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:8px 0 0;display:grid}.hcard-num-k{color:var(--faint);font-size:10px;line-height:1.4}.hcard-num-v{color:var(--text-dim);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;line-height:1.4;overflow:hidden}.hcard-num-v.mossy{color:var(--moss-bright)}.hcard-num-v.rusty{color:var(--rust-bright)}.hcard-pnl{justify-content:space-between;align-items:baseline;gap:6px;font-size:11px;font-weight:600;display:flex}.hcard-pnl.mossy{color:var(--moss-bright)}.hcard-pnl.rusty{color:var(--up)}.hcard-day{color:var(--faint);font-size:10px;font-weight:500}.hcard-actions{grid-template-columns:repeat(3,1fr);gap:5px;margin-top:2px;display:grid}.hcard-actions button{background:var(--hull-3);border:1px solid var(--line);color:var(--text-dim);cursor:pointer;border-radius:7px;padding:6px 2px;font-family:inherit;font-size:11.5px;transition:border-color .15s,color .15s}.hcard-actions button:hover{border-color:var(--rust);color:var(--silt-bright)}.quote-loading{text-align:center;color:var(--muted);padding:34px 20px;font-size:13px}.quote-chart{background:var(--deep);border-radius:10px;width:100%;height:380px;overflow:hidden}.alloc-stats-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.alloc-stats-title{color:var(--silt);font-size:15px;font-weight:620}.alloc-stats-sub{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:3px;font-size:12px}.alloc-split-bar{border:1px solid var(--line);background:var(--deep);border-radius:7px;height:24px;display:flex;overflow:hidden}.alloc-split-hold{color:#0009;white-space:nowrap;background:linear-gradient(90deg,#6b8f5e,#8fb37f);place-items:center;height:100%;font-size:10.5px;font-weight:700;display:grid;overflow:hidden}.alloc-split-cash{color:#0000008c;white-space:nowrap;background:linear-gradient(90deg,#8c6b4f,#c9a06a);place-items:center;height:100%;font-size:10.5px;font-weight:700;display:grid;overflow:hidden}.alloc-detail{border-top:1px solid var(--line-soft);margin-top:16px;padding-top:12px}.alloc-detail-head,.alloc-detail-row{grid-template-columns:1fr 78px 62px 62px;align-items:center;gap:6px;display:grid}.alloc-detail-head{color:var(--faint);padding-bottom:7px;font-size:10.5px}.alloc-detail-head span:not(:first-child){text-align:right}.alloc-detail-row{border-top:1px solid #1a2a3280;padding:5px 0;font-size:12.5px}.alloc-detail-row>span:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.alloc-detail-sym{color:var(--text);font-weight:620}.alloc-detail-actual{color:var(--silt-bright);font-weight:600}.alloc-detail-target{color:var(--muted)}.alloc-detail-note{color:var(--faint);border-top:1px solid #1a2a3299;margin-top:10px;padding-top:9px;font-size:11px;line-height:1.65}.drift-today{background:#c96a4e14;border:1px solid #c96a4e3d;border-radius:9px;flex-wrap:wrap;align-items:center;gap:7px;margin-top:14px;padding:9px 11px;display:flex}.drift-today-k{color:var(--rust-bright);font-size:11.5px;font-weight:600}.drift-today-chip{color:var(--silt-bright);background:var(--hull-3);border:1px solid var(--line);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:660}.drift-today-note{color:var(--faint);font-size:10.5px}@media (max-width:720px){.alloc-stats .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.alloc-stats .stat{padding:11px 12px}.alloc-stats .stat .value{font-size:19px}.alloc-stats .stat .label{font-size:11px}.alloc-split-hold,.alloc-split-cash{font-size:9.5px}.alloc-detail-head,.alloc-detail-row{grid-template-columns:1fr 62px 52px 54px;font-size:11.5px}}.target-add-btn{background:var(--deep);border:1px dashed var(--line);width:100%;color:var(--text-dim);cursor:pointer;border-radius:10px;margin-bottom:12px;padding:11px;font-family:inherit;font-size:13px;transition:border-color .15s,color .15s}.target-add-btn:hover{border-color:var(--rust);color:var(--silt-bright)}.target-add{background:var(--hull-2);border:1px solid var(--line);border-radius:11px;margin-bottom:12px;padding:13px}.target-add-head{color:var(--silt);justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13.5px;display:flex}.target-card{background:var(--deep);border:1px solid var(--line-soft);border-radius:11px;margin-bottom:9px;padding:11px 12px 13px}.target-card-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.target-del{border:1px solid var(--line);color:var(--faint);cursor:pointer;background:0 0;border-radius:7px;flex:none;padding:3px 9px;font-family:inherit;font-size:11px}.target-del:hover{border-color:var(--danger);color:var(--danger)}.target-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}@media (max-width:560px){.target-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}.star-inline{color:var(--rust-bright);font-weight:700}.target-list{flex-direction:column;gap:4px;display:flex}.target-row{background:var(--deep);border:1px solid var(--line-soft);border-radius:9px;grid-template-columns:1fr 92px 96px;align-items:center;gap:10px;padding:9px 10px;display:grid}.target-sym{min-width:0}.target-amt{color:var(--faint);text-align:right;font-size:11px;line-height:1.5}.target-amt b{color:var(--silt-bright);font-variant-numeric:tabular-nums;font-size:13px;display:block}.target-sum{border-top:1px solid var(--line-soft);color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:8px;margin-top:14px;padding-top:12px;font-size:12.5px;display:flex}.target-sum b{font-variant-numeric:tabular-nums}.target-sum-note{color:var(--faint);font-size:11.5px}.tl{flex-direction:column;gap:8px;display:flex}.tl-item{background:var(--deep);border:1px solid var(--line-soft);border-radius:10px;align-items:flex-start;gap:10px;padding:11px 12px;display:flex}.tl-main{flex:1;gap:10px;min-width:0;display:flex}.tl-info{flex:1;min-width:0}.tl-line1{flex-wrap:wrap;align-items:baseline;gap:9px;display:flex}.tl-qty{color:var(--text);font-variant-numeric:tabular-nums;font-size:13px;font-weight:620}.tl-px{color:var(--silt-bright);font-variant-numeric:tabular-nums;font-size:13px}.tl-date{color:var(--faint);font-size:11px}.tl-line2{color:var(--muted);word-break:break-word;margin-top:3px;font-size:11.5px;line-height:1.55}.tl-pair{color:var(--moss-bright);background:#6b8f5e1a;border:1px solid #6b8f5e42;border-radius:7px;margin-top:6px;padding:5px 8px;font-size:11.5px;line-height:1.55}.tl-pair.rusty{color:var(--up);background:#c96a4e1a;border-color:#c96a4e47}.tl-pair.muted{background:var(--hull-3);border-color:var(--line);color:var(--muted)}.tl-pair b{font-variant-numeric:tabular-nums}.tl-pair-pct{opacity:.85;font-variant-numeric:tabular-nums}.tl-actions{flex:none;gap:5px;display:flex}.tl-btn{background:var(--hull-3);border:1px solid var(--line);color:var(--muted);cursor:pointer;border-radius:7px;padding:4px 9px;font-family:inherit;font-size:11.5px}.tl-btn:hover{border-color:var(--rust);color:var(--silt)}.tl-btn.danger:hover{border-color:var(--danger);color:var(--danger)}.trade-form{background:var(--hull-2);border:1px solid var(--line);border-radius:11px;margin-bottom:16px;padding:14px}.trade-form-head{color:var(--silt);justify-content:space-between;align-items:center;margin-bottom:12px;font-size:13.5px;display:flex}.seg{border:1px solid var(--line);border-radius:8px;display:inline-flex;overflow:hidden}.seg-btn{color:var(--faint);cursor:pointer;background:0 0;border:none;padding:5px 13px;font-family:inherit;font-size:12px;font-weight:600}.seg-btn.on.buy{color:var(--up);background:#c96a4e29}.seg-btn.on.sell{color:var(--down);background:#5f9a6e29}.btn-primary.danger{background:linear-gradient(150deg,#8a3f2c,#5f2c1f);border-color:#b5563f66}.modal-root{z-index:200;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal-mask{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#030609b8;animation:.16s fadeIn;position:absolute;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-panel{border:1px solid var(--line);background:linear-gradient(170deg,#18262dfa 0%,#0d151afc 100%);border-bottom:none;border-radius:20px 20px 0 0;flex-direction:column;width:100%;max-width:560px;max-height:88vh;animation:.22s cubic-bezier(.22,1,.36,1) sheetUp;display:flex;position:relative;box-shadow:0 -18px 60px #000000a8}.modal-panel.wide{max-width:860px}@keyframes sheetUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.modal-head{border-bottom:1px solid var(--line-soft);flex:none;align-items:flex-start;gap:12px;padding:18px 20px 14px;display:flex}.modal-head-text{flex:1;min-width:0}.modal-head h3{color:var(--silt-bright);letter-spacing:.2px;font-size:16px;font-weight:620}.modal-head span{color:var(--muted);margin-top:3px;font-size:12px;display:block}.modal-x{background:var(--hull-2);border:1px solid var(--line);color:var(--text-dim);cursor:pointer;border-radius:8px;flex:0 0 30px;place-items:center;width:30px;height:30px;font-family:inherit;font-size:19px;line-height:1;display:grid}.modal-x:hover{border-color:var(--danger);color:var(--danger)}.modal-body{-webkit-overflow-scrolling:touch;flex:auto;padding:16px 20px 20px;overflow-y:auto}.modal-foot{border-top:1px solid var(--line-soft);background:#0a101599;flex:none;justify-content:flex-end;gap:10px;padding:13px 20px;display:flex}@media (min-width:720px){.modal-root{align-items:center;padding:24px}.modal-panel{border-bottom:1px solid var(--line);border-radius:16px;max-height:84vh;animation:.18s cubic-bezier(.22,1,.36,1) popIn}@keyframes popIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}}.row{flex-wrap:wrap;gap:10px;display:flex}.cp-input{background:var(--hull-2);border:1px solid var(--line);color:var(--text);border-radius:8px;outline:none;flex:1;min-width:220px;padding:9px 11px;font-family:inherit;font-size:13px}.cp-input:focus{border-color:var(--rust-bright)}.export-bar{color:var(--muted);align-items:center;gap:10px;margin-top:16px;font-size:13px;display:flex}.export-actions{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.btn-ghost{background:var(--hull);border:1px solid var(--line);color:var(--text-dim);cursor:pointer;border-radius:8px;padding:8px 13px;font-family:inherit;font-size:12.5px}.btn-ghost:hover{border-color:var(--rust);color:var(--silt)}.auth-bar{justify-content:flex-end;align-items:center;gap:10px;margin-bottom:10px;display:flex}.auth-user{color:var(--muted);font-size:12.5px}.footer{border-top:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:18px;margin-top:52px;padding-top:26px;display:flex}.footer .mascot{object-fit:contain;opacity:.88;filter:drop-shadow(0 8px 18px #00000080);flex:0 0 76px;width:76px;height:76px}.footer-text{min-width:220px;color:var(--faint);flex:1;font-size:12px;line-height:1.9}.footer-text b{color:var(--silt-dim);font-weight:600}@media (max-width:640px){.app{padding:20px 14px 56px}.pick-row{grid-template-columns:1fr 1fr}.pick-row .field:first-child{grid-column:1/-1}.trade-row{grid-template-columns:1fr 1fr;gap:6px}.trade-row .trade-reason{grid-column:1/-1}.anchor-hero{text-align:center;flex-direction:column}}
