.ks-signin-modal[data-astro-cid-xl54tsu2]{position:fixed;inset:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:16px}.ks-signin-backdrop[data-astro-cid-xl54tsu2]{position:absolute;inset:0;background:#000000b3;backdrop-filter:blur(6px)}.ks-signin-card[data-astro-cid-xl54tsu2]{position:relative;z-index:1;width:100%;max-width:440px;background:var(--bg-card);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-lg);overflow:hidden;max-height:90vh;overflow-y:auto}.ks-signin-close[data-astro-cid-xl54tsu2]{position:absolute;top:14px;right:14px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-secondary);border-radius:8px;cursor:pointer;transition:all .2s ease;z-index:2}.ks-signin-close[data-astro-cid-xl54tsu2]:hover{background:var(--bg-elevated);color:var(--text-primary)}.ks-signin-close[data-astro-cid-xl54tsu2] svg[data-astro-cid-xl54tsu2]{width:20px;height:20px}.ks-signin-pad[data-astro-cid-xl54tsu2]{padding:36px 32px 28px}.ks-signin-brand[data-astro-cid-xl54tsu2]{margin-bottom:18px}.ks-signin-brand-text[data-astro-cid-xl54tsu2]{font-size:1.4rem;font-weight:700;background:linear-gradient(135deg,#0ea5e9,#22c55e);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.ks-signin-title[data-astro-cid-xl54tsu2]{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0 0 6px}.ks-signin-subtitle[data-astro-cid-xl54tsu2]{color:var(--text-secondary);font-size:.875rem;margin:0 0 20px}.ks-signin-msg[data-astro-cid-xl54tsu2]{padding:10px 14px;border-radius:10px;font-size:.85rem;margin-bottom:14px}.ks-signin-msg-error[data-astro-cid-xl54tsu2]{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5}.ks-signin-msg-success[data-astro-cid-xl54tsu2]{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#86efac}.ks-signin-form[data-astro-cid-xl54tsu2]{display:flex;flex-direction:column;gap:12px}.ks-signin-label[data-astro-cid-xl54tsu2]{color:var(--text-primary);font-size:.85rem;font-weight:500}.ks-signin-input[data-astro-cid-xl54tsu2]{width:100%;padding:11px 14px;border-radius:10px;background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-primary);font-size:.95rem;transition:all .2s ease;box-sizing:border-box}.ks-signin-input[data-astro-cid-xl54tsu2]::placeholder{color:var(--text-secondary)}.ks-signin-input[data-astro-cid-xl54tsu2]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #0ea5e933}.ks-signin-row[data-astro-cid-xl54tsu2]{display:flex;align-items:center;justify-content:space-between;margin-top:-2px}.ks-signin-remember[data-astro-cid-xl54tsu2]{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:.8rem;cursor:pointer}.ks-signin-remember[data-astro-cid-xl54tsu2] input[data-astro-cid-xl54tsu2]{width:14px;height:14px;accent-color:var(--accent)}.ks-signin-link[data-astro-cid-xl54tsu2]{background:none;border:none;color:var(--accent);font-size:.85rem;cursor:pointer;padding:0;text-decoration:none}.ks-signin-link[data-astro-cid-xl54tsu2]:hover{opacity:.8}.ks-signin-btn[data-astro-cid-xl54tsu2]{margin-top:6px;padding:12px 18px;border-radius:10px;border:none;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;color:#fff}.ks-signin-btn[data-astro-cid-xl54tsu2]:disabled{opacity:.6;cursor:not-allowed}.ks-signin-btn-primary[data-astro-cid-xl54tsu2]{background:var(--accent);color:#fff}.ks-signin-btn-primary[data-astro-cid-xl54tsu2]:hover{opacity:.9}.ks-signin-btn-gradient[data-astro-cid-xl54tsu2]{background:linear-gradient(135deg,var(--accent),var(--accent-2, #22c55e))}.ks-signin-btn-gradient[data-astro-cid-xl54tsu2]:hover{opacity:.9;transform:translateY(-1px)}.ks-signin-code-row[data-astro-cid-xl54tsu2]{display:flex;gap:8px}.ks-signin-input-code[data-astro-cid-xl54tsu2]{flex:1;text-align:center;letter-spacing:.4em;font-family:monospace}.ks-signin-resend[data-astro-cid-xl54tsu2]{padding:11px 16px;border-radius:10px;background:none;border:1px solid var(--border);color:var(--text-primary);cursor:pointer;white-space:nowrap;font-size:.85rem}.ks-signin-resend[data-astro-cid-xl54tsu2]:hover{background:var(--bg-elevated)}.ks-signin-resend[data-astro-cid-xl54tsu2]:disabled{opacity:.5;cursor:not-allowed}.ks-signin-hint[data-astro-cid-xl54tsu2]{color:var(--text-secondary);font-size:.78rem;margin:-4px 0 0}.ks-signin-switch[data-astro-cid-xl54tsu2]{text-align:center;margin-top:18px;color:var(--text-secondary);font-size:.85rem}.ks-signin-back[data-astro-cid-xl54tsu2]{text-align:center;margin-top:14px}.theme-toggle-btn[data-astro-cid-3ef6ksr2]{width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--bg-card);display:inline-flex;align-items:center;justify-content:center;transition:transform .2s,border-color .2s;font-size:16px}.theme-toggle-btn[data-astro-cid-3ef6ksr2]:hover{transform:scale(1.1);border-color:var(--accent)}:root:not([data-theme=dark]) .theme-icon-light[data-astro-cid-3ef6ksr2]{display:inline}:root:not([data-theme=dark]) .theme-icon-dark[data-astro-cid-3ef6ksr2]{display:none}[data-astro-cid-3ef6ksr2][data-theme=dark] .theme-icon-light[data-astro-cid-3ef6ksr2]{display:none}[data-astro-cid-3ef6ksr2][data-theme=dark] .theme-icon-dark[data-astro-cid-3ef6ksr2]{display:inline}.lang-switcher[data-astro-cid-3ef6ksr2]{position:relative}.lang-switcher[data-astro-cid-3ef6ksr2]>button[data-astro-cid-3ef6ksr2]{height:36px;padding:0 12px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);border-radius:var(--radius-sm);font-size:.9rem;font-weight:600}.lang-switcher[data-astro-cid-3ef6ksr2]>button[data-astro-cid-3ef6ksr2]:hover{border-color:var(--accent)}.lang-dropdown[data-astro-cid-3ef6ksr2]{position:absolute;top:calc(100% + 6px);right:0;min-width:140px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px;box-shadow:var(--shadow-lg);display:none;z-index:110}.lang-switcher[data-astro-cid-3ef6ksr2]:hover .lang-dropdown[data-astro-cid-3ef6ksr2],.lang-switcher[data-astro-cid-3ef6ksr2]:focus-within .lang-dropdown[data-astro-cid-3ef6ksr2]{display:block}.lang-dropdown[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{display:block;padding:8px 12px;color:var(--text-primary);border-radius:4px;font-size:.9rem}.lang-dropdown[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover{background:var(--bg-elevated);color:var(--accent)}.lang-dropdown[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2][aria-current=true]{color:var(--accent);font-weight:600}.user-menu[data-astro-cid-3ef6ksr2]{position:relative}.user-toggle[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;gap:.5rem;padding:4px 10px 4px 4px;border:1px solid var(--border);background:var(--bg-card);border-radius:9999px;cursor:pointer;transition:all .2s ease;color:var(--text-primary)}.user-toggle[data-astro-cid-3ef6ksr2]:hover{border-color:var(--accent)}.user-avatar[data-astro-cid-3ef6ksr2]{width:28px;height:28px;border-radius:9999px;background:linear-gradient(135deg,var(--accent),var(--accent-2, #22c55e));display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:.75rem;font-weight:700;flex-shrink:0}.user-name[data-astro-cid-3ef6ksr2]{font-size:.875rem;font-weight:500;max-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-chevron[data-astro-cid-3ef6ksr2]{width:14px;height:14px;flex-shrink:0}.user-dropdown[data-astro-cid-3ef6ksr2]{position:absolute;top:calc(100% + 6px);right:0;min-width:220px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px;box-shadow:var(--shadow-lg);display:none;z-index:110;overflow:hidden}.user-dropdown[data-astro-cid-3ef6ksr2].open{display:block}.user-info[data-astro-cid-3ef6ksr2]{padding:10px 12px;border-bottom:1px solid var(--border)}.user-info-name[data-astro-cid-3ef6ksr2]{font-size:.875rem;font-weight:600;color:var(--text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-info-email[data-astro-cid-3ef6ksr2]{font-size:.75rem;color:var(--text-secondary);margin:2px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-link[data-astro-cid-3ef6ksr2]{display:block;padding:10px 12px;color:var(--text-primary);border-radius:4px;font-size:.875rem;text-decoration:none}.user-link[data-astro-cid-3ef6ksr2]:hover{background:var(--bg-elevated);color:var(--accent)}.user-logout[data-astro-cid-3ef6ksr2]{width:100%;text-align:left;padding:10px 12px;background:none;border:none;color:#f87171;font-size:.875rem;border-radius:4px;cursor:pointer}.user-logout[data-astro-cid-3ef6ksr2]:hover{background:#f871711a}:root{--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-card: #ffffff;--bg-elevated: #f1f5f9;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--accent: #0ea5e9;--accent-hover: #0284c7;--accent-soft: #e0f2fe;--success: #16a34a;--success-soft: #dcfce7;--danger: #dc2626;--danger-soft: #fee2e2;--up: #dc2626;--up-soft: #fee2e2;--down: #16a34a;--down-soft: #dcfce7;--warning: #f59e0b;--warning-soft: #fef3c7;--border: #e2e8f0;--border-hover: #cbd5e1;--gradient-start: #0ea5e9;--gradient-end: #22c55e;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .1);--shadow-hover: 0 8px 20px rgba(14, 165, 233, .15);--radius-sm: 6px;--radius: 10px;--radius-lg: 16px;--container: 1200px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}[data-theme=dark]{--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-card: #1e293b;--bg-elevated: #334155;--text-primary: #f1f5f9;--text-secondary: #cbd5e1;--text-muted: #64748b;--accent: #38bdf8;--accent-hover: #0ea5e9;--accent-soft: #0c4a6e;--success: #4ade80;--success-soft: #14532d;--danger: #f87171;--danger-soft: #7f1d1d;--up: #f87171;--up-soft: #7f1d1d;--down: #4ade80;--down-soft: #14532d;--warning: #fbbf24;--warning-soft: #78350f;--border: #334155;--border-hover: #475569;--gradient-start: #38bdf8;--gradient-end: #4ade80;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .5);--shadow-hover: 0 8px 20px rgba(56, 189, 248, .2)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh;transition:background .3s ease,color .3s ease;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--accent);text-decoration:none;transition:color .2s ease}a:hover{color:var(--accent-hover)}img,svg,video{max-width:100%;height:auto;display:block}button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}input,textarea,select{font:inherit;color:inherit}.container{max-width:var(--container);margin:0 auto;padding:0 24px}.section{padding:80px 0}@media (max-width: 768px){.section{padding:48px 0}.container{padding:0 16px}}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2;color:var(--text-primary)}h1{font-size:clamp(2rem,5vw,3.5rem);margin-bottom:16px}h2{font-size:clamp(1.6rem,4vw,2.5rem);margin-bottom:16px}h3{font-size:clamp(1.2rem,3vw,1.5rem);margin-bottom:12px}h4{font-size:1.1rem;margin-bottom:8px}p{margin-bottom:12px;color:var(--text-secondary)}.gradient-text{background:linear-gradient(135deg,var(--gradient-start),var(--gradient-end));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;background:linear-gradient(135deg,var(--gradient-start),var(--gradient-end));color:#fff;border:none;border-radius:var(--radius);font-weight:600;font-size:.95rem;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease;text-decoration:none;white-space:nowrap}.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover);color:#fff}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{background:transparent;color:var(--accent);border:2px solid var(--accent)}.btn-secondary:hover{background:var(--accent);color:#fff}.btn-ghost{background:transparent;color:var(--text-primary);border:1px solid var(--border)}.btn-ghost:hover{background:var(--bg-elevated);color:var(--text-primary)}.btn-sm{padding:6px 12px;font-size:.85rem}.btn-lg{padding:16px 32px;font-size:1.05rem}.card{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);padding:24px;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.card:hover{border-color:var(--border-hover);box-shadow:var(--shadow)}.input,.select,.textarea{width:100%;padding:10px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);outline:none;transition:border-color .2s ease,box-shadow .2s ease}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.textarea{min-height:100px;resize:vertical;font-family:inherit}.site-header{background:var(--bg-primary);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;backdrop-filter:saturate(180%) blur(8px);-webkit-backdrop-filter:saturate(180%) blur(8px);background-color:color-mix(in srgb,var(--bg-primary) 85%,transparent)}.site-header .nav{display:flex;align-items:center;justify-content:space-between;padding:16px 0;gap:16px}.site-header .logo{display:flex;align-items:center;gap:8px;font-size:1.25rem;font-weight:800;color:var(--text-primary)}.site-header .logo svg{width:32px;height:32px}.site-header .nav-links{display:flex;align-items:center;gap:24px;list-style:none}.site-header .nav-links a{color:var(--text-secondary);font-weight:500;font-size:.95rem;transition:color .2s ease}.site-header .nav-links a:hover,.site-header .nav-links a.active{color:var(--accent)}.site-header .nav-tools{display:flex;align-items:center;gap:8px}@media (max-width: 900px){.site-header .nav-links{display:none}}.site-footer{background:var(--bg-secondary);border-top:1px solid var(--border);padding:60px 0 24px;margin-top:60px}.site-footer .footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:32px;margin-bottom:32px}.site-footer h4{color:var(--text-primary);margin-bottom:16px;font-size:.95rem;text-transform:uppercase;letter-spacing:.05em}.site-footer ul{list-style:none}.site-footer ul li{margin-bottom:8px}.site-footer ul a{color:var(--text-secondary);font-size:.9rem}.site-footer ul a:hover{color:var(--accent)}.site-footer .footer-bottom{border-top:1px solid var(--border);padding-top:24px;text-align:center;color:var(--text-muted);font-size:.85rem}.site-footer .disclaimer{color:var(--text-muted);font-size:.8rem;margin-top:16px;line-height:1.5}.hero{text-align:center;padding:80px 0 60px}.hero .badge{display:inline-block;padding:6px 16px;background:var(--accent-soft);color:var(--accent);border-radius:999px;font-size:.85rem;font-weight:600;margin-bottom:24px}.hero h1{margin-bottom:24px}.hero p{font-size:1.15rem;max-width:720px;margin:0 auto 32px}.hero .cta-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:40px}.feature-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:28px;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.feature-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:var(--shadow-hover)}.feature-card .icon{width:48px;height:48px;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:16px}.feature-card h3{font-size:1.15rem}.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;margin-top:40px}.step{text-align:center;padding:24px;position:relative}.step .num{display:inline-block;width:48px;height:48px;line-height:48px;border-radius:50%;background:linear-gradient(135deg,var(--gradient-start),var(--gradient-end));color:#fff;font-weight:700;margin-bottom:16px}.pricing-card{max-width:520px;margin:40px auto 0;background:var(--bg-card);border:2px solid var(--accent);border-radius:var(--radius-lg);padding:40px;text-align:center;box-shadow:var(--shadow-lg)}.pricing-card .price{font-size:4rem;font-weight:800;background:linear-gradient(135deg,var(--gradient-start),var(--gradient-end));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin:16px 0}.pricing-card .features-list{list-style:none;text-align:left;margin:24px 0;display:grid;gap:8px}.pricing-card .features-list li{display:flex;align-items:center;gap:8px;color:var(--text-secondary)}.pricing-card .features-list li:before{content:"✓";color:var(--success);font-weight:700}.testimonials{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:40px}.testimonial{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:28px}.testimonial .quote{font-style:italic;color:var(--text-secondary);margin-bottom:16px;line-height:1.7}.testimonial .author{display:flex;align-items:center;gap:12px}.testimonial .avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--gradient-start),var(--gradient-end));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}.testimonial .name{font-weight:600;color:var(--text-primary)}.testimonial .role{font-size:.85rem;color:var(--text-muted)}.faq-list{max-width:800px;margin:40px auto 0;display:grid;gap:12px}.faq-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.faq-item summary{padding:20px;cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;align-items:center}.faq-item summary:after{content:"+";font-size:1.5rem;color:var(--accent);transition:transform .2s ease}.faq-item[open] summary:after{transform:rotate(45deg)}.faq-item .answer{padding:0 20px 20px;color:var(--text-secondary)}.cta-banner{background:linear-gradient(135deg,var(--gradient-start),var(--gradient-end));color:#fff;border-radius:var(--radius-lg);padding:60px 40px;text-align:center;margin:40px 0}.cta-banner h2{color:#fff}.cta-banner p{color:#ffffffe6;margin-bottom:32px}.cta-banner .btn{background:#fff;color:var(--accent)}.cta-banner .btn:hover{background:var(--bg-secondary)}.stock-hero{background:linear-gradient(135deg,var(--gradient-start),var(--gradient-end));color:#fff;padding:60px 0 40px;border-radius:var(--radius-lg);margin-bottom:32px}.stock-hero h1{color:#fff}.stock-hero .meta{color:#ffffffe6}.text-center{text-align:center}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}.mb-4{margin-bottom:32px}.flex{display:flex}.flex-col{flex-direction:column}.gap-2{gap:16px}.gap-3{gap:24px}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}@media (max-width: 768px){.hero{padding:48px 0 32px}.hero p{font-size:1rem}.cta-banner{padding:40px 20px}.pricing-card{padding:24px}.pricing-card .price{font-size:3rem}}@media print{.site-header,.site-footer,.cta-banner,.btn{display:none}body{background:#fff;color:#000}}.app-root{width:100%;margin:0 auto;padding:0 24px}.app-loading{text-align:center;padding:80px 0;color:var(--text-muted)}.app-gate{min-height:60vh;display:flex;align-items:center;justify-content:center}.app-gate-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg, 16px);padding:48px 32px;max-width:480px;width:100%;box-shadow:var(--shadow-md, 0 4px 12px rgba(0,0,0,.08))}.app-gate-card h2{margin:0 0 12px;color:var(--text-primary);font-size:1.5rem}.app-gate-card p{color:var(--text-secondary);margin:0 0 24px;font-size:.95rem;line-height:1.6}.app-gate-btn{background:linear-gradient(135deg,var(--accent),#22c55e);color:#fff;border:none;padding:12px 24px;border-radius:9999px;font-weight:600;cursor:pointer;font-size:1rem;transition:opacity .2s ease,transform .2s ease}.app-gate-btn:hover{opacity:.9;transform:translateY(-1px)}.app-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border)}.app-header h1{font-size:1.5rem;margin:0}.app-tabs{display:flex;gap:4px;flex-wrap:wrap}.app-tabs button{padding:8px 16px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;font-weight:500;font-family:inherit;font-size:.9rem;transition:all .2s ease}.app-tabs button:hover{border-color:var(--accent);color:var(--text-primary)}.app-tabs button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px}.kpi-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.kpi-label{font-size:.85rem;color:var(--text-muted);margin-bottom:4px}.kpi-value{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.kpi-change{font-size:.85rem;margin-top:4px}.pos{color:var(--up)}.neg{color:var(--down)}.actions-bar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.cost-method-label{font-size:.9rem;color:var(--text-secondary);margin-left:auto}.cost-method-label strong{color:var(--accent)}.holdings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}@media (max-width: 1100px){.holdings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 720px){.holdings-grid{grid-template-columns:1fr}}.holding-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:border-color .2s ease,box-shadow .2s ease}.holding-card:hover{border-color:var(--border-hover)}.holding-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.holding-header h3{margin:0 0 4px;font-size:1.1rem}.holding-header h3 .code{color:var(--text-muted);font-weight:400;font-size:.9rem}.holding-header .meta{font-size:.85rem;color:var(--text-muted);margin:0}.holding-price{text-align:right;position:relative;cursor:help}.holding-price .price{font-size:1.3rem;font-weight:700}.price-map-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:50;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md, 8px);padding:10px 14px 8px;box-shadow:0 8px 24px #0f172a2e;min-width:280px;max-height:380px;overflow:hidden}.price-map-title{font-size:.7rem;font-weight:600;color:var(--text-secondary);margin-bottom:4px;letter-spacing:.04em;text-transform:uppercase}.price-map svg{display:block;margin:0 auto}.price-ladder{list-style:none;padding:0;margin:0;max-height:320px;overflow-y:auto}.price-row{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px dashed var(--border);font-size:.95rem}.price-row:last-child{border-bottom:0}.price-row .price-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.price-row-buy .price-dot{background:var(--success, #22c55e)}.price-row-sell .price-dot{background:var(--danger, #ef4444)}.price-row-current{background:#0ea5e914;border-radius:6px;padding-left:8px;padding-right:8px;font-weight:700;border-bottom:0}.price-row-current .price-dot{background:var(--accent);box-shadow:0 0 0 3px #0ea5e92e}.price-row .price-tag{font-size:.75rem;color:var(--text-secondary);min-width:40px;text-transform:uppercase;letter-spacing:.04em}.price-row .price-value{margin-left:auto;font-variant-numeric:tabular-nums}.price-row-buy .price-value{color:var(--success, #16a34a)}.price-row-sell .price-value{color:var(--danger, #ef4444)}.price-row-current .price-value{color:var(--accent)}.price-row .price-now{font-size:.7rem;color:var(--accent);font-weight:600}.price-alert{margin:8px 0 12px;padding:8px 12px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;border-left:3px solid var(--accent);background:#0ea5e914;color:var(--accent)}.price-alert-aboveHighest{border-left-color:var(--accent);background:#0ea5e914;color:var(--accent)}.price-alert-belowLowest{border-left-color:var(--danger, #ef4444);background:#ef44441a;color:var(--danger, #ef4444)}.price-alert-nearBuy,.price-alert-atBuy{border-left-color:var(--success, #22c55e);background:#22c55e14;color:var(--success, #16a34a)}.price-alert-nearSell,.price-alert-atSell{border-left-color:var(--danger, #ef4444);background:#ef444414;color:var(--danger, #ef4444)}.holding-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.stat-label{font-size:.8rem;color:var(--text-muted)}.stat-value{font-size:1rem;font-weight:600;margin-top:2px}.holding-detail{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.holding-detail h4{margin:16px 0 8px;font-size:.95rem}.trade-buttons{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.trade-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:12px}.trade-tab{background:transparent;border:0;padding:8px 14px;font:inherit;font-weight:600;color:var(--text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s ease,border-color .15s ease}.trade-tab:hover{color:var(--text-primary)}.trade-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.mini-table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.mini-table,.data-table{width:100%;border-collapse:collapse;font-size:.9rem}.buys-table,.sells-table{min-width:640px}.mini-table th,.mini-table td,.data-table th,.data-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--border)}.mini-table th,.data-table th{font-weight:600;color:var(--text-secondary);background:var(--bg-elevated)}.mini-table button,.data-table button{color:var(--danger);padding:2px 8px;background:transparent;border:0;cursor:pointer;font-size:1rem}.pnl-cell{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.pnl-cell.pos .pnl-amount{color:var(--danger, #ef4444);font-weight:700}.pnl-cell.neg .pnl-amount{color:var(--success, #22c55e);font-weight:700}.pnl-cell .pnl-pct{margin-top:2px}.row-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end;white-space:nowrap}.row-actions .btn-sell{color:#fff;background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:4px 10px;font-weight:500}.row-actions .btn-sell:disabled{background:var(--bg-elevated);border-color:var(--border);color:var(--text-muted);cursor:not-allowed}.filter-bar{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.filter-chip{background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);border-radius:999px;padding:6px 14px;font-size:.85rem;font-weight:600;cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.filter-chip:hover{color:var(--text-primary);border-color:var(--accent)}.filter-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.buys-table .buy-row>td:first-child{width:auto;padding-right:12px}.date-toggle{display:inline-flex;align-items:center;gap:4px;background:transparent;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;border-radius:var(--radius-sm)}.date-toggle:hover{color:var(--accent)}.date-toggle .chev{display:inline-block;font-size:.7rem;color:var(--text-secondary);transition:transform .15s ease}.date-toggle .chev.open{transform:rotate(90deg);color:var(--accent)}.linked-sells-row>td{background:var(--bg-secondary);padding:0 16px 12px 28px!important;border-bottom:1px solid var(--border)}.linked-sells{border-left:2px solid var(--accent);padding:8px 12px;margin-top:4px;border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--bg-card)}.linked-sells-title{font-size:.8rem;color:var(--text-secondary);margin-bottom:6px;font-weight:600}.linked-sells-table{font-size:.85rem}.linked-sells-table th,.linked-sells-table td{padding:6px 10px}.link-danger{color:var(--danger);background:transparent;border:0;cursor:pointer;font-size:1rem;padding:0 6px}.link-danger:hover{color:var(--danger);opacity:.7}.muted.small{font-size:.8rem;margin:4px 0 12px}.muted{color:var(--text-muted);font-size:.9rem}.empty{text-align:center;padding:80px 24px}.empty p{margin-bottom:24px;color:var(--text-muted)}.modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.modal{background:var(--bg-card);border-radius:var(--radius-lg);max-width:480px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h3{margin:0;font-size:1.1rem}.modal-header .close{width:32px;height:32px;border-radius:50%;font-size:1.2rem;background:transparent;border:0;cursor:pointer;color:var(--text-primary)}.modal-header .close:hover{background:var(--bg-elevated)}.form-grid{padding:20px;display:grid;gap:12px}.form-grid label{display:flex;flex-direction:column;gap:4px;font-size:.9rem;color:var(--text-secondary)}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid var(--border)}.textarea{width:100%;padding:10px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;min-height:100px;resize:vertical;outline:none}.textarea:focus{border-color:var(--accent)}.input.input-error,.input-error{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.search-results{max-height:360px;overflow-y:auto;padding:0 4px}.search-result{display:flex;gap:12px;width:100%;padding:10px 12px;border:0;background:transparent;color:var(--text-primary);text-align:left;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;font-size:.9rem}.search-result:hover{background:var(--bg-elevated)}.search-result .code{font-family:var(--font-mono);color:var(--text-muted);width:80px}.search-result .name{flex:1}.search-result .market{color:var(--text-muted);font-size:.85rem}.notes-list{display:grid;gap:12px}.note-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.note-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.note-header h3{margin:0;font-size:1rem}.note-preview{background:var(--bg-elevated);padding:12px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.85rem;white-space:pre-wrap;margin:0;color:var(--text-primary)}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--text-primary);color:var(--bg-primary);padding:12px 24px;border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:2000;font-weight:500;font-size:.95rem}.toast-success{background:var(--success);color:#fff}.toast-error{background:var(--danger);color:#fff}.toast-info{background:var(--accent);color:#fff}.mt-4{margin-top:32px}.mini-chart{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin-top:8px;margin-bottom:16px;min-height:220px;overflow:hidden}.mini-chart p{margin:0;padding:80px 0;text-align:center}.mini-chart .uplot{width:100%!important}@media (max-width: 768px){.app-root{padding:0 16px}.app-header{flex-direction:column;align-items:stretch}.app-tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}.app-tabs button{white-space:nowrap}.holding-header{flex-direction:column;align-items:stretch}.holding-price{text-align:left}.kpi-value{font-size:1.2rem}}
