*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-size:14px;line-height:1.55}button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;cursor:pointer;padding:0}input,select,textarea{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}ul,ol{list-style:none;margin:0;padding:0}pre,code{font-family:var(--font-mono)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d4d8de;border-radius:999px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:#b8bdc4}:root{--bg: #ffffff;--surface: #fafbfc;--surface-2: #f4f6f8;--border: #e5e7eb;--border-strong: #d1d5db;--text: #0f172a;--text-muted: #64748b;--text-faint: #94a3b8;--accent: #2563eb;--accent-hover: #1d4ed8;--accent-bg: #eff6ff;--green: #16a34a;--green-bg: #f0fdf4;--amber: #d97706;--amber-bg: #fffbeb;--red: #dc2626;--red-bg: #fef2f2;--indigo: #4f46e5;--indigo-bg: #eef2ff;--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);--shadow: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 4px 12px rgba(15, 23, 42, .08), 0 2px 4px rgba(15, 23, 42, .04);--shadow-lg: 0 12px 32px rgba(15, 23, 42, .1);--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "Cascadia Mono", "SF Mono", Consolas, monospace}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:14px;line-height:1.55;letter-spacing:-.005em}.panel{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow-sm)}.panel-title{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:0 0 14px}.panel-title:before{content:"";width:3px;height:12px;background:var(--accent);border-radius:1.5px}.dim{color:var(--text-muted)}.faint{color:var(--text-faint)}.accent{color:var(--accent)}.green{color:var(--green)}.amber{color:var(--amber)}.red{color:var(--red)}.divider{height:1px;background:var(--border);margin:14px 0}.tag{display:inline-flex;align-items:center;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:500;letter-spacing:.005em;background:var(--surface-2);color:var(--text-muted);margin:0 4px 4px 0;white-space:nowrap;border:1px solid transparent}.tag.tag-type{background:var(--accent-bg);color:var(--accent)}.tag.risk-Low{background:var(--green-bg);color:var(--green)}.tag.risk-Medium{background:var(--amber-bg);color:var(--amber)}.tag.risk-High{background:var(--red-bg);color:var(--red)}.tag.phase-Bull{background:var(--green-bg);color:var(--green)}.tag.phase-Bear{background:var(--red-bg);color:var(--red)}.tag.phase-Sideways{background:var(--amber-bg);color:var(--amber)}.tag.tag-trigger{background:var(--indigo-bg);color:var(--indigo)}.tag.tag-tp{background:var(--green-bg);color:var(--green);font-weight:600}.tag.tag-sl{background:var(--red-bg);color:var(--red);font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);padding:7px 14px;font-size:13px;font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:background .12s,border-color .12s,color .12s,box-shadow .12s;white-space:nowrap}.btn:hover{background:var(--surface);border-color:var(--border-strong)}.btn:active{background:var(--surface-2)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn.primary:disabled:hover{background:var(--accent);border-color:var(--accent)}.btn.ghost{border-color:transparent}.btn.ghost:hover{background:var(--surface-2)}.input{border:1px solid var(--border);background:var(--bg);color:var(--text);padding:9px 12px;border-radius:var(--radius-sm);width:100%;font-size:13px;transition:border-color .12s,box-shadow .12s}.input::placeholder{color:var(--text-faint)}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #2563eb1f}button:focus-visible,.btn:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb2e}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.cursor{display:inline-block;width:7px;height:14px;background:var(--accent);vertical-align:text-bottom;margin-left:1px;animation:blink 1s steps(2) infinite;border-radius:1px}.app{display:grid;grid-template-rows:auto 1fr;min-height:100vh;background:var(--surface)}.app-header{background:var(--bg);border-bottom:1px solid var(--border);padding:14px 28px;display:flex;align-items:center;gap:18px;position:sticky;top:0;z-index:50;backdrop-filter:saturate(180%) blur(8px)}.app-header .brand{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:var(--text);letter-spacing:-.01em}.app-header .brand .dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}.app-header .brand .sub{color:var(--text-muted);font-weight:400;font-size:13px}.app-header .meta{margin-left:auto;font-size:12px;color:var(--text-muted);display:flex;gap:14px;align-items:center}.app-header .meta .pill{background:var(--surface);border:1px solid var(--border);padding:3px 10px;border-radius:999px;font-variant-numeric:tabular-nums}.main{display:grid;grid-template-columns:1fr;gap:24px;padding:28px;max-width:1600px;width:100%;margin:0 auto}@media (min-width: 1100px){.library{display:grid;grid-template-columns:280px 1fr;gap:24px}}.advisor{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px 24px;box-shadow:var(--shadow-sm)}.advisor h2{margin:0;font-size:16px;font-weight:600;letter-spacing:-.01em;color:var(--text);display:flex;align-items:center;gap:8px}.advisor h2 .badge{font-size:10.5px;font-weight:500;color:var(--text-muted);background:var(--surface-2);padding:3px 8px;border-radius:999px;letter-spacing:0}.advisor .header-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border)}.advisor .grid-2{display:grid;grid-template-columns:1fr;gap:18px}@media (min-width: 900px){.advisor .grid-2{grid-template-columns:minmax(320px,380px) 1fr}}.stat-row{display:grid;grid-template-columns:110px 1fr auto;gap:10px;font-size:13px;padding:7px 0;border-bottom:1px dashed var(--border);align-items:baseline}.stat-row:last-of-type{border-bottom:none}.stat-row .label{color:var(--text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;font-weight:500}.stat-row .value{color:var(--text);font-variant-numeric:tabular-nums;font-weight:500}.stat-row .signal{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--text-muted)}.stat-row .signal.green{background:var(--green-bg);color:var(--green)}.stat-row .signal.amber{background:var(--amber-bg);color:var(--amber)}.stat-row .signal.red{background:var(--red-bg);color:var(--red)}.stat-row .signal.muted{background:var(--surface-2);color:var(--text-muted)}.score-block{margin-top:12px;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.score-block .head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.score-block .head .label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.score-block .head .value{font-size:24px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.score-block .head .value.green{color:var(--green)}.score-block .head .value.amber{color:var(--amber)}.score-block .head .value.red{color:var(--red)}.score-block .head .value .max{color:var(--text-faint);font-size:14px;font-weight:400}.score-bar-track{height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden}.score-bar-fill{height:100%;border-radius:999px;transition:width .5s ease-out}.score-bar-fill.green{background:var(--green)}.score-bar-fill.amber{background:var(--amber)}.score-bar-fill.red{background:var(--red)}.score-block .components{margin-top:10px;font-size:11.5px;color:var(--text-muted);letter-spacing:.01em;font-variant-numeric:tabular-nums}.news-list{max-height:220px;overflow-y:auto;margin-top:6px}.news-list li{padding:8px 0;font-size:13px;border-bottom:1px solid var(--border);line-height:1.45}.news-list li:last-child{border-bottom:none}.news-list .src{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);background:var(--surface-2);padding:2px 7px;border-radius:999px;margin-right:8px;vertical-align:middle}.news-list a{color:var(--text)}.news-list a:hover{color:var(--accent);text-decoration:none}.advisor-output{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;min-height:320px;max-height:70vh;overflow-y:auto;white-space:pre-wrap;word-break:break-word;font-family:var(--font-mono);font-size:12.5px;line-height:1.65;color:var(--text)}.advisor-output .section-head{display:inline-block;color:var(--accent);font-weight:700;font-size:11px;letter-spacing:.06em;background:var(--accent-bg);padding:2px 8px;border-radius:4px;margin-top:6px}.advisor-output .code-fence{color:var(--text-muted)}.filter-panel{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 18px 16px;align-self:start;position:sticky;top:76px;max-height:calc(100vh - 96px);overflow-y:auto;box-shadow:var(--shadow-sm)}.filter-panel h3{font-size:10.5px;font-weight:600;letter-spacing:.08em;color:var(--text-muted);margin:18px 0 8px;text-transform:uppercase}.filter-panel h3:first-child{margin-top:0}.filter-group{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:2px}.filter-chip{border:1px solid var(--border);background:var(--bg);padding:4px 10px;font-size:12px;font-weight:500;color:var(--text-muted);border-radius:999px;cursor:pointer;transition:all .12s;line-height:1.3}.filter-chip:hover{border-color:var(--border-strong);color:var(--text);background:var(--surface)}.filter-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.filter-chip.active:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.filter-result-count{font-size:12px;color:var(--text-muted);margin:12px 0;padding:10px 12px;background:var(--surface);border-radius:var(--radius-sm);display:flex;align-items:baseline;gap:6px}.filter-result-count .num{font-size:18px;font-weight:600;color:var(--text);letter-spacing:-.01em;font-variant-numeric:tabular-nums}.filter-result-count .total{color:var(--text-faint)}.strategy-grid{display:grid;grid-template-columns:1fr;gap:14px;align-items:start;align-content:start;align-self:start;grid-auto-rows:min-content}@media (min-width: 700px){.strategy-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1300px){.strategy-grid{grid-template-columns:repeat(3,1fr)}}.strategy-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;display:flex;flex-direction:column;gap:10px;transition:border-color .12s,box-shadow .16s,transform .12s;overflow:hidden}.strategy-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.strategy-card.fit-high:hover{border-color:var(--green);box-shadow:0 4px 16px #16a34a2e}.fitness-bar{margin:-14px -18px 4px;height:3px;background:var(--surface-2);width:auto}.fitness-bar-fill{height:100%;transition:width .4s ease-out}.fitness-bar-fill.high{background:var(--green)}.fitness-bar-fill.mid{background:var(--amber)}.fitness-bar-fill.low{background:var(--red)}.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.fitness-badge{flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:44px;padding:3px 8px;border-radius:8px;font-feature-settings:"tnum";line-height:1;cursor:help}.fitness-badge .fitness-value{font-size:15px;font-weight:700;letter-spacing:-.02em}.fitness-badge .fitness-label{font-size:8.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;margin-top:1px;opacity:.85}.fitness-badge.high{background:var(--green-bg);color:var(--green)}.fitness-badge.mid{background:var(--amber-bg);color:var(--amber)}.fitness-badge.low{background:var(--red-bg);color:var(--red)}.strategy-card .name{font-size:15px;font-weight:600;color:var(--text);letter-spacing:-.01em;line-height:1.3}.strategy-card .desc{color:var(--text-muted);font-size:13px;line-height:1.5}.strategy-card .tags{display:flex;flex-wrap:wrap;margin-top:2px}.strategy-card .actions{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-top:4px;padding-top:12px;border-top:1px solid var(--border)}.strategy-card pre{background:#0f172a;color:#e2e8f0;border-radius:var(--radius-sm);padding:14px 16px;margin:4px 0 0;font-size:12px;line-height:1.55;white-space:pre-wrap;overflow-x:auto;max-height:360px;overflow-y:auto}.copied-toast{color:var(--green);font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:4px}.empty-state{color:var(--text-muted);padding:60px 20px;text-align:center;background:var(--bg);border:1px dashed var(--border);border-radius:var(--radius);grid-column:1 / -1}
