body{background:#0f1117;margin:0}#root{width:100%;min-height:100vh}:root{--bg-base:#0e1117;--bg-surface:#161b22;--bg-card:#1c2128;--bg-card-hover:#21262d;--bg-elevated:#21262d;--bg-gradient-a:#3182f61f;--bg-gradient-b:#3db35e14;--border:#30363d;--border-strong:#484f58;--text-primary:#e6edf3;--text-secondary:#8b949e;--text-tertiary:#6e7681;--text-placeholder:#484f58;--up:#f04452;--down:#3182f6;--up-bg:#f044521f;--down-bg:#3182f61f;--blue-500:#3182f6;--blue-600:#2272eb;--status-dot:#3db35e;--shadow-card:0 1px 3px #0000004d;--shadow-hover:0 4px 12px #0006;--shadow-soft:0 12px 28px #00000047;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--space-2xl:32px;--space-3xl:48px;--text-lg:20px;--text-md:17px;--text-sm:15px;--text-xs:13px;--font-body:"Pretendard", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--ease-smooth:cubic-bezier(.4, 0, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0}.app{min-height:100vh;font-family:var(--font-body);color:var(--text-primary);background:radial-gradient(1200px 700px at 110% -15%, var(--bg-gradient-a), transparent 60%), radial-gradient(900px 600px at -10% 10%, var(--bg-gradient-b), transparent 55%), var(--bg-base)}.app-shell{max-width:960px;padding:0 var(--space-xl) var(--space-3xl);margin:0 auto}.app-header{z-index:100;background:radial-gradient(1200px 700px at 110% -15%, var(--bg-gradient-a), transparent 60%), radial-gradient(900px 600px at -10% 10%, var(--bg-gradient-b), transparent 55%), var(--bg-base);border-bottom:1px solid color-mix(in srgb, var(--border) 75%, transparent);margin:0 calc(-1 * var(--space-xl));padding:0 var(--space-xl);position:sticky;top:0}.header-row{justify-content:space-between;align-items:flex-end;gap:var(--space-lg);min-height:72px;padding:var(--space-md) 0 var(--space-sm);display:flex}.header-left{flex-direction:column;gap:3px;display:flex}.app-heading{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:inline-flex}.app-title{letter-spacing:-.03em;margin:0;font-size:24px;font-weight:800;line-height:1.2}.app-subtitle{color:var(--text-tertiary);letter-spacing:.01em;margin:0;font-size:12px}.live-badge{align-items:center;gap:var(--space-xs);color:var(--status-dot);letter-spacing:.04em;background:#3db35e1a;border-radius:999px;padding:2px 8px 2px 6px;font-size:11px;font-weight:700;display:inline-flex}.live-dot{background:var(--status-dot);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.85)}}.header-right{align-items:center;gap:var(--space-sm);flex-wrap:wrap;justify-content:flex-end;display:flex}.app-main{gap:var(--space-lg);padding-top:var(--space-lg);display:grid}.scanner-card,.results-card-shell{background:var(--bg-card);border:1px solid color-mix(in srgb, var(--border) 72%, transparent);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);padding:18px}.scanner-card-header,.results-card-header{justify-content:space-between;align-items:flex-start;gap:var(--space-lg);margin-bottom:var(--space-lg);display:flex}.section-kicker{margin-bottom:var(--space-sm);color:var(--text-tertiary);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:700}.panel-title{font-size:var(--text-lg);letter-spacing:-.02em;margin:0;line-height:1.25}.panel-subtitle{color:var(--text-secondary);font-size:var(--text-xs);margin:6px 0 0}.header-link{border:1px solid var(--border);background:var(--bg-elevated);min-height:32px;color:var(--text-secondary);white-space:nowrap;transition:color .15s var(--ease-smooth), border-color .15s var(--ease-smooth), background .15s var(--ease-smooth), transform .15s var(--ease-spring);border-radius:999px;align-items:center;padding:0 12px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.header-link:hover{color:var(--text-primary);background:var(--bg-card-hover);border-color:var(--border-strong);transform:translateY(-1px)}.scan-controls{align-items:flex-end;gap:var(--space-md);flex-wrap:wrap;display:flex}.control-label{color:var(--text-secondary);flex-direction:column;flex:1;gap:6px;min-width:220px;font-size:13px;display:flex}.input-group{align-items:stretch;display:flex}.cap-input{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-md) 0 0 var(--radius-md);width:100%;min-width:0;color:var(--text-primary);font-size:var(--text-sm);border-right:0;outline:none;padding:11px 14px}.cap-input:focus{border-color:var(--blue-500)}.cap-input:disabled{opacity:.6}.input-suffix{border:1px solid var(--border);border-radius:0 var(--radius-md) var(--radius-md) 0;background:var(--bg-base);color:var(--text-tertiary);font-size:var(--text-xs);white-space:nowrap;align-items:center;padding:0 12px;display:inline-flex}.scan-btn,.chart-action-btn{min-height:44px;font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;transition:background .15s var(--ease-smooth), transform .15s var(--ease-spring), box-shadow .15s var(--ease-smooth);-webkit-tap-highlight-color:transparent;border:none;border-radius:999px;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.scan-btn{background:linear-gradient(135deg, var(--blue-500), #4b9dff);color:#fff;padding:0 22px;box-shadow:0 6px 14px #3182f647}.scan-btn:hover:not(:disabled),.chart-action-btn:hover{transform:translateY(-1px)}.scan-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.chart-action-btn{width:auto;min-width:0;min-height:0;color:var(--text-secondary);vertical-align:baseline;background:0 0;border:none;margin-left:6px;padding:0;font-size:15px;font-weight:400;line-height:1;display:inline}.chart-action-btn:hover{color:var(--text-primary)}.loading-wrapper{align-items:center;gap:var(--space-md);padding:var(--space-2xl) 0;flex-direction:column;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--blue-500);border-radius:50%;width:38px;height:38px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:var(--text-secondary);font-size:var(--text-sm);margin:0}.error-banner{margin-top:var(--space-md);border-radius:var(--radius-md);color:#ffb4bc;font-size:var(--text-xs);background:#f044521f;border:1px solid #f0445273;padding:12px 14px}.data-timestamp{color:var(--text-tertiary);white-space:nowrap;margin:0;font-size:12px}.result-count{margin:0 0 var(--space-md);color:var(--text-secondary);font-size:var(--text-xs)}.table-wrapper{border:1px solid var(--border);border-radius:var(--radius-lg);overflow-x:auto}.mobile-only{display:none}.results-table{border-collapse:collapse;width:100%;font-size:14px}.results-table thead{background:var(--bg-base)}.results-table thead th{border-bottom:1px solid var(--border);color:var(--text-secondary);text-align:right;white-space:nowrap;padding:10px 14px;font-size:12px;font-weight:600}.results-table thead th:first-child{text-align:left}.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable-th:hover{color:var(--text-primary)}.sort-indicator{color:var(--blue-500);font-size:11px}.results-table tbody tr{transition:background .15s var(--ease-smooth);background:0 0}.results-table tbody tr:hover{background:var(--bg-base)}.results-table tbody td{border-bottom:1px solid var(--border);color:var(--text-primary);text-align:right;white-space:nowrap;padding:14px}.results-table tbody tr:last-child td{border-bottom:none}.results-table tbody td:first-child{text-align:left}.name-cell-wrap{justify-content:flex-start;align-items:center;gap:0;display:flex}.name-cell-label{letter-spacing:-.01em;font-weight:700}.results-cards{gap:var(--space-md);display:grid}.results-cards.mobile-only{display:none}.result-card{border:1px solid color-mix(in srgb, var(--border) 72%, transparent);border-radius:var(--radius-lg);background:var(--bg-card);width:100%;box-shadow:var(--shadow-card);text-align:left;color:var(--text-primary);padding:16px}.result-card-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.result-card-heading{flex:1;justify-content:flex-start;align-items:center;gap:0;min-width:0;display:flex}.result-card-name{font-size:var(--text-sm);letter-spacing:-.01em;font-weight:700;line-height:1.35}.result-card-cap{white-space:nowrap;background:0 0;border:none;border-radius:0;flex-direction:column;align-items:flex-end;gap:2px;padding:0;display:inline-flex}.result-card-cap-label{color:var(--text-tertiary);letter-spacing:.04em;font-size:10px;font-weight:600}.result-card-cap-value{color:var(--text-primary);font-feature-settings:"tnum";font-size:13px;font-weight:700}.empty-msg{padding:var(--space-3xl) 0;text-align:center;color:var(--text-tertiary);margin:0}.modal-backdrop{z-index:120;background:#000000c7;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{border:1px solid color-mix(in srgb, var(--border) 72%, transparent);border-radius:var(--radius-xl);background:var(--bg-card);width:100%;max-width:900px;box-shadow:var(--shadow-soft);overflow:hidden}.modal-header{align-items:center;gap:var(--space-md);border-bottom:1px solid var(--border);flex-wrap:wrap;padding:16px 18px;display:flex}.modal-title{letter-spacing:-.02em;margin:0;font-size:18px}.modal-ticker{color:var(--text-tertiary);font-size:14px;font-weight:400}.modal-legend{flex-wrap:wrap;flex:1;gap:8px;display:flex}.legend-item{border:1px solid #0000;border-radius:999px;padding:4px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.modal-close{border:1px solid var(--border);background:var(--bg-elevated);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border-radius:999px;margin-left:auto;font-size:16px}.modal-close:hover{background:var(--bg-card-hover);border-color:var(--border-strong);color:var(--text-primary)}.chart-container{width:100%}@media (width<=768px){.app-shell{padding:0 var(--space-md) var(--space-3xl)}.app-header{margin:0 calc(-1 * var(--space-md));padding:0 var(--space-md)}.header-row{align-items:center;gap:var(--space-sm);flex-direction:row;min-height:68px}.header-left{flex:1;min-width:0}.app-heading{flex-wrap:nowrap;gap:6px}.header-right{flex-shrink:0;justify-content:flex-end;width:auto}.header-link{min-height:30px;padding:0 10px;font-size:11px}.app-title{font-size:20px}.scanner-card,.results-card-shell{padding:16px}.scanner-card-header,.results-card-header{flex-direction:column;gap:10px}.scan-controls{gap:var(--space-sm)}.control-label{width:100%;min-width:0}.scan-btn{width:100%}.desktop-table{display:none}.mobile-only,.results-cards.mobile-only{display:grid}.modal-backdrop{align-items:flex-end;padding:12px}.modal-content{max-height:calc(100vh - 24px)}}@media (width<=480px){.app-title,.panel-title{font-size:18px}.name-cell-wrap{flex-direction:column;align-items:flex-start}.chart-action-btn{width:auto;margin-left:6px}.result-card-top{gap:12px}}
