:root{--bg: #fafbfc;--bg-card: #ffffff;--bg-subtle: #f3f4f6;--bg-accent: #f0fdf4;--text-primary: #1a1f2e;--text-secondary: #4a5568;--text-muted: #8a95a8;--border: #e2e6ed;--border-light: #edf0f4;--green: #16a34a;--green-light: #f0fdf4;--red: #dc2626;--red-light: #fef2f2;--blue: #2563eb;--blue-light: #eff6ff;--amber: #d97706;--amber-light: #fffbeb;--accent: #16a34a;--navy: #1a1f5c;--shadow-sm: 0 1px 3px rgba(0,0,0,.04);--shadow-md: 0 4px 12px rgba(22,163,74,.08);--shadow-lg: 0 12px 40px rgba(0,0,0,.08);--radius: 12px;--radius-sm: 8px;--radius-lg: 16px;--sidebar-width: 220px;--sidebar-collapsed-width: 56px;--topbar-height: 56px}*{margin:0;padding:0;box-sizing:border-box}:focus-visible{outline:2px solid var(--green);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--green);box-shadow:0 0 0 3px #16a34a26}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.public-grid-bg:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(22,163,74,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(22,163,74,.04) 1px,transparent 1px);background-size:60px 60px;pointer-events:none;z-index:0}.public-grid-bg>*{position:relative;z-index:1}html:has(body.app-route),body.app-route{height:100%;overflow:hidden}.app-shell{display:flex;flex-direction:column;height:100vh;height:100dvh}.app-topbar{flex-shrink:0;z-index:100;height:var(--topbar-height);background:var(--bg);border-bottom:1px solid var(--border);padding:0 1.25rem;display:flex;align-items:center;justify-content:space-between}.app-topbar-left{display:flex;align-items:center;gap:.75rem}.app-hamburger{display:none;background:none;border:none;cursor:pointer;padding:4px;flex-direction:column;gap:5px}.app-hamburger span{display:block;width:20px;height:2px;background:var(--text-primary);border-radius:2px}.app-body{flex:1;display:flex;min-height:0;overflow:hidden}.app-content{flex:1;min-width:0;min-height:0;max-width:1280px;width:100%;padding:1.5rem 2rem 4rem;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}@media print{html:has(body.app-route),body.app-route{height:auto;overflow:visible}.app-shell,.app-body,.app-content{height:auto;overflow:visible;display:block;max-width:none}.app-topbar,.sidebar,.cart-bar{display:none}}.logo-text{font-weight:700;font-size:1.2rem;letter-spacing:-.5px}.logo-fat{color:var(--navy)}.logo-cow{color:var(--green)}.public-nav{position:sticky;top:0;z-index:100;background:#fafbfce0;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border-light);padding:0 2rem}.public-nav-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:64px}.logo{font-weight:700;font-size:1.35rem;color:var(--text-primary);text-decoration:none;display:flex;align-items:center;gap:8px}.public-nav-links{display:flex;gap:2rem;list-style:none}.public-nav-links a{text-decoration:none;color:var(--text-secondary);font-size:.9rem;font-weight:500;transition:color .2s}.public-nav-links a:hover,.public-nav-links a.active{color:var(--text-primary)}.page-content{max-width:1280px;margin:0 auto;padding:1.5rem 2rem 4rem}.key-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}.metric-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;transition:all .2s}.metric-card:hover{border-color:#16a34a4d;box-shadow:0 4px 12px #16a34a14}.metric-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:500;margin-bottom:.5rem}.metric-value{font-family:JetBrains Mono,monospace;font-size:1.5rem;font-weight:500;font-variant-numeric:tabular-nums}.metric-sub{font-size:.75rem;color:var(--text-secondary);margin-top:4px}.positive{color:var(--green)}.negative{color:var(--red)}.insufficient-days{color:var(--red);font-size:.75em;font-weight:600}.chart-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:2rem}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.chart-title{font-size:1rem;font-weight:500}.chart-filters{display:flex;gap:.25rem;background:var(--bg-subtle);border-radius:6px;padding:3px}.chart-filter{padding:.35rem .75rem;border-radius:5px;font-size:.75rem;font-weight:500;border:none;background:transparent;cursor:pointer;color:var(--text-secondary);transition:all .2s}.chart-filter.active{background:var(--bg-card);color:var(--text-primary);box-shadow:0 1px 3px #00000014}.stats-block{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.stats-block-title{font-size:.95rem;font-weight:600;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-light)}.stat-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border-light)}.stat-row:last-child{border-bottom:none}.stat-name{font-size:.85rem;color:var(--text-secondary)}.stat-val{font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:500;font-variant-numeric:tabular-nums}.heatmap-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:2rem;overflow-x:auto}.heatmap-table{width:100%;border-collapse:separate;border-spacing:3px;font-size:.78rem}.heatmap-table th{font-weight:500;color:var(--text-muted);text-transform:uppercase;font-size:.7rem;letter-spacing:.05em;padding:.4rem .5rem}.heatmap-table td{text-align:center;padding:.45rem .5rem;border-radius:4px;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:500;transition:transform .15s}.heatmap-table td:hover{transform:scale(1.08)}.heatmap-table .year-col{font-weight:600;color:var(--text-primary);text-align:left;background:transparent!important}.heatmap-table .total-col{font-weight:600}.comparator-header{margin-bottom:2rem}.comparator-header h1{font-size:1.75rem;font-weight:700;letter-spacing:-.5px;margin-bottom:.5rem}.comparator-header p{color:var(--text-secondary);font-size:.95rem}.backtest-edit-link{display:inline-block;margin-top:.5rem;font-size:.82rem;color:var(--text-secondary);text-decoration:none;border-bottom:1px dashed var(--border);padding-bottom:1px;transition:color .15s ease,border-color .15s ease}.backtest-edit-link:hover{color:var(--green);border-bottom-color:var(--green)}.selector-bar{display:flex;gap:.75rem;margin-bottom:2rem;flex-wrap:wrap;align-items:center}.darwin-chip{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:100px;font-size:.85rem;font-weight:600;border:2px solid;background:var(--bg-card);font-family:JetBrains Mono,monospace}.darwin-chip .remove{width:18px;height:18px;border-radius:50%;border:none;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;background:#00000014;color:var(--text-secondary);transition:all .2s}.darwin-chip .remove:hover{background:#00000026}.compare-freshness{font-size:.78rem;color:var(--text-muted);margin:.25rem 0 1rem;font-variant-numeric:tabular-nums;cursor:help}.compare-freshness strong{color:var(--text-secondary);font-weight:600}.compare-table{width:100%;border-collapse:collapse;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:2rem}.compare-table thead th{padding:1rem 1.25rem;text-align:center;font-weight:600;font-family:JetBrains Mono,monospace;font-size:.95rem;border-bottom:2px solid var(--border);background:var(--bg-subtle)}.compare-table thead th:first-child{text-align:left;font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.compare-table tbody td{padding:.75rem 1.25rem;text-align:center;font-family:JetBrains Mono,monospace;font-size:.85rem;border-bottom:1px solid var(--border-light)}.compare-table tbody td:first-child{text-align:left;color:var(--text-secondary);font-size:.85rem}.compare-table .best-val{font-weight:700;position:relative}.compare-table .best-val:after{content:"";position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:20px;height:2px;background:var(--green);border-radius:1px}.color-dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:6px;vertical-align:middle}.behavior-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:2rem}.behavior-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;text-align:center}.ring-container{position:relative;width:100px;height:100px;margin:0 auto 1rem}.ring-container svg{transform:rotate(-90deg)}.ring-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:JetBrains Mono,monospace;font-size:1.1rem;font-weight:600}.behavior-card h4{font-size:.85rem;font-weight:500;margin-bottom:.25rem}.behavior-card p{font-size:.75rem;color:var(--text-muted)}.badge{display:inline-flex;align-items:center;gap:4px;padding:.3rem .7rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.badge-gold{background:#fff8eb;color:#b8860b;border:1px solid #F0D68A}.badge-silver{background:#f5f5f5;color:#666;border:1px solid #DDD}.badge-darwin{background:var(--green-light);color:var(--green)}.badge-cnmv{background:#fef3c7;color:#92400e}.badge-sec{background:#ede9fe;color:#6d28d9}.badge-fund{background:var(--blue-light);color:var(--blue)}.winner-summary{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:2rem}.winner-summary h3{font-size:1rem;font-weight:600;margin-bottom:1rem}.winner-row{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--border-light)}.winner-row:last-child{border-bottom:none}.winner-category{font-size:.8rem;color:var(--text-secondary);min-width:120px}.winner-name{font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:600}.winner-badge{font-size:.7rem;padding:.15rem .5rem;border-radius:10px;background:var(--green-light);color:var(--green);font-weight:600}.search-container{position:relative;flex:1;max-width:400px}.search-input{width:100%;padding:.6rem 1rem .6rem 2.5rem;border:2px solid var(--border);border-radius:var(--radius);font-size:.9rem;background:var(--bg-card);outline:none;transition:border-color .2s}.search-input:focus{border-color:var(--green)}.search-input::placeholder{color:var(--text-muted)}.search-icon{position:absolute;left:.8rem;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:.9rem;pointer-events:none}.search-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);max-height:320px;overflow-y:auto;z-index:50}.search-result{display:flex;align-items:center;gap:.75rem;padding:.65rem 1rem;cursor:pointer;transition:background .15s}.search-result:hover{background:var(--bg-subtle)}.search-result-icon{padding:.15rem .45rem;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;flex-shrink:0;white-space:nowrap}.search-result-icon.darwin{background:var(--green-light);color:var(--green)}.search-result-icon.fund{background:var(--blue-light);color:var(--blue)}.search-result-info{flex:1;min-width:0}.search-result-code{font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:600}.search-result-name{font-size:.75rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result-meta{font-family:JetBrains Mono,monospace;font-size:.75rem;color:var(--text-muted);flex-shrink:0}.filter-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1.5rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem}.filter-group label{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:500;margin-bottom:.3rem}.filter-group select,.filter-group input{width:100%;padding:.4rem .6rem;border:1px solid var(--border);border-radius:6px;font-size:.82rem;background:var(--bg);outline:none}.filter-group select:focus,.filter-group input:focus{border-color:var(--green)}.empty-state{text-align:center;padding:4rem 2rem;color:var(--text-muted)}.empty-state-icon{font-size:3rem;margin-bottom:1rem;opacity:.4}.empty-state h2{font-size:1.5rem;font-weight:500;color:var(--text-secondary);margin-bottom:.5rem}.empty-state p{font-size:.9rem;max-width:500px;margin:0 auto}.suggestions{margin-top:1.5rem;display:flex;align-items:center;justify-content:center;gap:.5rem;flex-wrap:wrap}.suggestions-label{font-size:.82rem;color:var(--text-muted)}.suggestion{font-size:.82rem;padding:.35rem .8rem;border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-secondary);text-decoration:none;cursor:pointer;border:0;font-family:inherit;touch-action:manipulation;transition:background .15s,color .15s,transform .1s}.suggestion:hover{background:var(--green);color:#fff}.suggestion:active:not(:disabled){transform:translateY(1px)}.suggestion:focus-visible{outline:2px solid var(--navy);outline-offset:2px}@media(prefers-reduced-motion:reduce){.suggestion{transition:none}.suggestion:active:not(:disabled){transform:none}}.preset-tabs{display:flex;gap:.25rem;margin-bottom:1rem;flex-wrap:wrap;background:var(--bg-subtle);border-radius:var(--radius-sm);padding:3px;width:fit-content}.preset-pill{padding:.4rem 1rem;border-radius:6px;font-size:.78rem;font-weight:500;border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .2s}.preset-pill:hover{color:var(--text-primary);background:#ffffff80}.preset-pill.active{background:var(--bg-card);color:var(--text-primary);box-shadow:0 1px 3px #00000014;font-weight:600}.universe-tabs{display:flex;gap:.25rem;margin-bottom:1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:4px;width:fit-content}.universe-tab{padding:.55rem 1.4rem;border-radius:var(--radius-sm);font-size:.88rem;font-weight:500;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .2s}.universe-tab:hover{color:var(--text-primary);background:var(--bg-subtle)}.universe-tab.active{background:var(--green);color:#fff;font-weight:600;box-shadow:0 2px 6px #16a34a40}.taxonomy-bar{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem;margin-bottom:.75rem;display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-start}.taxonomy-section{display:flex;flex-direction:column;gap:.4rem;flex:1;min-width:200px}.taxonomy-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:600}.taxonomy-chips{display:flex;flex-wrap:wrap;gap:.3rem}.taxonomy-chip{padding:.25rem .65rem;border-radius:100px;font-size:.75rem;font-weight:500;border:1px solid var(--border);background:var(--bg);color:var(--text-secondary);cursor:pointer;transition:all .2s}.taxonomy-chip:hover{border-color:var(--green);color:var(--text-primary)}.taxonomy-chip.active{background:var(--green);color:#fff;border-color:var(--green)}.taxonomy-count{font-size:.65rem;opacity:.7;margin-left:.15rem}.taxonomy-directory-header{display:flex;align-items:center;justify-content:space-between}.taxonomy-selection-count{font-size:.65rem;font-weight:600;color:var(--green);text-transform:none;letter-spacing:normal}.taxonomy-clear-link{background:none;border:none;font-size:.72rem;color:var(--red);cursor:pointer;padding:0;font-weight:500}.taxonomy-clear-link:hover{text-decoration:underline}.taxonomy-search{width:100%;max-width:320px;padding:.35rem .6rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.8rem;background:var(--bg);outline:none;transition:border-color .2s}.taxonomy-search:focus{border-color:var(--green)}.taxonomy-directory{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.35rem;max-height:320px;overflow-y:auto}.taxonomy-card{display:flex;flex-direction:column;gap:.1rem;padding:.45rem .65rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);cursor:pointer;text-align:left;transition:all .15s}.taxonomy-card:hover{border-color:var(--green);background:var(--bg-accent)}.taxonomy-card.active{border-color:var(--green);background:var(--green-light);box-shadow:0 0 0 1px var(--green)}.taxonomy-card-name{font-size:.78rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.taxonomy-card-count{font-size:.65rem;color:var(--text-muted)}.taxonomy-empty{font-size:.78rem;color:var(--text-muted);padding:.5rem 0}.taxonomy-toggle{background:none;border:none;font-size:.75rem;font-weight:500;color:var(--green);cursor:pointer;padding:.3rem 0}.taxonomy-toggle:hover{text-decoration:underline}.active-chips{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.75rem;align-items:center}.active-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .55rem;border-radius:100px;font-size:.75rem;font-weight:500;background:var(--blue-light);border:1px solid var(--blue);color:var(--blue)}.active-chip-x{background:none;border:none;font-size:.9rem;cursor:pointer;color:var(--blue);line-height:1;padding:0;opacity:.7;transition:opacity .15s}.active-chip-x:hover{opacity:1}.active-chips-clear{font-size:.72rem;color:var(--red);background:none;border:none;cursor:pointer;padding:.2rem .4rem;font-weight:500}.active-chips-clear:hover{text-decoration:underline}.screening-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:1.5rem;overflow:hidden}.screening-top{padding:1rem 1.25rem;border-bottom:1px solid var(--border-light)}.screening-backtest-toggle{padding:.4rem 1.25rem;border-top:1px solid var(--border-light)}.backtest-toggle-label{display:flex;align-items:center;gap:.4rem;font-size:.82rem;cursor:pointer}.backtest-toggle-label input[type=checkbox]{accent-color:var(--green)}.backtest-toggle-hint{color:var(--text-muted);font-size:.75rem}.screening-filters{border-top:1px solid var(--border-light)}.screening-filters-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.65rem 1.25rem;background:none;border:none;cursor:pointer;font-family:inherit;transition:background .15s}.screening-filters-toggle:hover{background:var(--bg-subtle)}.screening-filters-right{display:flex;align-items:center;gap:.75rem}.toggle-chevron{color:var(--text-muted);transition:transform .2s;flex-shrink:0}.toggle-chevron.open{transform:rotate(180deg)}.screening-filters-body{padding:0 1.25rem 1rem;display:flex;flex-direction:column;gap:1rem}.metric-group{display:flex;flex-direction:column;gap:.35rem}.metric-group-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:600;padding-bottom:.2rem;border-bottom:1px solid var(--border-light)}.metric-group-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.4rem 1rem}.metric-featured-row{padding-bottom:.75rem;border-bottom:1px solid var(--border-light);margin-bottom:.25rem}.metric-featured-row .metric-range{max-width:min(100%,520px)}.metric-flat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.4rem 1rem}@media(max-width:640px){.metric-flat-grid{grid-template-columns:1fr}}.metric-range.has-value .metric-range-label{color:var(--green)}.screening-section-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600;display:inline-flex;align-items:center;gap:.4rem}.filter-bar{display:flex;gap:1rem;margin-bottom:.75rem;align-items:flex-end}.filter-bar-search{flex:1;position:relative}.search-icon-sm{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);font-size:.8rem;pointer-events:none;opacity:.4}.search-icon-svg{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);width:16px;height:16px;pointer-events:none;color:var(--text-muted)}.filter-bar-input{width:100%;padding:.5rem .75rem .5rem 2.2rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;background:var(--bg);outline:none;transition:border-color .2s}.filter-bar-input:focus{border-color:var(--green)}.filter-bar-sort{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.filter-bar-sort label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:500;white-space:nowrap}.filter-bar-sort select{padding:.45rem .6rem;border:1px solid var(--border);border-radius:6px;font-size:.82rem;background:var(--bg);outline:none}.filter-bar-sort select:focus{border-color:var(--green)}.dir-toggle{width:32px;height:32px;border:1px solid var(--border);border-radius:6px;background:var(--bg-card);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all .2s}.dir-toggle:hover{border-color:var(--green);color:var(--text-primary)}.filter-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;border-radius:50%;background:var(--green);color:#fff;font-size:.65rem;font-weight:600}.smart-filters{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.smart-btn{padding:.25rem .65rem;border:1px solid var(--border);border-radius:100px;background:var(--bg-card);font-size:.72rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s}.smart-btn:hover{border-color:var(--green);color:var(--text-primary)}.smart-btn-clear{color:var(--red);border-color:transparent}.smart-btn-clear:hover{border-color:var(--red)}.metric-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.5rem 1rem;margin-bottom:.75rem}.metric-range-label{display:block!important;font-size:.68rem!important;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:500;margin-bottom:.15rem}.metric-hint{font-size:.6rem;text-transform:none;letter-spacing:normal;opacity:.7}.metric-range-inputs{display:flex;align-items:center;gap:.3rem}.metric-range-inputs input{flex:1;width:0;padding:.3rem .45rem;border:1px solid var(--border);border-radius:5px;font-size:.78rem;font-family:JetBrains Mono,monospace;background:var(--bg-card);outline:none}.metric-range-inputs input:focus{border-color:var(--green)}.metric-range-sep{font-size:.75rem;color:var(--text-muted)}.metric-slider-row{display:flex;align-items:center;gap:.35rem}.metric-slider-input{width:56px;flex-shrink:0;padding:.3rem .25rem;border:1px solid var(--border);border-radius:5px;font-size:.78rem;font-family:JetBrains Mono,monospace;background:var(--bg-card);outline:none;text-align:center}.metric-slider-input:focus{border-color:var(--green)}.dual-range{position:relative;flex:1;height:24px;min-width:80px}.dual-range-track{position:absolute;top:50%;left:0;right:0;height:4px;transform:translateY(-50%);border-radius:2px;background:var(--border);pointer-events:none}.dual-range-fill{position:absolute;top:50%;height:4px;transform:translateY(-50%);border-radius:2px;background:var(--green);pointer-events:none}.dual-range input[type=range]{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;pointer-events:none;outline:none}.dual-range input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--bg-card);border:2px solid var(--green);cursor:pointer;pointer-events:all;box-shadow:0 1px 3px #0000001f;transition:transform .15s,box-shadow .15s}.dual-range input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:0 0 0 4px #16a34a26}.dual-range input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--bg-card);border:2px solid var(--green);cursor:pointer;pointer-events:all;box-shadow:0 1px 3px #0000001f;transition:transform .15s,box-shadow .15s}.dual-range input[type=range]::-moz-range-thumb:hover{transform:scale(1.2);box-shadow:0 0 0 4px #16a34a26}.dual-range input[type=range]::-moz-range-track{background:transparent;border:none}.filter-toggle{background:none;border:none;font-size:.78rem;color:var(--text-muted);cursor:pointer;margin-bottom:1rem;padding:.25rem 0}.filter-toggle:hover{color:var(--text-primary)}.discover-grid-wrap{margin-bottom:1.5rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.discover-grid{display:grid;width:100%;font-size:.82rem}.dg-header{position:relative;padding:.7rem .8rem;text-align:left;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--bg-subtle);border-bottom:2px solid var(--border);white-space:nowrap;-webkit-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;min-width:0}.resize-handle{position:absolute;right:-4px;top:0;bottom:0;width:9px;cursor:col-resize;z-index:2}.resize-handle:after{content:"";position:absolute;right:4px;top:20%;bottom:20%;width:1px;background:var(--border);transition:background .15s,width .15s,top .15s,bottom .15s}.resize-handle:hover:after{background:var(--green);width:3px;border-radius:2px;top:10%;bottom:10%;right:3px}.dg-header.sortable{cursor:pointer;transition:color .15s;display:flex;align-items:center;gap:0}.dg-header.sortable:hover,.dg-header.sort-active{color:var(--text-primary)}.dg-header-label{overflow:hidden;text-overflow:ellipsis}.sort-arrow{flex-shrink:0;font-weight:700}.sort-hint{flex-shrink:0;opacity:0;transition:opacity .15s}.dg-header.sortable:hover .sort-hint{opacity:.5}.dg-row{display:contents}.dg-row:hover>.dg-cell{background:var(--bg-subtle)}.dg-cell{padding:.55rem .8rem;border-bottom:1px solid var(--border-light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;transition:background .1s}.dg-cell.mono{font-family:JetBrains Mono,monospace;font-size:.8rem;font-variant-numeric:tabular-nums}.dg-cell.dg-code{font-family:JetBrains Mono,monospace;font-weight:600}.dg-code-link{color:inherit;text-decoration:none;transition:color .15s}.dg-code-link:hover{color:var(--green);text-decoration:underline}.dg-cell.dg-name{overflow:hidden;text-overflow:ellipsis}.dg-cell.dg-check{width:36px;text-align:center}.dg-cell.dg-check input[type=checkbox]{cursor:pointer;accent-color:var(--green)}.eligibility-icon{font-size:.7rem;margin-left:2px;vertical-align:middle}.eligibility-icon.zombie{filter:grayscale(.3)}.eligibility-icon.ineligible{color:var(--text-muted);font-size:.65rem}.dg-cell.dg-profile{font-size:.78rem;color:var(--text-secondary)}.dg-header.dg-check{width:36px;text-align:center}.dg-header.dg-gear{width:36px;text-align:center;padding:0!important}.profile-filter-btn{background:none;border:none;color:var(--text-primary);cursor:pointer;font:inherit;padding:0}.filter-icon{font-size:.7rem;opacity:.6}.profile-dropdown{position:fixed;z-index:200;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:8px;min-width:200px;box-shadow:0 4px 16px #0000004d;display:flex;flex-direction:column;gap:4px}.profile-option{display:flex;align-items:center;gap:6px;font-size:.82rem;padding:4px 8px;border-radius:4px;cursor:pointer;white-space:nowrap}.profile-option:hover{background:var(--bg-hover)}.profile-apply-btn{margin-top:6px;padding:5px 12px;border:none;border-radius:6px;background:var(--green);color:#000;font-weight:600;font-size:.82rem;cursor:pointer}.profile-apply-btn:disabled{opacity:.4;cursor:default}.col-gear{width:36px;text-align:center;padding:0!important}.col-picker-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1.3rem;padding:4px;line-height:1;opacity:.7}.col-picker-btn:hover{color:var(--text-primary);opacity:1}.col-picker-dropdown{position:fixed;z-index:200;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:8px;min-width:180px;box-shadow:0 4px 16px #0000004d;display:flex;flex-direction:column;gap:4px;max-height:80vh;overflow-y:auto}.discover-empty{grid-column:1 / -1;text-align:center;padding:3rem 1rem;color:var(--text-muted);display:flex;flex-direction:column;align-items:center;gap:.5rem}.discover-empty-title{font-size:.95rem;font-weight:600;color:var(--text-primary);margin:0}.discover-empty-hint{font-size:.85rem;color:var(--text-muted);margin:0;max-width:420px}.discover-empty-btn{margin-top:.5rem;padding:.5rem 1rem;font-size:.85rem;font-weight:500;background:var(--green);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;transition:background .15s}.discover-empty-btn:hover{background:var(--green-dark, #13803e)}.discover-content{position:relative}.discover-content.is-loading{opacity:.5;pointer-events:none}.discover-loading-overlay{position:absolute;top:0;left:0;right:0;z-index:50;background:color-mix(in srgb,var(--bg, #fff) 92%,transparent);border-radius:var(--radius);padding:.25rem}.discover-content.is-loading{opacity:1;pointer-events:none}.discover-error-banner{background:var(--red-light, #fef2f2);border:1px solid var(--red, #dc2626);color:var(--red, #dc2626);padding:.75rem 1rem;border-radius:var(--radius-sm);margin-bottom:1rem;display:flex;align-items:center;gap:1rem;font-size:.85rem}.discover-error-banner button{background:var(--red, #dc2626);color:#fff;border:none;padding:.25rem .75rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.8rem;white-space:nowrap}.badge-active{background:var(--green-light);color:var(--green)}.badge-inactive{background:var(--bg-subtle);color:var(--text-muted);border:1px solid var(--border)}.pagination{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:.5rem}.page-btn{padding:.4rem .9rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-card);font-size:.8rem;cursor:pointer;color:var(--text-secondary);transition:all .2s}.page-btn:hover:not(:disabled){border-color:var(--green);color:var(--text-primary)}.page-btn:disabled{opacity:.4;cursor:default}.page-pills{display:flex;gap:.25rem}.page-pill{width:32px;height:32px;border:1px solid var(--border);border-radius:6px;background:var(--bg-card);font-size:.8rem;font-family:JetBrains Mono,monospace;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:all .2s}.page-pill:hover{border-color:var(--green)}.page-pill.active{background:var(--green);color:#fff;border-color:var(--green)}.page-ellipsis{width:32px;text-align:center;color:var(--text-muted);font-size:.8rem;line-height:32px}.pagination-info{text-align:center;font-size:.75rem;color:var(--text-muted);margin-bottom:2rem}.page-size-select{margin-left:.75rem;padding:.15rem .4rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-secondary);font-size:.75rem;cursor:pointer}.page-size-select:focus{outline:none;border-color:var(--green)}.page-size-label{color:var(--text-muted);font-size:.75rem;margin-left:.25rem}.cart-bar{position:fixed;bottom:0;left:0;right:0;z-index:90;background:#fafbfceb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--border);box-shadow:0 -4px 20px #0000000f;padding:.75rem 2rem;animation:slideUp .25s ease-out}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.cart-bar-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem}.cart-chips{display:flex;gap:.5rem;flex-wrap:wrap;flex:1}.cart-compare-btn{padding:.55rem 1.5rem;border:none;border-radius:100px;background:var(--green);color:#fff;font-size:.85rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .2s}.cart-compare-btn:hover{background:#15803d}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:fadeInUp .5s ease-out both}.animate-in:nth-child(1){animation-delay:0s}.animate-in:nth-child(2){animation-delay:.08s}.animate-in:nth-child(3){animation-delay:.16s}.animate-in:nth-child(4){animation-delay:.24s}.animate-in:nth-child(5){animation-delay:.32s}.nav-auth{display:flex;align-items:center;gap:.75rem}.nav-user{font-size:.82rem;color:var(--text-secondary);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;transition:color .15s}.nav-user:hover{color:var(--text-primary)}.nav-login-btn{padding:.4rem 1rem;border-radius:100px;background:var(--green);color:#fff;font-size:.82rem;font-weight:600;text-decoration:none;transition:background .2s}.nav-login-btn:hover{background:#15803d}.nav-logout-btn{padding:.35rem .8rem;border-radius:100px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);font-size:.78rem;font-weight:500;cursor:pointer;transition:all .2s}.nav-logout-btn:hover{border-color:var(--red);color:var(--red)}.nav-upgrade-btn{padding:.35rem .8rem;border-radius:100px;background:var(--amber);color:#fff;font-size:.78rem;font-weight:600;text-decoration:none;touch-action:manipulation;transition:background .2s,transform .1s,box-shadow .2s}.nav-upgrade-btn:hover{background:var(--amber-dark, #b45309);transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b4d}.nav-upgrade-btn:active{transform:translateY(0);box-shadow:0 1px 3px #f59e0b33}.nav-upgrade-btn:focus-visible{outline:2px solid var(--navy);outline-offset:3px}@media(prefers-reduced-motion:reduce){.nav-upgrade-btn{transition:background .2s}.nav-upgrade-btn:hover,.nav-upgrade-btn:active{transform:none}}.nav-pro-badge{padding:.2rem .5rem;border-radius:100px;background:var(--green-light);color:var(--green);font-size:.7rem;font-weight:700;letter-spacing:.05em}.nav-pricing-link{font-size:.82rem;color:var(--text-secondary);text-decoration:none;font-weight:500;transition:color .2s}.nav-pricing-link:hover{color:var(--text-primary)}.auth-page{display:flex;justify-content:center;padding-top:4rem}.auth-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2.5rem;width:100%;max-width:420px}.auth-title{font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.auth-subtitle{font-size:.9rem;color:var(--text-secondary);margin-bottom:1.5rem}.auth-google-btn{width:100%;padding:.65rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.auth-google-btn:hover{border-color:var(--green);background:var(--bg-subtle)}.auth-divider{display:flex;align-items:center;gap:1rem;margin:1.25rem 0;color:var(--text-muted);font-size:.78rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-label{display:block;font-size:.78rem;font-weight:500;color:var(--text-secondary);margin-bottom:1rem}.auth-input{display:block;width:100%;margin-top:.3rem;padding:.55rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.9rem;background:var(--bg);outline:none;transition:border-color .2s;box-sizing:border-box}.auth-input:focus{border-color:var(--green)}.auth-error{font-size:.82rem;color:var(--red);margin-bottom:.75rem}.auth-success{font-size:.82rem;color:var(--green);margin-bottom:.75rem}.auth-submit-btn{width:100%;padding:.65rem;border:none;border-radius:var(--radius-sm);background:var(--green);color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s}.auth-submit-btn:hover{background:#15803d}.auth-submit-btn:disabled{opacity:.5;cursor:default}.auth-toggle{text-align:center;font-size:.82rem;color:var(--text-secondary);margin-top:1.25rem}.auth-toggle-btn{background:none;border:none;color:var(--green);font-weight:600;font-size:.82rem;cursor:pointer;text-decoration:underline}.auth-forgot{text-align:center;margin-top:.75rem}.auth-forgot-btn{background:none;border:none;color:var(--text-secondary);font-size:.78rem;cursor:pointer;text-decoration:underline;padding:0;font-family:inherit}.auth-forgot-btn:hover:not(:disabled){color:var(--text-primary)}.auth-forgot-btn:disabled{opacity:.5;cursor:default}.auth-tos-label{display:flex;align-items:flex-start;gap:.5rem;font-size:.8rem;color:var(--text-secondary);margin-bottom:.75rem;cursor:pointer}.auth-tos-checkbox{margin-top:.15rem;accent-color:var(--green);flex-shrink:0}.auth-tos-label a{color:var(--green);text-decoration:underline}.auth-tos-label a:hover{color:var(--text-primary)}.cart-actions{display:flex;gap:.5rem;flex-shrink:0}.cart-backtest-btn{padding:.55rem 1.5rem;border:2px solid var(--green);border-radius:100px;background:transparent;color:var(--green);font-size:.85rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s}.cart-backtest-btn:hover{background:var(--green-light)}.cart-backtest-btn.is-disabled,.cart-backtest-btn:disabled{border-color:var(--border);color:var(--text-muted);background:transparent;cursor:not-allowed;opacity:.7}.cart-backtest-btn.is-disabled:hover,.cart-backtest-btn:disabled:hover{background:transparent}.cart-warning-badge{display:inline-flex;align-items:center;gap:2px;margin-left:4px;font-size:.72rem;color:#b45309;font-weight:500}.cart-bar-warning{max-width:1280px;margin:.5rem auto 0;padding:.5rem .75rem;font-size:.8rem;color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius-sm);line-height:1.4}.cart-bar-warning strong{font-weight:600}.cart-bar-hint{max-width:1280px;margin:.4rem auto 0;font-size:.75rem;color:var(--text-muted);font-style:italic}.backtest-config{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:2rem}.weight-row{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--border-light)}.weight-row:last-child{border-bottom:none}.weight-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.weight-code{font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:600;min-width:60px}.weight-days{font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted);min-width:36px;text-align:right}.weight-days--insufficient{color:var(--red);font-weight:600}.weight-slider{flex:1;accent-color:var(--green);height:6px}.weight-input{width:60px;padding:.3rem .4rem;border:1px solid var(--border);border-radius:5px;font-size:.82rem;font-family:JetBrains Mono,monospace;text-align:center;background:var(--bg);outline:none}.weight-input:focus{border-color:var(--green)}.weight-total{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;font-size:.85rem;font-weight:600}.weight-total-value{font-family:JetBrains Mono,monospace;font-size:1rem}.weight-total-ok{color:var(--green)}.weight-total-bad{color:var(--red)}.backtest-settings{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-light)}.backtest-field label{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:500;margin-bottom:.3rem}.backtest-field input,.backtest-field select{width:100%;padding:.45rem .6rem;border:1px solid var(--border);border-radius:6px;font-size:.85rem;background:var(--bg);outline:none}.backtest-field input:focus,.backtest-field select:focus{border-color:var(--green)}.date-field-wrap{display:flex;gap:.4rem;align-items:center}.date-field-wrap input[type=date]{flex:1}.date-auto-btn{padding:.3rem .5rem;border:1px solid var(--border);border-radius:5px;background:var(--bg);font-size:.7rem;font-weight:500;color:var(--green);cursor:pointer;white-space:nowrap;transition:all .15s}.date-auto-btn:hover{background:var(--green-light);border-color:var(--green)}.date-auto-btn--common{color:var(--navy);border-color:var(--navy)}.date-auto-btn--common:hover{background:color-mix(in srgb,var(--navy) 8%,transparent);border-color:var(--navy)}.date-hint{display:block;font-size:.68rem;color:var(--text-muted);margin-top:.2rem}.rebalance-hint{display:block;font-size:.72rem;color:var(--text-muted);margin-top:.3rem;line-height:1.4}.backtest-run-btn{width:100%;padding:.75rem;border:none;border-radius:var(--radius-sm);background:var(--green);color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;margin-top:1.25rem;transition:background .2s}.backtest-run-btn:hover{background:#15803d}.backtest-run-btn:disabled{opacity:.4;cursor:default}.backtest-equal-btn{padding:.3rem .8rem;border:1px solid var(--border);border-radius:100px;background:var(--bg);font-size:.75rem;font-weight:500;cursor:pointer;color:var(--text-secondary);transition:all .2s}.backtest-equal-btn:hover{border-color:var(--green);color:var(--green)}.backtest-summary{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1.25rem;margin-bottom:1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.backtest-summary-info{display:flex;gap:1.5rem;flex-wrap:wrap;font-size:.82rem;color:var(--text-secondary)}.backtest-summary-info span{display:inline-flex;align-items:center;gap:.3rem}.backtest-summary-info strong{font-family:JetBrains Mono,monospace;color:var(--text-primary)}.backtest-edit-btn{padding:.35rem 1rem;border:1px solid var(--border);border-radius:100px;background:transparent;font-size:.78rem;font-weight:500;cursor:pointer;color:var(--text-secondary);transition:all .2s}.backtest-edit-btn:hover{border-color:var(--green);color:var(--green)}.backtest-info-bar{display:flex;gap:2rem;flex-wrap:wrap;margin-bottom:1.5rem;padding:.75rem 1rem;background:var(--bg-subtle);border-radius:var(--radius-sm);font-size:.82rem;color:var(--text-secondary)}.backtest-info-bar strong{font-family:JetBrains Mono,monospace;color:var(--text-primary)}.backtest-freshness{margin-left:auto;font-size:.78rem;color:var(--text-muted);cursor:help;border-bottom:1px dotted var(--text-muted)}.backtest-error{padding:1rem 1.25rem;background:var(--red-light);border:1px solid var(--red);border-radius:var(--radius-sm);color:var(--red);font-size:.85rem;margin-bottom:1.5rem}.backtest-add-error{padding:.5rem 1rem;background:var(--amber-light);border:1px solid var(--amber);border-radius:var(--radius-sm);color:var(--amber);font-size:.82rem;margin:.5rem 0}.backtest-data-warning{margin-top:.75rem;padding:.75rem 1rem;background:var(--red-light);border:1px solid var(--red);border-left:4px solid var(--red);border-radius:var(--radius-sm);font-size:.82rem;color:var(--text-primary)}.backtest-data-warning strong{color:var(--red)}.backtest-data-warning p{margin:.25rem 0;color:var(--text-secondary)}.backtest-data-warning ul{margin:.25rem 0;padding-left:1.25rem}.backtest-data-warning li{font-family:var(--font-mono);font-size:.78rem;color:var(--red)}.corr-matrix{overflow-x:auto;margin-bottom:2rem}.corr-matrix table{border-collapse:separate;border-spacing:3px;width:auto;margin:0 auto}.corr-matrix th{font-family:JetBrains Mono,monospace;font-size:.78rem;font-weight:600;padding:.4rem .6rem;color:var(--text-secondary)}.corr-cell{text-align:center;padding:.45rem .6rem;border-radius:4px;font-family:JetBrains Mono,monospace;font-size:.78rem;font-weight:500;min-width:56px;transition:transform .15s}.corr-cell:hover{transform:scale(1.05)}.annual-returns-table{width:100%;border-collapse:collapse;margin-bottom:2rem}.annual-returns-table th{padding:.6rem 1rem;text-align:left;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-bottom:2px solid var(--border);background:var(--bg-subtle)}.annual-returns-table td{padding:.5rem 1rem;font-family:JetBrains Mono,monospace;font-size:.82rem;border-bottom:1px solid var(--border-light)}.loading-spinner{display:inline-block;width:1.5rem;height:1.5rem;border:2px solid var(--border);border-top-color:var(--green);border-radius:50%;animation:spin .6s linear infinite}.loading-container{display:flex;align-items:center;justify-content:center;padding:3rem;gap:.75rem;color:var(--text-secondary);font-size:.9rem}.skeleton{background:linear-gradient(90deg,var(--bg-subtle) 25%,var(--border-light) 50%,var(--bg-subtle) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}.skeleton-line{height:1rem;margin-bottom:.5rem}.skeleton-card{height:6rem;border-radius:var(--radius)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes chart-draw{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}.chart-animate-in{animation:chart-draw .8s cubic-bezier(.22,.61,.36,1) both}@media(prefers-reduced-motion:reduce){.chart-animate-in{animation:none}}.reveal-on-scroll{opacity:0;transform:translateY(16px);transition:opacity .55s ease-out,transform .55s cubic-bezier(.22,.61,.36,1);will-change:opacity,transform}.reveal-on-scroll.reveal-visible{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){.reveal-on-scroll{opacity:1;transform:none;transition:none}}.empty-state{text-align:center;padding:3rem 2rem;color:var(--text-secondary)}.empty-state-icon{font-size:2.5rem;margin-bottom:1rem;opacity:.4}.empty-state h3{font-size:1.1rem;font-weight:500;margin-bottom:.5rem;color:var(--text-primary)}.empty-state p{font-size:.85rem;line-height:1.5;max-width:400px;margin:0 auto}.empty-state a{color:var(--green);text-decoration:none;font-weight:500}.empty-state a:hover{text-decoration:underline}.backtest-save-row{display:flex;align-items:center;gap:.75rem;margin:.75rem 0;flex-wrap:wrap}.backtest-save-btn,.discover-save-btn{padding:.45rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--accent);background:transparent;color:var(--accent);font-size:.85rem;font-weight:500;cursor:pointer;transition:background .2s,color .2s}.backtest-save-btn:hover,.discover-save-btn:hover{background:var(--accent);color:#fff}.backtest-save-msg,.discover-save-msg{font-size:.82rem;color:var(--green)}.discover-toolbar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:.5rem}.discover-toolbar>:first-child{flex:1}.public-hamburger{display:none;background:none;border:none;cursor:pointer;padding:4px;flex-direction:column;gap:5px;z-index:101}.public-hamburger span{display:block;width:22px;height:2px;background:var(--text-primary);border-radius:2px;transition:transform .3s,opacity .3s}.public-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.public-hamburger.open span:nth-child(2){opacity:0}.public-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.public-nav-backdrop{display:none;border:0;padding:0;background:transparent;cursor:pointer}.app-body .cart-bar{left:var(--current-sidebar-width, 0);transition:left .2s ease}@media(max-width:1024px){.key-metrics,.behavior-grid,.filter-panel{grid-template-columns:repeat(2,1fr)}.public-nav-links{gap:1rem}.public-nav-links a{font-size:.82rem}.blog-grid{grid-template-columns:1fr}}@media(max-width:768px){.app-hamburger{display:flex}.app-content{padding:1rem 1rem 3rem}.app-body .cart-bar{left:0}.logo-text{display:none}.cart-bar{padding:.625rem 1rem}.cart-bar-inner{flex-wrap:wrap;gap:.5rem}.cart-chips{flex-basis:100%}.cart-actions{width:100%;gap:.5rem}.cart-actions>.cart-backtest-btn,.cart-actions>.cart-compare-btn{flex:1;padding:.55rem .5rem;font-size:.82rem;text-align:center}.public-nav{padding:0 1rem}.public-nav-inner{height:56px}.public-hamburger{display:flex}.public-nav-links{display:none;position:fixed;top:56px;left:0;right:0;background:var(--bg-card);border-bottom:1px solid var(--border);flex-direction:column;padding:1rem 1.5rem;gap:0;z-index:100;box-shadow:var(--shadow-md)}.public-nav-links.nav-open{display:flex}.public-nav-links li{border-bottom:1px solid var(--border-light)}.public-nav-links li:last-child{border-bottom:none}.public-nav-links a{display:block;padding:.7rem 0;font-size:.95rem}.nav-auth{gap:.5rem;font-size:.82rem}.nav-user{display:none}.public-nav-backdrop{display:block;position:fixed;right:0;bottom:0;left:0;top:56px;background:#0000004d;z-index:99}.page-content{padding:1rem 1rem 3rem}.key-metrics,.behavior-grid{grid-template-columns:1fr}.comparator-header h1{font-size:1.5rem}.filter-panel{grid-template-columns:1fr}.compare-table{font-size:.78rem}.compare-table thead th,.compare-table tbody td{padding:.5rem .6rem}.discover-grid{font-size:.75rem}.dg-header,.dg-cell{padding:.4rem .5rem}.cart-bar{padding:.5rem 1rem}.cart-compare-btn{padding:.45rem 1rem;font-size:.8rem}.preset-pill{font-size:.72rem;padding:.3rem .6rem}.filter-bar{flex-direction:column;gap:.5rem}.filter-bar-sort{width:100%}.metric-grid{grid-template-columns:1fr}.screening-top{padding:.75rem}.screening-filters-toggle{padding:.65rem .75rem}.screening-filters-body{padding:0 .75rem .75rem}.screening-filters-right{flex-wrap:wrap}.metric-group-grid{grid-template-columns:1fr}}@media(max-width:480px){.page-content,.app-content{padding:.75rem .75rem 2rem}.key-metrics{gap:.5rem}.preset-pills{gap:.3rem}}
