:root{--bg: #0a0b0e;--s1: #11131a;--s2: #181b24;--s3: #1e2230;--border: rgba(255, 255, 255, .07);--border-b: rgba(255, 255, 255, .13);--text: #e4e5ea;--sub: #828a9e;--muted: #545c72;--green: #3ecf82;--red: #f05a55;--blue: #5b8def;--gold: #d4af64;--color-up: var(--red);--color-down: var(--green);--color-neutral: var(--muted);--font-family: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", sans-serif;--font-family-mono: "JetBrains Mono", "SF Mono", "Consolas", monospace;--font-size-xs: 10px;--font-size-sm: 11px;--font-size-base: 12px;--font-size-md: 13px;--font-size-lg: 14px;--font-size-xl: 16px;--font-size-2xl: 18px;--font-size-3xl: 24px;--font-size-4xl: 32px;--font-size-5xl: 36px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.8;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 18px;--radius-full: 9999px;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--shadow-md: 0 4px 12px rgba(0, 0, 0, .15);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .2);--shadow-xl: 0 20px 56px rgba(2, 8, 20, .5);--shadow-float: 0 24px 64px rgba(0, 0, 0, .45);--surface-faint: color-mix(in srgb, var(--text) 2.5%, transparent);--surface-soft: color-mix(in srgb, var(--text) 4%, transparent);--surface-soft-hover: color-mix(in srgb, var(--text) 7%, transparent);--surface-strong: color-mix(in srgb, var(--text) 9%, transparent);--surface-divider: color-mix(in srgb, var(--text) 6%, transparent);--surface-track: color-mix(in srgb, var(--text) 7%, transparent);--surface-highlight: color-mix(in srgb, var(--blue) 14%, transparent);--overlay-soft: rgba(0, 0, 0, .55);--overlay-strong: rgba(0, 0, 0, .76);--panel-elevated: color-mix(in srgb, var(--s1) 94%, #fff 6%);--panel-muted: color-mix(in srgb, var(--s2) 96%, #fff 4%);--sidebar-width: 220px;--topbar-height: 56px;--container-max-width: 1400px;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--duration-fast: .14s;--duration-base: .16s;--duration-slow: .22s;--easing-default: cubic-bezier(.4, 0, .2, 1);--easing-in: cubic-bezier(.4, 0, 1, 1);--easing-out: cubic-bezier(0, 0, .2, 1);--easing-in-out: cubic-bezier(.4, 0, .6, 1)}[data-theme=light]{--bg: #f5f5f7;--s1: #ffffff;--s2: #e8e8ec;--s3: #d4d4d8;--border: rgba(0, 0, 0, .08);--border-b: rgba(0, 0, 0, .12);--text: #1a1a1a;--sub: #6b6b7b;--muted: #9a9a9a;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--shadow-xl: 0 20px 56px rgba(15, 23, 42, .14);--shadow-float: 0 28px 72px rgba(15, 23, 42, .16);--surface-faint: rgba(15, 23, 42, .025);--surface-soft: rgba(15, 23, 42, .04);--surface-soft-hover: rgba(15, 23, 42, .07);--surface-strong: rgba(15, 23, 42, .09);--surface-divider: rgba(15, 23, 42, .08);--surface-track: rgba(15, 23, 42, .1);--surface-highlight: rgba(91, 141, 239, .1);--overlay-soft: rgba(15, 23, 42, .26);--overlay-strong: rgba(15, 23, 42, .42);--panel-elevated: linear-gradient(180deg, #ffffff, #fbfcff);--panel-muted: #ffffff}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-family);background:var(--bg);color:var(--text);line-height:var(--line-height-normal);overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--text)}h1{font-size:var(--font-size-5xl)}h2{font-size:var(--font-size-4xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-md)}p{margin-bottom:var(--space-3)}a{color:var(--blue);text-decoration:none;transition:color var(--duration-fast) var(--easing-default)}a:hover{color:#7aa0ff}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:#ffffff26}*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent}button{cursor:pointer;font-family:inherit;border:none;background:none;color:inherit}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;background:transparent;border:none;outline:none}input:focus,textarea:focus,select:focus{outline:none}::selection{background:#5b8def4d;color:var(--text)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.flex{display:flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-start{display:flex;align-items:center;justify-content:flex-start}.flex-end{display:flex;align-items:center;justify-content:flex-end}.flex-1{flex:1}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.gap-6{gap:var(--space-6)}.p-1{padding:var(--space-1)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-5{padding:var(--space-5)}.p-6{padding:var(--space-6)}.px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.m-1{margin:var(--space-1)}.m-2{margin:var(--space-2)}.m-3{margin:var(--space-3)}.m-4{margin:var(--space-4)}.m-5{margin:var(--space-5)}.m-6{margin:var(--space-6)}.mx-auto{margin-left:auto;margin-right:auto}.my-auto{margin-top:auto;margin-bottom:auto}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-5{margin-top:var(--space-5)}.mt-6{margin-top:var(--space-6)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-5{margin-bottom:var(--space-5)}.mb-6{margin-bottom:var(--space-6)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-md{font-size:var(--font-size-md)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.text-4xl{font-size:var(--font-size-4xl)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--muted)}.text-sub{color:var(--sub)}.text-primary{color:var(--text)}.text-up{color:var(--color-up)}.text-down{color:var(--color-down)}.text-neutral{color:var(--color-neutral)}.mono{font-family:var(--font-family-mono)}.text-blue{color:var(--blue)}.text-green{color:var(--green)}.text-red{color:var(--red)}.text-gold{color:var(--gold)}.bg-blue{background-color:var(--blue)}.bg-green{background-color:var(--green)}.bg-red{background-color:var(--red)}.bg-gold{background-color:var(--gold)}.border{border:1px solid var(--border)}.border-b{border-bottom:1px solid var(--border)}.border-t{border-top:1px solid var(--border)}.border-l{border-left:1px solid var(--border)}.border-r{border-right:1px solid var(--border)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:var(--radius-full)}.hidden{display:none}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.w-full{width:100%}.h-full{height:100%}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-scroll{overflow:scroll}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-100{opacity:1}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.cursor-default{cursor:default}.transition{transition:all var(--duration-base) var(--easing-default)}.transition-fast{transition:all var(--duration-fast) var(--easing-default)}.transition-slow{transition:all var(--duration-slow) var(--easing-default)}.card{background:var(--s1);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-4);box-shadow:var(--shadow-sm)}.input{background:var(--s2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);color:var(--text);transition:all var(--duration-base) var(--easing-default)}.input:hover{border-color:var(--border-b)}.input:focus{border-color:var(--blue);box-shadow:0 0 0 2px #5b8def1a}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);cursor:pointer;transition:all var(--duration-base) var(--easing-default)}.btn-primary{background:linear-gradient(135deg,#5b8def,#4a7be0);color:#fff;box-shadow:0 4px 14px #4a7be047}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 18px #4a7be061}.btn-ghost{background:var(--s2);border:1px solid var(--border);color:var(--sub)}.btn-ghost:hover{background:var(--s3);color:var(--text)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold)}.badge-up{color:var(--red);background:#f05a551f}.badge-down{color:var(--green);background:#3ecf821f}.badge-neutral{color:var(--muted);background:#ffffff0f}.tag{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.05em}.tag-hk{color:#e06b3a;background:#e06b3a21}.tag-us{color:var(--blue);background:#5b8def21}.tag-a{color:var(--green);background:#3ecf821f}.tag-fund{color:var(--gold);background:#d4af641f}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-fadeIn{animation:fadeIn var(--duration-slow) var(--easing-out)}.animate-fadeInUp{animation:fadeInUp var(--duration-slow) var(--easing-out)}.animate-fadeInDown{animation:fadeInDown var(--duration-slow) var(--easing-out)}.animate-scaleIn{animation:scaleIn var(--duration-slow) var(--easing-out)}.hover-lift{transition:transform var(--duration-base) var(--easing-out)}.hover-lift:hover{transform:translateY(-2px)}.active-press:active{transform:scale(.98)}.animate-shimmer{animation:shimmer 2s infinite linear;background:linear-gradient(90deg,var(--s2) 0%,var(--s3) 50%,var(--s2) 100%);background-size:1000px 100%}.animate-spin{animation:spin 1s linear infinite}.transition-all{transition:all var(--duration-base) var(--easing-default)}.transition-colors{transition:color var(--duration-base) var(--easing-default),background-color var(--duration-base) var(--easing-default),border-color var(--duration-base) var(--easing-default)}.transition-opacity{transition:opacity var(--duration-base) var(--easing-default)}.transition-transform{transition:transform var(--duration-base) var(--easing-default)}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-500{animation-delay:.5s}.duration-fast{animation-duration:var(--duration-fast)}.duration-base{animation-duration:var(--duration-base)}.duration-slow{animation-duration:var(--duration-slow)}.glass{background:#11131acc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.glow-blue{box-shadow:0 0 20px #5b8def4d}.glow-green{box-shadow:0 0 20px #3ecf824d}.glow-red{box-shadow:0 0 20px #f05a554d}.glow-gold{box-shadow:0 0 20px #d4af644d}.gradient-blue{background:linear-gradient(135deg,#5b8def,#4a7be0)}.gradient-green{background:linear-gradient(135deg,#3ecf82,#2db870)}.gradient-red{background:linear-gradient(135deg,#f05a55,#e04845)}.gradient-gold{background:linear-gradient(135deg,#d4af64,#c49a54)}.card{background:linear-gradient(180deg,color-mix(in srgb,var(--s1) 96%,#fff 4%),var(--s1));border:1px solid var(--border);border-radius:16px;padding:20px}.section-label{font-family:var(--font-family-mono);font-size:10px;font-weight:500;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;margin-bottom:12px}.badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;padding:2px 7px;border-radius:5px}.badge.up{color:var(--red);background:#f05a551f}.badge.dn{color:var(--green);background:#3ecf821f}.tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.05em;padding:2px 6px;border-radius:4px}.tag.hk{color:#e06b3a;background:#e06b3a21}.tag.us{color:var(--blue);background:#5b8def21}.tag.a{color:var(--green);background:#3ecf821f}.tag.fund{color:var(--gold);background:#d4af641f}.tabs{display:flex;gap:4px;background:color-mix(in srgb,var(--text) 4%,transparent);border:1px solid var(--border);border-radius:10px;padding:3px}.tab{padding:7px 16px;border-radius:7px;border:none;background:transparent;font-family:inherit;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;transition:all .16s}.tab.active{background:color-mix(in srgb,var(--text) 8%,transparent);color:var(--text);box-shadow:0 2px 6px #0f172a1f}.progress-wrap{height:3px;background:color-mix(in srgb,var(--text) 7%,transparent);border-radius:2px;position:relative;overflow:hidden}.progress-fill{position:absolute;top:0;bottom:0;border-radius:2px}.progress-center{position:absolute;left:50%;top:0;bottom:0;width:1px;background:color-mix(in srgb,var(--text) 20%,transparent)}.progress-fill.up{left:50%;background:var(--red)}.progress-fill.dn{right:50%;background:var(--green)}.holding-row{display:flex;align-items:center;gap:12px;padding:12px 14px;background:color-mix(in srgb,var(--text) 2.5%,transparent);border:1px solid var(--border);border-radius:12px;transition:background .15s,border-color .15s;cursor:pointer}.holding-row:hover{background:color-mix(in srgb,var(--text) 5%,transparent);border-color:var(--border-b)}.mkt-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid color-mix(in srgb,var(--text) 4%,transparent)}.mkt-row:last-child{border:none;padding-bottom:0}.mkt-row:first-child{padding-top:0}.mkt-name{font-size:13px;font-weight:600;color:var(--sub)}.mkt-val{font-family:var(--font-family-mono);font-size:12px;font-weight:500}
