@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Inter_Fallback_f367f3;src:local("Arial");ascent-override:90.49%;descent-override:22.56%;line-gap-override:0.00%;size-adjust:107.06%}.__className_f367f3{font-family:__Inter_f367f3,__Inter_Fallback_f367f3;font-style:normal}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8f9fa}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.app{min-height:100vh;background-color:#fff}.app-header{background:#488286;color:#fff;padding:3rem 2rem;text-align:center;box-shadow:0 4px 20px rgba(48,82,82,.3);position:relative;overflow:hidden}.app-header h1{margin:0 0 .5rem;font-size:2.5rem;position:relative;z-index:1;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.1)}.app-header p{margin:0;opacity:.95;font-size:1.1rem;position:relative;z-index:1;font-weight:300}.app-container{display:grid;grid-template-columns:420px 1fr;grid-gap:2rem;gap:2rem;padding:2rem;max-width:1600px;margin:0 auto}.controls-panel{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 4px 16px rgba(55,62,64,.08);height:-moz-fit-content;height:fit-content;position:-webkit-sticky;position:sticky;top:2rem;border:1px solid rgba(72,130,134,.2);transition:box-shadow .3s ease}.controls-panel:hover{box-shadow:0 6px 24px rgba(48,82,82,.15)}.controls-panel h3{margin:0 0 1rem;color:#373e40;font-size:1.2rem;border-bottom:2px solid #488286;padding-bottom:.5rem}.main-content{display:flex;flex-direction:column;gap:2rem}.stock-selector{margin-bottom:2rem}.stock-input-group{display:flex;gap:.5rem;margin-bottom:1rem}.stock-input{flex:1 1;padding:.75rem;border:2px solid #e0e0e0;border-radius:4px;font-size:1rem;transition:border-color .3s}.stock-input:focus{outline:none;border-color:#488286}.btn-add{padding:.75rem 1.5rem;background:#488286;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;transition:background .3s}.btn-add:hover{background:#305252}.selected-stocks{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.stock-tag{display:inline-flex;gap:.5rem;padding:.5rem 1rem;background:#b7d5d4;border-radius:20px;font-weight:600}.btn-remove,.stock-tag{align-items:center;color:#373e40}.btn-remove{background:none;border:none;cursor:pointer;font-size:1.2rem;padding:0;width:20px;height:20px;display:flex;justify-content:center;border-radius:50%;transition:background .3s}.btn-remove:hover{background:rgba(55,62,64,.2)}.popular-stocks{margin-top:1rem}.popular-stocks p{margin:0 0 .5rem;font-size:.9rem;color:#666}.popular-stocks-list{display:flex;flex-wrap:wrap;gap:.5rem}.market-selector{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e0e0e0}.market-selector h4{margin:0 0 1.25rem;padding:0 .25rem;font-size:1rem;color:#333;font-weight:600}.market-category{margin-bottom:1.5rem}.market-category-title{margin:0 0 .75rem;padding:0 .25rem;font-size:.95rem;font-weight:600;color:#555;text-transform:uppercase;letter-spacing:.5px}.market-buttons{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:.6rem;gap:.6rem;margin-bottom:1.25rem;padding:0 .25rem}.btn-market{padding:.75rem .5rem;background:#fff;border:2px solid #e0e0e0;border-radius:4px;cursor:pointer;font-weight:600;transition:all .3s;font-size:.85rem;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-height:44px;display:flex;align-items:center;justify-content:center}.btn-market:hover{border-color:#488286;background:#b7d5d4}.btn-market.active{background:#488286;color:#fff;border-color:#488286}.market-stocks-section{margin-top:1rem;padding:1.25rem;background:#fff;border:1px solid #e0e0e0;border-radius:4px}.market-index-section{margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid #e0e0e0}.market-index-section strong{display:block;margin-bottom:.75rem;color:#333;font-size:.95rem}.btn-market-index{margin-top:.5rem;padding:.75rem 1.25rem;background:#488286;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;font-size:.9rem;transition:background .2s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;max-width:100%;box-sizing:border-box}.btn-market-index:hover:not(:disabled){background:#305252}.btn-market-index:disabled{background:#ccc;cursor:not-allowed}.market-stocks-list strong{display:block;margin-bottom:.75rem;color:#333;font-size:.95rem;padding:0 .25rem}.market-stocks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));grid-gap:.5rem;gap:.5rem;max-height:250px;overflow-y:auto;overflow-x:hidden;padding:.75rem;background:#f9f9f9;border-radius:4px}.btn-market-stock{padding:.6rem .4rem;background:#fff;border:1px solid #e0e0e0;border-radius:4px;cursor:pointer;font-size:.8rem;transition:all .2s;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-height:36px;display:flex;align-items:center;justify-content:center;word-break:break-all}.btn-market-stock:hover:not(:disabled){background:#488286;color:#fff;border-color:#488286}.btn-market-stock:disabled{opacity:.5;cursor:not-allowed}.no-stocks-message{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;color:#856404;font-size:.9rem}.btn-popular{padding:.4rem .8rem;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:4px;cursor:pointer;font-size:.85rem;transition:all .3s}.btn-popular:hover:not(:disabled){background:#e0e0e0}.btn-popular:disabled{opacity:.5;cursor:not-allowed}.model-selector{margin-bottom:2rem}.model-options{display:flex;flex-direction:column;gap:.75rem}.model-option{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;border:2px solid #e0e0e0;border-radius:4px;cursor:pointer;transition:all .3s}.model-option:hover{border-color:#488286;background:#b7d5d4}.model-option input[type=radio]{margin-top:.2rem;cursor:pointer}.model-info{display:flex;flex-direction:column;gap:.25rem}.model-info strong{color:#333}.model-desc{font-size:.85rem;color:#666}.date-range-selector{margin-bottom:2rem}.period-options{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:.5rem;gap:.5rem}.btn-period{padding:.75rem;background:#fff;border:2px solid #e0e0e0;border-radius:4px;cursor:pointer;transition:all .3s;font-size:.9rem}.btn-period:hover{border-color:#488286;background:#b7d5d4}.btn-period.active{border-color:#488286}.btn-period.active,.btn-run{background:#488286;color:#fff}.btn-run{width:100%;padding:1.25rem;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:background .2s ease;margin-bottom:2rem;box-shadow:0 2px 8px rgba(48,82,82,.2)}.btn-run:hover:not(:disabled){background:#305252}.btn-run:disabled{opacity:.6;cursor:not-allowed}.results-panel{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.results-panel h3{margin:0 0 1.5rem;color:#373e40;font-size:1.5rem;border-bottom:2px solid #488286;padding-bottom:.5rem}.results-panel.empty,.results-panel.loading{text-align:center;padding:3rem;color:#666}.result-card{background:#fff;padding:1.5rem;border-radius:8px;margin-bottom:1rem;border:1px solid #e0e0e0;border-left:4px solid #488286}.result-card h4{margin:0 0 1rem;color:#333;font-size:1.3rem}.result-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:1rem;gap:1rem}.stat-item{display:flex;justify-content:space-between;padding:.75rem;background:#fff;border-radius:4px}.stat-label{font-weight:600;color:#666}.stat-value{font-weight:700;color:#333;font-family:Courier New,monospace}.error-message{background:#ffebee;color:#c62828;padding:1rem;border-left:4px solid #c62828}.error-message,.info-message{border-radius:4px;margin-top:1rem}.info-message{background:#b7d5d4;color:#305252;padding:.75rem;border-left:4px solid #488286;font-size:.9rem}.chart-container{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.chart-item{margin-bottom:2rem}.chart-item:last-child{margin-bottom:0}@media (max-width:1024px){.app-container{grid-template-columns:1fr}.controls-panel{position:static}}.factor-input-container{margin-bottom:2rem;padding:1rem;background:#fff;border-radius:4px;border:1px solid #e0e0e0}.factor-inputs h4{margin:0 0 .5rem;color:#333;font-size:1.1rem}.factor-note{font-size:.85rem;color:#666;font-style:italic}.factor-input-group,.factor-note{margin-bottom:1rem}.factor-input-group label{display:block;font-weight:600;color:#333;margin-bottom:.5rem;font-size:.9rem}.factor-input{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:4px;font-size:1rem;transition:border-color .3s}.factor-input:focus{outline:none;border-color:#667eea}.factor-input-group small{display:block;font-size:.8rem;color:#666;margin-top:.25rem}.progress-tracker{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1);margin-bottom:2rem}.progress-header{margin-bottom:1.5rem}.progress-header h3{margin:0 0 1rem;color:#333}.progress-bar-container{width:100%;height:30px;background:#e0e0e0;border-radius:15px;overflow:hidden;position:relative}.progress-bar{height:100%;background:#667eea;transition:width .3s ease;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:.9rem}.progress-steps{display:flex;flex-direction:column;gap:1rem}.progress-step{display:flex;gap:1rem;padding:1rem;border-radius:4px;background:#fff;border-left:4px solid #e0e0e0;transition:all .3s}.progress-step.completed,.progress-step.in_progress{background:#b7d5d4;border-left-color:#488286}.progress-step.in_progress{animation:pulse 2s infinite}.progress-step.error{background:#ffebee;border-left-color:#f44336}.progress-step.pending{opacity:.6}.step-indicator{font-size:1.5rem;width:30px;height:30px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.step-content{flex:1 1}.step-title{font-weight:600;color:#333;margin-bottom:.25rem}.step-message{font-size:.9rem;color:#666;margin-top:.25rem}.step-details{font-size:.85rem;color:#888;margin-top:.25rem;font-style:italic}.step-error{font-size:.9rem;color:#c62828;margin-top:.5rem;font-weight:600}.current-step{margin-top:1rem;padding:.75rem;background:#b7d5d4;border-radius:4px;color:#305252;font-size:.9rem}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.results-page{padding:2rem;max-width:1400px;margin:0 auto}.results-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.btn-back{padding:.75rem 1.5rem;background:#488286;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;transition:background .3s}.btn-back:hover{background:#305252}.results-header h2{margin:0;color:#333}.results-summary{margin-bottom:2rem}.summary-card{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.summary-card h3{margin:0 0 1rem;color:#333}.summary-card p{margin:.5rem 0;color:#666}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(500px,1fr));grid-gap:2rem;gap:2rem;margin-bottom:2rem}.chart-card{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.chart-card h3{margin:0 0 1rem;color:#333;font-size:1.2rem}.chart-description{margin-top:1.5rem;padding:1rem;background:#fff;border-radius:4px;border:1px solid #e0e0e0;border-left:3px solid #488286;font-size:.9rem;line-height:1.6;color:#555}.chart-description strong{color:#333;display:block;margin-bottom:.5rem}.detailed-results{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.detailed-results h3{margin:0 0 1.5rem;color:#333}.result-detail-card{background:#fff;padding:1.5rem;border-radius:8px;margin-bottom:1rem;border:1px solid #e0e0e0;border-left:4px solid #488286}.result-detail-card h4{margin:0 0 1rem;color:#333;font-size:1.3rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:1rem;gap:1rem}.stat{display:flex;flex-direction:column;padding:.75rem;background:#fff;border-radius:4px}.stat label{font-size:.85rem;color:#666;margin-bottom:.25rem}.stat .stat-value{font-size:1.1rem;font-weight:700;color:#333;font-family:Courier New,monospace}.error-display{margin-top:1rem;padding:1rem;background:#ffebee;color:#c62828;border-radius:4px;border-left:4px solid #c62828}.no-results{text-align:center;padding:3rem;color:#666}@media (max-width:768px){.app-header h1{font-size:2rem}.app-container{padding:1rem}.charts-grid,.period-options{grid-template-columns:1fr}.results-page{padding:1rem}}.custom-regression{margin-bottom:2rem;padding:1.5rem;background:#fff;border-radius:8px;border:2px solid #488286}.custom-regression h3{margin:0 0 .5rem;color:#333}.custom-regression-note{font-size:.9rem;color:#666;margin-bottom:1.5rem;font-style:italic}.regression-input-group{margin-bottom:1.5rem}.regression-input-group label{display:block;font-weight:600;color:#333;margin-bottom:.5rem}.regression-input{flex:1 1;padding:.75rem;border:2px solid #e0e0e0;border-radius:4px;font-size:1rem;transition:border-color .3s}.regression-input:focus{outline:none;border-color:#667eea}.regression-input-group small{display:block;font-size:.8rem;color:#666;margin-top:.25rem}.factor-type-selector{margin-bottom:1.5rem}.factor-type-selector h4{margin:0 0 .75rem;color:#333;font-size:1rem}.factor-type-buttons{display:grid;grid-template-columns:1fr 1fr;grid-gap:.5rem;gap:.5rem}.btn-factor-type{padding:.75rem;background:#fff;border:2px solid #e0e0e0;border-radius:4px;cursor:pointer;font-weight:600;transition:all .3s;font-size:.9rem}.btn-factor-type:hover{border-color:#488286;background:#b7d5d4}.btn-factor-type.active{background:#488286;color:#fff;border-color:#488286}.factors-selection h4{margin:0 0 1rem;color:#333;font-size:1rem}.stock-factors-list{max-height:300px;overflow-y:auto;padding:.5rem;background:#f9f9f9;border-radius:4px}.factors-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.factor-checkbox{padding:1rem;background:#fff;border-radius:4px;border:1px solid #e0e0e0}.factor-checkbox label{display:flex;align-items:flex-start;gap:.75rem;cursor:pointer}.factor-checkbox input[type=checkbox]{margin-top:.2rem;cursor:pointer}.factor-name{flex:0 0 150px}.factor-desc{font-size:.85rem;flex:1 1}.factor-value-input{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e0e0e0}.factor-value-input label{display:block;font-size:.85rem;color:#666;margin-bottom:.25rem}.factor-value-field{width:100%;padding:.5rem;border:1px solid #e0e0e0;border-radius:4px;font-size:.9rem}.btn-setup-regression{width:100%;padding:1rem;background:#488286;color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s;box-shadow:0 2px 4px rgba(48,82,82,.2)}.btn-setup-regression:hover{background:#305252}.input-with-button{display:flex;gap:.5rem}.btn-validate{padding:.75rem 1.5rem;background:#488286;color:#fff;border:none;border-radius:4px;font-weight:600;cursor:pointer;transition:background .2s;white-space:nowrap;flex-shrink:0}.btn-validate:hover:not(:disabled){background:#305252}.btn-validate:disabled{background:#ccc;cursor:not-allowed}.validation-result{margin-top:.5rem;padding:.75rem;border-radius:4px;font-size:.9rem;font-weight:600}.validation-result.valid{background:#b7d5d4;color:#305252;border-left:3px solid #488286}.validation-result.invalid{background:#ffebee;color:#c62828;border-left:3px solid #f44336}.welcome-message{background:#fff;padding:3rem;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1);text-align:center}.welcome-message h2{color:#333;margin-bottom:1rem}.welcome-message p{color:#666;line-height:1.6;margin:.5rem 0}.model-info-panel{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1);margin-bottom:2rem;border:1px solid #e0e0e0}.model-info-panel h3{margin:0 0 1.5rem;color:#373e40;font-size:1.5rem;border-bottom:2px solid #488286;padding-bottom:.5rem}.model-formula{margin-bottom:1.5rem;padding:1rem;background:#f9f9f9;border-radius:4px;border-left:3px solid #488286}.model-formula strong{display:block;margin-bottom:.5rem;color:#333}.formula-display{font-family:Georgia,Times New Roman,serif;font-size:1.4rem;color:#373e40;font-weight:500;padding:1.5rem;background:#f9f9f9;border-radius:4px;text-align:center;margin-bottom:1rem;line-height:2;letter-spacing:.5px;font-style:italic}.formula-display sub{font-size:.75em;line-height:0;position:relative;bottom:-.25em;font-size:.7em;vertical-align:sub;font-style:normal}.formula-terms{margin-top:1rem;padding:1rem;background:#b7d5d4;border-radius:4px;border-left:3px solid #488286}.formula-terms strong{display:block;margin-bottom:.75rem;color:#333;font-size:.95rem}.formula-terms ul{list-style:none;padding:0;margin:0}.formula-terms li{padding:.5rem 0;border-bottom:1px solid #e0e0e0;display:flex;gap:.5rem}.formula-terms li:last-child{border-bottom:none}.term-symbol{font-family:Courier New,monospace;font-weight:700;color:#488286;min-width:80px;flex-shrink:0}.term-explanation{color:#555;font-size:.9rem;line-height:1.5}.model-description{margin-bottom:1.5rem}.model-description strong{display:block;margin-bottom:.5rem;color:#333}.model-description p{color:#666;line-height:1.6;margin:0}.model-factors{margin-bottom:1.5rem}.model-factors strong{display:block;margin-bottom:.75rem;color:#333}.model-factors ul{list-style:none;padding:0;margin:0}.model-factors li{padding:.75rem;margin-bottom:.5rem;background:#b7d5d4;border-radius:4px;border-left:3px solid #488286}.factor-name{display:block;font-weight:600;color:#333;margin-bottom:.25rem}.factor-desc{display:block;color:#666;font-size:.9rem;margin-bottom:.5rem}.factor-source{display:block;font-size:.85rem;color:#667eea;font-style:italic;margin-top:.5rem}.model-usage{margin-bottom:1.5rem;padding:1rem;background:#b7d5d4;border-radius:4px;border-left:3px solid #488286}.model-usage strong{display:block;margin-bottom:.5rem;color:#305252}.model-usage p{color:#555;line-height:1.6;margin:0}.model-sources{padding:1rem;background:#fff3e0;border-radius:4px;border-left:3px solid #ff9800}.model-sources strong{display:block;margin-bottom:.75rem;color:#e65100}.model-sources ul{list-style:none;padding:0;margin:0}.model-sources li{padding:.5rem 0;color:#666;border-bottom:1px solid #ffe0b2}.model-sources li:last-child{border-bottom:none}