:root{--bg: #0d1117;--panel: #161b22;--panel2: #1c2333;--border: #232a36;--text: #e6edf3;--dim: #8b93a7;--up: #e5484d;--down: #1fa97c;--accent: #3b82f6;--accent2: #ff6b35}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:13px}button{cursor:pointer;font-family:inherit}input,select{background:#0d1117;color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 10px;outline:none;font-size:13px}input:focus,select:focus{border-color:var(--accent)}.up{color:var(--up)}.down{color:var(--down)}.dim{color:var(--dim)}.err{color:var(--up);margin:6px 0;font-size:12px}.ok{color:var(--down);margin:6px 0;font-size:12px}.btn-primary{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:13px}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--dim);border:1px solid var(--border);border-radius:6px;padding:6px 12px}.btn-danger-ghost{background:transparent;color:var(--up);border:1px solid rgba(229,72,77,.5);border-radius:6px;padding:6px 12px}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center}.auth-card{width:380px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:32px}.auth-logo{font-size:26px;font-weight:700;letter-spacing:2px}.auth-sub{color:var(--dim);margin:6px 0 20px;font-size:12px}.auth-tabs{display:flex;gap:4px;margin-bottom:18px}.auth-tabs .tab{flex:1;background:transparent;border:none;color:var(--dim);padding:8px;border-bottom:2px solid transparent}.auth-tabs .tab.on{color:var(--text);border-bottom-color:var(--accent)}.auth-card form label{display:block;margin:12px 0 4px;font-size:12px;color:var(--dim)}.auth-card form input,.auth-card form select{width:100%}.auth-card form .btn-primary{width:100%;margin-top:18px}.page{min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--panel);position:sticky;top:0;z-index:10}.topbar .brand{font-size:18px;font-weight:700;letter-spacing:1px}.topbar-right{display:flex;gap:10px;align-items:center}.day-tag{color:var(--accent2);font-weight:600}.archives-wrap{max-width:900px;margin:40px auto;padding:0 20px}.archives-wrap h2{margin-bottom:18px;font-size:18px}.archives-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}.archive-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px}.archive-card.new{border-style:dashed}.archive-name{font-size:15px;font-weight:600;margin-bottom:6px}.archive-meta{color:var(--dim);font-size:12px;margin-bottom:14px}.archive-actions{display:flex;gap:8px}.archive-card input{width:100%;margin:8px 0}.loading{text-align:center;margin-top:60px;color:var(--dim)}.trade-layout{display:grid;grid-template-columns:300px 1fr 260px;gap:12px;padding:12px;max-width:1440px;margin:0 auto}@media (max-width: 1100px){.trade-layout{grid-template-columns:1fr}}.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:12px;margin-bottom:12px}.panel-title{font-size:13px;font-weight:600;margin-bottom:8px;color:var(--dim)}.index-panel .index-name{color:var(--dim);font-size:12px}.index-points{font-size:28px;font-weight:700;margin:2px 0}.assets-row{display:flex;flex-wrap:wrap;gap:10px}.assets-row>div{flex:1;min-width:80px}.assets-row span{display:block;color:var(--dim);font-size:11px}.assets-row b{font-size:15px}.assets-row .hl{color:var(--accent2)}.ops-label{display:flex;justify-content:space-between;font-size:12px;color:var(--dim);margin-bottom:8px}.ops-track{position:relative;height:18px;border-radius:9px;overflow:hidden;display:flex;background:var(--panel2)}.ops-zone{height:100%;display:flex;align-items:center;justify-content:center;font-size:10px;color:#ffffff73}.ops-zone.observe{background:#2a3142}.ops-zone.trade-zone{background:#173b2f}.ops-fill{position:absolute;top:0;bottom:0;width:2px;background:var(--accent2)}.stock-list table,.holdings-panel table{width:100%;border-collapse:collapse}.stock-list th,.holdings-panel th{color:var(--dim);font-weight:500;text-align:left;font-size:11px;padding:4px 6px;border-bottom:1px solid var(--border)}.stock-list td,.holdings-panel td{padding:6px;font-size:12px}.stock-list tr{cursor:pointer}.stock-list tr:hover{background:var(--panel2)}.stock-list tr.sel{background:#3b82f61f;outline:1px solid rgba(59,130,246,.35)}.chart-panel{padding:12px}.chart-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.stock-code{color:var(--dim);font-size:12px}.big{font-size:16px;font-weight:700}.chart-tabs button{background:transparent;border:none;color:var(--dim);padding:4px 10px;border-radius:4px}.chart-tabs button.on{background:var(--panel2);color:var(--text)}.chart-body{height:220px}.trade-actions{display:flex;gap:6px;margin-bottom:10px}.trade-actions .ta{flex:1;background:var(--panel2);color:var(--dim);border:1px solid var(--border);border-radius:6px;padding:7px}.trade-actions .ta.on{background:var(--accent);color:#fff;border-color:var(--accent)}.trade-row{display:flex;align-items:center;gap:8px;margin-bottom:10px}.trade-row label{color:var(--dim);font-size:12px}.trade-row input{width:100px}.trade-go{width:100%;padding:10px}.trade-msg{margin-top:8px;font-size:11px}.holdings-panel .empty,.news-panel .empty,.events-panel .empty{padding:10px 0}.news-scroll{height:260px;overflow:hidden}.news-item{padding:8px 0;border-bottom:1px solid var(--border)}.news-item.bullish .news-title{color:var(--up)}.news-item.bearish .news-title{color:var(--down)}.news-title{font-size:12px;font-weight:600}.news-meta{color:var(--dim);font-size:10px;margin-top:2px}.event-item{padding:8px 0;border-bottom:1px solid var(--border)}.settle-btn{width:100%;margin-top:4px;background:var(--accent2)}
