:root{color-scheme:light;--bg: #f6f2eb;--bg-accent: #e1efe2;--ink: #1a1d1f;--muted: #5a6461;--card: #ffffff;--border: #d9d2c7;--accent: #0c7c6c;--accent-dark: #07594f;--shadow: 0 18px 40px rgba(24, 33, 30, .12)}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans CJK SC,sans-serif;color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%,#fff8f0 0%,var(--bg) 48%,#dfe7f2 100%),linear-gradient(120deg,var(--bg),var(--bg-accent))}.page{max-width:1920px;margin:0 auto;padding:48px 24px 64px;display:flex;flex-direction:column;gap:24px}.tabs{display:flex;gap:12px;flex-wrap:wrap}.date-filter{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.date-label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.date-input{border:1px solid var(--border);background:var(--card);border-radius:10px;padding:8px 12px;font-size:14px;color:var(--ink)}.tab{border:1px solid var(--border);background:var(--card);color:var(--ink);padding:10px 18px;border-radius:999px;font-weight:600;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}.tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.stock-type-tab-label{display:inline-flex;align-items:center;gap:6px;position:relative;padding-right:6px}.stock-type-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.stock-type-dot-trunk{background:#dc3f3f}.stock-type-dot-secondary{background:#35a85b}.stock-type-avg-badge{display:inline-block;margin-left:4px;font-size:10px;line-height:1;padding:3px 6px;border-radius:999px;background:#eef2f0;color:#4c5a55}.stock-type-avg-badge.up{background:#fdeceb;color:#b93232}.stock-type-avg-badge.down{background:#ebf7ef;color:#2a8d4d}.stock-type-avg-badge.neutral{background:#eef2f0;color:#4c5a55}.stock-type-refreshing{margin-left:2px;font-size:10px;color:#245fc9}.industry-filter{display:flex;flex-wrap:wrap;gap:10px;padding:12px 0 4px}.industry-pill{border:1px solid var(--border);background:var(--card);color:var(--ink);padding:6px 14px;border-radius:999px;font-size:12px;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}.industry-pill.active{background:var(--accent);border-color:var(--accent);color:#fff}.link-button{background:none;border:none;padding:0;margin:0;color:var(--ink);font:inherit;cursor:pointer;text-align:left;text-decoration:none}.link-button:hover{color:var(--accent);text-decoration:underline}.recommend-name-cell{display:inline-flex;align-items:center;gap:6px}.remarks-input{width:100%;min-width:140px;padding:6px 8px;font-size:12px}.remarks-cell-text{display:inline-block;min-width:140px;cursor:text}.collect-heart{border:0;background:transparent;color:#d7d7d7;font-size:14px;line-height:1;cursor:pointer;padding:0}.collect-heart.active{color:#dc3f3f}.llvm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f121459;display:flex;align-items:flex-start;justify-content:flex-end;padding:32px;z-index:40}.llvm-panel{width:min(420px,92vw);background:var(--card);border-radius:16px;box-shadow:var(--shadow);padding:18px 20px;min-width:600px;max-height:800px;overflow:auto}.llvm-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.llvm-header h3{margin:0;font-size:18px}.llvm-close{padding:8px 14px}.llvm-body{margin-top:12px}.llvm-section+.llvm-section{margin-top:12px}.llvm-title{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:4px}.llvm-text{font-size:14px;color:var(--ink);line-height:1.5}.llvm-raw{white-space:pre-wrap;background:#f7f4ef;border-radius:10px;padding:10px 12px;font-size:12px;color:#444}.rec-tooltip{position:relative;display:inline-flex;align-items:center;gap:6px}.rec-tooltip .tooltip-content{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);min-width:220px;max-width:360px;padding:10px 12px;border-radius:10px;background:#1f262b;color:#f6f7f9;font-size:12px;line-height:1.4;white-space:pre-line;box-shadow:0 12px 30px #0000002e;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:20}.rec-tooltip:hover .tooltip-content{opacity:1;transform:translate(-50%) translateY(2px)}.auth-gate{min-height:70vh;display:flex;align-items:center;justify-content:center}.auth-card{max-width:420px;width:100%;text-align:center}.auth-form{display:flex;gap:12px;margin-top:16px;justify-content:center}.auth-input{flex:1;min-width:0;border-radius:10px;border:1px solid var(--border);padding:12px 14px;font-size:14px;background:var(--card);color:var(--ink)}.auth-error{margin-top:12px;color:#b32020;font-size:14px}.hero{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px}.eyebrow{letter-spacing:.14em;text-transform:uppercase;font-size:12px;color:var(--muted);margin:0 0 8px}h1{font-size:clamp(32px,4vw,44px);margin:0 0 12px}.sub{margin:0;color:var(--muted);max-width:520px}.actions{display:flex;gap:12px;flex-wrap:wrap}.btn{border:1px solid var(--border);background:var(--card);color:var(--ink);padding:12px 18px;font-weight:600;border-radius:999px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;box-shadow:0 10px 20px #141e1c14}.btn:hover{transform:translateY(-2px);border-color:var(--accent)}.btn:disabled{cursor:not-allowed;opacity:.6;transform:none;box-shadow:none}.btn-accent{background:linear-gradient(135deg,var(--accent),#2aa083);color:#f8fffd;border:none}.card{background:var(--card);border-radius:20px;padding:20px 22px 24px;border:1px solid var(--border);box-shadow:var(--shadow)}.card-header{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px}.meta{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;color:var(--muted)}.card-header h2{margin:0;font-size:18px;line-height:1.2;text-transform:none;letter-spacing:0}.table-wrap{overflow-x:auto;border:1px solid #e8e2d7;border-radius:14px;background:#fff}table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px}.candidate-wrap{width:100%;overflow-x:auto;overflow-y:hidden}.candidate-table{table-layout:auto;font-size:12px}.recommend-table{font-size:12px}.candidate-table th,.candidate-table td{white-space:normal;word-break:break-word;overflow-wrap:anywhere;vertical-align:top;line-height:1.28;padding:7px 5px}.recommend-table th,.recommend-table td{padding:7px 5px}.candidate-table thead th,.recommend-table thead th{background:linear-gradient(180deg,#f7f4ec,#f1ece1);color:#4e5b56;font-weight:700;font-size:11px;letter-spacing:.02em;border-bottom:1px solid #ded7ca;border-right:1px solid #ece6db;white-space:nowrap}.candidate-table tbody td,.recommend-table tbody td{border-bottom:1px solid #efe9df;border-right:1px solid #f3eee5;background:#fff}.candidate-table th:last-child,.candidate-table td:last-child,.recommend-table th:last-child,.recommend-table td:last-child{border-right:none}.candidate-table tbody tr:hover td,.recommend-table tbody tr:hover td{background:#faf8f2}.recommend-table .sortable-col{cursor:pointer;-webkit-user-select:none;user-select:none}.recommend-table .sortable-col:hover{background:linear-gradient(180deg,#f3efe4,#ebe5d8)}.recommend-table .sorted-col{background:linear-gradient(180deg,#ecefdf,#e4e9d4)}.th-label{display:inline-flex;align-items:center}.sort-marker{margin-left:6px;font-size:10px;line-height:1;color:#94a09b}.sort-marker.active{color:var(--accent);font-weight:700}.candidate-table th{letter-spacing:0;text-transform:none}.candidate-table .signal-cell{white-space:pre-line}.candidate-table .signal-col{min-width:140px}.candidate-table .date-col{min-width:110px;white-space:nowrap;word-break:normal;overflow-wrap:normal}.candidate-table .code-col,.candidate-table .name-col{min-width:100px;white-space:nowrap;word-break:normal;overflow-wrap:normal}.candidate-table .rec-col{min-width:60px;white-space:nowrap;word-break:normal;overflow-wrap:normal}.candidate-table .num-col,.recommend-table .num-col{white-space:nowrap;word-break:normal;overflow-wrap:normal}.candidate-value{display:inline}.candidate-table .signal-cell .candidate-value{white-space:pre-line}.value-chip{display:inline-block;padding:3px 10px;border-radius:8px;font-weight:700;line-height:1.2}.chip-green{background:#77b66f;color:#f6fff5}.text-up{color:#c84733}.text-down{color:#4a9f5d}.text-deep{color:#2f7d42}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid #eee7de}th{font-weight:600;font-size:12px;letter-spacing:.02em;text-transform:none;color:var(--muted)}.empty{text-align:center;color:var(--muted);padding:24px 8px}.info{display:flex;justify-content:space-between;align-items:center;gap:16px;background:linear-gradient(120deg,#fdf6ea,#e6f3ee);padding-top:14px;padding-bottom:14px}.info-side{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.kline-card{display:flex;flex-direction:column;gap:12px}.kline-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.kline-title{margin:0 0 6px;font-size:22px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.kline-title-button{font-size:inherit;font-weight:700}.kline-collect-heart{width:26px;height:26px;min-width:26px;min-height:26px;border-radius:50%;font-size:14px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.kline-llvm-btn{padding:6px 12px;border-radius:999px;font-size:12px;line-height:1.2;box-shadow:none}.kline-live-btn{background:#f6f8ff;border-color:#d7e2ff;color:#2a4fa5}.kline-trade-btn{min-width:78px}.kline-buy-btn{background:#f7fff8;border-color:#cdeed5;color:#236f37}.kline-sell-btn{background:#fff8f7;border-color:#f4d4cf;color:#8d3a2c}.kline-mark-buy-btn{background:#edf8ee;border-color:#c9e8d0;color:#236f37}.kline-mark-sell-btn{background:#f5f5f5;border-color:#e0e0e0;color:#5a6168}.kline-chart{width:100%;height:640px}.kline-hint{margin:0;font-size:12px;color:var(--muted)}.kline-info{margin-top:10px;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px 16px;font-size:13px}.kline-info-item{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:10px;background:#f7f3ec;border:1px solid #eee7de}.kline-info-label{color:var(--muted)}.kline-info-value{font-weight:600;color:var(--ink)}.kline-change-up{color:#c84733;font-weight:600}.kline-change-down{color:#4a9f5d;font-weight:600}.kline-change-neutral{color:var(--ink);font-weight:600}.stock-info-panel{min-width:min(720px,92vw)}.stock-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:12px}.llvm-live-panel{min-width:min(860px,94vw)}.kline-minute-panel{min-width:min(920px,95vw)}.kline-minute-header-actions{display:inline-flex;align-items:center;gap:10px}.kline-minute-meta{margin:0 0 10px;font-size:12px;color:var(--muted)}.kline-minute-chart{width:100%;height:360px}.llvm-live-grid{display:grid;gap:10px}.llvm-decision-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.llvm-action-text{font-weight:600}.stock-info-edit-link{border:0;background:transparent;color:var(--accent);font:inherit;font-size:12px;cursor:pointer;padding:0;text-decoration:underline}.stock-info-textarea{width:100%;min-height:180px;border:1px solid var(--border);border-radius:12px;background:#fffdf9;color:var(--ink);padding:12px 14px;font-size:12px;line-height:1.6;resize:vertical;box-sizing:border-box}.stock-info-describe-display{white-space:pre-wrap;background:#f7f4ef;border:1px solid #eee7de;border-radius:12px;padding:12px 14px;line-height:1.6;color:#444;font-size:12px}.stock-info-llvm-grid{display:grid;gap:10px}.stock-info-readonly{white-space:pre-wrap;background:#f7f4ef;border:1px solid #eee7de;border-radius:12px;padding:12px 14px;line-height:1.6;color:#444;font-size:12px}.stock-info-actions{display:flex;justify-content:flex-end;margin-top:16px}.stock-info-status{color:#2f7d42}.status{font-size:14px;margin:3px 0 0}.hint{font-size:13px;color:var(--muted);max-width:360px;text-align:right}@media (max-width: 1080px){.page{padding:36px 16px 48px}.candidate-table,.recommend-table{font-size:11px}.candidate-table th,.candidate-table td,.recommend-table th,.recommend-table td{padding:5px 4px}}@media (max-width: 720px){.hero,.info{flex-direction:column;align-items:flex-start}.info-side{align-items:flex-start}.hint{text-align:left}.kline-chart{height:420px}.stock-info-panel{min-width:auto}}
