@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap");@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;600;700&display=swap");@import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&display=swap");:root{--bg-0:#0d1017;--bg-1:#141921;--bg-2:#1a2030;--bg-3:#212838;--bg-4:#2a3348;--bg-hover:rgba(100,140,255,.05);--bg-active:rgba(100,140,255,.08);--bg-glow:rgba(100,140,255,.03);--text-0:#e8eaed;--text-1:#b8bcc8;--text-2:#7d8590;--text-3:#505862;--accent:#648cff;--accent-hover:#7da0ff;--accent-dim:rgba(100,140,255,.12);--accent-glow:rgba(100,140,255,.06);--green:#34d399;--green-dim:rgba(52,211,153,.1);--red:#f87171;--red-dim:hsla(0,91%,71%,.1);--amber:#fbbf24;--amber-dim:rgba(251,191,36,.1);--cyan:#67e8f9;--border:hsla(0,0%,100%,.06);--border-subtle:hsla(0,0%,100%,.03);--border-strong:hsla(0,0%,100%,.1);--sidebar-w:232px;--topbar-h:44px;--font-ui:"Noto Sans KR","Inter",-apple-system,sans-serif;--font-data:"JetBrains Mono","SF Mono",monospace;--font-en:"Inter",-apple-system,sans-serif;--ease:cubic-bezier(0.4,0,0.2,1);--radius:8px;--radius-sm:6px}*,:after,:before{margin:0;padding:0;box-sizing:border-box}body,html{height:100%;background:var(--bg-0);color:var(--text-0);font-family:var(--font-ui);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--accent);text-decoration:none}::selection{background:var(--accent-dim);color:var(--text-0)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.08);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.14)}.app-shell{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-w);background:var(--bg-1);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto}.sidebar-brand{padding:18px 18px 14px;gap:11px;border-bottom:1px solid var(--border)}.brand-mark,.sidebar-brand{display:flex;align-items:center}.brand-mark{width:30px;height:30px;background:linear-gradient(135deg,#648cff,#a78bfa);border-radius:8px;justify-content:center;font-weight:800;font-size:14px;color:#fff;box-shadow:0 2px 8px rgba(100,140,255,.25)}.brand-name{font-weight:700;font-size:15px;color:var(--text-0);letter-spacing:-.3px}.sidebar-section{padding:14px 10px}.sidebar-section-label{padding:0 10px 8px;font-size:10px;font-weight:600;color:var(--text-3);letter-spacing:.8px}.sidebar-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius);color:var(--text-2);font-size:13px;font-weight:500;cursor:pointer;transition:all .18s var(--ease);text-decoration:none;position:relative}.sidebar-item:hover{background:var(--bg-hover);color:var(--text-1)}.sidebar-item.active{background:var(--accent-dim);color:var(--accent)}.sidebar-item.active:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;background:var(--accent);border-radius:0 3px 3px 0}.sidebar-icon{font-size:16px;width:22px;text-align:center;flex-shrink:0}.sidebar-footer{margin-top:auto;padding:14px 18px;border-top:1px solid var(--border);font-size:11px;color:var(--text-3);line-height:1.7}.main-area{flex:1 1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-0)}.topbar{height:var(--topbar-h);background:var(--bg-1);border-bottom:1px solid var(--border);padding:0 20px;gap:12px;flex-shrink:0}.topbar,.topbar-crumb{display:flex;align-items:center}.topbar-crumb{font-size:13px;font-weight:600;color:var(--text-1);gap:6px}.topbar-sep{color:var(--text-3);font-size:11px}.topbar-spacer{flex:1 1}.topbar-badge{padding:2px 8px;border-radius:10px;font-size:10px;font-weight:600;letter-spacing:.3px}.topbar-badge.mock{background:var(--amber-dim);color:var(--amber)}.topbar-badge.live{background:var(--green-dim);color:var(--green)}.topbar-clock{font-family:var(--font-data);font-size:11px;color:var(--text-3);letter-spacing:.5px}.content{flex:1 1;overflow-y:auto;padding:20px 24px}.pg-header{margin-bottom:18px}.pg-title{font-size:19px;font-weight:700;color:var(--text-0);letter-spacing:-.5px}.pg-sub{font-size:12px;color:var(--text-3);margin-top:3px}.summary-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px;gap:12px;margin-bottom:18px}.summary-card{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;transition:border-color .2s var(--ease)}.summary-card:hover{border-color:var(--border-strong)}.summary-label{font-size:11px;font-weight:500;color:var(--text-3);margin-bottom:6px}.summary-val{font-size:20px;font-weight:700;letter-spacing:-.5px}.summary-delta,.summary-val{font-family:var(--font-data)}.summary-delta{font-size:11px;font-weight:600;margin-top:3px}.widget{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:16px}.widget-head{justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border)}.widget-head,.widget-title{display:flex;align-items:center}.widget-title{font-size:13px;font-weight:600;color:var(--text-1);gap:6px}.widget-count{font-size:11px;color:var(--text-3);font-weight:400;margin-left:4px}.dtable{width:100%;border-collapse:collapse}.dtable thead{position:-webkit-sticky;position:sticky;top:0;z-index:2}.dtable th{padding:8px 16px;text-align:left;font-size:11px;font-weight:600;color:var(--text-3);background:var(--bg-2);border-bottom:1px solid var(--border);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.dtable th.r{text-align:right}.dtable td{padding:10px 16px;border-bottom:1px solid var(--border-subtle);white-space:nowrap;transition:background .1s var(--ease)}.dtable td.r{text-align:right}.dtable tbody tr{cursor:pointer}.dtable tbody tr:hover td{background:var(--bg-hover)}.dtable tbody tr:last-child td{border-bottom:none}.cell-name{gap:10px}.cell-avatar,.cell-name{display:flex;align-items:center}.cell-avatar{width:28px;height:28px;border-radius:6px;background:linear-gradient(135deg,var(--bg-3),var(--bg-4));justify-content:center;font-size:10px;font-weight:700;color:var(--accent);flex-shrink:0}.cell-primary{font-weight:600;font-size:13px;color:var(--text-0)}.cell-secondary{font-size:10px;color:var(--text-3);margin-top:1px}.cell-mono{font-family:var(--font-data);font-weight:500;font-size:12px;letter-spacing:-.3px}.cell-spark{width:80px;height:26px}.sig{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600;white-space:nowrap}.sig.buy{background:var(--green-dim);color:var(--green)}.sig.sell{background:var(--red-dim);color:var(--red)}.sig.hold{background:var(--amber-dim);color:var(--amber)}.up{color:var(--green)!important}.dn{color:var(--red)!important}.search-area{max-width:660px;margin:0 auto 24px}.search-box{position:relative}.search-box input{width:100%;padding:11px 16px 11px 40px;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-0);font-size:14px;font-family:var(--font-ui);outline:none;transition:all .2s var(--ease)}.search-box input::placeholder{color:var(--text-3)}.search-box input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.search-box .s-ico{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--text-3);font-size:15px}.s-list{margin-top:10px}.s-item{display:flex;justify-content:space-between;align-items:center;padding:11px 16px;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:5px;cursor:pointer;transition:all .15s var(--ease)}.s-item:hover{background:var(--bg-hover);border-color:rgba(100,140,255,.15);transform:translateX(2px)}.s-item-name{font-weight:600;font-size:13px}.s-item-ticker{font-size:11px;color:var(--text-3);margin-top:1px}.s-item-mkt{padding:2px 8px;background:var(--accent-dim);color:var(--accent);border-radius:4px;font-size:10px;font-weight:600}.sent-area{max-width:960px;margin:0 auto}.quick-btns{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.q-btn{padding:6px 14px;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-2);cursor:pointer;font-size:12px;font-family:var(--font-ui);font-weight:500;transition:all .15s var(--ease)}.q-btn:hover{border-color:var(--accent);color:var(--text-0);background:var(--accent-dim)}.sent-hero{display:flex;align-items:center;gap:18px;padding:18px;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px}.conf-ring{width:68px;height:68px;position:relative;flex-shrink:0}.conf-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.conf-ring circle{fill:none;stroke-width:3.5}.conf-ring .ring-bg{stroke:var(--border-strong)}.conf-ring .ring-fg{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .6s var(--ease)}.conf-num{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-data)}.conf-num,.sent-hero-info h2{font-size:17px;font-weight:700}.sent-hero-meta{font-size:11px;color:var(--text-3);margin-top:3px;display:flex;align-items:center;gap:8px}.factors-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;margin-bottom:16px}.factor-head{font-size:13px;font-weight:600;margin-bottom:10px;display:flex;align-items:center;gap:6px}.fcard{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-sm);padding:13px 15px;margin-bottom:7px;transition:border-color .15s var(--ease)}.fcard:hover{border-color:var(--border-strong)}.fcard.pos{border-left:3px solid var(--green)}.fcard.neg{border-left:3px solid var(--red)}.fcard-t{font-weight:600;font-size:13px;margin-bottom:4px}.fcard-d{color:var(--text-2);font-size:12px;line-height:1.6}.fcard-s{color:var(--text-3);font-size:10px;margin-top:6px}.outlook-box{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.outlook-h{font-size:14px;font-weight:600;margin-bottom:10px;display:flex;align-items:center;gap:6px}.outlook-p{color:var(--text-2);line-height:1.75;font-size:13px}.mock-badge{display:inline-flex;padding:1px 6px;background:var(--amber-dim);color:var(--amber);border-radius:3px;font-size:10px;font-weight:600}.loading-area{display:flex;justify-content:center;align-items:center;min-height:200px}.spinner{width:30px;height:30px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .65s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.stock-hero{justify-content:space-between;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);padding:18px 22px;margin-bottom:16px}.stock-hero,.stock-hero-main{display:flex;align-items:center}.stock-hero-main{gap:14px}.stock-hero-name{font-size:18px;font-weight:700;color:var(--text-0)}.stock-hero-ticker{font-family:var(--font-data);font-size:12px;color:var(--text-3);margin-top:2px}.stock-hero-price{text-align:right}.stock-hero-current{font-family:var(--font-data);font-size:22px;font-weight:700;color:var(--text-0);letter-spacing:-.5px}.stock-hero-change{font-family:var(--font-data);font-size:13px;font-weight:600;margin-top:2px}.stock-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;margin-bottom:16px}.sig-reasons{display:flex;flex-direction:column;gap:4px}.sig-reason-item{font-size:12px;color:var(--text-2);line-height:1.6}.ind-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.ind-item{padding:6px 0}.ind-label{font-size:11px;font-weight:500;color:var(--text-3);margin-bottom:3px}.ind-value{font-family:var(--font-data);font-size:16px;font-weight:600;letter-spacing:-.3px}.ind-bar{height:3px;background:var(--bg-3);border-radius:2px;margin-top:6px;overflow:hidden}.ind-bar-fill{height:100%;background:linear-gradient(90deg,var(--green),var(--amber),var(--red));border-radius:2px;transition:width .4s var(--ease)}@media (max-width:768px){.sidebar{display:none}.content{padding:14px}.summary-strip{grid-template-columns:1fr 1fr}.factors-grid,.stock-grid{grid-template-columns:1fr}.stock-hero{flex-direction:column;align-items:flex-start;gap:10px}.stock-hero-price{text-align:left}}