@import"https://fonts.googleapis.com/css2?family=Public+Sans:wght@400;500;600;700&family=Source+Sans+3:wght@400;500;600;700&display=swap";:root{--nb-red: #e1001a;--nb-red-dark: #b10016;--nb-charcoal: #3c3d40;--nb-surface: #ece9e4;--ink-900: #181c20;--ink-700: #40484f;--ink-500: #68727d;--line: #d4d0ca;--card-bg: #fbfaf8;--accent-color: var(--nb-red)}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:"Source Sans 3",sans-serif;color:var(--ink-900);background:radial-gradient(circle at 10% 0%,#f7eeeb 0%,transparent 26%),var(--nb-surface)}h1,h2,h3,strong{font-family:Public Sans,sans-serif;letter-spacing:-.02em}h1,h2,h3{text-wrap:balance}input,select,button{font:inherit}a,button,input,select{-webkit-tap-highlight-color:rgba(225,0,26,.16);touch-action:manipulation}.app-shell{position:relative;isolation:isolate}.skip-link{position:absolute;left:1rem;top:-3rem;z-index:40;background:#fff;color:var(--ink-900);border:1px solid var(--line);border-radius:999px;padding:.35rem .8rem;text-decoration:none}.skip-link:focus-visible{top:1rem;outline:2px solid var(--nb-red);outline-offset:2px}.nb-header{background:#fff;box-shadow:0 2px 9px #181c200a}.nb-topbar{background:var(--nb-charcoal);color:#f6f6f6;width:100%;padding:.55rem max(1rem,calc((100% - 1180px)/2));display:flex;align-items:center;gap:1.5rem}.nb-topbar-right{display:flex;align-items:center;gap:1rem;margin-left:auto}.nb-topbar-right a{color:inherit;text-decoration:none;font-size:.84rem;white-space:nowrap}.nb-topbar-right a:hover{color:var(--nb-red)}.nb-topnav,.nb-mainnav{display:flex;gap:1rem;min-width:0}.nb-topnav a,.nb-mainnav a{color:inherit;text-decoration:none;font-size:.84rem;white-space:nowrap}.nb-topnav a:hover,.nb-mainnav a:hover{color:var(--nb-red)}.nb-signin{border:0;border-radius:999px;background:var(--nb-red);color:#fff;padding:.35rem .85rem;font-weight:600;transition:background-color .2s ease,transform .2s ease;cursor:pointer}.nb-signin:hover{background:var(--nb-red-dark);transform:translateY(-1px)}.nb-logo{display:inline-flex;align-items:center;gap:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.8rem}.nb-logo-mark{width:1.3rem;height:1rem;background:var(--nb-red);clip-path:polygon(0 0,100% 0,72% 52%,100% 100%,0 100%,28% 52%)}.texture{position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(24,28,32,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(24,28,32,.03) 1px,transparent 1px);background-size:54px 54px;opacity:.5;z-index:-1}.layout{width:min(1180px,100% - 2rem);margin:1.1rem auto 2.5rem}.card{border:1px solid var(--line);border-radius:14px;background:var(--card-bg);padding:1.1rem;box-shadow:0 7px 18px #181c200a}.card[id]{scroll-margin-top:5.8rem}.info-cards-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.info-card{border:1px solid var(--line);border-radius:14px;background:var(--card-bg);padding:1.3rem 1.4rem;box-shadow:0 7px 18px #181c200a;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease}.info-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #181c2014}.info-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.info-card-header h3{font-size:1.1rem;margin:0;line-height:1.3}.info-card-icon{font-size:1.6rem;line-height:1;opacity:.85}.info-card p{font-size:.92rem;color:var(--ink-700);line-height:1.55;flex:1;margin:0 0 .8rem}.info-card-cta{font-size:.92rem;font-weight:600;color:var(--nb-red);text-decoration:none;cursor:pointer;transition:color .15s ease}.info-card-cta:hover{color:var(--nb-red-dark);text-decoration:underline}.info-card-cta .file-input{position:absolute;width:0;height:0;opacity:0;pointer-events:none}@media(max-width:700px){.info-cards-row{grid-template-columns:1fr}}.hero{position:relative;overflow:hidden;background:linear-gradient(120deg,#fff 0% 62%,#f5f1ec);color:var(--ink-900);display:block;padding:2.5rem max(1rem,calc((100% - 1180px)/2));border:none;border-radius:0;box-shadow:none}.hero:after{content:"";position:absolute;left:0;top:0;width:min(96%,1100px);height:100%;background:linear-gradient(106deg,var(--nb-red) 0%,#cf011b 74%,#b10016 100%);clip-path:polygon(0 0,100% 0,88% 100%,0 100%)}.hero-copy{position:relative;z-index:1;color:#fff;padding-right:2rem}.hero-panel{position:relative;z-index:1;border:1px solid var(--line);border-radius:12px;padding:.9rem;background:#fff;align-self:end}.hero-panel p{margin:0 0 .45rem;font-size:.83rem;text-transform:uppercase;letter-spacing:.08em}.hero-panel ul{margin:0;padding-left:1rem}.hero-panel li{margin:.24rem 0;font-size:.88rem;color:var(--ink-700)}.eyebrow{text-transform:uppercase;letter-spacing:.09em;font-size:.75rem;opacity:.94;margin-top:0}.hero h1{margin:.2rem 0;font-size:clamp(1.8rem,4vw,2.7rem)}.hero p{max-width:58ch;margin:.35rem 0;color:#ffffffeb}.pill-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.9rem}.pill-row span{background:#ffffff3d;border:1px solid rgba(255,255,255,.34);border-radius:999px;padding:.3rem .72rem;font-size:.78rem}.controls h2,.card h2{margin:0 0 .7rem;font-size:1.35rem;font-weight:700;color:var(--ink-900)}.control-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:1rem}.upload-zone{border:1px solid #d8d0c7;background:#fff;border-radius:12px;display:flex;flex-direction:column;justify-content:flex-start;padding:1.2rem 1.3rem;gap:.6rem;cursor:pointer;transition:border-color .2s ease}.upload-zone:hover{border-color:var(--nb-red)}.upload-zone strong{font-size:1rem;color:var(--ink-900)}.upload-zone>span{font-size:.9rem;color:var(--ink-700);line-height:1.5}.upload-kicker{display:inline-flex;align-self:flex-start;border-radius:999px;background:#e1001a17;color:var(--nb-red-dark);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:.22rem .6rem}.file-input{width:100%;border:1px solid var(--line);border-radius:10px;padding:.4rem;background:#fff;font-size:.88rem;color:var(--ink-700)}.file-input::file-selector-button{border:0;border-radius:999px;background:var(--nb-red);color:#fff;padding:.42rem .9rem;margin-right:.7rem;font-weight:600;font-size:.85rem;cursor:pointer;transition:background-color .15s ease}.file-input::file-selector-button:hover{background:var(--nb-red-dark)}.upload-zone small{color:var(--ink-500);font-size:.82rem;line-height:1.4}.upload-notes{border:1px solid #d8d0c7;border-radius:12px;background:#fff;padding:1.2rem 1.3rem}.loading-overlay{position:fixed;inset:0;background:#181c20b3;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.loading-container{background:#fff;border-radius:16px;padding:3rem 2.5rem;max-width:400px;width:90%;box-shadow:0 20px 60px #181c2026;text-align:center;animation:slideUp .4s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.spinner{width:56px;height:56px;margin:0 auto 1.5rem;border:4px solid #e5e0d8;border-top-color:var(--nb-red);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-title{font-size:1.4rem;margin:0 0 .5rem;color:var(--ink-900);font-weight:700}.loading-subtitle{font-size:.95rem;color:var(--ink-700);margin:0 0 1.8rem;line-height:1.5}.progress-steps{display:flex;flex-direction:column;gap:.75rem}.progress-step{display:flex;align-items:center;gap:.8rem;padding:.7rem 1rem;background:#f5f1ec;border-radius:8px;transition:all .3s ease}.progress-step.active{background:#e1001a14}.step-number{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#e5e0d8;color:var(--ink-900);font-weight:600;font-size:.85rem;flex-shrink:0}.progress-step.active .step-number{background:var(--nb-red);color:#fff;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 0 #e1001a66}50%{transform:scale(1.05);box-shadow:0 0 0 8px #e1001a00}}.step-label{font-size:.9rem;color:var(--ink-700);font-weight:500}.upload-notes h3{margin:0 0 .6rem;font-size:1rem;font-weight:700;color:var(--ink-900)}.upload-notes ul{margin:0;padding-left:1.1rem}.upload-notes li{margin:.3rem 0;font-size:.9rem;color:var(--ink-700);line-height:1.5}.upload-notes p{margin:.7rem 0 0;font-size:.9rem;color:var(--ink-700);line-height:1.55}.upload-notes p{margin:.65rem 0 0;color:var(--ink-700)}.chart-card,.bias-card,.metrics-row article,.history-item{border:1px solid var(--line);border-radius:11px;background:#fff}.action,.ghost{border:0;border-radius:9px;cursor:pointer;transition:transform .2s ease,background-color .2s ease}.action{margin-top:.7rem;background:var(--accent-color);color:#fff;font-weight:700;padding:.5rem .9rem}.ghost{background:#efefef;color:var(--ink-900);padding:.5rem .8rem}.action:hover,.ghost:hover,.history-item:hover,.heatmap-cell:hover{transform:translateY(-1px)}.issue-list{margin:.8rem 0 0;padding-left:1rem;color:#8d3f00}.section-head{display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap}.profile-line{margin:.2rem 0 .75rem}.profile-line strong{color:var(--accent-color)}.bias-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:.7rem}.bias-card{padding:.85rem;transition:transform .2s ease,box-shadow .2s ease;position:relative;overflow:hidden}.bias-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--bias-accent, var(--accent-color));border-radius:11px 11px 0 0}.bias-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #181c201a}.bias-card-header{display:flex;align-items:center;gap:.4rem}.bias-icon{font-size:1.15rem}.bias-card p,.bias-card small,.bias-card li,.recommendations li,.recommendations p,.metrics-row p{color:var(--ink-700)}.bias-card p,.bias-card small,.metrics-row p{margin:0}.bias-card h3{margin:.25rem 0 .4rem;font-size:1.6rem;color:var(--bias-accent, var(--accent-color))}.bias-bar-track{height:6px;background:var(--nb-surface);border-radius:3px;margin-bottom:.4rem;overflow:hidden}.bias-bar-fill{height:100%;border-radius:3px;transition:width .6s cubic-bezier(.22,1,.36,1)}.bias-card ul,.recommendations ul{padding-left:1rem;margin:.4rem 0 0;font-size:.85rem}.insights-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.85rem}.chart-card{padding:1rem;transition:transform .18s ease,box-shadow .18s ease}.chart-card:hover{transform:translateY(-1px);box-shadow:0 6px 20px #181c2014}.chart-card h3{margin:0 0 .65rem;font-size:.95rem;color:var(--ink-700)}.chart-wide,.chart-narrow{grid-column:span 1}.chart-full{grid-column:1 / -1}.quality-card{display:flex;flex-direction:column}.quality-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-bottom:.65rem}.quality-item{border:1px solid var(--line);border-radius:10px;padding:.55rem .5rem;text-align:center;background:var(--nb-surface)}.quality-item strong{display:block;font-size:1.1rem;color:var(--ink-900)}.quality-item span{font-size:.72rem;color:var(--ink-600);text-transform:uppercase;letter-spacing:.04em}.quality-errors strong{color:#b91c1c}.quality-warnings strong{color:#a16207}.quality-info strong{color:#0369a1}.quality-notes{margin:0;padding-left:1rem;font-size:.8rem;color:var(--ink-700)}.chart-svg{width:100%;height:auto;display:block}.donut-wrapper{display:flex;align-items:center;justify-content:center;gap:1.5rem;padding:.5rem 0}.donut-svg{width:140px;height:140px}.donut-legend{display:grid;grid-template-columns:auto 1fr;gap:.3rem .5rem;align-items:center;font-size:.88rem;color:var(--ink-700)}.legend-dot{width:10px;height:10px;border-radius:50%}.legend-win{background:#087a67}.legend-loss{background:#f0e0de}.text-green{color:#087a67}.text-red{color:#d93236}.risk-badge{display:inline-block;font-size:.72rem;font-weight:600;padding:.15rem .45rem;border-radius:999px;background:var(--nb-surface);color:var(--ink-700);margin-top:.15rem}.recommendations .two-column{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:.75rem}.heatmap-grid{display:grid;grid-template-columns:repeat(8,minmax(26px,1fr));gap:.45rem}.heatmap-cell{background:var(--accent-color);border-radius:8px;color:#fff;min-height:46px;display:grid;place-items:center;transition:transform .2s ease}.heatmap-cell span{font-size:.72rem;font-weight:600}.recommendations h3{margin:0 0 .35rem}.recommendations p{margin:.2rem 0 .9rem}.metrics-row{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:.6rem}.metrics-row article{padding:.65rem}.metrics-row h3{margin:.2rem 0 0;font-variant-numeric:tabular-nums}.history-list{display:grid;gap:.5rem}.history-item{color:var(--ink-900);text-align:left;padding:.55rem .7rem;display:grid;gap:.1rem;cursor:pointer;transition:transform .2s ease,border-color .2s ease}.history-item:hover{border-color:var(--accent-color)}.empty-state{color:var(--ink-500)}.analysis-topbar{width:min(1180px,100% - 2rem);margin:1.2rem auto 0;display:flex;align-items:center;gap:1rem}.analysis-title{flex:1;font-size:1.4rem;margin:0}.back-btn{border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink-900);padding:.45rem .85rem;font-weight:600;cursor:pointer;transition:background-color .2s ease,transform .2s ease}.back-btn:hover{background:#f0eeeb;transform:translateY(-1px)}.column-mapper{padding:1.5rem}.mapper-file-info{display:flex;align-items:center;gap:.7rem;padding:1.2rem;border:2px dashed var(--line);border-radius:12px;margin-bottom:1.3rem;justify-content:center;flex-direction:column}.mapper-check{width:2.4rem;height:2.4rem;border-radius:50%;background:#e6f7f0;color:#087a67;display:grid;place-items:center;font-size:1.1rem;font-weight:700}.mapper-size{color:var(--ink-500);font-size:.85rem}.mapper-section-label{text-transform:uppercase;letter-spacing:.09em;font-size:.78rem;font-weight:700;color:var(--ink-700);margin:0 0 .8rem}.mapper-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.9rem;margin-bottom:1rem}.mapper-field label{display:block;font-size:.82rem;font-weight:600;margin-bottom:.3rem;color:var(--ink-700)}.mapper-req{color:var(--nb-red)}.mapper-field select{width:100%;padding:.45rem .6rem;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:.88rem;color:var(--ink-900);cursor:pointer}.mapper-field select:focus{border-color:var(--nb-red);outline:2px solid rgba(225,0,26,.15)}.mapper-status{font-size:.88rem;margin:.6rem 0 1rem}.mapper-ok{color:#087a67}.mapper-warn{color:#c17a00}.mapper-actions{display:flex;gap:.7rem;justify-content:flex-end;align-items:stretch}.mapper-actions .ghost{font-family:"Source Sans 3",sans-serif;font-size:.95rem;font-weight:600;padding:.55rem 1.2rem;border:1px solid var(--line);border-radius:999px;background:#f5f3f0;color:var(--ink-700);cursor:pointer;transition:background-color .15s ease}.mapper-actions .ghost:hover{background:#eae7e3}.mapper-confirm{font-family:"Source Sans 3",sans-serif;font-size:.95rem;font-weight:600;padding:.55rem 1.6rem;border:none;border-radius:999px;background:var(--nb-red);color:#fff;cursor:pointer;transition:background-color .15s ease}.mapper-confirm:hover{background:var(--nb-red-dark)}.mapper-confirm:disabled{opacity:.45;cursor:not-allowed;transform:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--nb-red);outline-offset:2px}@media(max-width:980px){.nb-mainnav{display:none}.hero,.control-grid,.bias-grid,.insights-grid,.recommendations .two-column,.metrics-row{grid-template-columns:1fr}.chart-wide,.chart-narrow,.chart-full{grid-column:1 / -1}.layout,.nb-mainbar{width:min(1180px,100% - 1rem)}.nb-topbar{padding-left:.5rem;padding-right:.5rem}}@media(max-width:560px){.nb-topnav{gap:.6rem;overflow-x:auto}.pill-row span{font-size:.72rem}.hero-panel{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.trading-heatmap-container{width:100%}.heatmap-header{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.heatmap-header h3{margin:0;font-size:1.3rem;color:var(--ink-900)}.heatmap-controls{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:center}.control-group{display:flex;align-items:center;gap:.5rem}.control-group label{font-size:.75rem;font-weight:600;color:var(--ink-500);letter-spacing:.05em}.control-group button{padding:.35rem .75rem;font-size:.82rem;border:1px solid var(--line);background:#fff;color:var(--ink-700);border-radius:6px;cursor:pointer;transition:all .2s ease}.control-group button:hover{background:var(--nb-surface);border-color:var(--ink-500)}.control-group button.active{background:var(--nb-charcoal);color:#fff;border-color:var(--nb-charcoal);font-weight:600}.heatmap-grid-wrapper{overflow-x:auto;margin:1rem 0}.heatmap-grid{display:grid;gap:2px;min-width:max-content}.heatmap-cell{min-width:60px;min-height:48px;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;border-radius:4px;transition:transform .15s ease,box-shadow .15s ease}.heatmap-cell.header-cell{background:transparent;color:var(--ink-500);font-size:.75rem;font-weight:600;min-height:32px}.heatmap-cell.row-label{background:transparent;color:var(--ink-700);font-weight:600;font-size:.85rem;justify-content:flex-start;padding-left:.5rem}.heatmap-cell.data-cell{cursor:pointer;position:relative}.heatmap-cell.data-cell:hover{transform:scale(1.05);box-shadow:0 4px 12px #00000026;z-index:10}.heatmap-legend{display:flex;gap:1.5rem;justify-content:flex-end;align-items:center;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:var(--ink-700)}.legend-box{width:24px;height:16px;border-radius:3px}.legend-box.loss{background:linear-gradient(to right,#b42828,#ff2828)}.legend-box.profit{background:linear-gradient(to right,#108767,#10c367)}@media(max-width:980px){.heatmap-controls{flex-direction:column;align-items:flex-start}.heatmap-cell{min-width:50px;min-height:42px}}
