:root,:root[data-theme=light]{--app-bg:#f5f7fb;--panel-bg:#fff;--panel-bg-alt:#f8fafc;--panel-border:#e2e8f0;--bg-primary:#fff;--bg-secondary:#f1f5f9;--border-color:#cbd5e1;--text-primary:#0f172a;--text-secondary:#334155;--text-muted:#64748b;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-soft:#2563eb26;--accent-secondary:#10b981;--accent-secondary-hover:#059669;--error-bg:#fef2f2;--error-border:#fca5a5;--input-bg:#fff;--input-border:#cbd5e1;--shadow:0 12px 30px #0f172a14;--card-shadow:0 12px 30px #0f172a1f;--positive-color:#22c55e;--negative-color:#ef4444;--positive-soft:#22c55e1f;--negative-soft:#ef44441f;--error-text:#b91c1c;--sidebar-bg:#0f172a;--sidebar-text:#f8fafc;--sidebar-border:#1e293b;--sidebar-divider:#f8fafc2e;--sidebar-hover-bg:#f8fafc14;--sidebar-hover-border:#f8fafc59;--sidebar-active-bg:#f8fafc2e;--sidebar-active-border:#f8fafc;--sidebar-shadow:#0f172a59;--sidebar-shadow-strong:#0f172a80;--overlay-bg:#0f172a99;--plot-bg:#fff;--plot-text:#0f172a;--plot-grid:#e2e8f0}:root[data-theme=dark]{--app-bg:#0b0f14;--panel-bg:#111827;--panel-bg-alt:#0f172a;--panel-border:#1f2937;--bg-primary:#0b1220;--bg-secondary:#111827;--border-color:#334155;--text-primary:#e5e7eb;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--accent:#22d3ee;--accent-hover:#06b6d4;--accent-soft:#22d3ee26;--accent-secondary:#34d399;--accent-secondary-hover:#10b981;--error-bg:#2b1416;--error-border:#ef4444;--input-bg:#0f172a;--input-border:#334155;--shadow:0 14px 36px #00000073;--card-shadow:0 14px 36px #00000080;--positive-color:#22c55e;--negative-color:#ef4444;--positive-soft:#22c55e2e;--negative-soft:#ef44442e;--error-text:#fca5a5;--sidebar-bg:#0b0f14;--sidebar-text:#e5e7eb;--sidebar-border:#1f2937;--sidebar-divider:#e2e8f024;--sidebar-hover-bg:#e2e8f014;--sidebar-hover-border:#e2e8f04d;--sidebar-active-bg:#e2e8f029;--sidebar-active-border:#e5e7eb;--sidebar-shadow:#00000073;--sidebar-shadow-strong:#0009;--overlay-bg:#020617b8;--plot-bg:#0b1220;--plot-text:#e5e7eb;--plot-grid:#334155}@media (prefers-color-scheme:dark){:root:not([data-theme]){--app-bg:#0b0f14;--panel-bg:#111827;--panel-bg-alt:#0f172a;--panel-border:#1f2937;--bg-primary:#0b1220;--bg-secondary:#111827;--border-color:#334155;--text-primary:#e5e7eb;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--accent:#22d3ee;--accent-hover:#06b6d4;--accent-soft:#22d3ee26;--accent-secondary:#34d399;--accent-secondary-hover:#10b981;--error-bg:#2b1416;--error-border:#ef4444;--input-bg:#0f172a;--input-border:#334155;--shadow:0 14px 36px #00000073;--card-shadow:0 14px 36px #00000080;--positive-color:#22c55e;--negative-color:#ef4444;--positive-soft:#22c55e2e;--negative-soft:#ef44442e;--error-text:#fca5a5;--sidebar-bg:#0b0f14;--sidebar-text:#e5e7eb;--sidebar-border:#1f2937;--sidebar-divider:#e2e8f024;--sidebar-hover-bg:#e2e8f014;--sidebar-hover-border:#e2e8f04d;--sidebar-active-bg:#e2e8f029;--sidebar-active-border:#e5e7eb;--sidebar-shadow:#00000073;--sidebar-shadow-strong:#0009;--overlay-bg:#020617b8;--plot-bg:#0b1220;--plot-text:#e5e7eb;--plot-grid:#334155}}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f7fb;background:var(--app-bg);color:#0f172a;color:var(--text-primary);margin:0}*,body{font-family:Lato,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.sidebar-title{font-family:Playfair Display,Georgia,Times New Roman,serif;letter-spacing:-.01em}.chart-title,.section-title,.smile-chart-title,h1,h2,h3,h4,h5,h6{font-family:Roboto Slab,Georgia,Times New Roman,serif;font-weight:700;letter-spacing:-.02em}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}.App{background-color:var(--bg-primary);color:var(--text-primary);display:flex;min-height:100vh;transition:background-color .3s ease,color .3s ease}.sidebar{background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);box-shadow:2px 0 10px var(--sidebar-shadow);color:var(--sidebar-text);display:flex;flex-direction:column;height:100vh;left:0;position:fixed;top:0;width:250px;z-index:100}.sidebar-header{border-bottom:1px solid var(--sidebar-divider);padding:2rem 1.5rem}.sidebar-title{font-size:2.5rem;font-weight:700;letter-spacing:.1em;margin:0;text-align:center}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;overflow-y:auto;padding:1rem 0}.sidebar-nav-item{background:#0000;border:none;border-left:4px solid #0000;color:var(--sidebar-text);cursor:pointer;font-size:1rem;font-weight:500;padding:1rem 1.5rem;text-align:left;transition:all .3s ease}.sidebar-nav-item:hover{background-color:var(--sidebar-hover-bg);border-left-color:var(--sidebar-hover-border)}.sidebar-nav-item.active{background-color:var(--sidebar-active-bg);border-left-color:var(--sidebar-active-border);font-weight:600}.main-content{background-color:var(--bg-primary);flex:1 1;margin-left:250px;min-height:100vh;overflow-x:auto;padding:1.5rem 1rem}.page-placeholder{align-items:center;background:var(--bg-secondary);border-radius:8px;box-shadow:0 2px 8px var(--card-shadow);color:var(--text-secondary);display:flex;font-size:1.5rem;justify-content:center;min-height:400px}.mobile-menu-button{background:var(--sidebar-bg);border:1px solid var(--sidebar-border);border-radius:8px;box-shadow:0 2px 8px var(--sidebar-shadow);cursor:pointer;display:none;left:1rem;padding:.75rem;position:fixed;top:1rem;transition:all .3s ease;z-index:1000}.mobile-menu-button:hover{background:var(--sidebar-hover-bg)}.mobile-menu-button:active{transform:scale(.95)}.hamburger{display:flex;flex-direction:column;gap:4px;width:24px}.hamburger span{background:var(--sidebar-text);border-radius:2px;display:block;height:3px;transition:all .3s ease}.mobile-menu-overlay{animation:fadeIn .3s ease;background:var(--overlay-bg);bottom:0;display:none;left:0;position:fixed;right:0;top:0;z-index:998}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.mobile-menu{animation:slideIn .3s ease;background:var(--sidebar-bg);box-shadow:2px 0 20px var(--sidebar-shadow-strong);display:none;height:100vh;left:0;overflow-y:auto;position:fixed;top:0;width:280px;z-index:999}@keyframes slideIn{0%{transform:translateX(-100%)}to{transform:translateX(0)}}.mobile-menu-header{align-items:center;border-bottom:1px solid var(--sidebar-divider);display:flex;justify-content:space-between;padding:1.5rem}.mobile-menu-header .sidebar-title{cursor:pointer;font-size:2rem}.close-button{align-items:center;background:#0000;border:none;color:var(--sidebar-text);cursor:pointer;display:flex;font-size:2.5rem;height:40px;justify-content:center;line-height:1;padding:0;transition:all .2s ease;width:40px}.close-button:hover{background:var(--sidebar-hover-bg);border-radius:4px}.mobile-nav{display:flex;flex-direction:column;padding:.5rem 0}.mobile-nav-item{background:#0000;border:none;border-left:4px solid #0000;color:var(--sidebar-text);cursor:pointer;font-size:1rem;font-weight:500;padding:1rem 1.5rem;text-align:left;transition:all .3s ease}.mobile-nav-item:hover{background-color:var(--sidebar-hover-bg);border-left-color:var(--sidebar-hover-border)}.mobile-nav-item.active{background-color:var(--sidebar-active-bg);border-left-color:var(--sidebar-active-border);font-weight:600}@media (max-width:768px){.mobile-menu-button{display:block}.sidebar{display:none}.main-content{margin-left:0;padding:5rem 1rem 1rem}.mobile-menu,.mobile-menu-overlay{display:block}}.market-indices-card{background:var(--bg-secondary);border-radius:8px;box-shadow:0 2px 8px var(--card-shadow);height:100%;padding:1.5rem}.section-title{border-bottom:2px solid var(--border-color);color:var(--text-primary);font-size:1.25rem;font-weight:600;margin-bottom:1rem;padding-bottom:.5rem}.indices-list{display:flex;flex-direction:column;gap:1rem}.index-item{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;padding:1rem;transition:transform .2s}.index-item:hover{transform:translateX(4px)}.index-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.index-name{color:var(--text-primary);font-size:1rem;font-weight:600}.index-symbol{color:var(--text-secondary);font-family:Courier New,monospace;font-size:.85rem}.index-data{align-items:center;display:flex;justify-content:space-between}.index-price{color:var(--text-primary);font-size:1.25rem;font-weight:700}.index-change{font-size:.9rem;font-weight:600}.index-change.positive{color:var(--positive-color)}.index-change.negative{color:var(--negative-color)}.index-charts-card{background:var(--bg-secondary);border-radius:8px;box-shadow:0 2px 8px var(--card-shadow);display:flex;flex-direction:column;height:100%;padding:1rem;width:100%}.combined-chart-wrapper{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;flex:1 1;min-height:500px;padding:.5rem;width:100%}.magnificent7-card{background:var(--bg-secondary);border-radius:8px;box-shadow:0 2px 8px var(--card-shadow);padding:1.5rem}.magnificent7-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.stock-item{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;padding:1rem;transition:transform .2s,box-shadow .2s}.stock-item:hover{box-shadow:0 4px 12px var(--card-shadow);transform:translateY(-2px)}.stock-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.stock-symbol{color:var(--text-primary);font-family:Courier New,monospace;font-size:1rem;font-weight:700}.stock-change{font-size:.85rem;font-weight:600}.stock-change.positive{color:var(--positive-color)}.stock-change.negative{color:var(--negative-color)}.stock-name{color:var(--text-secondary);font-size:.85rem;margin-bottom:.5rem}.stock-price{color:var(--text-primary);font-size:1.1rem;font-weight:700}.commodity-futures-card{background:var(--bg-secondary);border-radius:8px;box-shadow:0 2px 8px var(--card-shadow);padding:1.5rem}.commodities-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.commodity-item{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;padding:1rem;transition:transform .2s}.commodity-item:hover{box-shadow:0 4px 12px var(--card-shadow);transform:translateY(-2px)}.commodity-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:.5rem}.commodity-name{color:var(--text-primary);font-size:1rem;font-weight:600}.commodity-symbol{color:var(--text-secondary);font-family:Courier New,monospace;font-size:.8rem}.commodity-data{display:flex;flex-direction:column;gap:.75rem}.commodity-change-section,.commodity-price-section{align-items:center;display:flex;justify-content:space-between}.commodity-label{color:var(--text-secondary);font-size:.85rem;font-weight:500}.commodity-price{color:var(--text-primary);font-size:1.1rem;font-weight:700}.commodity-change{font-size:.9rem;font-weight:600}.commodity-change.positive{color:var(--positive-color)}.commodity-change.negative{color:var(--negative-color)}.loading-spinner{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:2rem}.spinner{height:40px;width:40px}.loading-spinner p{color:var(--text-secondary);margin-top:1rem}.error-message{background-color:var(--error-bg);border:1px solid var(--error-border);border-radius:4px;margin:1rem 0;padding:1rem}.error-message h3{color:var(--error-text);margin-top:0}.error-message p{color:var(--text-secondary)}.home-page{display:flex;flex-direction:column;gap:1.5rem;margin:0 auto;width:100%}.market-header{margin-bottom:1rem}.market-header h1{color:var(--text-primary);font-size:2rem;font-weight:700;margin:0}.market-top-section{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:320px 2fr 1fr;min-height:580px;width:100%}.market-top-left,.market-top-right{display:flex;min-width:0;width:100%}.market-bottom-section,.market-middle-section{width:100%}@media (max-width:900px){.market-top-section{grid-template-columns:1fr}.home-page{padding:1rem}.market-header h1{font-size:1.5rem}}.calibration-page{background:var(--app-bg);margin:0 auto;max-width:1600px;padding:2rem}.page-header{border-bottom:2px solid var(--border-color)}.measure-selector{display:flex;gap:1rem;margin-bottom:2rem}.measure-btn{align-items:center;background:var(--panel-bg);border:2px solid var(--border-color);border-radius:4px;box-shadow:0 2px 4px #0000000d;cursor:pointer;display:flex;flex:1 1;flex-direction:column;gap:.375rem;padding:1.25rem;position:relative;transition:all .25s cubic-bezier(.4,0,.2,1)}.measure-btn:before{background:linear-gradient(135deg,#0000 0,var(--panel-bg-alt) 100%);border-radius:2px;content:"";inset:0;opacity:0;position:absolute;transition:opacity .25s}.measure-btn strong{color:var(--text-primary);font-size:1.125rem;font-weight:700;letter-spacing:.02em;position:relative;z-index:1}.measure-btn span{color:var(--text-secondary);font-size:.8125rem;position:relative;z-index:1}.measure-btn:hover{border-color:var(--accent);box-shadow:0 4px 12px #00000014}.measure-btn:hover:before{opacity:.4}.measure-btn.active{background:#2563eb26;border-color:var(--accent);box-shadow:0 4px 12px #2563eb33}.measure-btn.active span,.measure-btn.active strong{color:var(--accent)}.error-banner{border:1px solid var(--error-border);color:var(--text-primary);gap:.75rem;margin-bottom:2rem}.error-icon{font-size:1.5rem}.error-close{color:var(--text-primary);line-height:1;opacity:.6;padding:0;transition:opacity .2s}.error-close:hover{opacity:1}.calibration-layout,.configuration-card{display:flex;flex-direction:column;gap:1.5rem}.configuration-card{background:var(--panel-bg);border:2px solid var(--border-color);border-radius:4px;box-shadow:0 4px 8px #0000000a;padding:2rem}.configuration-top{grid-gap:2rem;align-items:stretch;display:grid;gap:2rem;grid-template-columns:minmax(320px,1fr) minmax(320px,1fr)}.configuration-top>*{height:100%}.configuration-left,.configuration-right{display:flex;flex-direction:column;gap:1.5rem}.configuration-card .asset-selector,.configuration-card .model-configuration{background:#0000!important;border:none!important;box-shadow:none!important;height:100%;margin:0;padding:0!important}.date-range-panel{background:var(--panel-bg-alt);border:1px solid var(--border-color);border-radius:4px;display:flex;flex-direction:column;padding:1.25rem}.date-range-panel h3{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0 0 1rem}.date-range-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(140px,1fr))}.action-buttons{display:flex;flex-direction:row;flex-wrap:wrap;gap:.75rem;justify-content:flex-end}.btn{align-items:center;border:2px solid #0000;border-radius:4px;box-shadow:0 2px 4px #0000001a;display:inline-flex;font-size:.9375rem;gap:.5rem;justify-content:center;letter-spacing:.02em;overflow:hidden;padding:.75rem 1.75rem;position:relative;transition:all .25s cubic-bezier(.4,0,.2,1)}.btn:before{background:linear-gradient(180deg,#ffffff1a,#0000);content:"";inset:0;opacity:0;position:absolute;transition:opacity .25s}.btn:hover:before{opacity:1}.btn:disabled{box-shadow:none;cursor:not-allowed;opacity:.5}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 4px 12px #2563eb59}.btn-primary:active:not(:disabled){box-shadow:0 2px 6px #2563eb40;transform:translateY(0)}.btn-secondary{background:var(--accent-secondary);border-color:var(--accent-secondary);color:#fff}.btn-secondary:hover:not(:disabled){background:var(--accent-secondary-hover);border-color:var(--accent-secondary-hover);box-shadow:0 4px 12px #10b98159;transform:translateY(-1px)}.btn-secondary:active:not(:disabled){box-shadow:0 2px 6px #10b98140;transform:translateY(0)}.btn-download{background:var(--accent);border-color:var(--accent);color:#fff;font-size:.875rem;padding:.625rem 1.25rem}.btn-download:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.spinner{animation:spin .6s linear infinite;border:2px solid #ffffff4d;border-top-color:#fff;height:16px;width:16px}.results-panel{min-height:400px}.chart-section,.results-section{border:2px solid var(--border-color)}.chart-section,.results-section,.simulation-section,.vol-surface-section{background:var(--panel-bg);border-radius:4px;box-shadow:0 4px 8px #0000000a;margin-bottom:1.5rem;padding:1.75rem}.simulation-section,.vol-surface-section{border:2px solid var(--border-color)}.simulation-header,.vol-surface-header{margin-bottom:1.25rem}.simulation-header h2,.vol-surface-header h2{color:var(--text-primary);font-size:1.375rem;font-weight:700;margin:0}.vol-surface-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.simulation-controls{grid-gap:1rem;align-items:end;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:1.25rem}.simulation-controls .btn{height:42px}.control-field{display:flex;flex-direction:column;gap:.5rem}.control-field label{color:var(--text-secondary);font-size:.75rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.control-field input,.control-field select{background:var(--input-bg);border:2px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:.9375rem;padding:.5rem .75rem;transition:border-color .2s}.control-field input:focus,.control-field select:focus{border-color:var(--accent);outline:none}.chart-section h2,.results-section h2{color:var(--text-primary);font-size:1.375rem;font-weight:700;margin:0 0 1.5rem}.results-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.results-header h2{margin:0}.option-chain-summary{grid-gap:1rem;background:var(--panel-bg-alt);border:1px solid var(--border-color);border-radius:4px;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding:1.25rem}.summary-item{display:flex;flex-direction:column;gap:.25rem}.summary-item .label{color:var(--text-secondary);font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.summary-item .value{color:var(--text-primary);font-family:Courier New,monospace;font-size:1.25rem;font-weight:700}.empty-state{align-items:center;background:var(--panel-bg-alt);border:2px dashed var(--border-color);border-radius:4px;display:flex;flex-direction:column;justify-content:center;padding:4rem 2rem;text-align:center}.empty-icon{font-size:3.5rem;margin-bottom:1rem;opacity:.3}.empty-state h3{color:var(--text-secondary);font-size:1.25rem;font-weight:600;margin:0 0 .5rem}.empty-state p{color:var(--text-muted);font-size:.9375rem;margin:0}@media (max-width:1024px){.configuration-top{grid-template-columns:1fr}.configuration-right{display:block}}@media (max-width:768px){.calibration-page{padding:1rem}.page-header h1{font-size:1.5rem}.calibration-layout{gap:1rem}.configuration-card{padding:1.25rem}.date-range-row{grid-template-columns:1fr}.action-buttons{justify-content:stretch;width:100%}.action-buttons .btn{flex:1 1 220px}.measure-selector{flex-direction:column}}.asset-selector{background:var(--panel-bg);border-radius:8px;box-shadow:var(--shadow);margin-bottom:1.5rem;padding:1.5rem}.asset-selector h3{color:var(--text-primary);font-size:1.125rem;margin:0 0 1rem}.mode-toggle{display:flex;gap:.5rem;margin-bottom:1rem}.mode-btn{background:var(--panel-bg-alt);border:2px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;flex:1 1;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .2s}.mode-btn:hover{background:var(--panel-bg);border-color:var(--accent)}.mode-btn.active{background:#2563eb26;border-color:var(--accent);color:var(--accent);font-weight:600}.selected-assets{background:var(--panel-bg-alt);border-radius:6px;margin-bottom:1rem;padding:.75rem}.selected-assets label{color:var(--text-secondary);display:block;font-size:.875rem;margin-bottom:.5rem}.asset-chips{display:flex;flex-wrap:wrap;gap:.5rem}.asset-chip{align-items:center;background:#2563eb26;border:1px solid var(--accent);border-radius:16px;color:var(--accent);display:inline-flex;font-size:.875rem;font-weight:600;gap:.5rem;padding:.375rem .75rem}.asset-chip .remove-btn{background:none;border:none;color:var(--accent);cursor:pointer;font-size:1.25rem;line-height:1;opacity:.7;padding:0;transition:opacity .2s}.asset-chip .remove-btn:hover{opacity:1}.popular-assets{margin-bottom:1rem}.popular-assets label{color:var(--text-secondary);display:block;font-size:.875rem;margin-bottom:.5rem}.asset-grid{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}.asset-btn{background:var(--panel-bg-alt);border:2px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem;text-align:center;transition:all .2s}.asset-btn:hover{background:var(--panel-bg);border-color:var(--accent)}.asset-btn.selected{background:#2563eb26;border-color:var(--accent);color:var(--accent);font-weight:600}.custom-input{margin-top:1rem}.custom-input label{color:var(--text-secondary);display:block;font-size:.875rem;margin-bottom:.5rem}.input-group{display:flex;gap:.5rem}.ticker-input{border:2px solid var(--panel-border);border-radius:6px;flex:1 1;font-size:.875rem;padding:.5rem .75rem;transition:border-color .2s}.ticker-input:focus{border-color:var(--accent);outline:none}.add-btn{background:var(--accent);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1.5rem;transition:background .2s}.add-btn:hover:not(:disabled){background:var(--accent-hover)}.add-btn:disabled{cursor:not-allowed;opacity:.5}.model-configuration{background:var(--panel-bg);border-radius:8px;box-shadow:var(--shadow);margin-bottom:1.5rem;padding:1.5rem}.model-configuration h3{color:var(--text-primary);font-size:1.125rem;margin:0 0 1rem}.config-group{margin-bottom:1rem}.config-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(180px,1fr))}.config-row .config-group{margin-bottom:0}.config-group label{color:var(--text-secondary);display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.config-input,.config-select{background:var(--input-bg);border:2px solid var(--panel-border);border-radius:6px;color:var(--text-primary);font-size:.875rem;padding:.5rem .75rem;transition:border-color .2s;width:100%}.config-input:focus,.config-select:focus{border-color:var(--accent);outline:none}.checkbox-group{background:var(--panel-bg-alt);border-radius:6px;padding:.75rem}.checkbox-label{align-items:center;color:var(--text-primary);cursor:pointer;display:flex;font-size:.875rem;gap:.5rem;margin-bottom:0}.config-checkbox{cursor:pointer;height:18px;width:18px}.helper-text{color:var(--text-muted);font-size:.75rem;font-style:italic;margin:.5rem 0 0}.config-info{background:var(--accent-soft);border-left:4px solid var(--accent);border-radius:6px;margin-top:1rem;padding:1rem}.config-info .helper-text{color:var(--text-primary);font-style:normal;margin:0}.config-info strong{color:var(--text-primary)}.date-presets{border-top:1px solid var(--panel-border);margin-top:1rem;padding-top:1rem}.date-presets label{color:var(--text-secondary);display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.preset-buttons{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(6,1fr)}.preset-btn{background:var(--panel-bg-alt);border:2px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;font-size:.75rem;font-weight:500;padding:.5rem;transition:all .2s}.preset-btn:hover{background:var(--panel-bg);border-color:var(--accent)}@media (max-width:768px){.config-row{grid-template-columns:1fr}.preset-buttons{grid-template-columns:repeat(3,1fr)}}.ohlcv-chart{background:var(--panel-bg);border-radius:8px;overflow:hidden;width:100%}.chart-empty{background:var(--panel-bg-alt);border-radius:8px;color:var(--text-secondary);padding:3rem;text-align:center}.calibration-results{display:flex;flex-direction:column;gap:1.5rem}.result-card{background:var(--panel-bg);border-left:4px solid var(--accent);border-radius:12px;box-shadow:var(--shadow);padding:24px}.result-header{align-items:flex-start;border-bottom:2px solid var(--panel-border);display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.header-content{align-items:center;display:flex;gap:12px}.result-header h3{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin:0}.ticker-badge{background:var(--accent);border-radius:6px;color:#fff;display:inline-block;font-size:.875rem;font-weight:600;padding:4px 12px}.timestamp{color:var(--text-secondary);font-size:.875rem;font-weight:500}.diagnostics-section,.parameters-section{margin-bottom:24px}.diagnostics-section:last-child,.parameters-section:last-child{margin-bottom:0}.diagnostics-section h4,.parameters-section h4{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin:0 0 16px}.table-container{border:1px solid var(--panel-border);border-radius:8px;overflow-x:auto}.diagnostics-table,.parameters-table{border-collapse:collapse;font-size:.875rem;width:100%}.diagnostics-table thead,.parameters-table thead{background:var(--panel-bg-alt)}.diagnostics-table th,.parameters-table th{border-bottom:2px solid var(--panel-border);color:var(--text-primary);font-size:.875rem;font-weight:600;letter-spacing:.5px;padding:12px 16px;text-align:left;text-transform:uppercase}.diagnostics-table td,.parameters-table td{border-bottom:1px solid var(--panel-border);color:var(--text-secondary);padding:12px 16px}.diagnostics-table tbody tr:last-child td,.parameters-table tbody tr:last-child td{border-bottom:none}.diagnostics-table tbody tr:hover,.parameters-table tbody tr:hover{background:var(--panel-bg-alt)}.value-column{text-align:right;width:150px}.description-column{min-width:250px}.param-name{color:var(--text-primary);font-weight:500}.param-symbol{color:var(--accent);font-size:1rem;font-weight:600}.param-value{color:var(--text-primary);font-family:Courier New,monospace;font-weight:600;text-align:right}.param-description{color:var(--text-secondary);font-size:.875rem;line-height:1.4}.diag-name,.diag-value{color:var(--text-primary);font-weight:600}.diag-value{font-family:Courier New,monospace;text-align:right}.diag-interpretation{color:var(--text-secondary);font-size:.875rem;font-style:italic;line-height:1.4}.diagnostic-note{background:var(--accent-soft);border-left:4px solid var(--accent);border-radius:4px;color:var(--text-primary);font-size:.875rem;line-height:1.6;margin-top:16px;padding:12px 16px}.diagnostic-note strong{color:var(--text-primary);margin-right:8px}.method-info{border-top:1px solid var(--panel-border);display:flex;gap:16px;margin-top:16px;padding-top:16px}.info-badge{align-items:center;background:var(--panel-bg-alt);border:1px solid var(--panel-border);border-radius:6px;display:flex;gap:8px;padding:8px 16px}.info-badge .label{color:var(--text-secondary);font-size:.75rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.info-badge .value{color:var(--text-primary);font-size:.875rem;font-weight:600}@media (max-width:1024px){.description-column{min-width:200px}}@media (max-width:768px){.result-card{padding:16px}.result-header{flex-direction:column;gap:12px}.header-content{align-items:flex-start;flex-direction:column;gap:8px}.result-header h3{font-size:1.25rem}.table-container{border-radius:6px}.diagnostics-table td,.diagnostics-table th,.parameters-table td,.parameters-table th{font-size:.8125rem;padding:8px 12px}.description-column{display:none}.method-info{flex-direction:column;gap:8px}.info-badge{justify-content:space-between;width:100%}}@media (max-width:480px){.diagnostics-table,.parameters-table{font-size:.75rem}.diag-value,.param-symbol,.param-value{font-size:.875rem}}.simulation-results{grid-gap:1.5rem;align-items:start;display:grid;gap:1.5rem;grid-template-columns:minmax(0,2fr) minmax(260px,1fr)}.simulation-chart{background:var(--panel-bg);border-radius:8px;box-shadow:var(--shadow);padding:1.25rem}.simulation-chart h2{color:var(--text-primary);font-size:1.125rem;margin:0 0 1rem}.simulation-stats{background:var(--panel-bg);border-radius:8px;box-shadow:var(--shadow);padding:1.25rem}.simulation-stats h3{color:var(--text-primary);font-size:1rem;margin:0 0 1rem}.stats-grid{grid-gap:.75rem;display:grid;gap:.75rem}.stat-item{align-items:center;background:var(--panel-bg-alt);border-left:3px solid var(--accent);border-radius:6px;display:flex;justify-content:space-between;padding:.75rem}.stat-label{color:var(--text-secondary);font-size:.8rem}.stat-value{color:var(--text-primary);font-family:Courier New,monospace;font-size:.875rem;font-weight:600}@media (max-width:1024px){.simulation-results{grid-template-columns:1fr}}.vol-surface-container{background:var(--panel-bg);border-radius:12px;box-shadow:var(--shadow);margin-top:24px;padding:24px}.vol-surface-placeholder{color:var(--text-secondary);padding:60px 20px;text-align:center}.vol-surface-placeholder p:first-child{font-size:24px;margin-bottom:12px}.vol-surface-placeholder .helper-text{color:var(--text-muted);font-size:14px}.loading-spinner{padding:60px 20px;text-align:center}.spinner{animation:spin 1s linear infinite;border-top:4px solid var(--panel-border);border:4px solid var(--panel-border);border-radius:50%;border-top-color:var(--accent);height:50px;margin:0 auto 20px;width:50px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.surface-info{background:var(--panel-bg-alt);border-radius:8px;display:flex;justify-content:space-around;margin-bottom:20px;padding:16px}.info-item{align-items:center;display:flex;flex-direction:column}.info-item .label{color:var(--text-secondary);font-size:12px;font-weight:600;margin-bottom:4px;text-transform:uppercase}.info-item .value{color:var(--text-primary);font-size:16px;font-weight:500}.vol-surface-plot{margin:20px 0}.surface-description{background:var(--panel-bg-alt);border-left:4px solid var(--accent);border-radius:4px;margin-top:20px;padding:16px}.surface-description p{color:var(--text-primary);font-size:14px;line-height:1.6;margin:0}.surface-description strong{color:var(--accent)}@media (max-width:768px){.surface-info{flex-direction:column;gap:12px}.vol-surface-plot{overflow-x:auto}}.backtesting-page{color:var(--text-primary);margin:0 auto;max-width:1800px;padding:2rem}.backtesting-page .page-header{border-bottom:1px solid var(--panel-border);margin-bottom:2rem;padding-bottom:1rem}.backtesting-page .page-header h1{color:var(--text-primary);font-size:2.4rem;letter-spacing:-.02em;margin-bottom:.5rem}.backtesting-page .page-subtitle{color:var(--text-secondary);font-size:1rem;margin:0}.backtesting-page .error-banner{align-items:center;background:var(--error-bg);border-left:4px solid var(--error-border);border-radius:4px;display:flex;gap:1rem;margin-bottom:1.5rem;padding:1rem 1.5rem}.backtesting-layout{display:flex;flex-direction:column;gap:1.5rem}.config-panel{border:1px solid var(--panel-border);border-radius:16px;padding:1.75rem}.config-section{flex:1 1;min-width:250px}.config-section h3{border-bottom:2px solid var(--accent-soft);color:var(--text-primary);font-size:1rem;font-weight:600;margin-bottom:.75rem;padding-bottom:.4rem}.model-selection{display:flex;flex-direction:column;gap:.75rem}.selection-tabs{border-bottom:1px solid var(--panel-border);display:flex;gap:.5rem;margin-bottom:.75rem}.tab-btn{background:#0000;border:none;border-bottom:3px solid #0000;color:var(--text-secondary);cursor:pointer;font-weight:600;padding:.5rem 1rem;transition:all .2s}.tab-btn.active,.tab-btn:hover{color:var(--accent)}.tab-btn.active{border-bottom-color:var(--accent)}.default-models{display:flex;flex-direction:column;gap:.35rem}.default-models label{color:var(--text-secondary);font-size:.875rem;font-weight:600}.model-select{background:var(--input-bg);border:1px solid var(--input-border);border-radius:8px;color:var(--text-primary);cursor:pointer;font-size:.95rem;font-weight:500;padding:.6rem .75rem;transition:all .2s}.model-select:focus,.model-select:hover{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);outline:none}.model-info{background:var(--panel-bg-alt);border-left:4px solid var(--accent);border-radius:10px;margin-top:.75rem;padding:.75rem}.info-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.info-row:last-child{margin-bottom:0}.info-label{color:var(--text-secondary);font-size:.875rem;font-weight:600}.info-value{color:var(--text-primary);font-family:Courier New,monospace;font-size:.875rem;font-weight:500}.file-upload{border:2px dashed var(--panel-border);border-radius:8px;padding:1rem;text-align:center;transition:all .2s}.file-upload:hover{background:var(--panel-bg-alt);border-color:var(--accent)}.upload-label{flex-direction:column;gap:.35rem}.upload-btn{background:#2563eb26;border:1px solid var(--accent);border-radius:999px;color:var(--accent);display:inline-block;font-size:.9rem;font-weight:600;padding:.45rem 1.25rem;transition:all .2s}.upload-btn:hover{background:#2563eb40;border-color:var(--accent-hover)}.file-name{color:var(--text-secondary);font-size:.875rem}.config-grid{grid-gap:.75rem;gap:.75rem;grid-template-columns:1fr 1fr}.config-field{gap:.35rem}.config-field input,.config-field select{background:var(--input-bg);border:1px solid var(--input-border);border-radius:8px;color:var(--text-primary);font-size:.875rem;padding:.5rem .65rem}.config-field input:focus,.config-field select:focus{border-color:var(--accent);outline:none}.strategy-selector{display:flex;flex-direction:column;gap:.6rem}.strategy-option{align-items:center;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:10px;cursor:pointer;display:flex;gap:.75rem;padding:.75rem;transition:all .2s}.strategy-option:hover{background:var(--panel-bg-alt);border-color:var(--accent)}.strategy-option input[type=radio]{cursor:pointer;height:16px;width:16px}.strategy-info{flex:1 1}.strategy-label{color:var(--text-primary);font-weight:600;margin-bottom:.25rem}.strategy-desc{color:var(--text-secondary);font-size:.82rem}.btn-large{font-size:.95rem;font-weight:600;margin-top:.75rem;padding:.75rem;width:100%}.btn-primary{border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s}.results-panel{border:1px solid var(--panel-border);border-radius:20px;padding:1.75rem}.animation-controls{align-items:center;background:var(--panel-bg-alt);border:1px solid var(--panel-border);border-radius:12px;display:flex;gap:1rem;margin-bottom:1.5rem;padding:1rem}.control-btn{background:#2563eb26;border:1px solid var(--accent);border-radius:6px;color:var(--accent);cursor:pointer;font-weight:600;padding:.5rem 1rem;transition:all .2s}.control-btn:hover{background:#2563eb40;border-color:var(--accent-hover)}.time-display{color:var(--text-secondary);font-size:.875rem;font-weight:500}.speed-control{align-items:center;display:flex;font-size:.875rem;gap:.5rem;margin-left:auto}.speed-control label{color:var(--text-secondary);font-weight:600}.speed-control input[type=range]{width:100px}.speed-control span{color:var(--text-primary);font-weight:600;min-width:35px}.summary-stats{margin-bottom:1.5rem}.stat-card{background:linear-gradient(135deg,#2563ebe6,#0f172ae6);border-radius:14px;box-shadow:0 10px 20px #0003;text-align:left}.stat-card:nth-child(2){background:linear-gradient(135deg,#10b981e6,#0f172ae6)}.stat-card:nth-child(3){background:linear-gradient(135deg,#f97316e6,#0f172ae6)}.stat-card:nth-child(4){background:linear-gradient(135deg,#0ea5e9e6,#0f172ae6)}.stat-card:nth-child(5){background:linear-gradient(135deg,#ef4444e6,#0f172ae6)}.chart-container{border-radius:16px}@media (max-width:1400px){.backtesting-layout{grid-template-columns:350px 1fr}}@media (max-width:1200px){.backtesting-layout{grid-template-columns:1fr}.config-panel{position:static}.charts-grid{grid-template-columns:1fr}}@media (max-width:768px){.backtesting-page{padding:1rem}.config-grid{grid-template-columns:1fr}.summary-stats{grid-template-columns:repeat(2,1fr)}.animation-controls{flex-wrap:wrap}.speed-control{margin-left:0;width:100%}}.deep-rl-hedging-page{margin:0 auto;max-width:1800px;padding:2rem}.page-header{border-bottom:2px solid var(--panel-border);margin-bottom:2rem;padding-bottom:1rem}.page-header h1{color:var(--text-primary);font-size:2rem;margin-bottom:.5rem}.page-subtitle{color:var(--text-secondary);font-size:1rem;margin:0}.error-banner{align-items:center;background:var(--error-bg);border-left:4px solid var(--error-border);border-radius:4px;display:flex;gap:1rem;margin-bottom:1.5rem;padding:1rem 1.5rem}.error-icon{font-size:1.25rem}.error-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:1.5rem;margin-left:auto}.rl-hedging-layout{display:flex;flex-direction:column;gap:2rem}.agents-panel{background:var(--panel-bg);border-radius:12px;box-shadow:var(--shadow);padding:2rem}.agents-panel h2{color:var(--text-primary);font-size:1.5rem;margin-bottom:.5rem}.panel-description{color:var(--text-secondary);font-size:.875rem;margin-bottom:1.5rem}.agents-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-bottom:2rem}.agent-card{background:var(--panel-bg-alt);border:2px solid var(--panel-border);border-radius:12px;cursor:pointer;padding:1.5rem;position:relative;transition:all .3s}.agent-card:hover{border-color:var(--accent);box-shadow:0 6px 20px #00000026;transform:translateY(-4px)}.agent-card.selected{background:var(--accent-soft);border-color:var(--accent);border-width:3px}.agent-icon{font-size:3rem;margin-bottom:1rem;text-align:center}.agent-name{color:var(--text-primary);font-size:1.25rem;font-weight:700;margin-bottom:.5rem;text-align:center}.agent-description{color:var(--text-secondary);font-size:.875rem;margin-bottom:1rem;min-height:2.5rem;text-align:center}.agent-features{color:var(--text-secondary);font-size:.75rem;list-style:none;margin:0 0 1rem;padding:0}.agent-features li{padding:.25rem 0 .25rem 1.25rem;position:relative}.agent-features li:before{color:var(--accent-secondary);content:"✓";font-weight:700;left:0;position:absolute}.run-demo-btn{background:#2563eb26;border:2px solid var(--accent);border-radius:8px;color:var(--accent);cursor:pointer;font-size:.875rem;font-weight:600;padding:.75rem;transition:all .2s;width:100%}.run-demo-btn:hover:not(:disabled){background:#2563eb40;border-color:var(--accent-hover);box-shadow:0 4px 12px #2563eb4d;transform:translateY(-1px)}.run-demo-btn:disabled{background:var(--panel-bg-alt);border-color:var(--panel-border);color:var(--text-secondary);cursor:not-allowed;opacity:.6}.custom-model-section{background:var(--panel-bg-alt);border:2px dashed var(--panel-border);border-radius:12px;padding:1.5rem}.custom-model-section h3{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin-bottom:1rem}.upload-area{display:flex;flex-direction:column;gap:1rem}.upload-label{align-items:center;background:var(--panel-bg);border:2px solid var(--panel-border);border-radius:8px;cursor:pointer;display:flex;gap:1rem;padding:1rem;transition:all .2s}.upload-label:hover{background:var(--panel-bg-alt);border-color:var(--accent)}.upload-icon{font-size:1.5rem}.upload-text{color:var(--text-secondary);flex:1 1;font-size:.875rem}.config-panel{background:var(--panel-bg);border-radius:12px;box-shadow:var(--shadow);padding:2rem}.config-panel h2{border-bottom:2px solid var(--accent);color:var(--text-primary);font-size:1.5rem;margin-bottom:1.5rem;padding-bottom:.5rem}.config-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.config-field{display:flex;flex-direction:column;gap:.5rem}.config-field label{color:var(--text-secondary);font-size:.875rem;font-weight:600}.config-field input{background:var(--input-bg);border:1px solid var(--input-border);border-radius:6px;color:var(--text-primary);font-size:.875rem;padding:.5rem}.config-field input:focus{border-color:var(--accent);outline:none}.results-panel{background:var(--panel-bg);border-radius:12px;box-shadow:var(--shadow);padding:2rem}.results-panel h2{border-bottom:2px solid var(--accent);color:var(--text-primary);font-size:1.5rem;margin-bottom:1.5rem;padding-bottom:.5rem}.summary-stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:2rem}.stat-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;color:#fff;padding:1rem;text-align:center}.stat-card:nth-child(2){background:linear-gradient(135deg,#f093fb,#f5576c)}.stat-card:nth-child(3){background:linear-gradient(135deg,#4facfe,#00f2fe)}.stat-card:nth-child(4){background:linear-gradient(135deg,#43e97b,#38f9d7)}.stat-label{font-size:.75rem;font-weight:600;letter-spacing:.5px;margin-bottom:.5rem;opacity:.9;text-transform:uppercase}.stat-value{font-size:1.5rem;font-weight:700}.charts-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr)}.chart-container{background:var(--panel-bg-alt);border:1px solid var(--panel-border);border-radius:8px;padding:1rem}.btn{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s}.btn-primary{background:#2563eb26;border:2px solid var(--accent);color:var(--accent)}.btn-primary:hover:not(:disabled){background:#2563eb40;border-color:var(--accent-hover);box-shadow:0 4px 12px #2563eb4d;transform:translateY(-1px)}.btn-primary:disabled{background:var(--panel-bg-alt);border-color:var(--panel-border);color:var(--text-secondary);cursor:not-allowed;opacity:.6}@media (max-width:1200px){.charts-grid{grid-template-columns:1fr}.agents-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}}@media (max-width:768px){.deep-rl-hedging-page{padding:1rem}.agents-grid,.config-grid{grid-template-columns:1fr}.summary-stats{grid-template-columns:repeat(2,1fr)}}
/*# sourceMappingURL=main.848c03ab.css.map*/