:root{--ds-bg-primary:#06070a;--ds-bg-surface:#0e1017;--ds-bg-elevated:#161822;--ds-bg-card:#1a1c2b;--ds-bg-hover:#22243a;--ds-accent:#45a29e;--ds-accent-bright:#66fcf1;--ds-accent-dim:#2d7370;--ds-accent-glow:#66fcf11f;--ds-accent-glow-strong:#66fcf140;--ds-success:#34d399;--ds-warning:#fbbf24;--ds-danger:#f87171;--ds-info:#60a5fa;--ds-text-primary:#e8eaed;--ds-text-secondary:#8b8fa3;--ds-text-muted:#767a90;--ds-text-inverse:#06070a;--ds-border:#1e2030;--ds-border-hover:#2a2d45;--ds-border-active:#45a29e;--ds-gradient-hero:linear-gradient(160deg, #06070a 0%, #0f1923 40%, #0a1a1a 70%, #06070a 100%);--ds-gradient-card:linear-gradient(145deg, #1a1c2b 0%, #12131e 100%);--ds-gradient-accent:linear-gradient(135deg, #45a29e 0%, #66fcf1 100%);--ds-gradient-accent-btn:linear-gradient(135deg, #38897e 0%, #45a29e 50%, #55c5bf 100%);--ds-font-display:"Outfit", "Inter", system-ui, -apple-system, sans-serif;--ds-font-body:"Inter", system-ui, -apple-system, sans-serif;--ds-font-mono:"JetBrains Mono", "Fira Code", "Courier New", monospace;--ds-text-xs:.75rem;--ds-text-sm:.875rem;--ds-text-base:1rem;--ds-text-lg:1.125rem;--ds-text-xl:1.25rem;--ds-text-2xl:1.5rem;--ds-text-3xl:1.875rem;--ds-text-4xl:2.25rem;--ds-text-5xl:3rem;--ds-text-6xl:3.75rem;--ds-text-hero:clamp(2.5rem, 5vw, 4.5rem);--ds-weight-normal:400;--ds-weight-medium:500;--ds-weight-semibold:600;--ds-weight-bold:700;--ds-weight-black:900;--ds-leading-tight:1.2;--ds-leading-snug:1.35;--ds-leading-normal:1.6;--ds-leading-relaxed:1.75;--ds-space-1:.25rem;--ds-space-2:.5rem;--ds-space-3:.75rem;--ds-space-4:1rem;--ds-space-5:1.25rem;--ds-space-6:1.5rem;--ds-space-8:2rem;--ds-space-10:2.5rem;--ds-space-12:3rem;--ds-space-16:4rem;--ds-space-20:5rem;--ds-space-24:6rem;--ds-space-32:8rem;--ds-radius-sm:4px;--ds-radius-md:8px;--ds-radius-lg:12px;--ds-radius-xl:16px;--ds-radius-2xl:24px;--ds-radius-full:9999px;--ds-shadow-sm:0 1px 2px #0000004d;--ds-shadow-md:0 4px 12px #0006;--ds-shadow-lg:0 8px 30px #00000080;--ds-shadow-xl:0 16px 50px #0009;--ds-shadow-glow:0 0 20px #66fcf126, 0 0 60px #66fcf10d;--ds-shadow-card:0 4px 20px #0000004d, inset 0 1px 0 #ffffff08;--ds-transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--ds-transition-base:.25s cubic-bezier(.4, 0, .2, 1);--ds-transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--ds-transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1);--ds-max-width:1200px;--ds-max-width-lg:1400px;--ds-z-base:1;--ds-z-dropdown:10;--ds-z-sticky:20;--ds-z-overlay:30;--ds-z-modal:40;--ds-z-toast:50}*{box-sizing:border-box;margin:0;padding:0}html{background-color:var(--ds-bg-primary);color:var(--ds-text-primary);font-size:16px;font-family:var(--ds-font-body);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--ds-gradient-hero);min-height:100vh;color:var(--ds-text-primary);font-size:var(--ds-text-base);line-height:var(--ds-leading-normal);flex-direction:column;display:flex}h1,h2,h3,h4,h5,h6{font-family:var(--ds-font-display);font-weight:var(--ds-weight-semibold);color:var(--ds-text-primary);line-height:var(--ds-leading-tight)}h1{font-size:var(--ds-text-4xl);letter-spacing:-.03em;margin-bottom:var(--ds-space-4)}h2{font-size:var(--ds-text-2xl);letter-spacing:-.02em;margin-bottom:var(--ds-space-3)}p{color:var(--ds-text-secondary);margin-bottom:var(--ds-space-4)}a{color:var(--ds-accent-bright);transition:color var(--ds-transition-fast);text-decoration:none}a:hover{color:var(--ds-accent)}code,pre{font-family:var(--ds-font-mono);font-size:var(--ds-text-sm);background-color:var(--ds-bg-surface);border:1px solid var(--ds-border);border-radius:var(--ds-radius-sm)}code{padding:var(--ds-space-1) var(--ds-space-2)}#app{width:100%;max-width:var(--ds-max-width-lg);min-height:100vh;padding:var(--ds-space-6) var(--ds-space-4);flex-direction:column;margin:0 auto;display:flex;position:relative}.container{width:100%;max-width:var(--ds-max-width);margin:0 auto}.card{background:var(--ds-gradient-card);border:1px solid var(--ds-border);border-radius:var(--ds-radius-lg);padding:var(--ds-space-6);box-shadow:var(--ds-shadow-card);transition:border-color var(--ds-transition-base), box-shadow var(--ds-transition-base)}.card:hover{border-color:var(--ds-border-hover);box-shadow:var(--ds-shadow-md)}.btn{padding:var(--ds-space-3) var(--ds-space-6);border-radius:var(--ds-radius-md);font-family:var(--ds-font-display);font-weight:var(--ds-weight-medium);font-size:var(--ds-text-sm);cursor:pointer;transition:transform var(--ds-transition-fast), box-shadow var(--ds-transition-fast);border:none;justify-content:center;align-items:center;display:inline-flex}.btn-primary{background:var(--ds-gradient-accent-btn);color:var(--ds-text-inverse)}.btn-primary:hover{box-shadow:var(--ds-shadow-glow);transform:translateY(-1px)}.btn-secondary{background:var(--ds-bg-surface);border:1px solid var(--ds-border);color:var(--ds-text-primary)}.btn-secondary:hover{border-color:var(--ds-border-hover);background:var(--ds-bg-hover)}.dashboard{width:100%;max-width:1400px;padding:var(--ds-space-8) var(--ds-space-6);gap:var(--ds-space-6);flex-direction:column;margin:0 auto;display:flex}.dash-header{text-align:center;padding:var(--ds-space-8) 0 var(--ds-space-4)}.dash-header h1{font-size:var(--ds-text-5xl);font-weight:var(--ds-weight-black);letter-spacing:-.04em;margin-bottom:var(--ds-space-2)}.dash-header .accent{color:var(--ds-accent-bright)}.tagline{color:var(--ds-text-muted);font-size:var(--ds-text-lg);margin:0}.site-nav{top:var(--ds-space-4);right:var(--ds-space-6);align-items:center;gap:var(--ds-space-2);display:flex;position:absolute}.nav-btn{align-items:center;gap:var(--ds-space-2);padding:var(--ds-space-2) var(--ds-space-3);border-radius:var(--ds-radius-md);border:1px solid var(--ds-border);background:var(--ds-bg-elevated);color:var(--ds-text-muted);font-size:var(--ds-text-sm);font-weight:var(--ds-weight-medium);transition:color var(--ds-transition-fast), border-color var(--ds-transition-fast), background var(--ds-transition-fast);text-decoration:none;display:inline-flex}.nav-btn:hover{color:var(--ds-accent-bright);border-color:var(--ds-accent-dim);background:var(--ds-accent-glow)}.upload-zone{gap:var(--ds-space-4);grid-template-columns:1fr 1fr;align-items:start;display:grid}.upload-card{background:var(--ds-gradient-card);border:2px dashed var(--ds-border);border-radius:var(--ds-radius-xl);padding:var(--ds-space-8) var(--ds-space-6);text-align:center;cursor:pointer;transition:border-color var(--ds-transition-base), background var(--ds-transition-base);gap:var(--ds-space-2);flex-direction:column;align-items:center;display:flex}.upload-card:hover,.upload-card.drag-over{border-color:var(--ds-accent);background:var(--ds-bg-elevated)}.upload-card.loaded{border-color:var(--ds-success);border-style:solid}.data-source-card{background:var(--ds-gradient-card);border:1px solid var(--ds-border);border-radius:var(--ds-radius-xl);padding:var(--ds-space-5) var(--ds-space-6);gap:var(--ds-space-4);box-shadow:var(--ds-shadow-card);transition:border-color var(--ds-transition-base);flex-direction:column;display:flex}.data-source-card.loaded{border-color:var(--ds-success)}.card-header-row{justify-content:space-between;align-items:center;gap:var(--ds-space-4);display:flex}.platform-selector{justify-content:center;align-items:center;gap:var(--ds-space-3);flex-wrap:wrap;display:flex}.platform-tag{padding:var(--ds-space-1) var(--ds-space-3);border-radius:var(--ds-radius-full);border:1.5px solid var(--ds-border);color:var(--ds-text-muted);font-size:var(--ds-text-sm);font-weight:var(--ds-weight-medium);font-family:var(--ds-font-body);cursor:pointer;transition:border-color var(--ds-transition-fast), color var(--ds-transition-fast), background var(--ds-transition-fast);background:0 0}.platform-tag:hover{border-color:var(--ds-border-hover);color:var(--ds-text-secondary)}.platform-tag.active{border-color:var(--ds-accent);color:var(--ds-accent-bright);background:var(--ds-accent-glow)}.platform-cta{font-size:var(--ds-text-sm);color:var(--ds-text-muted);white-space:nowrap;transition:color var(--ds-transition-fast);text-decoration:none}.platform-cta:hover{color:var(--ds-accent-bright)}.drop-area{border:2px dashed var(--ds-border);border-radius:var(--ds-radius-lg);width:100%;padding:var(--ds-space-6) var(--ds-space-4);text-align:center;cursor:pointer;transition:border-color var(--ds-transition-base), background var(--ds-transition-base);gap:var(--ds-space-2);flex-direction:column;align-items:center;display:flex}.drop-area:hover,.drop-area.drag-over{border-color:var(--ds-accent);background:var(--ds-bg-elevated)}.symbol-selector{justify-content:center;align-items:center;gap:var(--ds-space-2);flex-wrap:wrap;display:flex}.symbol-selector-label{font-size:var(--ds-text-xs);font-weight:var(--ds-weight-semibold);color:var(--ds-text-muted);text-transform:uppercase;letter-spacing:.08em;margin-right:var(--ds-space-1)}.symbol-chip{padding:var(--ds-space-1) var(--ds-space-3);border-radius:var(--ds-radius-full);border:1px solid var(--ds-border);color:var(--ds-text-secondary);font-size:var(--ds-text-sm);font-weight:var(--ds-weight-medium);font-family:var(--ds-font-mono);cursor:pointer;transition:all var(--ds-transition-fast);background:0 0}.symbol-chip:hover{border-color:var(--ds-border-hover);color:var(--ds-text-primary)}.symbol-chip.active{border-color:var(--ds-accent);color:var(--ds-accent-bright);background:var(--ds-accent-glow)}.upload-icon{font-size:2rem;line-height:1}.upload-label{font-weight:var(--ds-weight-semibold);color:var(--ds-text-primary)}.upload-hint{font-size:var(--ds-text-sm);color:var(--ds-text-muted)}.upload-status{font-size:var(--ds-text-sm);color:var(--ds-text-secondary);font-family:var(--ds-font-mono);text-align:center}.kpi-bar{gap:var(--ds-space-4);grid-template-columns:repeat(7,1fr);display:grid}.kpi-card{background:var(--ds-gradient-card);border:1px solid var(--ds-border);border-radius:var(--ds-radius-lg);padding:var(--ds-space-5) var(--ds-space-6);gap:var(--ds-space-1);flex-direction:column;display:flex}.kpi-mdd-card{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.kpi-mdd-card:hover{border-color:var(--ds-border-hover)}.kpi-mdd-card.revealed{background:linear-gradient(145deg,#2b1a1a 0%,#1a1215 100%);border-color:#f8717166}.kpi-mode-card{border-color:#ffffff0f;transition:border-color .25s,background .25s}.kpi-mode-card.revealed{background:linear-gradient(145deg,#162120 0%,#0e1918 100%);border-color:#45a29e59}.kpi-value.kpi-mode-inactive{color:var(--ds-text-muted);opacity:.45}.kpi-mdd-ribbon{text-align:center;color:#111827;letter-spacing:.18em;pointer-events:none;background:linear-gradient(135deg,#f5c518 0%,#d4a000 100%);width:80px;padding:3px 0;font-size:8px;font-weight:900;position:absolute;top:10px;right:-22px;transform:rotate(45deg);box-shadow:0 2px 6px #00000080,inset 0 1px #ffffff40}.kpi-label{font-size:var(--ds-text-xs);color:var(--ds-text-muted);text-transform:uppercase;letter-spacing:.07em;font-weight:var(--ds-weight-medium)}.kpi-value{font-size:var(--ds-text-2xl);font-weight:var(--ds-weight-bold);font-family:var(--ds-font-mono);color:var(--ds-text-primary);line-height:1}.kpi-value.success{color:var(--ds-success)}.kpi-value.warning{color:var(--ds-warning)}.kpi-value.danger{color:var(--ds-danger)}.kpi-label-brand{text-transform:none;letter-spacing:.04em;font-size:var(--ds-text-sm);font-weight:var(--ds-weight-bold);color:var(--ds-danger)}.kpi-info-icon.kpi-info-warn{color:var(--ds-warning)}.kpi-info-icon{color:var(--ds-text-muted);cursor:help;vertical-align:middle;margin-left:3px;font-size:10px;display:inline-block;position:relative}.kpi-info-icon:after{content:attr(data-tooltip);white-space:normal;border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);width:260px;color:var(--ds-text-secondary);pointer-events:none;opacity:0;z-index:200;text-transform:none;letter-spacing:0;background:#1a1f2e;padding:8px 10px;font-size:11px;font-weight:400;line-height:1.55;transition:opacity .15s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.kpi-info-icon:hover:after{opacity:1}.kpi-sub{font-size:var(--ds-text-xs);color:var(--ds-text-muted);font-family:var(--ds-font-mono)}.chart-section{background:var(--ds-gradient-card);border:1px solid var(--ds-border);border-radius:var(--ds-radius-xl);padding:var(--ds-space-6)}.chart-header{margin-bottom:var(--ds-space-6);justify-content:space-between;align-items:center;display:flex}.chart-header h2{margin:0}.mode-toggle{background:var(--ds-bg-primary);border:1px solid var(--ds-border);border-radius:var(--ds-radius-md);gap:2px;padding:3px;display:flex}.toggle-btn{padding:var(--ds-space-2) var(--ds-space-5);border-radius:calc(var(--ds-radius-md) - 2px);color:var(--ds-text-muted);font-family:var(--ds-font-body);font-size:var(--ds-text-sm);font-weight:var(--ds-weight-medium);cursor:pointer;transition:background var(--ds-transition-fast), color var(--ds-transition-fast);background:0 0;border:none}.toggle-btn.active{background:var(--ds-accent);color:var(--ds-text-inverse)}.chart-wrap{height:420px;position:relative}@media (width<=900px){.upload-zone{grid-template-columns:1fr}.kpi-bar{grid-template-columns:repeat(2,1fr)}.kpi-card:last-child{grid-column:1/-1}.site-nav{top:var(--ds-space-2);right:var(--ds-space-3)}.nav-btn span{display:none}}.dsf-card{background:var(--ds-gradient-card);border:1px solid var(--ds-border);border-radius:var(--ds-radius-xl);padding:var(--ds-space-6);align-items:center;gap:var(--ds-space-3);cursor:pointer;transition:border-color var(--ds-transition-base), background var(--ds-transition-base);text-align:center;box-shadow:var(--ds-shadow-card);flex-direction:column;display:flex}.dsf-card:hover{border-color:var(--ds-border-hover);background:var(--ds-bg-elevated)}.dsf-card.loaded{border-color:var(--ds-success);cursor:default}.dsf-card.drag-over{border-color:var(--ds-accent);background:var(--ds-bg-elevated)}.dsf-icon{font-size:2rem;line-height:1}.dsf-title{font-weight:var(--ds-weight-semibold);color:var(--ds-text-primary)}.dsf-platform-row{justify-content:center;align-items:center;gap:var(--ds-space-3);flex-wrap:wrap;display:flex}.dsf-drop-hint{font-size:var(--ds-text-sm);color:var(--ds-text-muted);font-family:var(--ds-font-mono);border:1.5px dashed var(--ds-border);border-radius:var(--ds-radius-md);padding:var(--ds-space-3) var(--ds-space-8);transition:border-color var(--ds-transition-fast), color var(--ds-transition-fast);pointer-events:none}.dsf-card:hover .dsf-drop-hint{border-color:var(--ds-accent-dim);color:var(--ds-text-secondary)}.dsf-divider{background:var(--ds-border-hover);width:100%;height:1px;margin:var(--ds-space-1) 0}.dsf-section{align-items:center;gap:var(--ds-space-3);flex-direction:row;width:100%;display:flex}.dsf-section-label{font-size:var(--ds-text-xs);font-weight:var(--ds-weight-semibold);color:var(--ds-text-muted);text-transform:uppercase;letter-spacing:.09em;text-align:right;flex-shrink:0;min-width:64px}.dsf-tags{justify-content:flex-start;align-items:center;gap:var(--ds-space-2);flex-wrap:wrap;flex:1;display:flex}.dsf-tag{padding:var(--ds-space-1) var(--ds-space-3);border-radius:var(--ds-radius-sm);border:1px solid var(--ds-border);color:var(--ds-text-secondary);font-size:var(--ds-text-sm);font-weight:var(--ds-weight-medium);font-family:var(--ds-font-mono);cursor:pointer;transition:border-color var(--ds-transition-fast), color var(--ds-transition-fast), background var(--ds-transition-fast);background:0 0}.dsf-tag:hover{border-color:var(--ds-border-hover);color:var(--ds-text-primary);background:var(--ds-bg-hover)}.dsf-tag.active{border-color:var(--ds-accent);color:var(--ds-accent-bright);background:var(--ds-accent-glow)}.dsf-platform-text{font-family:var(--ds-font-body);font-size:var(--ds-text-sm);font-weight:var(--ds-weight-bold);color:var(--ds-text-muted);letter-spacing:.02em;cursor:pointer}.dsf-platform-text.active{color:var(--ds-accent-bright)}.dsf-platform-text.disabled{color:var(--ds-text-muted);opacity:.35;cursor:not-allowed}.dsf-platform-text-divider{color:var(--ds-border);font-size:var(--ds-text-sm);-webkit-user-select:none;user-select:none}.dsf-platform-cta{font-size:var(--ds-text-sm);color:var(--ds-text-muted);white-space:nowrap}.dsf-platform-cta-link{color:var(--ds-accent-bright);font-weight:var(--ds-weight-bold);transition:opacity var(--ds-transition-fast);text-decoration:none}.dsf-platform-cta-link:hover{opacity:.75}.tf-rec{color:var(--ds-accent-bright);font-weight:var(--ds-weight-semibold)}.dsf-tf-hint{font-size:var(--ds-text-sm);color:var(--ds-text-muted);font-family:var(--ds-font-mono);text-align:center}.dsf-tf-stats{font-size:var(--ds-text-sm);color:var(--ds-text-secondary);font-family:var(--ds-font-mono);text-align:center}.dsf-tf-stats b{color:var(--ds-text-primary)}.tf-info-icon{color:var(--ds-text-muted);cursor:help;vertical-align:middle;font-size:.85em}.dsf-tf-confidence{align-items:center;gap:var(--ds-space-1);text-align:center;flex-direction:column;display:flex}.tf-conf-badge{font-size:var(--ds-text-lg);font-weight:var(--ds-weight-bold);letter-spacing:.04em;cursor:help}.tf-conf-inline-badge{font-weight:var(--ds-weight-bold);letter-spacing:.04em;cursor:help;padding:0 var(--ds-space-1);display:inline-block}.dsf-card.loaded .dsf-icon,.dsf-card.loaded .dsf-title{cursor:pointer;transition:opacity var(--ds-transition-fast)}.dsf-card.loaded .dsf-icon:hover,.dsf-card.loaded .dsf-title:hover{opacity:.65}.dsf-card{transition:border-color .3s}.dsf-card-body{align-items:center;gap:var(--ds-space-3);flex-direction:column;width:100%;max-height:600px;transition:max-height .4s cubic-bezier(.4,0,.2,1),opacity .25s;display:flex;overflow:hidden}.upload-zone.collapsed .dsf-card{cursor:pointer}.upload-zone.collapsed .dsf-card-body{opacity:0;pointer-events:none;max-height:0}@keyframes flash-hint{0%,to{color:var(--ds-text-muted)}30%,70%{color:var(--ds-accent-bright)}}.flash-hint{animation:.65s 2 flash-hint}.cards-toggle-btn{background:var(--ds-bg-elevated);border:1px solid var(--ds-border);border-radius:var(--ds-radius-full);color:var(--ds-text-muted);font-size:var(--ds-text-xs);padding:var(--ds-space-1) var(--ds-space-5);cursor:pointer;transition:color var(--ds-transition-fast), border-color var(--ds-transition-fast);letter-spacing:.05em;margin:0 auto;display:block}.cards-toggle-btn:hover{color:var(--ds-text-primary);border-color:var(--ds-border-hover)}#status-tv{width:100%;max-width:280px}.coverage-bar-container{cursor:help;width:100%;height:6px;margin-top:var(--ds-space-3);border:1px solid #f871714d;border-radius:2px;display:flex;overflow:hidden}.coverage-void{background:#f8717133;height:100%}.coverage-fill-green{background:#45a29e;border-radius:1px;min-width:4px;height:100%;box-shadow:0 0 6px #45a29e}.site-nav,.dash-header h1{opacity:0;animation:.7s cubic-bezier(.25,.46,.45,.94) .1s forwards fadeInInPlace;transform:translateY(-8px)}.upload-zone{opacity:0;animation:.8s cubic-bezier(.25,.46,.45,.94) .6s forwards fadeInUpCards;transform:translateY(12px)}.tagline{opacity:0;filter:blur(4px);animation:.8s cubic-bezier(.25,.46,.45,.94) 1.3s forwards fadeInTagline;transform:translateY(3px)}@keyframes fadeInInPlace{to{opacity:1;transform:translateY(0)}}@keyframes fadeInTagline{to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes fadeInUpCards{to{opacity:1;transform:translateY(0)}}.lying-word{font-weight:var(--ds-weight-bold);color:var(--ds-text-muted);display:inline-block;position:relative}.lying-word:after{content:"lying";background:linear-gradient(90deg,#ff4d4d 0%,#f9cb40 20%,#4cd964 40%,#5ac8fa 60%,#5856d6 80%,#ff2d55 100%) 0%/200%;-webkit-text-fill-color:transparent;opacity:0;pointer-events:none;-webkit-background-clip:text;width:100%;height:100%;animation:2.1s cubic-bezier(.25,.46,.45,.94) 1.3s forwards lyingRainbowFlow;display:inline-block;position:absolute;top:0;left:0}@keyframes lyingRainbowFlow{0%{opacity:0;background-position:0%}9.5%{opacity:1;background-position:0%}60%{opacity:1;background-position:-200%}90%,to{opacity:0;background-position:-200%}}
