:root{--bg-color:#fff;--text-color:#000;--border-color:#ccc;--error-color:red;--primary-color:#007bff;--primary-hover:#0056b3;--card-bg:#fdfdfd;--card-border:#eee;--badge-bg:#eef2ff;--badge-text:#4338ca;--table-border:#eee;--table-row-border:#f5f5f5;--secondary-text:#666;--chart-minervini:#7c3aed;--chart-minervini-stage3:#f97316;--chart-sentiment-positive:#10b981;--chart-sentiment-positive-faded:#6ee7b7;--chart-sentiment-neutral:#9ca3af;--chart-sentiment-negative-faded:#fca5a5;--chart-sentiment-negative:#f43f5e;--chart-sma50:#eab308;--chart-sma150:#387908;--chart-sma200:#8884d8}@media (prefers-color-scheme:dark){:root{--bg-color:#121212;--text-color:#e0e0e0;--border-color:#444;--card-bg:#1e1e1e;--card-border:#333;--badge-bg:#2d3748;--badge-text:#63b3ed;--table-border:#333;--table-row-border:#2d3748;--secondary-text:#a0aec0}}body{background-color:var(--bg-color);color:var(--text-color);margin:2rem;font-family:system-ui,-apple-system,sans-serif;line-height:1.5}pre{background:#0000000d;border-radius:4px;padding:1rem;overflow-x:auto}@media (prefers-color-scheme:dark){pre{background:#ffffff0d}}.container,.home-container{max-width:800px;margin:0 auto}.nav{color:var(--secondary-text);margin-bottom:20px;font-size:1.1rem}.btn-primary{box-sizing:border-box;background-color:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:4px;height:42px;margin:0;padding:10px 20px;font-weight:600;transition:background-color .2s}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover)}.btn-primary:disabled{color:#f3f4f6;cursor:not-allowed;opacity:.7;background-color:#9ca3af}.fetch-btn{white-space:nowrap;box-sizing:border-box;height:42px;margin-left:10px;padding:10px 20px}.symbol-input{box-sizing:border-box;border:1px solid var(--border-color);background-color:var(--bg-color);max-width:240px;height:42px;color:var(--text-color);text-transform:uppercase;border-radius:4px;flex:1;padding:10px 15px;font-size:1rem}.symbol-input:focus{border-color:var(--primary-color);outline:none}.fetch-input-row{align-items:center;gap:10px;display:flex}.fetch-section{background-color:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;margin-bottom:30px;padding:20px}.custom-days-input{border:1px solid var(--border-color);background-color:var(--bg-color);width:50px;color:var(--text-color);-moz-appearance:textfield;border-radius:3px;padding:4px 6px;font-size:.85rem}.custom-days-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.custom-days-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.custom-days-input:focus{border-color:var(--primary-color);outline:none}.custom-days-input::placeholder{color:var(--secondary-text)}.custom-period.active .custom-days-input{color:#fff;background-color:#fff3;border-color:#fff}.custom-period.active .custom-days-input::placeholder{color:#ffffffb3}.warning-text{color:var(--error-color);margin-top:5px;font-weight:700}.error-message{color:var(--error-color);border:1px solid var(--error-color);border-radius:4px;margin-bottom:20px;padding:10px}.table-responsive{overflow-x:auto}.cached-stocks-table{border-collapse:collapse;width:100%;margin-top:10px;font-size:.95rem}.cached-stocks-table thead tr{border-bottom:2px solid var(--table-border);text-align:left}.cached-stocks-table th{padding:12px 8px}.cached-stocks-table tbody tr{border-bottom:1px solid var(--table-row-border)}.cached-stocks-table tbody tr.clickable-row{cursor:pointer;transition:background-color .2s}.cached-stocks-table tbody tr.clickable-row:hover{background-color:var(--badge-bg)}.cached-stocks-table tbody tr.clickable-row.active-row{background-color:var(--badge-bg);border-bottom:none}.cached-stocks-table tbody tr.expanded-row{background-color:var(--card-bg)}.cached-stocks-table tbody tr.expanded-row td{padding:0 8px 16px}.cached-stocks-table td{padding:12px 8px}.cached-stocks-table td.symbol{color:var(--primary-color);font-weight:600}.cached-stocks-table td.criteria-cell{text-align:center;font-size:1.1rem;font-weight:700}.cached-stocks-table td.criteria-cell.passed{color:#10b981}.cached-stocks-table td.criteria-cell.failed{color:var(--secondary-text);opacity:.3}.stock-table{border-collapse:collapse;width:100%;margin-top:10px;font-size:.95rem}.stock-table thead tr{border-bottom:2px solid var(--table-border);text-align:left}.stock-table th{padding:12px 8px}.stock-table tbody tr{border-bottom:1px solid var(--table-row-border)}.stock-table tbody tr:last-child{border-bottom:none}.stock-table td{padding:10px 8px}.stock-table td.secondary{color:var(--secondary-text)}.stock-table td.bold{font-weight:600}.period-selector{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:15px;display:flex}.period-option{box-sizing:border-box;border:1px solid var(--border-color);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:4px;height:32px;padding:6px 12px;font-size:.85rem;transition:all .2s;display:flex}.period-option input[type=radio]{display:none}.period-option:hover{background-color:var(--card-bg)}.period-option.active{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.period-option.custom-period{gap:6px;min-width:95px}.chart-container{background-color:var(--bg-color);border:1px solid var(--card-border);box-sizing:border-box;border-radius:8px;padding:16px}.chart-container .data-gap-warning{color:#92400e;background-color:#fffbeb;border:1px solid #fcd34d;border-radius:6px;margin-bottom:16px;padding:12px;font-size:.85rem}@media (prefers-color-scheme:dark){.chart-container .data-gap-warning{color:#fbbf24;background-color:#451a03;border-color:#78350f}}.chart-container .data-gap-warning ul{margin:8px 0 0 20px;padding:0}.chart-container .data-gap-warning strong{color:inherit}.stock-details-grid{border:1px solid var(--card-border);background-color:var(--bg-color);border-radius:8px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-top:4px;padding:16px;display:grid}.stock-details-grid .detail-item{flex-direction:column;gap:4px;display:flex}.stock-details-grid .detail-item .label{color:var(--secondary-text);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem}.stock-details-grid .detail-item .value{font-size:1.1rem;font-weight:600}.recharts-legend-item{cursor:pointer}.recharts-legend-item-text{transition:opacity .2s}.recharts-legend-item-hidden .recharts-legend-item-text{opacity:.4}.cached-stock-list h2{margin-bottom:15px}.table-settings{justify-content:center;align-items:center;gap:20px;margin-bottom:12px;display:flex}.table-settings label{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;display:flex}.table-settings .highlight-label.minervini-label{color:#7c3aed;font-weight:500}.table-settings .highlight-label.sentiment-label{color:#0891b2;font-weight:500}th.header-minervini{color:#7c3aed;text-align:center}th.header-sentiment{color:#0891b2;text-align:center}.minervini-checklist{background-color:var(--bg-color);border:1px solid var(--card-border);border-radius:8px;margin-top:24px;padding:16px}.minervini-checklist h3{color:var(--secondary-text);text-transform:uppercase;letter-spacing:.05em;margin-top:0;margin-bottom:16px;font-size:1rem}.checklist-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;display:grid}.checklist-item{background-color:var(--card-bg);border-radius:6px;align-items:flex-start;gap:12px;padding:10px;display:flex}.checklist-item.passed .status-icon{color:#10b981}.checklist-item.failed .status-icon{color:#ef4444}.checklist-item.failed{opacity:.7}.checklist-item .status-icon{margin-top:-2px;font-size:1.2rem;font-weight:700}.checklist-item .info .criteria-label{margin-bottom:2px;font-size:.9rem;font-weight:600;display:block}.checklist-item .info .criteria-desc{color:var(--secondary-text);margin:0;font-size:.8rem;line-height:1.3}.sentiment-container{background-color:var(--bg-color);border:1px solid var(--card-border);border-radius:8px;margin-top:20px;padding:16px}.sentiment-container .sentiment-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.sentiment-container .sentiment-header h3{color:var(--secondary-text);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:1rem}.sentiment-container .sentiment-header .sentiment-disclaimer{color:var(--secondary-text);cursor:help;background-color:var(--badge-bg);border:1px solid var(--card-border);border-radius:12px;padding:2px 8px;font-size:.75rem}.sentiment-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.sentiment-card{background-color:var(--card-bg);border:1px solid var(--card-border);text-align:center;border-radius:6px;flex-direction:column;padding:12px;display:flex}.sentiment-card .period-label{color:var(--secondary-text);text-transform:uppercase;margin-bottom:4px;font-size:.75rem;font-weight:700}.sentiment-card .sentiment-label{margin-bottom:4px;font-size:1.1rem;font-weight:700}.sentiment-card .sentiment-score{margin-bottom:2px;font-size:.85rem}.sentiment-card .news-count{color:var(--secondary-text);font-size:.75rem}.sentiment-card.very-positive{border-left:4px solid #059669}.sentiment-card.very-positive .sentiment-label{color:#059669}.sentiment-card.positive{border-left:4px solid #10b981}.sentiment-card.positive .sentiment-label{color:#10b981}.sentiment-card.neutral{border-left:4px solid var(--secondary-text)}.sentiment-card.neutral .sentiment-label{color:var(--secondary-text)}.sentiment-card.negative{border-left:4px solid #f43f5e}.sentiment-card.negative .sentiment-label{color:#f43f5e}.sentiment-card.very-negative{border-left:4px solid #be123c}.sentiment-card.very-negative .sentiment-label{color:#be123c}.sentiment-loading{text-align:center;color:var(--secondary-text);padding:20px;font-style:italic}.sentiment-circles-cell{text-align:center;padding:4px 8px}.sentiment-cell{text-align:center;font-weight:500}.sentiment-cell.very-positive{color:#10b981}.sentiment-cell.positive{color:#6ee7b7}.sentiment-cell.neutral{color:#9ca3af}.sentiment-cell.negative{color:#fca5a5}.sentiment-cell.very-negative{color:#f43f5e}.circles-container{justify-content:center;gap:6px;display:flex}.circle{border-radius:50%;width:14px;height:14px;display:inline-block}.circle.loading{opacity:.5;background-color:#ccc}.circle.very-positive{background-color:#10b981}.circle.positive{background-color:#a7f3d0}.circle.neutral{background-color:#9ca3af}.circle.negative{background-color:#fca5a5}.circle.very-negative{background-color:#f43f5e}
