body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root,body,html{min-height:100%;width:100%}*{box-sizing:border-box;margin:0;padding:0}body{color:#fff;font-family:Noto Sans KR,Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.App,body{background-color:#1a1a1a}.App{display:flex;flex-direction:column;max-width:100%;min-height:100vh;overflow-x:clip;width:100%}.app-header{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 10px #0000004d;padding:20px;text-align:center;z-index:1000}.app-title{color:#fff;font-size:1.8rem;font-weight:700;margin:0;text-shadow:0 2px 4px #0000004d}.app-main{flex:1 1}.btn{background-color:#2a2a2a;border:1px solid #444;border-radius:2px;color:#fff;cursor:pointer;font-size:12px;padding:4px 8px;transition:all .2s}.btn:hover{background-color:#3a3a3a;border-color:#555}.btn:active{background-color:#1a1a1a}.btn-primary{background-color:#06c;border-color:#06c}.btn-primary:hover{background-color:#0080ff}.btn-danger{background-color:#c00;border-color:#c00}.btn-danger:hover{background-color:red}.btn-success{background-color:#0c0;border-color:#0c0}.btn-success:hover{background-color:#0f0}.input{background-color:#2a2a2a;border:1px solid #444;border-radius:2px;color:#fff;font-size:12px;padding:4px 6px}.input:focus{border-color:#06c;outline:none}.table{border-collapse:collapse;font-size:11px;width:100%}.table td,.table th{border:1px solid #333;padding:2px 4px;text-align:center}.table th{background-color:#2a2a2a;color:#fff;font-weight:700}.table td{background-color:#1a1a1a}.price-up{color:#f44}.price-down{color:#44f}.price-neutral{color:#fff}.panel{background-color:#1a1a1a;border:1px solid #333;display:flex;flex-direction:column}.panel-header{align-items:center;background-color:#2a2a2a;border-bottom:1px solid #333;display:flex;font-size:12px;font-weight:700;justify-content:space-between;padding:4px 8px}.panel-content{flex:1 1;overflow:auto;padding:4px}.tabs{border-bottom:1px solid #333;display:flex}.tab,.tabs{background-color:#2a2a2a}.tab{border:none;border-right:1px solid #333;color:#ccc;cursor:pointer;font-size:11px;padding:6px 12px}.tab.active{background-color:#1a1a1a;border-bottom:2px solid #06c;color:#fff}.tab:hover{background-color:#3a3a3a}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#2a2a2a}::-webkit-scrollbar-thumb{background:#555;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#777}.dashboard-broker-row{grid-gap:16px;align-items:start;display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-bottom:30px;min-width:0}.dashboard-broker-row>section{margin-bottom:0!important;min-width:0}@media (max-width:1100px){.dashboard-broker-row{grid-template-columns:1fr;margin-bottom:0}}.binance-alert-header{align-items:flex-start;display:flex;gap:10px;justify-content:space-between;margin-bottom:10px}.binance-alert-header-copy{flex:1 1;min-width:0}.binance-alert-refresh{background:#f0b90b26;border:1px solid #f0b90b66;border-radius:6px;color:#f0b90b;cursor:pointer;flex:0 0 auto;font-size:.72rem;padding:4px 10px}.binance-alert-stats{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:12px}.dashboard-broker-row .binance-alert-stats{gap:6px;grid-template-columns:repeat(3,minmax(0,1fr))}.binance-stat-item{background:#00000038;border:1px solid #f0b90b22;border-radius:6px;min-width:0;padding:7px 8px}.binance-stat-label{color:#b7a882;font-size:.62rem;line-height:1.2;margin-bottom:3px}.binance-stat-value{font-size:.74rem;font-weight:600;line-height:1.35;word-break:break-word}.binance-alert-table{table-layout:fixed;width:100%}.binance-status-stack{display:flex;flex-direction:column;gap:4px}.binance-status-line{align-items:baseline;display:flex;gap:6px;line-height:1.35;min-height:1.1rem}.binance-status-time{font-feature-settings:"tnum";color:#b7a882;flex:0 0 2.4rem;font-size:.62rem;font-variant-numeric:tabular-nums}.binance-status-symbol{color:#f5f0e6;font-size:.68rem;min-width:0;word-break:break-word}.binance-alert-col-symbol{width:28%;word-break:break-word}.binance-alert-col-status{width:26%;word-break:break-word}.binance-alert-col-pnl{white-space:normal;width:20%}.binance-pnl-stack{display:flex;flex-direction:column;gap:2px;line-height:1.3}.binance-pnl-pct{color:#b7a882;font-size:.68rem}.binance-alert-col-detail{width:26%}.dashboard-broker-row .binance-alert-col-symbol{width:30%}.dashboard-broker-row .binance-alert-col-status{width:24%}.dashboard-broker-row .binance-alert-col-pnl{width:18%}.dashboard-broker-row .binance-alert-col-detail{width:26%}.binance-alert-row-open td{background:#f0b90b1a;border-bottom-color:#f0b90b47!important}.binance-alert-row-open td:first-child{box-shadow:inset 3px 0 0 #f0b90b}@media (max-width:768px){.app-main--dashboard{padding:10px max(10px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))!important}.exchange-section-mobile{border-radius:10px!important;margin-bottom:16px!important;padding:12px!important}.dashboard-mobile-tabs{-webkit-overflow-scrolling:touch;display:flex;gap:6px;margin-bottom:14px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.dashboard-mobile-tabs::-webkit-scrollbar{display:none}.dashboard-mobile-tab{background:#1e1e1ee6;border:1px solid #484f58;border-radius:999px;color:#c9d1d9;cursor:pointer;flex:0 0 auto;font-size:16px;font-weight:600;padding:8px 14px;white-space:nowrap}.dashboard-mobile-tab--active{background:#7c3aed59;border-color:#7c3aed;color:#f3e8ff}.dashboard-mobile-tab--upbit.dashboard-mobile-tab--active{background:#3b82f659;border-color:#3b82f6;color:#eff6ff}.dashboard-mobile-tab--binance.dashboard-mobile-tab--active{background:#f0b90b33;border-color:#f0b90b;color:#fcd535}.dashboard-mobile-tab--ibkr.dashboard-mobile-tab--active{background:#d8122238;border-color:#d81222;color:#fca5a5}.dashboard-broker-row{gap:0;margin-bottom:0}.binance-alert-panel{margin-top:0!important;padding:10px 6px!important}.binance-alert-panel .binance-alert-stats{gap:6px!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;margin-bottom:8px!important}.binance-alert-panel .binance-stat-item{padding:5px 6px!important}.binance-alert-panel .binance-stat-label{font-size:.58rem!important}.binance-alert-panel .binance-stat-value{font-size:.62rem!important}.binance-alert-header{margin-bottom:8px}.binance-alert-subtitle{font-size:.64rem!important}.binance-alert-table-wrap{max-width:100%;overflow-x:hidden}.binance-alert-table{min-width:0!important;table-layout:fixed!important;width:100%!important}.binance-alert-table td,.binance-alert-table th{font-size:.58rem!important;line-height:1.25!important;overflow-wrap:anywhere;padding:3px 2px!important;word-break:break-word}.binance-alert-col-symbol{max-width:none!important;width:24%!important}.binance-alert-col-status{width:28%!important}.binance-alert-col-pnl{white-space:normal!important;width:20%!important}.binance-alert-col-detail{width:28%!important}.binance-status-time{flex-basis:2.1rem;font-size:.56rem!important}.binance-status-symbol{font-size:.6rem!important}.binance-alert-symbol-full{display:none!important}.binance-alert-symbol-compact{display:block!important}.binance-alert-pnl-full{display:none!important}.binance-alert-pnl-compact{display:block!important}.ibkr-dashboard-panel{margin-top:0}.mobile-touch-input button,.mobile-touch-input input,.mobile-touch-input select{font-size:16px!important}.mobile-scroll-x{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.mobile-scroll-hint:before{color:#9ca3af;content:"← 좌우 스와이프 →";display:block;font-size:.65rem;letter-spacing:.02em;margin-bottom:6px;text-align:center}.kiwoom-flow-desktop-only{display:none!important}.kiwoom-flow-mobile-only{display:block!important}}@media (min-width:769px){.kiwoom-flow-mobile-only{display:none!important}}.ibkr-alert-refresh{background:#d8122226;border:1px solid #d8122266;border-radius:6px;color:#d81222;cursor:pointer;flex:0 0 auto;font-size:.72rem;padding:4px 10px}.ibkr-alert-stats{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px}.ibkr-stat-item{background:#00000038;border:1px solid #d8122222;border-radius:6px;min-width:0;padding:7px 8px}.ibkr-stat-label{color:#c9a3a8;font-size:.62rem;line-height:1.2;margin-bottom:3px}.ibkr-stat-value{font-size:.74rem;font-weight:600;line-height:1.35;word-break:break-word}.ibkr-swing-section-title{color:#d81222;font-size:.72rem;font-weight:600;margin-bottom:6px}.binance-alert-section-title{color:#f0b90b;font-size:.72rem;font-weight:600;margin-bottom:6px}.ibkr-swing-col-symbol{width:28%;word-break:break-word}.ibkr-swing-col-status{width:26%}.ibkr-swing-col-pnl{white-space:normal;width:18%}.ibkr-swing-col-detail{width:28%}.ibkr-swing-col-entry,.ibkr-swing-col-exit,.ibkr-swing-col-reason{width:18%}.ibkr-swing-row-open td{background:#f0b90b14;border-bottom-color:#f0b90b38!important}.ibkr-swing-row-open td:first-child{box-shadow:inset 3px 0 0 #f0b90b}.dashboard-broker-row .ibkr-swing-col-symbol{width:30%}.dashboard-broker-row .ibkr-swing-col-status{width:24%}.dashboard-broker-row .ibkr-swing-col-pnl{width:16%}.dashboard-broker-row .ibkr-swing-col-detail{width:30%}.dashboard-page{background:linear-gradient(135deg,#1e3c72,#2a5298);color:#fff;min-height:100vh;overflow-x:hidden;padding:20px}.dashboard-sections{grid-gap:30px;display:grid;gap:30px;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 auto;max-width:1500px;width:100%}.dashboard-section{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:20px;box-shadow:0 8px 32px #0000004d;min-width:0;overflow:hidden;padding:30px;transition:transform .3s ease,box-shadow .3s ease}.dashboard-section:hover{box-shadow:0 12px 40px #0006;transform:translateY(-5px)}.dashboard-section.full-width{grid-column:1/-1;margin-bottom:30px}.dashboard-section-row{grid-gap:30px;display:grid;gap:30px;grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr))}.section-header{border-bottom:2px solid #fff3;margin-bottom:25px;padding-bottom:20px;text-align:center}.section-header h2{font-size:1.8rem;font-weight:600;margin:0 0 10px;text-shadow:0 2px 4px #0000004d}.section-header p{font-size:1rem;margin:0;opacity:.8}.section-content{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:300px}.coming-soon{padding:40px 20px;text-align:center}.coming-soon p{font-size:1.1rem;margin:10px 0;opacity:.9}.coming-soon p:first-child{color:gold;font-size:1.3rem;font-weight:600}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.loading{animation:pulse 2s infinite}.analy-page{padding:12px!important}.analy-page .dashboard-sections{gap:20px;max-width:3200px;min-width:0}.analy-page .dashboard-section{border-radius:12px;min-width:0;padding:18px}.analy-page .dashboard-section.full-width{min-width:0}.analy-page .dashboard-section.full-width .section-header{margin-bottom:14px;padding-bottom:12px}.analy-page .section-header h2{font-size:1.35rem;margin:0 0 6px}.analy-page .section-header a,.analy-page .section-header span{font-size:12px!important}.analy-page .section-content{min-height:200px;min-width:0}.analy-page .section-content.analy-controls{min-width:0}.analy-page .analy-controls h4{color:#495057;font-size:13px!important;margin:0 0 10px!important}.analy-page .analy-controls .analy-controls-text,.analy-page .analy-controls button,.analy-page .analy-controls input,.analy-page .analy-controls label,.analy-page .analy-controls select{font-size:12px!important}.analy-page .analy-controls input,.analy-page .analy-controls select{min-width:0;padding:6px 10px!important}.analy-page .analy-controls input[type=text]{width:100px!important}.analy-page .analy-controls select{min-width:240px!important}.analy-page .analy-controls button{padding:6px 12px!important}.analy-page .analy-controls .analy-box{border-radius:6px;margin-bottom:14px!important;min-width:0;padding:12px!important}.analy-page .bt-table-scroll{-webkit-overflow-scrolling:touch;max-width:100%;min-width:1px;overflow-x:auto;overflow-y:visible;width:100%}.analy-page .analy-controls h5{font-size:13px!important;margin:0 0 10px!important}.analy-page .analy-charts-wrap{min-height:800px;min-width:1200px}.analy-page .analy-scale-root{box-sizing:border-box;overflow-x:hidden;overflow-y:auto;width:100%}.analy-page .analy-scale-inner{box-sizing:border-box;min-height:100vh;width:100%}@media print{@page{margin:10mm}#root>*,body>*{display:none!important}#print-backtest-comparison,#root,#root>*,.analy-page,.analy-page .dashboard-section,.analy-page .dashboard-sections,.analy-page .section-content,.analy-page .section-content>div{display:block!important;overflow:visible!important;visibility:visible!important}.analy-page .analy-box:not(#print-backtest-comparison),.analy-page .section-header,.analy-page nav,footer,header{display:none!important}#print-backtest-comparison{border:1px solid #dee2e6!important;border-radius:0!important;box-shadow:none!important;margin:0!important;max-width:100%!important;width:100%!important}#print-backtest-comparison,#print-backtest-comparison *{-webkit-print-color-adjust:exact;print-color-adjust:exact}#print-backtest-comparison tbody,#print-backtest-comparison tr{break-inside:avoid!important;page-break-inside:avoid!important}#print-backtest-comparison thead{display:table-header-group}}.landing-page{align-items:center;background:linear-gradient(to bottom right,#86efac,#93c5fd,#f9a8d4);display:flex;justify-content:center;min-height:100vh;min-width:fit-content;padding:20px}.landing-container{background-color:#1a1a1af2;border-radius:20px;box-shadow:0 20px 60px #00000080;max-width:1500px;overflow:hidden;width:100%}.landing-header{background:linear-gradient(to bottom right,#86efac,#93c5fd,#f9a8d4);padding:30px 20px 40px;text-align:center}.landing-title{color:#fff;font-size:4rem;font-weight:700;margin:0 0 10px;text-shadow:0 4px 8px #0000004d}.landing-subtitle{color:#ffffffe6;font-size:1.5rem;margin:0}.landing-main{padding:60px 40px}.landing-hero{margin-bottom:60px;text-align:center}.hero-title{color:#fff;font-size:2.5rem;font-weight:600;margin:0 0 20px}.hero-description{color:#ccc;font-size:1.2rem;line-height:1.6;margin:0 auto;max-width:800px}.landing-features{grid-gap:30px;display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:60px}.feature-card{background-color:#2a2a2a;border:1px solid #444;border-radius:12px;padding:30px;text-align:center;transition:transform .3s,box-shadow .3s}.feature-card:hover{border-color:#667eea;box-shadow:0 10px 30px #667eea4d;transform:translateY(-5px)}.feature-icon{font-size:3rem;margin-bottom:20px}.feature-title{color:#fff;font-size:1.5rem;font-weight:600;margin:0 0 15px}.feature-description{color:#ccc;font-size:1rem;line-height:1.6;margin:0}.landing-cta{margin-bottom:40px;text-align:center}.cta-button{background:linear-gradient(to bottom right,#86efac,#93c5fd,#f9a8d4);border-radius:50px;box-shadow:0 4px 15px #86efac66;color:#161616;display:inline-block;font-size:1.2rem;font-weight:600;padding:18px 50px;text-decoration:none;transition:transform .3s,box-shadow .3s}.cta-button:hover{box-shadow:0 6px 20px #86efac99;transform:translateY(-2px)}.cta-button:active{transform:translateY(0)}.landing-footer{background-color:#1a1a1a;border-top:1px solid #333;padding:30px 20px;text-align:center}.landing-footer p{color:#888;font-size:.9rem;margin:0}@media (max-width:768px){.landing-title{font-size:2.5rem}.landing-subtitle{font-size:1.2rem}.hero-title{font-size:2rem}.hero-description{font-size:1rem}.landing-features{grid-template-columns:1fr}.landing-main{padding:40px 20px}.landing-main>div:first-child{grid-template-columns:1fr!important}}
/*# sourceMappingURL=main.0a66da2f.css.map*/