*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0a0a1a;--bg-secondary: #12122a;--bg-card: rgba(20, 20, 50, .6);--bg-glass: rgba(255, 255, 255, .04);--border-glass: rgba(255, 255, 255, .08);--text-primary: #e8e8f0;--text-secondary: #9898b8;--text-muted: #6868a0;--accent-purple: #8b5cf6;--accent-blue: #6366f1;--accent-cyan: #06b6d4;--accent-green: #10b981;--accent-red: #ef4444;--accent-amber: #f59e0b;--gradient-main: linear-gradient(135deg, #6366f1, #8b5cf6, #a78bfa);--gradient-gold: linear-gradient(135deg, #f59e0b, #fbbf24);--gradient-silver: linear-gradient(135deg, #9ca3af, #d1d5db);--gradient-bronze: linear-gradient(135deg, #d97706, #f59e0b);--font-primary: "Inter", "Noto Sans KR", -apple-system, BlinkMacSystemFont, sans-serif;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--shadow-glow: 0 0 40px rgba(99, 102, 241, .15);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}body{font-family:var(--font-primary);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh;min-height:100dvh;overflow-x:hidden;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}#root{position:relative;z-index:1}.bg-glow{position:fixed;border-radius:50%;filter:blur(100px);opacity:.25;pointer-events:none;z-index:0}.bg-glow-1{width:300px;height:300px;background:radial-gradient(circle,rgba(99,102,241,.5),transparent);top:-100px;left:-100px;animation:float1 15s ease-in-out infinite}.bg-glow-2{width:250px;height:250px;background:radial-gradient(circle,rgba(139,92,246,.3),transparent);top:40%;right:-100px;animation:float2 20s ease-in-out infinite}.bg-glow-3{width:200px;height:200px;background:radial-gradient(circle,rgba(6,182,212,.2),transparent);bottom:-50px;left:20%;animation:float3 18s ease-in-out infinite}@keyframes float1{0%,to{transform:translate(0)}50%{transform:translate(30px,50px)}}@keyframes float2{0%,to{transform:translate(0)}50%{transform:translate(-30px,-20px)}}@keyframes float3{0%,to{transform:translate(0)}50%{transform:translate(15px,-30px)}}.container{position:relative;z-index:1;max-width:100%;padding:16px 12px;padding-top:calc(16px + var(--safe-top));padding-bottom:calc(24px + var(--safe-bottom))}.header{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.logo-area{display:flex;align-items:center;gap:12px}.logo-icon{width:44px;height:44px;background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-size:22px;flex-shrink:0}.header h1{font-size:22px;font-weight:800;background:var(--gradient-main);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.5px}.subtitle{font-size:11px;color:var(--text-muted);font-weight:400;margin-top:1px}.date-badge{font-size:11px;color:var(--text-secondary);background:var(--bg-glass);border:1px solid var(--border-glass);padding:6px 12px;border-radius:var(--radius-sm);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);align-self:flex-start}.legend-section{background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-md);padding:16px;margin-bottom:20px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.section-title{font-size:15px;font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.badge{font-size:10px;font-weight:600;background:var(--gradient-main);color:#fff;padding:3px 8px;border-radius:20px}.legend-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.legend-item{display:flex;align-items:center;gap:6px;padding:8px;background:#ffffff05;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.04);transition:all .2s ease}.legend-icon{font-size:16px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;background:#ffffff08;flex-shrink:0}.legend-label{font-size:11px;font-weight:500;color:var(--text-primary);display:block}.legend-score{font-size:10px;color:var(--text-muted);font-weight:600}.analyze-section{text-align:center;margin-bottom:24px}.filter-toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;margin:0 4px 10px;padding:6px 12px;background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-sm);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);-webkit-user-select:none;user-select:none;transition:all .2s ease}.filter-toggle:active{transform:scale(.97)}.filter-toggle input[type=checkbox]{display:none}.toggle-slider{width:36px;height:20px;background:#ffffff1a;border-radius:10px;position:relative;transition:background .3s ease;flex-shrink:0}.toggle-slider:after{content:"";position:absolute;width:14px;height:14px;border-radius:50%;background:var(--text-muted);top:3px;left:3px;transition:all .3s ease}.filter-toggle input:checked+.toggle-slider{background:var(--accent-purple)}.filter-toggle input:checked+.toggle-slider:after{transform:translate(16px);background:#fff}.toggle-label{font-size:12px;font-weight:600;color:var(--text-secondary)}.analyze-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 32px;width:100%;max-width:320px;margin:0 auto;background:var(--gradient-main);border:none;border-radius:var(--radius-xl);cursor:pointer;position:relative;overflow:hidden;transition:all .3s ease;box-shadow:0 6px 30px #6366f14d}.analyze-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.2),transparent);opacity:0;transition:opacity .3s ease}.analyze-btn:active{transform:scale(.97)}.analyze-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-icon{font-size:24px}.btn-text{font-family:var(--font-primary);font-size:16px;font-weight:700;color:#fff}.btn-sub{font-family:var(--font-primary);font-size:11px;color:#ffffffb3;font-weight:400}.loading-state{text-align:center;padding:40px 16px}.loading-spinner{position:relative;width:64px;height:64px;margin:0 auto 20px}.spinner-ring{position:absolute;inset:0;border:3px solid transparent;border-top-color:var(--accent-purple);border-radius:50%;animation:spin 1.2s linear infinite}.ring-2{inset:6px;border-top-color:var(--accent-blue);animation-duration:1.8s;animation-direction:reverse}.ring-3{inset:12px;border-top-color:var(--accent-cyan);animation-duration:2.4s}@keyframes spin{to{transform:rotate(360deg)}}.loading-title{font-size:17px;font-weight:700;margin-bottom:6px;background:var(--gradient-main);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.loading-desc{font-size:13px;color:var(--text-secondary);margin-bottom:20px}.loading-steps{display:flex;flex-direction:column;gap:6px;align-items:center}.step{font-size:12px;color:var(--text-muted);padding:6px 16px;border-radius:var(--radius-sm);background:var(--bg-glass);border:1px solid var(--border-glass);transition:all .4s ease;opacity:.4}.step.active{color:var(--accent-cyan);opacity:1;border-color:#06b6d44d;background:#06b6d40d}.step.done{color:var(--accent-green);opacity:.8}.error-state{text-align:center;padding:40px 16px;background:var(--bg-glass);border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.error-icon{font-size:40px;margin-bottom:12px}.error-state h3{font-size:17px;font-weight:700;color:var(--accent-red);margin-bottom:6px}.error-state p{font-size:13px;color:var(--text-secondary);margin-bottom:16px}.retry-btn{font-family:var(--font-primary);padding:10px 24px;border:1px solid rgba(239,68,68,.3);background:#ef44441a;color:var(--accent-red);border-radius:var(--radius-sm);cursor:pointer;font-size:13px;font-weight:600;transition:all .2s ease}.results-section{margin-bottom:24px}.results-header{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.results-meta{display:flex;gap:6px;flex-wrap:wrap}.meta-badge{font-size:10px;color:var(--text-secondary);background:var(--bg-glass);border:1px solid var(--border-glass);padding:4px 8px;border-radius:var(--radius-sm)}.stock-cards{display:flex;flex-direction:column;gap:16px}.stock-card{background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--radius-md);padding:16px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:all .3s ease;animation:cardFadeIn .6s ease forwards;opacity:0;transform:translateY(16px);position:relative;overflow:hidden}.stock-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--gradient-main);opacity:.6}.stock-card.rank-1:before{background:var(--gradient-gold);opacity:1}.stock-card.rank-2:before{background:var(--gradient-silver);opacity:1}.stock-card.rank-3:before{background:var(--gradient-bronze);opacity:1}@keyframes cardFadeIn{to{opacity:1;transform:translateY(0)}}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px;gap:8px}.card-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.rank-badge{width:40px;height:40px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:900;color:#fff;background:var(--gradient-main);flex-shrink:0}.rank-1 .rank-badge{background:var(--gradient-gold);color:#1a1a2e}.rank-2 .rank-badge{background:var(--gradient-silver);color:#1a1a2e}.rank-3 .rank-badge{background:var(--gradient-bronze);color:#1a1a2e}.stock-name{font-size:17px;font-weight:800;letter-spacing:-.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stock-meta{display:flex;gap:4px;margin-top:2px;flex-wrap:wrap}.stock-ticker,.stock-market{font-size:10px;color:var(--text-muted);background:#ffffff0a;padding:1px 6px;border-radius:3px}.card-right{text-align:right;flex-shrink:0}.total-score{font-size:28px;font-weight:900;line-height:1;background:var(--gradient-main);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.rank-1 .total-score{background:var(--gradient-gold);-webkit-background-clip:text;background-clip:text}.score-label{font-size:9px;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.price-info{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:14px}.price-item{background:#ffffff05;padding:8px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.04)}.price-label{font-size:9px;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.3px;display:block;margin-bottom:2px}.price-value{font-size:14px;font-weight:700;color:var(--text-primary)}.price-value.positive{color:var(--accent-green)}.price-value.negative{color:var(--accent-red)}.score-bars{margin-bottom:14px}.score-bar-item{display:flex;align-items:center;gap:8px;margin-bottom:8px}.score-bar-label{width:65px;font-size:10px;font-weight:600;color:var(--text-secondary);text-align:right;flex-shrink:0}.score-bar-track{flex:1;height:6px;background:#ffffff0d;border-radius:3px;overflow:hidden}.score-bar-fill{height:100%;border-radius:3px;transition:width 1s ease}.score-bar-fill.excellent{background:linear-gradient(90deg,#10b981,#34d399)}.score-bar-fill.good{background:linear-gradient(90deg,#6366f1,#818cf8)}.score-bar-fill.average{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.score-bar-fill.poor{background:linear-gradient(90deg,#ef4444,#f87171)}.score-bar-value{width:40px;font-size:11px;font-weight:700;color:var(--text-primary);flex-shrink:0}.report-section{background:#6366f108;border:1px solid rgba(99,102,241,.1);border-radius:var(--radius-sm);padding:14px}.report-title{font-size:12px;font-weight:700;color:var(--accent-purple);margin-bottom:10px;display:flex;align-items:center;gap:6px}.report-list{list-style:none;display:flex;flex-direction:column;gap:6px}.report-list li{font-size:12px;color:var(--text-secondary);line-height:1.5;padding-left:16px;position:relative}.report-list li:before{content:"▸";position:absolute;left:0;color:var(--accent-cyan);font-weight:700;font-size:11px}.disclaimer{text-align:center;padding:20px 12px;margin-top:24px;border-top:1px solid var(--border-glass)}.disclaimer p{font-size:11px;color:var(--text-muted)}.hidden{display:none!important}@media(min-width:640px){.container{padding:24px 20px;max-width:720px;margin:0 auto}.header{flex-direction:row;justify-content:space-between;align-items:center}.header h1{font-size:26px}.date-badge{align-self:center}.legend-grid{grid-template-columns:repeat(3,1fr);gap:10px}.legend-section{padding:20px}.section-title{font-size:17px}.analyze-btn{max-width:360px;padding:18px 40px}.stock-card{padding:22px}.stock-name{font-size:20px}.total-score{font-size:32px}.price-info{grid-template-columns:repeat(4,1fr)}.bg-glow-1{width:500px;height:500px}.bg-glow-2{width:400px;height:400px}}@media(min-width:960px){.container{max-width:960px;padding:32px 24px}.header h1{font-size:28px}.legend-grid{grid-template-columns:repeat(6,1fr)}.analyze-btn:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 12px 48px #6366f180}.analyze-btn:hover:before{opacity:1}.stock-card:hover{border-color:#ffffff26;transform:translateY(-2px);box-shadow:var(--shadow-glow)}.legend-item:hover{background:#ffffff0f;border-color:#ffffff1a;transform:translateY(-1px)}.stock-card{padding:28px}.rank-badge{width:48px;height:48px;font-size:20px}.stock-name{font-size:22px}.total-score{font-size:36px}.score-bar-label{width:80px;font-size:12px}.score-bar-track{height:8px}.score-bar-value{width:50px;font-size:12px}.bg-glow-1{width:600px;height:600px}.bg-glow-2{width:500px;height:500px}.bg-glow-3{width:400px;height:400px}}
