:root { --bg: #060b18; --surface: #0d1526; --surface-2: #121e36; --surface-3: #192845; --gold: #c9a84c; --gold-lt: #e8c96a; --gold-dk: #7a6330; --text: #ddd8cc; --muted: #6b7a99; --dim: #3a4560; --green: #22c55e; --red: #ef4444; --amber: #f59e0b; --blue: #3b82f6; --border: rgba(201,168,76,.14); --border-md: rgba(201,168,76,.32); --r: 12px; --r-sm: 6px; } *{margin:0;padding:0;box-sizing:border-box;} body{background:var(--bg);color:var(--text);font-family:'Noto Sans SC',sans-serif;min-height:100vh;overflow-x:hidden;} .hd{display:flex;align-items:center;justify-content:space-between;padding:14px 28px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:200;} .hd-brand{display:flex;align-items:center;gap:11px;} .hd-emblem{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,var(--gold),var(--gold-dk));display:flex;align-items:center;justify-content:center;font-family:'Noto Serif SC',serif;font-size:20px;font-weight:700;color:#060b18;letter-spacing:-.5px;} .hd-title{font-family:'Noto Serif SC',serif;font-size:24px;font-weight:700;color:var(--gold-lt);letter-spacing:.08em;} .hd-sub{font-size:13px;color:var(--muted);letter-spacing:.06em;margin-top:1px;} .hd-search{display:flex;align-items:center;gap:8px;} .hd-search-input{background:var(--surface-2);border:1px solid var(--border-md);border-radius:20px;padding:8px 18px;font-size:15px;color:var(--text);font-family:'JetBrains Mono',monospace;width:220px;outline:none;transition:border-color .2s;} .hd-search-input:focus{border-color:var(--gold);} .hd-version{background:var(--surface-2);border:1px solid var(--border-md);border-radius:20px;padding:7px 14px;font-size:13px;color:var(--gold);font-family:'Noto Sans SC',sans-serif;outline:none;cursor:pointer;transition:border-color .2s;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='%23c9a84c'%3E%3Cpath d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px;} .hd-version:hover{border-color:var(--gold);} .hd-version:focus{border-color:var(--gold-lt);} .hd-search-btn{background:rgba(201,168,76,.1);border:1px solid var(--border-md);border-radius:20px;padding:8px 18px;color:var(--gold);font-size:14px;cursor:pointer;font-weight:600;transition:all .15s;white-space:nowrap;} .hd-search-btn:hover{background:rgba(201,168,76,.2);} .hd-search-btn:disabled{opacity:.5;cursor:default;} .hd-ticker{display:flex;flex-direction:column;align-items:center;} .hd-code{font-family:'JetBrains Mono',monospace;font-size:16px;color:var(--gold);font-weight:500;} .hd-fname{font-size:13px;color:var(--muted);} .hd-price-block{text-align:right;} .hd-price{font-family:'JetBrains Mono',monospace;font-size:30px;font-weight:400;color:var(--text);} .hd-chg{font-family:'JetBrains Mono',monospace;font-size:14px;} .hd-chg.up{color:var(--green);} .hd-chg.dn{color:var(--red);} .hd-right{display:flex;flex-direction:column;align-items:flex-end;gap:5px;} .live-badge{background:rgba(201,168,76,.1);border:1px solid var(--border-md);border-radius:20px;padding:4px 14px;font-size:13px;color:var(--gold);letter-spacing:.04em;display:flex;align-items:center;gap:6px;} .live-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);animation:blink 1.4s infinite;} @keyframes blink{0%,100%{opacity:1;}50%{opacity:.25;}} .hd-date{font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--muted);} .layout{display:grid;grid-template-columns:236px 560px 1fr;min-height:calc(100vh - 67px);padding-bottom:56px;} .sb{padding:20px 14px;border-right:1px solid var(--border);overflow-y:auto;} .card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r);padding:15px;margin-bottom:14px;} .co-name{font-family:'Noto Serif SC',serif;font-size:20px;font-weight:600;color:var(--text);} .co-sector{font-size:13px;color:var(--muted);margin-bottom:11px;} .s-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.03);} .s-row:last-child{border-bottom:none;} .s-lbl{font-size:13px;color:var(--muted);} .s-val{font-family:'JetBrains Mono',monospace;font-size:14px;color:var(--text);font-weight:500;} .s-val.gn{color:var(--green);} .s-val.gd{color:var(--gold);} .sb-h{font-size:12px;color:var(--dim);text-transform:uppercase;letter-spacing:.1em;margin:14px 0 7px;padding-left:2px;} .con-bar{display:flex;gap:3px;border-radius:3px;overflow:hidden;margin-bottom:7px;} .con-seg{height:7px;border-radius:1px;} .con-seg.b{background:var(--green);} .con-seg.h{background:var(--amber);} .con-seg.s{background:var(--red);} .con-lbls{display:flex;justify-content:space-between;} .c-lbl{display:flex;align-items:center;gap:3px;font-size:12px;color:var(--muted);} .c-dot{width:5px;height:5px;border-radius:50%;} .c-dot.b{background:var(--green);} .c-dot.h{background:var(--amber);} .c-dot.s{background:var(--red);} .tp-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;} .prog-item{display:flex;align-items:center;gap:7px;padding:4px 0;cursor:pointer;transition:opacity .2s;} .prog-item:hover{opacity:1!important;} .prog-av{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;} .prog-name{font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} .prog-area{font-size:12px;color:var(--dim);} .prog-vrd{font-size:12px;font-weight:600;white-space:nowrap;} .ta{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:24px 16px 16px;} .ta-hint{font-family:'Noto Serif SC',serif;font-size:15px;color:var(--muted);letter-spacing:.1em;margin-bottom:18px;} .tc-wrap{position:relative;width:516px;height:516px;flex-shrink:0;} .ring-outer{position:absolute;inset:0;border-radius:50%;border:1px dashed rgba(201,168,76,.08);} .ring-mid{position:absolute;inset:80px;border-radius:50%;border:1px dashed rgba(201,168,76,.06);} .ts{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:232px;height:232px;border-radius:50%;background:radial-gradient(circle at 38% 35%,#192845,#090f1e);border:1.5px solid var(--border-md);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:2;box-shadow:0 0 80px rgba(201,168,76,.04),inset 0 0 60px rgba(0,0,0,.6);} @keyframes ts-pulse{0%{box-shadow:0 0 0 0 rgba(201,168,76,.12),inset 0 0 60px rgba(0,0,0,.6);}70%{box-shadow:0 0 0 14px rgba(201,168,76,0),inset 0 0 60px rgba(0,0,0,.6);}100%{box-shadow:0 0 0 0 rgba(201,168,76,0),inset 0 0 60px rgba(0,0,0,.6);}} .ts{animation:ts-pulse 3.2s ease-out infinite;} .ts-code{font-family:'JetBrains Mono',monospace;font-size:14px;color:var(--gold);letter-spacing:.1em;} .ts-name{font-family:'Noto Serif SC',serif;font-size:19px;font-weight:600;color:var(--text);margin:2px 0 6px;} .ts-price{font-family:'JetBrains Mono',monospace;font-size:31px;font-weight:300;color:var(--gold-lt);} .ts-chg{font-family:'JetBrains Mono',monospace;font-size:14px;color:var(--green);margin-top:2px;} .seat{position:absolute;display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;z-index:10;transition:transform .18s ease;} .seat:hover{transform:scale(1.1)!important;} .seat:hover .seat-av{border-color:var(--gold);box-shadow:0 0 18px rgba(201,168,76,.45);} .seat.active .seat-av{border-color:var(--gold-lt);box-shadow:0 0 22px rgba(201,168,76,.6);} .seat-av{width:50px;height:50px;border-radius:50%;border:2px solid var(--border-md);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;font-family:'Noto Sans SC',sans-serif;transition:all .18s;position:relative;} .seat-loading{position:absolute;inset:-3px;border-radius:50%;border:2px solid transparent;border-top-color:var(--gold);animation:spin .8s linear infinite;display:none;} .seat.loading .seat-loading{display:block;} .seat.loading .seat-badge{display:none;} @keyframes spin{to{transform:rotate(360deg);}} .seat-badge{position:absolute;bottom:-3px;right:-3px;width:16px;height:16px;border-radius:50%;font-size:10px;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--bg);} .sb-buy{background:var(--green);color:#fff;} .sb-hold{background:var(--amber);color:#fff;} .sb-sell{background:var(--red);color:#fff;} .seat-nm{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;} .seat-rl{font-size:12px;color:var(--muted);white-space:nowrap;max-width:80px;overflow:hidden;text-overflow:ellipsis;text-align:center;} @keyframes seat-in{from{opacity:0;transform:scale(.4);}to{opacity:1;transform:scale(1);}} .ceo-bar{display:flex;flex-direction:column;align-items:center;gap:5px;margin-top:14px;} .ceo-av{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold-dk));display:flex;align-items:center;justify-content:center;font-weight:700;font-size:17px;color:#060b18;border:2px solid var(--gold);box-shadow:0 0 28px rgba(201,168,76,.3);font-family:'Noto Serif SC',serif;} .ceo-lbl{font-size:14px;font-weight:600;color:var(--gold);letter-spacing:.04em;} .ceo-sub{font-size:12px;color:var(--muted);} .ceo-arr{font-size:18px;color:var(--border-md);margin-bottom:6px;line-height:1;} .rp{border-left:1px solid var(--border);overflow-y:auto;background:var(--surface);} ::-webkit-scrollbar{width:3px;} ::-webkit-scrollbar-track{background:transparent;} ::-webkit-scrollbar-thumb{background:var(--border-md);border-radius:3px;} .rp-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:10px;padding:48px 32px;text-align:center;} .rp-empty-glyph{font-size:56px;opacity:.12;font-family:'Noto Serif SC',serif;} .rp-empty-h{font-family:'Noto Serif SC',serif;font-size:19px;color:var(--text);font-weight:600;line-height:1.5;} .rp-empty-p{font-size:15px;color:var(--muted);line-height:1.7;margin-top:6px;} .rp-content{padding:22px;display:none;} .rp-content.show{display:block;} .rp-hd{margin-bottom:18px;padding-bottom:15px;border-bottom:1px solid var(--border);} .rp-analyst-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;} .rp-av{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;border:2px solid var(--border-md);} .rp-nm{font-weight:600;font-size:17px;color:var(--text);} .rp-tl{font-size:13px;color:var(--muted);} .rp-title{font-family:'Noto Serif SC',serif;font-size:21px;font-weight:600;color:var(--text);line-height:1.45;margin-bottom:8px;} .rp-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap;} .vb{padding:4px 14px;border-radius:20px;font-size:13px;font-weight:700;letter-spacing:.04em;} .vb.buy{background:rgba(34,197,94,.12);color:var(--green);border:1px solid rgba(34,197,94,.28);} .vb.hold{background:rgba(245,158,11,.12);color:var(--amber);border:1px solid rgba(245,158,11,.28);} .vb.sell{background:rgba(239,68,68,.12);color:var(--red);border:1px solid rgba(239,68,68,.28);} .sb2{font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--gold);background:rgba(201,168,76,.09);padding:4px 10px;border-radius:20px;border:1px solid var(--border-md);} .exec-sum{background:var(--surface-2);border-radius:8px;padding:14px 16px;margin-bottom:16px;border-left:3px solid;} .sec-h{font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--gold);font-weight:600;margin-bottom:7px;} .sec-body{font-size:15px;line-height:1.85;color:var(--text);} .sec-body pre{white-space:pre-wrap;font-family:inherit;margin:0;} .sec{margin-bottom:18px;} .rp-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:24px;color:var(--muted);font-size:15px;} .rp-error{color:var(--red);font-size:14px;padding:14px;background:rgba(239,68,68,.08);border-radius:8px;margin-bottom:12px;} .bot{position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);padding:9px 24px;display:flex;align-items:center;gap:20px;z-index:200;} .bot-lbl{font-size:13px;color:var(--muted);white-space:nowrap;} .bot-chips{display:flex;gap:5px;overflow-x:auto;flex:1;scrollbar-width:none;} .bot-chips::-webkit-scrollbar{display:none;} .chip{display:flex;align-items:center;gap:4px;padding:4px 12px;border-radius:20px;border:1px solid var(--border);font-size:13px;background:var(--surface-2);cursor:pointer;white-space:nowrap;transition:all .14s;color:var(--text);} .chip:hover{border-color:var(--border-md);} .chip.active{border-color:var(--gold);background:rgba(201,168,76,.08);color:var(--gold);} .chip-d{width:5px;height:5px;border-radius:50%;} .chip.loading{opacity:.5;pointer-events:none;} .qwen-status{display:flex;align-items:center;gap:5px;white-space:nowrap;font-size:13px;color:var(--gold);} .modal{position:fixed;inset:0;background:rgba(0,0,0,.65);display:none;align-items:center;justify-content:center;z-index:999;} .modal.show{display:flex;} .modal-body{background:var(--surface);border:1px solid var(--border-md);border-radius:var(--r);width:min(700px,94vw);max-height:80vh;overflow-y:auto;} .ydp-dialog-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border);} .ydp-dialog-head h3{font-family:'Noto Serif SC',serif;font-size:18px;color:var(--gold-lt);} .ydp-dialog-close{background:none;border:none;color:var(--muted);font-size:20px;cursor:pointer;padding:2px 6px;} .ydp-dialog-close:hover{color:var(--text);} .ydp-dialog-body{padding:16px 18px;max-height:60vh;overflow-y:auto;} .ydp-dialog-body .log-line{font-family:'JetBrains Mono',monospace;font-size:13px;padding:3px 0;color:var(--muted);border-bottom:1px solid rgba(255,255,255,.02);} .ydp-dialog-body .log-line.ok{color:var(--green);} .ydp-dialog-body .log-line.err{color:var(--red);} .ydp-dialog-body .log-line.info{color:var(--gold);} .ydp-dialog-footer{padding:12px 18px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end;} .ydp-dialog-footer button{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 18px;color:var(--text);font-size:13px;cursor:pointer;} .ydp-dialog-footer button:hover{background:var(--surface-3);} .ydp-dialog-footer button.primary{background:rgba(201,168,76,.1);border-color:var(--border-md);color:var(--gold);} .stock-empty{text-align:center;padding:48px;color:var(--muted);} .stock-empty-h{font-family:'Noto Serif SC',serif;font-size:21px;color:var(--text);margin-bottom:8px;} .stock-empty-p{font-size:15px;} .image-bar{padding:8px 28px;background:var(--surface);border-bottom:1px solid var(--border);} .image-bar-inner{display:flex;align-items:center;gap:24px;} .image-upload-area{display:flex;align-items:center;gap:10px;} .image-upload-btn{background:var(--surface-2);border:1px solid var(--border-md);border-radius:20px;padding:6px 16px;font-size:13px;color:var(--gold);cursor:pointer;transition:all .15s;} .image-upload-btn:hover{background:rgba(201,168,76,.15);} .image-preview-wrap{position:relative;display:inline-flex;} .image-preview-wrap img{width:40px;height:40px;border-radius:6px;border:1px solid var(--border-md);object-fit:cover;} .image-remove-btn{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;background:var(--red);color:#fff;border:none;font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;} .profile-edit-area{display:flex;align-items:center;gap:10px;} .profile-edit-btn{background:var(--surface-2);border:1px solid var(--border-md);border-radius:20px;padding:6px 16px;font-size:13px;color:var(--gold);cursor:pointer;transition:all .15s;} .profile-edit-btn:hover{background:rgba(201,168,76,.15);} .profile-summary{font-size:12px;color:var(--muted);} .pf-row{padding:4px 18px;display:flex;align-items:center;gap:10px;} .pf-row label{width:140px;font-size:13px;color:var(--muted);flex-shrink:0;} .pf-row input{flex:1;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:6px 10px;font-size:13px;color:var(--text);outline:none;} .pf-row input:focus{border-color:var(--gold);} .pf-row2{display:flex;gap:12px;padding:4px 18px;} .pf-row2 .pf-row{padding:4px 0;} .pf-row2 .pf-row label{width:auto;min-width:60px;} .pf-row2 .pf-row input{width:120px;flex:none;}