*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #f5f5f5;--card: #ffffff;--border: #e5e7eb;--text: #1f2937;--muted: #6b7280;--red: #ef4444;--blue: #3b82f6;--green: #10b981;--accent: #6366f1;--yellow: #f59e0b}body{font-family:-apple-system,BlinkMacSystemFont,Pretendard,Segoe UI,sans-serif;background:var(--bg);color:var(--text);overflow:hidden;height:100vh;height:100dvh;user-select:none;-webkit-user-select:none}button{font-family:inherit;cursor:pointer;border:none;outline:none}#root{height:100vh;height:100dvh}.splash{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;background:var(--bg)}.splash h1{font-size:32px;background:linear-gradient(135deg,var(--accent),var(--blue));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.splash p{color:var(--muted);font-size:14px;text-align:center;line-height:1.6}.splash .start-btn{padding:14px 48px;background:var(--accent);color:#fff;border-radius:12px;font-size:18px;font-weight:700}.app-wrap{display:flex;flex-direction:column;height:100vh;height:100dvh}.topbar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:var(--card);border-bottom:1px solid var(--border);min-height:48px;flex-shrink:0}.topbar .cash{font-size:13px;color:var(--muted)}.topbar .cash b{color:var(--text);font-size:15px}.topbar .timer{font-size:13px;color:var(--yellow);font-weight:600}.topbar .profit{font-size:13px;font-weight:700}.main{flex:1;overflow:hidden;position:relative}@media (min-width: 769px){.main{display:grid;grid-template-columns:280px 1fr}.tab-nav{display:none!important}.panel{display:block!important}.panel-chart{border-left:1px solid var(--border)}}.panel{height:100%;overflow-y:auto;background:var(--bg)}.panel::-webkit-scrollbar{width:4px}.panel::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.stock-item{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s}.stock-item:hover,.stock-item.active{background:var(--card)}.stock-item .name{font-size:14px;font-weight:600}.stock-item .sector{font-size:11px;color:var(--muted)}.stock-item .price{text-align:right;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.stock-item .change{font-size:11px;text-align:right;font-variant-numeric:tabular-nums}.up{color:var(--red)}.down{color:var(--blue)}.flat{color:var(--muted)}.panel-chart{display:flex;flex-direction:column;padding:0}.chart-header{padding:12px 16px;display:flex;align-items:baseline;gap:12px;flex-shrink:0}.chart-header .chart-name{font-size:18px;font-weight:700}.chart-header .cprice{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}.chart-header .cchange{font-size:13px;font-weight:600}.chart-wrap{flex:1;position:relative;min-height:200px}.chart-wrap canvas{width:100%;height:100%}.trade-box{padding:12px 16px;background:var(--card);border-top:1px solid var(--border);flex-shrink:0}.trade-row{display:flex;gap:8px;align-items:center}.trade-row input{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:10px 12px;font-size:14px;text-align:center;font-variant-numeric:tabular-nums}.trade-row input:focus{border-color:var(--accent)}.trade-btns{display:flex;gap:6px;margin-top:8px}.trade-btns button{flex:1;padding:10px;border-radius:8px;font-size:13px;font-weight:700}.btn-buy{background:var(--red);color:#fff}.btn-sell{background:var(--blue);color:#fff}.btn-short{background:var(--border);color:var(--text)}.qty-presets{display:flex;gap:4px;margin-top:6px}.qty-presets button{flex:1;padding:6px;background:var(--bg);border:1px solid var(--border);color:var(--muted);border-radius:6px;font-size:11px}.qty-presets button:hover{border-color:var(--accent);color:var(--text)}.panel-portfolio{padding:16px}.port-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.port-card{background:var(--card);padding:14px;border-radius:12px;box-shadow:0 1px 3px #0000000f}.port-card .label{font-size:11px;color:var(--muted);margin-bottom:4px}.port-card .val{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.port-hold{margin-top:8px}.port-hold h3{font-size:13px;color:var(--muted);margin-bottom:8px}.hold-item{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.hold-item .hi-name{font-size:13px;font-weight:600}.hold-item .hi-detail{font-size:11px;color:var(--muted)}.hold-item .hi-pnl{font-size:13px;font-weight:700;text-align:right}.empty-port{text-align:center;padding:40px;color:var(--muted);font-size:14px}.ach-row{padding:8px 0;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.ach-row .ach-desc{color:var(--muted);font-size:12px}.ach-row .ach-check{color:var(--green);font-weight:700}.panel-news{padding:16px}.news-item{background:var(--card);padding:14px;border-radius:12px;margin-bottom:10px;box-shadow:0 1px 3px #0000000f}.news-item.insider{border:1px solid var(--accent)}.news-item .ni-time{font-size:11px;color:var(--muted);margin-bottom:4px}.news-item .ni-title{font-size:14px;font-weight:600;margin-bottom:4px}.news-item .ni-body{font-size:12px;color:var(--muted);line-height:1.5}.news-tag{display:inline-block;font-size:10px;padding:2px 8px;border-radius:4px;font-weight:600;margin-top:6px}.news-tag.good{background:#ef44441a;color:var(--red)}.news-tag.bad{background:#3b82f61a;color:var(--blue)}.news-tag.neutral{background:#6b72801a;color:var(--muted)}.news-banner{position:fixed;top:48px;left:0;right:0;z-index:50;padding:8px 16px;background:#6366f1f2;color:#fff;font-size:13px;font-weight:600;text-align:center;transform:translateY(-100%);transition:transform .4s}.news-banner.show{transform:translateY(0)}.tab-nav{display:flex;background:var(--card);border-top:1px solid var(--border);flex-shrink:0}.tab-nav button{flex:1;padding:10px 0 8px;font-size:11px;color:var(--muted);background:none;display:flex;flex-direction:column;align-items:center;gap:2px}.tab-nav button.active{color:var(--accent)}.tab-nav button svg{width:20px;height:20px}.achieve-toast{position:fixed;top:60px;left:50%;transform:translate(-50%) translateY(-120px);z-index:300;background:var(--card);border:1px solid var(--yellow);border-radius:12px;padding:12px 20px;display:flex;align-items:center;gap:10px;transition:transform .4s;white-space:nowrap;box-shadow:0 4px 12px #0000001a}.achieve-toast.show{transform:translate(-50%) translateY(0)}.achieve-toast .at-icon{font-size:24px}.achieve-toast .at-text{font-size:13px;font-weight:600}.gameover-screen{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:var(--bg)}.gameover-screen h1{font-size:28px}.go-profit{font-size:48px;font-weight:800}.go-rank{font-size:16px;color:var(--muted)}.go-achievements{font-size:13px;color:var(--muted);text-align:center;max-width:300px;line-height:1.6}.go-btns{display:flex;gap:12px;margin-top:12px}.go-btns button{padding:12px 32px;border-radius:12px;font-size:15px;font-weight:700}.btn-retry{background:var(--accent);color:#fff}.btn-rank{background:var(--card);color:var(--text);border:1px solid var(--border)!important}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0000004d;display:flex;align-items:flex-end;justify-content:center}.modal{background:var(--card);border-radius:20px 20px 0 0;width:100%;max-width:500px;max-height:80vh;overflow-y:auto;padding:24px 20px;position:relative}.modal-close{position:absolute;top:16px;right:16px;background:var(--border);color:var(--text);width:32px;height:32px;border-radius:50%;font-size:18px}.modal h2{font-size:18px;margin-bottom:16px}.rank-list{list-style:none}.rank-list li{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border);font-size:14px}.rank-list .r-num{width:24px;color:var(--muted)}.rank-list .r-profit{font-weight:700}.ad-prompt{background:var(--card);border:1px solid var(--accent);border-radius:16px;padding:20px;text-align:center;margin:12px 0;box-shadow:0 1px 3px #0000000f}.ad-prompt p{font-size:13px;color:var(--muted);margin-bottom:12px}.ad-prompt button{padding:10px 24px;background:var(--accent);color:#fff;border-radius:8px;font-size:14px;font-weight:700}@media (max-width: 768px){.panel-stocks,.panel-chart,.panel-portfolio,.panel-news{position:absolute;top:0;right:0;bottom:0;left:0;display:none}.panel.active-tab{display:flex;flex-direction:column}.panel-stocks.active-tab{display:block}.panel-portfolio.active-tab,.panel-news.active-tab{display:block;overflow-y:auto}}
