:root{--bg-main: #0a0e17;--bg-surface: #111724;--bg-surface-elevated: #182235;--bg-surface-hover: #1e293f;--border-subtle: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .16);--border-accent: rgba(56, 189, 248, .35);--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--color-green: #10b981;--color-green-bg: rgba(16, 185, 129, .12);--color-green-border: rgba(16, 185, 129, .3);--color-red: #f43f5e;--color-red-bg: rgba(244, 63, 94, .12);--color-red-border: rgba(244, 63, 94, .3);--color-blue: #38bdf8;--color-blue-bg: rgba(56, 189, 248, .12);--color-blue-border: rgba(56, 189, 248, .3);--color-amber: #f59e0b;--color-amber-bg: rgba(245, 158, 11, .12);--color-amber-border: rgba(245, 158, 11, .3);--color-purple: #a855f7;--color-purple-bg: rgba(168, 85, 247, .12);--color-purple-border: rgba(168, 85, 247, .3);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px}*{box-sizing:border-box;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Pretendard,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}body{background-color:var(--bg-main);color:var(--text-primary);min-height:100vh;overflow-x:hidden}.mono{font-family:JetBrains Mono,SF Mono,Consolas,monospace;font-variant-numeric:tabular-nums;letter-spacing:-.3px}.app-container{max-width:1280px;margin:0 auto;padding:20px}@media (max-width: 768px){.app-container{padding:12px}}.header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);margin-bottom:20px}.brand-section{display:flex;align-items:center;gap:12px}.brand-logo{font-size:24px;width:42px;height:42px;background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.brand-title{font-size:18px;font-weight:700;color:#fff;letter-spacing:-.5px}.brand-subtitle{font-size:12px;color:var(--text-muted)}.header-actions{display:flex;align-items:center;gap:10px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease;border:1px solid transparent;white-space:nowrap;flex-shrink:0;word-break:keep-all;-webkit-user-select:none;user-select:none}.model-filter-bar{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;margin-top:16px;padding-bottom:8px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.model-filter-bar::-webkit-scrollbar{height:4px}.model-filter-bar::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:4px}.btn-primary{background:#2563eb;color:#fff}.btn-primary:hover{background:#1d4ed8}.btn-outline{background:var(--bg-surface-elevated);color:var(--text-primary);border:1px solid var(--border-subtle)}.btn-outline:hover{background:var(--bg-surface-hover);border-color:var(--border-strong)}.btn-sm{padding:5px 10px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.nav-tabs{display:flex;gap:8px;margin-bottom:20px;overflow-x:auto;padding-bottom:4px;border-bottom:1px solid var(--border-subtle)}.tab-btn{padding:10px 18px;background:transparent;border:none;color:var(--text-secondary);font-size:14px;font-weight:600;cursor:pointer;border-radius:var(--radius-md);transition:all .15s ease;white-space:nowrap}.tab-btn:hover{color:var(--text-primary);background:var(--bg-surface)}.tab-btn.active{color:#fff;background:var(--bg-surface-elevated);border:1px solid var(--border-accent)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:24px}.stat-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:16px 18px}.stat-title{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.stat-value{font-size:22px;font-weight:800;color:#fff;margin-bottom:4px}.stat-subtext{font-size:12px;color:var(--text-secondary)}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:9999px;font-size:11px;font-weight:600;letter-spacing:.2px}.badge-green{background:var(--color-green-bg);color:var(--color-green);border:1px solid var(--color-green-border)}.badge-red{background:var(--color-red-bg);color:var(--color-red);border:1px solid var(--color-red-border)}.badge-blue{background:var(--color-blue-bg);color:var(--color-blue);border:1px solid var(--color-blue-border)}.badge-amber{background:var(--color-amber-bg);color:var(--color-amber);border:1px solid var(--color-amber-border)}.badge-purple{background:var(--color-purple-bg);color:var(--color-purple);border:1px solid var(--color-purple-border)}.badge-jin{background:linear-gradient(135deg,#10b98140,#38bdf840);border:1px solid rgba(16,185,129,.7);color:#34d399;font-weight:800;font-size:11px;padding:3px 8px;box-shadow:0 0 10px #10b98140;letter-spacing:-.2px}.signal-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:18px 20px;margin-bottom:16px;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.signal-card:hover{border-color:var(--border-strong)}.signal-card.is-portfolio{border:1.5px solid rgba(16,185,129,.65);background:linear-gradient(180deg,rgba(16,185,129,.07) 0%,var(--bg-surface) 100%);box-shadow:0 4px 20px #10b9811f}.signal-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px;flex-wrap:wrap;gap:10px}.stock-info{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;max-width:100%}.stock-name{font-size:18px;font-weight:700;color:#fff;white-space:nowrap!important;word-break:keep-all!important;display:inline-block}.stock-code{font-size:13px;color:var(--text-muted);white-space:nowrap}.signal-card-meta{display:flex;align-items:center;gap:12px}.price-targets-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:12px 16px;margin-bottom:16px}.target-item{display:flex;flex-direction:column;gap:4px}.target-label{font-size:11px;color:var(--text-muted)}.target-val{font-size:15px;font-weight:700}.reasons-box{background:#0003;border-radius:var(--radius-sm);padding:10px 14px;margin-bottom:14px}.reason-item{font-size:13px;color:var(--text-secondary);line-height:1.6;display:flex;align-items:baseline;gap:6px}.reason-item:before{content:"•";color:var(--color-blue);font-weight:700}.factor-pills{display:flex;flex-wrap:wrap;gap:8px}.factor-pill{background:var(--bg-surface-hover);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:4px 8px;font-size:11px;color:var(--text-secondary)}.factor-pill b{color:#fff}.data-table-container{overflow-x:auto;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.data-table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}.data-table th{background:var(--bg-surface-elevated);color:var(--text-muted);font-weight:600;padding:12px 16px;border-bottom:1px solid var(--border-subtle);white-space:nowrap}.data-table td{padding:12px 16px;border-bottom:1px solid var(--border-subtle);color:var(--text-primary)}.data-table tr:hover td{background:var(--bg-surface-hover)}.toast-container{position:fixed;bottom:24px;right:24px;z-index:9999}.toast{background:#1e293b;color:#fff;border:1px solid var(--border-strong);padding:12px 20px;border-radius:var(--radius-md);box-shadow:0 10px 25px #00000080;font-size:14px;display:flex;align-items:center;gap:8px;animation:slideIn .2s ease-out}@keyframes slideIn{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@media (max-width: 640px){.app-container{padding:8px 10px}.header{flex-direction:column;align-items:stretch;padding:12px 14px;gap:10px;margin-bottom:12px}.brand-section{gap:10px}.brand-title{font-size:16px}.brand-subtitle{font-size:11px;line-height:1.3}.header-actions{width:100%;display:flex;justify-content:space-between}.header-actions .btn{font-size:12px;padding:6px 12px}.nav-tabs{gap:4px;margin-bottom:12px;padding-bottom:6px;-webkit-overflow-scrolling:touch}.tab-btn{padding:7px 11px;font-size:12px}.signal-card{padding:12px 14px;margin-bottom:12px;border-radius:var(--radius-md)}.signal-card-header{flex-direction:column;align-items:stretch;gap:8px;margin-bottom:10px}.stock-info{width:100%;gap:6px 8px}.stock-name{font-size:16px}.signal-card-meta{display:flex;justify-content:space-between;align-items:center;width:100%;padding-top:8px;border-top:1px dashed var(--border-subtle)}.price-targets-grid{grid-template-columns:1fr 1fr;gap:6px;padding:8px 10px;margin-bottom:10px}.target-item{gap:2px}.target-label{font-size:10px}.target-val{font-size:13px}.data-table th,.data-table td{padding:8px 10px;font-size:12px}}
