.main-container{max-width:1400px;margin:0 auto;padding:2rem 2.5rem}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.header h1{font-size:1.25rem;font-weight:650;margin:0;letter-spacing:-.02em}.header-right{display:flex;align-items:center;gap:.5rem}.nav-link,.logout-btn,.version-badge{display:none}.analysis-wrap{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:8px;padding:1.25rem 1.5rem;margin-bottom:1rem;box-shadow:var(--shadow)}.analysis-wrap h2{font-size:.95rem;font-weight:600;color:var(--text-primary);margin:0 0 1rem}.analysis-wrap h3{font-size:.85rem;font-weight:600;color:var(--text-secondary);margin:0 0 .75rem}.analysis-bar{display:flex;gap:.5rem;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-tertiary)}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:.65rem .85rem;align-items:end}.form-options{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;padding:.65rem 0;border-top:1px solid var(--border-tertiary);margin-top:.65rem}.form-options .chk{display:flex;align-items:center;gap:.35rem;font-size:.8125rem;-webkit-user-select:none;user-select:none;white-space:nowrap;cursor:pointer;color:var(--text-primary)}.form-options .chk input[type=checkbox]{accent-color:var(--accent);margin:0}.form-actions{display:flex;gap:.5rem;align-items:center;padding-top:.65rem;border-top:1px solid var(--border-tertiary);margin-top:.35rem}.form-section{border-top:1px solid var(--border-tertiary);margin-top:.65rem;padding-top:.65rem}.form-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.form-section-header label{font-size:.75rem;font-weight:600;color:var(--text-secondary)}.form-field{display:flex;flex-direction:column;gap:.3rem}.form-field label{font-size:.75rem;font-weight:550;color:var(--text-secondary);letter-spacing:.01em}.form-grid input[type=text],.form-grid input[type=date],.form-grid input[type=number],.form-grid select,.form-grid textarea{width:100%;padding:.45rem .6rem;border:1px solid var(--input-border);border-radius:5px;font-size:.8125rem;background:var(--input-bg);color:var(--text-primary);transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.analysis-form{display:flex;flex-direction:column;gap:0}.primary-btn{background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:6px;padding:.5rem 1rem;font-size:.8125rem;font-weight:550;cursor:pointer;transition:background .15s;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.primary-btn:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.primary-btn:disabled{opacity:.5;cursor:not-allowed}.secondary-btn{padding:.4rem .75rem;border-radius:5px;border:1px solid var(--border-secondary);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;font-size:.8rem;font-weight:500;transition:background .15s;text-decoration:none}.secondary-btn:hover{background:var(--hover-bg)}.danger-btn{color:var(--negative);border-color:var(--negative)}.danger-btn:hover{background:var(--negative-bg)}.editable-table{display:flex;flex-direction:column;gap:.35rem}.editable-table-row{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:.4rem;align-items:center}.editable-table.hide-coefficients .editable-table-row{grid-template-columns:1fr 1fr auto}.editable-table-row input{width:100%;box-sizing:border-box;padding:.4rem .5rem;border:1px solid var(--input-border);border-radius:4px;font-size:.8125rem;background:var(--input-bg);color:var(--text-primary)}.editable-table-row input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-light)}.editable-table-add-btn{padding:.25rem .6rem;font-size:.75rem;margin-top:.35rem;width:fit-content}.table-scroller{overflow-x:auto;margin-top:.75rem;border:1px solid var(--border-primary);border-radius:6px}.analysis-table{width:100%;border-collapse:collapse;font-size:.8rem}.analysis-table th,.analysis-table td{padding:.5rem .75rem;text-align:left;white-space:nowrap;border-bottom:1px solid var(--border-tertiary)}.analysis-table thead th{background:var(--bg-secondary);font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);position:sticky;top:0;z-index:1;border-bottom:1px solid var(--border-primary)}.analysis-table thead th:hover{background:var(--hover-bg)}.analysis-table tbody tr:last-child td{border-bottom:none}.analysis-table tbody tr:hover{background:var(--hover-bg)}.error-alert{margin-bottom:1rem;animation:alertIn .2s ease-out}@keyframes alertIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.error-content{display:flex;align-items:flex-start;gap:.6rem;padding:.75rem 1rem;background:var(--negative-bg);border:1px solid rgba(220,38,38,.15);border-left:3px solid var(--negative);border-radius:6px}.error-icon{font-size:.85rem;font-weight:700;color:var(--negative);flex-shrink:0;margin-top:.1rem}.error-message{flex:1;color:var(--negative);font-size:.8125rem;line-height:1.5}.error-close{background:none;border:none;font-size:1.1rem;color:var(--negative);cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0;line-height:1}.error-close:hover{background:#dc26261a}.info-alert{margin-bottom:1rem;animation:alertIn .2s ease-out}.info-content{display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;background:var(--accent-light);border:1px solid rgba(37,99,235,.12);border-left:3px solid var(--accent);border-radius:6px}.info-icon{font-size:.85rem;flex-shrink:0}.info-message{flex:1;color:var(--accent);font-size:.8125rem;line-height:1.5}.loading-container{display:flex;align-items:center;gap:.6rem;padding:.75rem 0;font-size:.8125rem;color:var(--text-secondary)}.spinner{border:2px solid var(--border-tertiary);width:16px;height:16px;border-radius:50%;border-left-color:var(--accent);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.table-actions{display:flex;justify-content:flex-end;gap:.4rem;padding:.5rem 0}.download-csv-btn{background:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border-secondary);padding:.3rem .6rem;border-radius:4px;font-size:.75rem;cursor:pointer;font-weight:500;transition:background .15s}.download-csv-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.meta-bar{margin-top:.75rem;font-size:.75rem;color:var(--text-tertiary);display:flex;justify-content:space-between}.positive,.opt-positive,.batch-positive{color:var(--positive);font-weight:600}.negative,.opt-negative,.batch-negative{color:var(--negative);font-weight:600}.table-container{margin:.75rem 0;border:1px solid var(--border-primary);border-radius:6px;overflow-x:auto;background:var(--bg-primary)}.readonly-table{width:100%;border-collapse:collapse;font-size:.8rem}.readonly-table th,.readonly-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--border-tertiary);white-space:nowrap}.readonly-table th{background:var(--bg-secondary);font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);border-bottom:1px solid var(--border-primary)}.readonly-table tbody tr:hover{background:var(--hover-bg)}.table-header-actions{display:flex;justify-content:flex-end;gap:.4rem;padding:.4rem .75rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-tertiary)}.app-shell{display:flex;min-height:100vh}.sidebar{width:200px;min-width:200px;background:var(--sidebar-bg);color:var(--sidebar-text);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:50;border-right:1px solid var(--sidebar-border)}.sidebar-brand{padding:1.25rem 1rem 1rem;border-bottom:1px solid var(--sidebar-border)}.sidebar-brand-text{font-size:1rem;font-weight:700;letter-spacing:-.02em;color:var(--sidebar-text-bright)}.sidebar-nav{flex:1;overflow-y:auto;padding:.5rem 0}.sidebar-section{padding:.25rem 0}.sidebar-section-label{padding:.5rem 1rem .25rem;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--sidebar-text-dim)}.sidebar-link{display:block;padding:.4rem 1rem;font-size:.8rem;font-weight:450;color:var(--sidebar-text);text-decoration:none;transition:color .1s,background .1s;border-left:2px solid transparent}.sidebar-link:hover{color:var(--sidebar-text-bright);background:var(--sidebar-hover)}.sidebar-link.active{color:var(--sidebar-text-bright);background:var(--sidebar-active);border-left-color:var(--accent);font-weight:550}.sidebar-jobs{padding:.5rem .75rem;border-top:1px solid var(--sidebar-border)}.sidebar-jobs-label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--sidebar-text-dim);padding:0 .25rem .35rem}.sidebar-job{display:flex;align-items:center;gap:.4rem;width:100%;padding:.3rem .25rem;background:none;border:none;color:var(--sidebar-text);cursor:pointer;font-size:.75rem;text-align:left;border-radius:4px;transition:background .1s}.sidebar-job:hover{background:var(--sidebar-hover)}.sidebar-job-ticker{font-weight:600;min-width:32px;color:var(--sidebar-text-bright)}.sidebar-job-bar{flex:1;height:3px;background:var(--sidebar-border);border-radius:2px;overflow:hidden}.sidebar-job-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .5s ease}.sidebar-job-pct{font-variant-numeric:tabular-nums;min-width:24px;text-align:right;color:var(--sidebar-text-dim)}.sidebar-footer{padding:.75rem 1rem;border-top:1px solid var(--sidebar-border);display:flex;flex-direction:column;gap:.5rem}.sidebar-versions{display:flex;gap:.5rem;font-size:.65rem;color:var(--sidebar-text-dim);font-variant-numeric:tabular-nums}.sidebar-logout{background:none;border:1px solid var(--sidebar-border);color:var(--sidebar-text);padding:.35rem 0;border-radius:4px;font-size:.75rem;cursor:pointer;transition:background .15s,color .15s}.sidebar-logout:hover{background:var(--sidebar-hover);color:var(--sidebar-text-bright)}.app-main{flex:1;margin-left:200px;padding:2rem 2.5rem;min-height:100vh;max-width:1400px}.page-title{font-size:1.25rem;font-weight:650;color:var(--text-primary);margin:0 0 1.5rem;letter-spacing:-.02em;line-height:1.2}.opt-form{display:flex;flex-direction:column;gap:1.25rem}.opt-section h3{margin:0 0 .6rem;font-size:.7rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border-tertiary);padding-bottom:.4rem}.opt-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.opt-form .form-field label{font-size:.75rem;font-weight:550;color:var(--text-secondary)}.opt-form input[type=text],.opt-form input[type=date],.opt-form input[type=number],.opt-form select{width:100%;padding:.45rem .6rem;border:1px solid var(--input-border);border-radius:5px;font-size:.8125rem;background:var(--input-bg);color:var(--text-primary);transition:border-color .15s,box-shadow .15s}.opt-form input:focus,.opt-form select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.opt-checks{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;margin-top:.5rem}.opt-checks .chk{display:flex;align-items:center;gap:.35rem;font-size:.8125rem;-webkit-user-select:none;user-select:none;white-space:nowrap;cursor:pointer}.opt-checks .chk input[type=checkbox]{accent-color:var(--accent)}.opt-checks .chk:has(input[disabled]){opacity:.4}.opt-start-btn{padding:.55rem 1.5rem;font-size:.875rem;font-weight:550;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .15s;align-self:flex-start}.opt-start-btn:hover:not(:disabled){background:var(--accent-hover)}.opt-start-btn:disabled{opacity:.5;cursor:not-allowed}.opt-progress-wrap{margin-top:0}.opt-progress-bar-bg{width:100%;height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden;margin-bottom:.6rem}.opt-progress-bar-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .5s ease}.opt-progress-stats{display:flex;flex-wrap:wrap;gap:1.25rem;font-size:.8rem;color:var(--text-secondary);margin-bottom:.5rem}.opt-summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;margin:.75rem 0 1.25rem}.opt-card{padding:.75rem;border:1px solid var(--border-primary);border-radius:6px;background:var(--bg-secondary);text-align:center}.opt-card-green{border-left:3px solid var(--positive)}.opt-card-red{border-left:3px solid var(--negative)}.opt-card-label{font-size:.65rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.2rem}.opt-card-value{font-size:1.15rem;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.opt-card-sub{font-size:.7rem;color:var(--text-tertiary);margin-top:.15rem}.opt-best-params{margin-top:1.25rem}.opt-hint{font-size:.75rem;color:var(--text-tertiary);margin:.2rem 0 .4rem}.opt-json{background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:5px;padding:.75rem;font-size:.75rem;overflow-x:auto;max-height:280px;overflow-y:auto;margin-bottom:.5rem;line-height:1.5}.opt-btn-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.opt-validate-btn{padding:.3rem .6rem;font-size:.75rem;font-weight:500;background:var(--accent);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background .15s;white-space:nowrap;text-decoration:none}.opt-validate-btn:hover{background:var(--accent-hover);color:#fff}.opt-trade-block{border:1px solid var(--border-primary);border-radius:6px;margin-top:.75rem;overflow:hidden}.opt-trade-header{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;background:var(--bg-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.opt-trade-header:hover{background:var(--hover-bg)}.opt-trade-rank{font-size:1rem;font-weight:700;color:var(--accent);min-width:1.75rem}.opt-trade-summary{display:flex;flex-wrap:wrap;gap:.4rem 1rem;flex:1;font-size:.8rem}.opt-trade-toggle{font-size:.75rem;color:var(--accent);font-weight:500;white-space:nowrap}.opt-trade-details{padding:.75rem;border-top:1px solid var(--border-tertiary)}.opt-trade-details h4{margin:0 0 .5rem;font-size:.85rem}.opt-badge{display:inline-block;padding:.1rem .4rem;border-radius:3px;font-size:.7rem;font-weight:600;white-space:nowrap}.opt-badge-dip-buy{background:#fef3c7;color:#92400e}.opt-badge-day-1-buy{background:#dcfce7;color:#166534}.opt-badge-recurring-buy{background:#e0e7ff;color:#3730a3}.opt-badge-recovery-sell{background:#fce7f3;color:#9d174d}.opt-badge-year-end-sell{background:#f3e8ff;color:#6b21a8}.opt-badge-greedy-sell{background:#fef9c3;color:#854d0e}.info-tip-wrap{display:inline-block;position:relative;margin-left:.2rem}.info-tip-btn{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;border:1px solid var(--border-secondary);background:var(--bg-secondary);color:var(--text-tertiary);font-size:.6rem;font-weight:700;cursor:pointer;padding:0;line-height:1;vertical-align:middle}.info-tip-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.info-tip-popup{position:absolute;left:50%;transform:translate(-50%);top:calc(100% + 6px);background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:6px;padding:.5rem .7rem;font-size:.75rem;font-weight:400;color:var(--text-primary);width:240px;z-index:100;box-shadow:var(--shadow-md);line-height:1.45;white-space:normal;cursor:pointer}.info-guide-toggle{display:inline-block;margin-left:.4rem;font-size:.65rem;padding:.1rem .3rem;border-radius:3px;border:1px solid var(--border-secondary);background:var(--bg-secondary);color:var(--accent);cursor:pointer;font-weight:500}.info-guide-toggle:hover{background:var(--accent);color:#fff}.iter-guide{margin-top:.6rem;border:1px solid var(--border-tertiary);border-radius:6px;padding:.6rem;background:var(--bg-secondary)}.iter-guide-table{width:100%;border-collapse:collapse;font-size:.75rem}.iter-guide-table th,.iter-guide-table td{padding:.3rem .5rem;text-align:left;border-bottom:1px solid var(--border-tertiary)}.iter-guide-table th{font-weight:600;color:var(--text-secondary);font-size:.65rem;text-transform:uppercase;letter-spacing:.04em}.iter-guide-note{font-size:.7rem;color:var(--text-tertiary);margin:.4rem 0 0;font-style:italic}.opt-phase-label{font-size:.8rem;color:var(--text-secondary);margin-bottom:.4rem;font-style:italic}.opt-progress-scores{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin:.75rem 0}.opt-progress-score-card{padding:.65rem .75rem;border:1px solid var(--border-primary);border-radius:6px;background:var(--bg-secondary);text-align:center}.opt-progress-score-card.highlight{border-color:var(--accent);border-width:2px}.opt-progress-score-label{font-size:.65rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.2rem}.opt-progress-score-value{font-size:1.1rem;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.opt-progress-score-sub{font-size:.8rem;font-weight:400;color:var(--text-secondary)}.opt-progress-score-pending{font-size:.8rem;color:var(--text-tertiary);font-style:italic}.opt-progress-score-diff{font-size:.75rem;margin-top:.15rem;font-weight:600;font-variant-numeric:tabular-nums}.opt-progress-score-diff.positive{color:var(--positive)}.opt-progress-score-diff.negative{color:var(--negative)}.active-jobs-banner{background:var(--accent-light);border:1px solid rgba(37,99,235,.12);border-radius:6px;padding:.6rem .75rem;margin-bottom:.75rem}.active-jobs-banner h4{margin:0 0 .4rem;font-size:.7rem;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.04em}.active-job-row{display:flex;align-items:center;gap:.6rem;padding:.3rem 0;font-size:.8rem}.active-job-type{font-weight:600;color:var(--accent);min-width:50px}.active-job-bar-bg{flex:1;height:4px;background:var(--bg-tertiary);border-radius:2px;overflow:hidden;min-width:60px}.active-job-bar-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .5s ease}.active-job-pct{font-weight:600;font-variant-numeric:tabular-nums;min-width:28px;text-align:right}.history-table-wrap{overflow-x:auto;margin-top:.5rem;border:1px solid var(--border-primary);border-radius:6px}.history-table{width:100%;border-collapse:collapse;font-size:.8rem}.history-table th,.history-table td{padding:.5rem .65rem;text-align:left;border-bottom:1px solid var(--border-tertiary);white-space:nowrap}.history-table th{font-weight:600;color:var(--text-secondary);text-transform:uppercase;font-size:.65rem;letter-spacing:.04em;position:sticky;top:0;background:var(--bg-secondary)}.history-table tbody tr{cursor:pointer;transition:background .1s}.history-table tbody tr:hover{background:var(--hover-bg)}.history-score{font-weight:600;font-variant-numeric:tabular-nums}.history-score.positive{color:var(--positive)}.history-score.negative{color:var(--negative)}.history-badge{display:inline-block;padding:.1rem .4rem;border-radius:3px;font-size:.65rem;font-weight:600}.history-badge.advanced{background:var(--accent-light);color:var(--accent)}.history-badge.multi-ticker{background:#8b5cf61a;color:#7c3aed}.history-detail{background:var(--bg-secondary);padding:1rem;border-radius:6px;margin-bottom:.25rem}.history-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.history-detail h4{margin:0 0 .4rem;font-size:.7rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.history-detail pre{background:var(--bg-primary);border:1px solid var(--border-tertiary);border-radius:5px;padding:.65rem;font-size:.7rem;overflow-x:auto;max-height:280px;margin:0;line-height:1.5}.history-actions{display:flex;gap:.4rem;margin-top:.75rem;flex-wrap:wrap}.history-actions a,.history-actions button{font-size:.75rem;padding:.35rem .65rem;border-radius:4px;text-decoration:none;cursor:pointer;border:1px solid var(--border-secondary);background:var(--bg-primary);color:var(--text-primary);transition:background .1s}.history-actions a:hover,.history-actions button:hover{background:var(--hover-bg)}.history-actions .primary-btn{background:var(--accent);color:#fff;border-color:var(--accent)}.history-actions .primary-btn:hover{background:var(--accent-hover);color:#fff}.history-actions .danger-btn{color:var(--negative);border-color:var(--negative)}.history-actions .danger-btn:hover{background:var(--negative-bg)}.history-note{margin-top:.6rem}.history-note textarea{width:100%;padding:.4rem .5rem;border:1px solid var(--input-border);border-radius:4px;font-size:.75rem;background:var(--input-bg);color:var(--text-primary);resize:vertical;min-height:1.75rem;box-sizing:border-box}.history-empty{text-align:center;padding:3rem;color:var(--text-secondary)}.history-ticker{font-weight:600}.history-flags{display:flex;flex-wrap:wrap;gap:.15rem}.history-flag-badge{display:inline-block;padding:.08rem .3rem;border-radius:3px;font-size:.6rem;font-weight:600;background:var(--accent-light);color:var(--accent);white-space:nowrap}.history-flags-none{font-size:.7rem;color:var(--text-tertiary);font-style:italic}.expanded-row{background:var(--bg-secondary)}.batch-form{display:flex;flex-direction:column;gap:1.25rem}.batch-section h3{margin:0 0 .6rem;font-size:.7rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border-tertiary);padding-bottom:.4rem}.batch-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.batch-form .form-field label{font-size:.75rem;font-weight:550;color:var(--text-secondary)}.batch-form input[type=text],.batch-form input[type=date],.batch-form input[type=number],.batch-form textarea{width:100%;padding:.45rem .6rem;border:1px solid var(--input-border);border-radius:5px;font-size:.8125rem;background:var(--input-bg);color:var(--text-primary);font-family:inherit;transition:border-color .15s,box-shadow .15s}.batch-form input:focus,.batch-form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.batch-tickers-input{grid-column:1 / -1}.batch-tickers-hint{font-size:.7rem;color:var(--text-tertiary);margin-top:.2rem}.batch-params-json{grid-column:1 / -1}.batch-params-json textarea{min-height:100px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.75rem;resize:vertical}.batch-checks{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;margin-top:.4rem}.batch-checks .chk{display:flex;align-items:center;gap:.35rem;font-size:.8125rem;cursor:pointer}.batch-checks .chk input[type=checkbox]{accent-color:var(--accent)}.batch-summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.75rem;margin:.75rem 0 1rem}.batch-card{padding:.65rem;border:1px solid var(--border-primary);border-radius:6px;background:var(--bg-secondary);text-align:center}.batch-card-green{border-left:3px solid var(--positive)}.batch-card-red{border-left:3px solid var(--negative)}.batch-card-label{font-size:.65rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.15rem}.batch-card-value{font-size:1.05rem;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.batch-results-table{width:100%;border-collapse:collapse;font-size:.8rem}.batch-results-table th,.batch-results-table td{padding:.45rem .6rem;text-align:left;border-bottom:1px solid var(--border-tertiary)}.batch-results-table th{font-weight:600;color:var(--text-secondary);text-transform:uppercase;font-size:.65rem;letter-spacing:.04em;position:sticky;top:0;background:var(--bg-secondary)}.batch-results-table tbody tr:hover{background:var(--hover-bg)}.batch-ticker-cell{font-weight:600}.batch-beat-badge{display:inline-block;padding:.1rem .35rem;border-radius:3px;font-size:.65rem;font-weight:600}.batch-beat-badge.yes{background:var(--positive-bg);color:var(--positive)}.batch-beat-badge.no{background:var(--negative-bg);color:var(--negative)}.batch-paste-hint{background:var(--bg-secondary);border:1px dashed var(--border-secondary);border-radius:6px;padding:.6rem .75rem;margin-bottom:.75rem;font-size:.8rem;color:var(--text-secondary)}.batch-paste-hint code{background:var(--bg-tertiary);padding:.1rem .25rem;border-radius:3px;font-size:.75rem}.mt-hint-box{background:var(--accent-light);border:1px dashed rgba(37,99,235,.2);border-radius:6px;padding:.6rem .75rem;margin-bottom:.75rem;font-size:.8rem;color:var(--text-secondary)}.mt-tickers-field{width:100%}.mt-tickers-field input{width:100%;padding:.45rem .6rem;border:1px solid var(--input-border);border-radius:5px;font-size:.8125rem;background:var(--input-bg);color:var(--text-primary)}.mt-tickers-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.mt-tickers-hint{font-size:.7rem;color:var(--text-tertiary);margin-top:.2rem}.mt-bh-per-ticker{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.4rem;justify-content:center}.mt-bh-ticker-chip{font-size:.7rem;padding:.1rem .4rem;background:var(--bg-tertiary);border-radius:3px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.mt-breakdown-table td,.mt-breakdown-table th{padding:.5rem .65rem}.jobs-section-label{font-size:.7rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.6rem}.jobs-active-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.jobs-card{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:8px;padding:1rem 1.25rem;box-shadow:var(--shadow)}.jobs-card-header{display:flex;align-items:center;gap:.6rem;margin-bottom:.6rem}.jobs-card-type{font-size:.65rem;font-weight:600;padding:.15rem .4rem;border-radius:3px;text-transform:uppercase;letter-spacing:.04em}.jobs-card-type.advanced{background:#e0e7ff;color:#3730a3}.jobs-card-type.multi-ticker{background:#fef3c7;color:#92400e}.jobs-card-ticker{font-weight:600;font-size:.9rem;color:var(--text-primary)}.jobs-card-time{margin-left:auto;font-size:.7rem;color:var(--text-tertiary)}.jobs-submitted-banner{background:var(--positive-light, #dcfce7);border:1px solid var(--positive);border-radius:6px;padding:.65rem 1rem;margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-primary)}.jobs-submitted-banner a{color:var(--accent);font-weight:600;text-decoration:none}.jobs-submitted-banner a:hover{text-decoration:underline}.jobs-completed-wrap{overflow-x:auto}.jobs-completed-table{width:100%;border-collapse:collapse;font-size:.8rem}.jobs-completed-table th{text-align:left;font-size:.65rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;padding:.5rem .6rem;border-bottom:2px solid var(--border-primary);white-space:nowrap}.jobs-completed-table td{padding:.5rem .6rem;border-bottom:1px solid var(--border-tertiary);vertical-align:middle}.jobs-completed-table tbody tr{cursor:pointer;transition:background .1s}.jobs-completed-table tbody tr:hover{background:var(--hover-bg)}.jobs-completed-table tbody tr.expanded-row{background:var(--bg-secondary)}.jobs-detail{padding:1rem 1.25rem;background:var(--bg-secondary);border-top:1px solid var(--border-tertiary)}.jobs-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.jobs-detail h4{font-size:.75rem;font-weight:600;color:var(--text-secondary);margin:0 0 .4rem}.jobs-detail pre{background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:5px;padding:.6rem;font-size:.7rem;overflow-x:auto;max-height:240px;overflow-y:auto;line-height:1.5}.jobs-detail-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-top:.75rem;padding-top:.6rem;border-top:1px solid var(--border-tertiary)}.jobs-empty{text-align:center;padding:3rem 1rem;color:var(--text-tertiary)}.jobs-empty p{margin-bottom:1rem;font-size:.9rem}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;width:100%;background:var(--bg-page)}.login-form{background:var(--bg-primary);padding:2.5rem;border-radius:10px;border:1px solid var(--border-primary);box-shadow:var(--shadow-md);width:100%;max-width:360px;display:flex;flex-direction:column;gap:1.25rem}.login-form h2{margin:0 0 .5rem;font-size:1.25rem;font-weight:650;color:var(--text-primary);text-align:center;letter-spacing:-.02em}.login-form .error{background:var(--negative-bg);color:var(--negative);padding:.6rem;border-radius:5px;margin:0;text-align:center;font-size:.8125rem;border:1px solid rgba(220,38,38,.12)}.login-form .input-group{display:flex;flex-direction:column;gap:.35rem}.login-form .input-group label{font-size:.8rem;font-weight:550;color:var(--text-secondary)}.login-form .input-group input{padding:.6rem .75rem;border:1px solid var(--input-border);border-radius:6px;font-size:.875rem;background:var(--input-bg);color:var(--text-primary);transition:border-color .15s,box-shadow .15s}.login-form .input-group input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.login-form button[type=submit]{padding:.65rem 1.25rem;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:550;cursor:pointer;transition:background .15s;margin-top:.25rem}.login-form button[type=submit]:hover{background:var(--accent-hover)}:root{font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,system-ui,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #94a3b8;--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--bg-page: #f8fafc;--border-primary: #e2e8f0;--border-secondary: #cbd5e1;--border-tertiary: #f1f5f9;--hover-bg: #f1f5f9;--shadow: 0 1px 3px rgba(15, 23, 42, .04), 0 1px 2px rgba(15, 23, 42, .02);--shadow-md: 0 4px 6px rgba(15, 23, 42, .04), 0 2px 4px rgba(15, 23, 42, .02);--input-bg: #ffffff;--input-focus-bg: #ffffff;--input-border: #cbd5e1;--accent: #2563eb;--accent-hover: #1d4ed8;--accent-light: rgba(37, 99, 235, .08);--positive: #16a34a;--positive-bg: rgba(22, 163, 74, .08);--negative: #dc2626;--negative-bg: rgba(220, 38, 38, .08);--sidebar-bg: #0f172a;--sidebar-border: rgba(255, 255, 255, .08);--sidebar-text: rgba(255, 255, 255, .6);--sidebar-text-bright: rgba(255, 255, 255, .95);--sidebar-text-dim: rgba(255, 255, 255, .35);--sidebar-hover: rgba(255, 255, 255, .06);--sidebar-active: rgba(255, 255, 255, .08)}@media(prefers-color-scheme:dark){:root{--text-primary: rgba(255, 255, 255, .92);--text-secondary: rgba(255, 255, 255, .65);--text-tertiary: rgba(255, 255, 255, .4);--bg-primary: #1e293b;--bg-secondary: #1a2332;--bg-tertiary: #162031;--bg-page: #0f172a;--border-primary: rgba(255, 255, 255, .08);--border-secondary: rgba(255, 255, 255, .12);--border-tertiary: rgba(255, 255, 255, .04);--hover-bg: rgba(255, 255, 255, .04);--shadow: 0 1px 3px rgba(0, 0, 0, .2);--shadow-md: 0 4px 6px rgba(0, 0, 0, .3);--input-bg: #1a2332;--input-focus-bg: #1e293b;--input-border: rgba(255, 255, 255, .12);--accent: #3b82f6;--accent-hover: #2563eb;--accent-light: rgba(59, 130, 246, .12);--positive: #4ade80;--positive-bg: rgba(74, 222, 128, .1);--negative: #f87171;--negative-bg: rgba(248, 113, 113, .1);--sidebar-bg: #0c1322;--sidebar-border: rgba(255, 255, 255, .06)}}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background-color:var(--bg-page);color:var(--text-primary);font-size:.875rem}#root{width:100%;min-height:100vh}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;line-height:1.3;letter-spacing:-.01em}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}button{border-radius:6px;border:1px solid var(--border-secondary);padding:.5rem 1rem;font-size:.8125rem;font-weight:500;font-family:inherit;background-color:var(--bg-primary);color:var(--text-primary);cursor:pointer;transition:background .15s,border-color .15s;line-height:1.4}button:hover{background:var(--hover-bg);border-color:var(--border-primary)}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font-family:inherit;font-size:.8125rem}pre{font-family:SF Mono,Fira Code,Cascadia Code,Consolas,monospace}table{font-variant-numeric:tabular-nums}
