/* 2005 财经门户：硬边框、报纸字体、电视转播字卡。
   配色沿用 demo 的那套米黄纸面 + 深绿夜盘。 */
:root { --paper:#f4f1e7; --surface:#fffdf5; --red:#c81f28; --bright-red:#ef383d; --green:#087b4b; --ink:#292b27; --muted:#7b7a6e; --line:#c9c4b5; --gold:#f5d252; --night:#101815; --song:"Songti SC","STSong","SimSun",serif; --sans:"PingFang SC","Microsoft YaHei",sans-serif; --mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace; }
* { box-sizing:border-box; }
[hidden] { display:none!important; }
body { margin:0; color:var(--ink); background:var(--paper); font:12px/1.5 var(--sans); padding-bottom:38px; }
button,input { font:inherit; }
button,a,input { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; border-radius:0; }
a { color:inherit; text-decoration:none; }
button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible { outline:2px solid #bf7e0d; outline-offset:2px; }
button:hover:not(:disabled) { filter:brightness(.94); }
button:disabled { opacity:.4; cursor:not-allowed; }
.up { color:var(--red); } .down { color:var(--green); }
.live-dot { display:inline-block; width:6px; height:6px; background:currentColor; border-radius:50%; vertical-align:middle; margin-right:5px; }

/* ── 顶部行情条 ─────────────────────────────────────── */
.market-ribbon { height:34px; background:#e9e5d9; border-bottom:1px solid #ccc6b7; }
.ribbon-inner { max-width:1680px; padding:0 28px; margin:auto; height:100%; display:flex; align-items:center; gap:26px; white-space:nowrap; font-size:11px; }
.ribbon-inner b { font:700 13px var(--mono); margin:0 4px; }
.ribbon-inner em { font:11px var(--mono); font-style:normal; }
.market-clock { color:#5e6255; }
.ribbon-tag { margin-left:auto; font-size:10px; color:#777265; border:1px solid #b9b4a4; padding:1px 5px; }
.page-shell { max-width:1680px; margin:0 auto; padding:0 28px; }

/* ── 报头 ───────────────────────────────────────────── */
.masthead { display:grid; grid-template-columns:minmax(360px,1fr) 412px; align-items:center; gap:28px; padding:20px 0 16px; }
.brand-eyebrow { font:11px var(--song); letter-spacing:3px; color:#6f6657; display:flex; gap:24px; }
.brand-eyebrow span { font:10px var(--mono); letter-spacing:1px; }
h1 { position:relative; display:flex; align-items:center; gap:16px; font:900 62px/.99 var(--song); letter-spacing:-4px; margin:8px 0 9px; color:#b51f25; text-shadow:1px 1px 0 #f9f2dc,2px 2px 0 #c6b792; }
.brand-stamp { display:inline-block; font:700 13px/1.05 var(--song); letter-spacing:2px; padding:5px 3px 4px 5px; border:2px solid #b51f25; transform:rotate(-9deg); text-shadow:none; }
.brand-block p { margin:0; font:12px var(--song); letter-spacing:1px; }
.brand-block p span { font-size:10px; letter-spacing:0; color:#8b8072; }
.teacher-window { border:1px solid #7c8174; background:#e8e7db; box-shadow:3px 3px 0 #d5d0c0; }
.teacher-title { display:flex; justify-content:space-between; padding:4px 8px; background:#293c35; color:#f5e7b6; font-size:10px; letter-spacing:.5px; }
.teacher-title>span:last-child { color:#aebdb0; font-size:9px; }
.teacher-title .live-dot { background:#e74d44; animation:live-pulse 3s infinite; }
.teacher-body { display:flex; gap:12px; padding:9px; background:repeating-linear-gradient(0deg,transparent 0 3px,#273c3510 3px 4px); }
.teacher-portrait { width:66px; flex:none; position:relative; border:1px solid #727d70; background:#b7c3c4; }
.teacher-portrait svg { display:block; width:64px; height:68px; }
.teacher-portrait>span { position:absolute; bottom:0; left:0; right:0; text-align:center; background:#1d2a24db; color:#f2e6b3; font:8px var(--mono); padding:1px; }
.teacher-copy { flex:1; min-width:0; padding-top:1px; }
.teacher-copy>div { display:flex; gap:8px; align-items:baseline; }
.teacher-copy b { font:700 17px var(--song); }
.teacher-copy>div span { font-size:9px; color:#79766a; }
.teacher-copy p { margin:6px 0 4px; color:#b42227; font:700 16px var(--song); }
.teacher-stock { font-size:10px; color:#6f6a5b; }
.teacher-stock b { font-family:var(--song); font-size:12px; color:#2c2f28; }
.teacher-foot { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:7px; }
.teacher-foot small { font-size:9px; color:#817d70; }
#teacher-follow { border:1px solid #a4191f; background:#c22b2b; color:#fff3c6; font:700 10px var(--song); padding:3px 9px; box-shadow:inset 0 1px #e57b6f; }
.teacher-highlight { animation:teacher-highlight 1.3s ease; }

/* ── 导航 + 控制条 ──────────────────────────────────── */
.portal-nav { display:flex; align-items:center; gap:0; background:var(--red); color:#fff8de; height:36px; border-top:3px solid #9d1720; box-shadow:0 2px 0 #dbc4a5; }
.nav-current { padding:0 20px; height:33px; display:flex; align-items:center; font:700 13px var(--song); background:#a51920; border-right:1px solid #e06460; }
.nav-badge { padding:0 14px; font:11px var(--mono); color:#ffd8bd; }
.nav-controls { margin-left:auto; display:flex; align-items:center; gap:5px; padding-right:8px; }
.nav-controls button { border:1px solid #e0806f; background:#8f1a20; color:#ffe6c2; font-size:11px; padding:3px 10px; height:24px; }
.nav-controls button.active { background:#f2d99a; color:#7a1418; border-color:#f6e6b6; font-weight:700; }
.nav-controls button:disabled { opacity:.35; }
.nav-controls .loan-btn { background:#e0aa35; color:#5c3a06; border-color:#f6d78a; font-weight:700; }

/* ── 利好横幅 / 账户条 ──────────────────────────────── */
.good-news { margin:11px 0; min-height:43px; display:flex; align-items:center; gap:16px; padding:0 12px 0 0; border:1px solid #d3b65a; background:repeating-linear-gradient(135deg,#f9e6a9 0 4px,#f7e2a0 4px 5px); }
.news-flash { display:flex; align-items:center; justify-content:center; align-self:stretch; padding:0 18px; color:#fff5bb; background:#c62725; font:900 18px var(--song); letter-spacing:2px; flex:none; animation:benefit-flash 3.8s ease-in-out infinite; }
.good-news>strong { font:900 17px var(--song); color:#a21c22; letter-spacing:1px; padding:7px 0; }
.good-news>strong span { font-size:15px; }
.banner-aside { color:#826226; font-size:10px; margin-left:auto; white-space:nowrap; }
.account-strip { display:flex; gap:26px; align-items:center; padding:11px 16px; border:1px solid var(--line); background:#eae6da; margin-bottom:12px; }
.account-identity { display:flex; align-items:center; gap:9px; padding-right:22px; border-right:1px solid #c7c0ae; }
.account-avatar { font:700 20px var(--song); background:#d6d0be; border:1px solid #b5ad98; width:38px; height:38px; display:grid; place-items:center; color:#6d6656; }
.account-identity b { font-size:12px; } .account-identity small { display:block; font:10px var(--mono); color:#8c806c; margin-top:3px; }
.account-stat>span,.account-motto>span { display:block; font-size:10px; color:#827b6c; margin-bottom:3px; }
.account-stat>strong { display:block; font:700 21px var(--mono); letter-spacing:-.5px; white-space:nowrap; }
.account-stat>strong.small { font-size:13px; letter-spacing:0; }
.account-motto { border-left:1px dashed #c4bda9; padding-left:22px; margin-left:auto; }
.account-motto>b { color:#9e3429; font:700 14px var(--song); }
#acc-frozen.debt-on { color:#b3341f; }

/* ── 主交易区 ───────────────────────────────────────── */
.trading-grid { display:grid; grid-template-columns:258px minmax(0,1fr) 278px; gap:12px; }
.panel { background:var(--surface); border:1px solid #b6b3a4; min-width:0; }
.watchlist-panel { grid-column:1; grid-row:1; }
.chart-panel { grid-column:2; grid-row:1; display:flex; flex-direction:column; }
.order-panel { grid-column:3; grid-row:1; display:flex; flex-direction:column; }
.positions-panel { grid-column:1 / -1; grid-row:2; }
.discussion-panel { grid-column:1 / -1; grid-row:3; }
.panel-heading { height:34px; padding:0 11px; display:flex; align-items:center; justify-content:space-between; background:linear-gradient(#f5f2e8,#e4e1d3); border-bottom:1px solid #b6b3a4; }
h2 { margin:0; font:700 14px var(--song); }
.panel-heading h2 { border-left:3px solid var(--red); padding-left:7px; }
.panel-heading h2 small { margin-left:5px; font:10px var(--mono); color:#8b806d; }
.panel-heading>span { font-size:9px; color:#877e6d; }

/* 自选行情 */
.watchlist-header,.stock-row { display:grid; grid-template-columns:minmax(0,1fr) 50px 59px; align-items:center; gap:4px; }
.watchlist-header { height:26px; padding:0 10px; background:#edeadd; color:#8c8370; font-size:9px; border-bottom:1px solid #d1ccbc; }
.watchlist-header span:not(:first-child) { text-align:right; }
.stock-row { width:100%; padding:5px 10px; border:0; border-bottom:1px solid #e5e0d1; background:transparent; text-align:left; min-height:43px; color:var(--ink); }
.stock-row:hover { background:#f1ebd8; filter:none; }
.stock-row.selected { background:#eadbc0; box-shadow:inset 3px 0 var(--red); }
.stock-label { min-width:0; }
.stock-label b { display:block; font:700 11px var(--song); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; letter-spacing:-.2px; }
.stock-label small { display:block; font:9px var(--mono); color:#958975; margin-top:2px; }
.row-price,.row-change { text-align:right; font:700 12px var(--mono); }
.row-change { font-size:11px; }
.stock-row.quote-flash { animation:quote-flash .7s ease-out; }
.watchlist-foot { height:24px; display:flex; justify-content:space-between; padding:5px 10px; color:#7f806c; background:#f0ecdf; font:9px var(--mono); }
.watchlist-foot .live-dot { width:4px; height:4px; color:#3e8259; }

/* K 线 */
.stock-summary { padding:10px 14px 9px; border-bottom:1px solid #e2ddcd; }
.stock-heading { display:flex; gap:9px; align-items:center; }
.stock-heading h2 { font:700 20px var(--song); }
.stock-heading>span { color:#8a8374; font:10px var(--mono); }
.stock-heading>span:last-child { border:1px solid #d6cebd; padding:0 4px; font:9px var(--sans); }
.stock-tagline { margin:2px 0 0; font-size:10px; color:#9c8f78; }
.stock-price-line { display:flex; align-items:flex-end; gap:12px; margin-top:1px; }
.stock-price-line>strong { font:700 32px/1.1 var(--mono); letter-spacing:-1px; }
.stock-price-line>b { font:11px var(--mono); white-space:nowrap; padding-bottom:5px; }
.stock-facts { margin-left:auto; display:grid; grid-template-columns:auto auto; gap:3px 16px; font-size:9px; color:#918571; padding-bottom:4px; }
.stock-facts b { font:10px var(--mono); margin-left:5px; color:#5b5747; }
.chart-toolbar { background:#242c27; color:#b2b8a9; display:flex; height:30px; align-items:center; justify-content:space-between; padding:0 11px; border-top:1px solid #0a140e; font-size:9px; }
#chart-live-status { color:#b8bd88; }
.chart-wrap { position:relative; height:300px; flex:1 1 auto; min-height:250px; background:var(--night); overflow:hidden; }
#stock-chart { width:100%; height:100%; display:block; position:absolute; inset:0; cursor:crosshair; }
.chart-corner { position:absolute; right:64px; bottom:26px; pointer-events:none; font:8px var(--mono); color:#4a574b; letter-spacing:1px; }
.chart-tooltip { pointer-events:none; position:absolute; z-index:2; top:26px; right:56px; border:1px solid #77765b; background:#17231ff0; color:#d3d8bf; font:10px/1.75 var(--mono); padding:6px 10px; }
.chart-tooltip b { color:#e8c76b; font-weight:400; }
.chart-caption { height:24px; display:flex; justify-content:space-between; align-items:center; padding:0 10px; color:#858c77; background:#1b241e; font-size:8px; border-top:1px solid #344035; }
.up-square,.down-square { display:inline-block; width:6px; height:6px; background:#ed4146; margin-right:3px; }
.down-square { background:#21ad71; margin-left:8px; }

/* 盘口 + 下单 */
.orderbook-labels,.book-row { display:grid; grid-template-columns:48px 1fr 1fr; padding:0 12px; text-align:right; }
.orderbook-labels { height:21px; align-items:center; font-size:9px; color:#948975; border-bottom:1px solid #e3ddcd; }
.orderbook-labels>span:first-child,.book-row>span:first-child { text-align:left; }
.book-row { height:20px; align-items:center; position:relative; font:10px var(--mono); }
.book-row>span { position:relative; z-index:1; }
.book-row>span:first-child { font:9px var(--sans); color:#8a7c68; }
.book-row .depth { position:absolute; right:9px; top:3px; height:15px; background:#c8272412; transition:width .5s; }
#buy-book .depth { background:#087b4b12; }
.book-row.empty .book-price,.book-row.empty .book-qty { color:#c3bcaa; }
.book-center { display:flex; gap:12px; align-items:center; padding:4px 12px; margin:2px 0; border-top:1px solid #ddd6c3; border-bottom:1px solid #ddd6c3; background:#f2eddf; }
.book-center>span { font-size:10px; color:#8f816c; }
.book-center strong { font:700 19px var(--mono); }
.book-center small { font-size:8px; color:#aaa087; margin-left:auto; }
.order-entry { margin-top:8px; border-top:1px solid #b6b3a4; }
.order-tabs { display:flex; height:31px; background:#e5e1d3; }
.order-tabs button { width:50%; border:0; border-bottom:2px solid #c9c1ae; background:transparent; font:700 11px var(--song); color:#8e826d; }
.order-tabs button.active.buy-tab { border-bottom-color:var(--red); background:#f7e5d9; color:var(--red); }
.order-tabs button.active.sell-tab { border-bottom-color:var(--green); background:#e1eadd; color:var(--green); }
#order-form { padding:9px 11px 6px; }
.order-field { display:flex; align-items:center; gap:10px; margin-bottom:6px; font-size:10px; color:#7b715e; }
.order-field>span:first-child { width:38px; flex:none; }
.input-shell { display:flex; align-items:center; min-width:0; flex:1; border:1px solid #bdb4a1; box-shadow:inset 1px 1px #ded9ca; background:#fffdf6; height:28px; }
.input-shell input { width:100%; min-width:0; background:transparent; border:0; color:#312f28; padding:4px 8px; font:700 13px var(--mono); appearance:textfield; -moz-appearance:textfield; }
.input-shell input::-webkit-inner-spin-button { -webkit-appearance:none; }
.input-shell em { font:9px var(--sans); padding-right:8px; color:#978b75; font-style:normal; }
.quantity-shortcuts { display:flex; gap:5px; margin:0 0 7px 48px; }
.quantity-shortcuts button { width:33.333%; border:1px solid #cdc3ac; color:#8c7b5a; background:#eee8d8; font-size:9px; height:19px; }
.order-limit { font-size:9px; color:#95886f; text-align:right; margin-bottom:5px; }
.order-limit b { font-family:var(--mono); }
.order-meta { display:flex; justify-content:space-between; font-size:9px; color:#8c7e64; margin-bottom:5px; }
.order-meta b { font-family:var(--mono); color:#4d4536; }
.order-total { display:flex; justify-content:space-between; align-items:center; margin:5px 0; color:#8c7e64; font-size:10px; }
.order-total b { color:#4d4536; font:700 12px var(--mono); }
.order-total.sub b { color:#8a7c60; font-weight:400; }
.submit-order { display:block; width:100%; height:38px; margin-top:8px; border:1px solid #97171d; border-top-color:#e4716a; box-shadow:inset 0 1px #ed7b71,0 2px #821b1e; background:linear-gradient(#d33336,#b71822); color:#fff2c8; font:700 15px var(--song); letter-spacing:2px; }
.submit-order span { display:inline-block; margin-left:4px; font:9px var(--sans); letter-spacing:0; color:#f8c2a7; }
.submit-order.sell { background:linear-gradient(#19875b,#09613c); border-color:#064d31; box-shadow:inset 0 1px #6ba585,0 2px #144e34; }
.submit-order.sell span { color:#c0dec0; }
.order-feedback { margin:6px 0 0; min-height:14px; text-align:center; font-size:9px; color:#a39176; }
.order-feedback.feedback-active { color:var(--red); }
.order-feedback.feedback-ok { color:#4a7a55; }

/* 持仓与委托 */
.positions-grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); }
.pos-col { padding:0 0 6px; min-width:0; }
.orders-col { border-left:1px solid #e2ddcd; }
.sub-head { padding:7px 11px 5px; font:700 11px var(--song); color:#7d7360; background:#f6f3e9; border-bottom:1px solid #e8e3d4; }
.data-table { width:100%; border-collapse:collapse; }
.data-table th { background:#edeadd; color:#8c8370; font-size:9px; font-weight:400; padding:5px 9px; text-align:left; border-bottom:1px solid #d1ccbc; white-space:nowrap; }
.data-table th.num { text-align:right; }
.data-table td { padding:6px 9px; border-bottom:1px solid #ece7d8; font-size:11px; vertical-align:middle; }
.data-table td.num { text-align:right; font-family:var(--mono); font-weight:700; white-space:nowrap; }
.data-table tbody tr { cursor:pointer; }
.data-table tbody tr:hover { background:#f5f0e0; }
.data-table td small { display:block; font:9px var(--mono); font-weight:400; color:#958975; }
.data-table td .in-flight { color:#a8802f; }
.p-name b { font:700 11px var(--song); }
.table-empty { margin:0; padding:14px 11px; font-size:10px; color:#a19680; }
.cancel-btn { border:1px solid #c2b7a0; background:#f0ebdc; color:#84765b; font-size:9px; padding:2px 8px; }

/* 股民茶馆 */
.discussion-heading { height:36px; }
.discussion-heading>div { display:flex; align-items:center; gap:10px; }
.discussion-heading>div>span { font-size:9px; color:#95836c; }
.online-dot { display:inline-block; width:5px; height:5px; border-radius:50%; background:var(--green); }
.feed-tabs { height:100%; gap:0!important; }
.feed-tabs button { border:0; background:transparent; color:#87765b; height:100%; padding:0 14px; font-size:10px; }
.feed-tabs button.active { color:#a21f23; font-weight:700; background:#f6f0e0; box-shadow:inset 0 -2px var(--red); }
.discussion-layout { display:grid; grid-template-columns:minmax(0,1fr) 235px; }
.feed-main { min-width:0; }
.message-list { padding:1px 14px; }
.message-row { display:grid; grid-template-columns:40px 56px minmax(0,1fr) 132px; gap:10px; align-items:center; padding:8px 0; border-bottom:1px dashed #ded6c1; }
.message-row:last-child { border:0; }
.message-time { font:10px var(--mono); color:#a29176; }
.source-tag { font-size:9px; padding:1px 4px; color:#926f35; border:1px solid #d6c492; text-align:center; }
.source-tag.news { color:#a5252a; border-color:#d2a99c; background:#f5e4d7; }
.source-tag.ann { color:#7c4a8e; border-color:#c9aed2; background:#f2e9f5; }
.source-tag.forum { color:#4f7157; border-color:#b5c4aa; background:#edf0df; }
.source-tag.wechat { color:#2f6b7c; border-color:#a8c6cf; background:#e6f0f2; }
.message-content { min-width:0; font:12px var(--song); }
.message-side { text-align:right; white-space:nowrap; }
.msg-pct { display:block; font:9px var(--mono); color:#a29176; }
.msg-pct b { font-weight:700; }
.pick-btn { margin-top:3px; border:1px solid #c2b7a0; background:#f2ecdd; color:#7d6f55; font-size:9px; padding:2px 8px; }
.sentiment { padding:11px 16px; border-left:1px solid #d5cdbb; background:#ede7d7; }
.sentiment>span { font-size:10px; color:#88795e; }
.sentiment-score { display:flex; align-items:baseline; color:var(--red); font:700 31px var(--mono); line-height:1.3; }
.sentiment-score>span { font-size:15px; }
.sentiment-score>b { margin-left:auto; font:700 13px var(--song); }
.sentiment-bar { height:7px; background:#1c8755; margin:2px 0 6px; } .sentiment-bar i { display:block; height:100%; background:var(--red); transition:width .4s; }
.sentiment>p { font-size:8px; margin:0; color:#ab9570; }
.sentiment-bottom { border-top:1px solid #d7cbb0; margin-top:9px; padding-top:6px; font:10px/1.6 var(--song); color:#8b7656; }
.sentiment-bottom b { font-weight:700; color:#a43c2a; }
.page-footer { display:flex; justify-content:space-between; gap:20px; padding:13px 0 16px; font-size:9px; color:#9a8d75; }

/* ── 跑马灯 / 广告 / 提示 ───────────────────────────── */
.news-ticker { position:fixed; z-index:20; left:0; right:0; bottom:0; display:flex; align-items:center; height:32px; background:#202e26; border-top:2px solid #ac8e49; color:#e7d8ac; box-shadow:0 -2px 0 #d8c796; }
.news-ticker>strong { align-self:stretch; display:flex; align-items:center; padding:0 20px; background:#a52025; border-right:1px solid #e8c784; font:700 12px var(--song); letter-spacing:2px; z-index:1; white-space:nowrap; }
.ticker-window { flex:1; min-width:0; overflow:hidden; }
.ticker-track { display:flex; width:max-content; animation:ticker-scroll 62s linear infinite; }
.ticker-window:hover .ticker-track { animation-play-state:paused; }
.ticker-content { display:flex; flex:none; align-items:center; }
.ticker-item { font:11px var(--song); white-space:nowrap; margin-right:45px; }
.ticker-item::before { content:"◆"; font-size:8px; color:#bdab73; margin-right:12px; }
.ticker-item b { font-weight:400; color:#ffcf64; margin-right:9px; }
.ticker-end { font:9px var(--mono); color:#aba785; border-left:1px solid #5d634b; padding:0 16px; white-space:nowrap; }
.toast { position:fixed; z-index:40; left:50%; top:12px; transform:translate(-50%,-18px); opacity:0; pointer-events:none; background:#22302a; color:#ece4c8; border:1px solid #a98f4e; padding:9px 18px; font-size:12px; transition:.22s; max-width:min(560px,92vw); text-align:center; }
.toast.show { opacity:1; transform:translate(-50%,0); }
.toast.buy { border-color:#c82724; } .toast.sell { border-color:#0f7a4c; }
.fake-ad { position:fixed; z-index:30; width:280px; right:19px; bottom:47px; border:2px solid #998957; box-shadow:4px 4px 0 #1c251f70; background:#f8e7a8; }
.fake-ad:not([hidden]) { animation:ad-enter .3s ease-out; }
.ad-titlebar { display:flex; justify-content:space-between; align-items:center; background:linear-gradient(90deg,#6d1b21,#b6322b); color:#ffe8a5; height:25px; padding:0 5px 0 9px; font:10px var(--song); border-bottom:1px solid #a78e43; }
.ad-titlebar button { border:1px solid #f3dc9b; background:#d3c69b; color:#4a3429; width:18px; height:17px; padding:0; font:700 16px/14px var(--mono); box-shadow:inset 1px 1px #fff1c1; }
.ad-content { text-align:center; padding:12px 12px 9px; background:repeating-linear-gradient(135deg,#fff2c0 0 2px,#f9e5a8 2px 4px); }
.ad-kicker { color:#8d6323; font-size:10px; border-bottom:1px solid #bb9757; padding-bottom:3px; letter-spacing:2px; }
.ad-headline { font:900 24px/1.3 var(--song); color:#ba2227; text-shadow:1px 1px #fff8da; margin:9px 0 6px; letter-spacing:1px; }
.ad-content p { font-size:9px; color:#947347; margin:0 0 11px; }
.ad-action { width:100%; background:#bb2427; color:#fff6c8; border:1px solid #8e2023; box-shadow:inset 1px 1px #e99060,2px 2px #c5a456; padding:8px 4px; font:700 12px var(--song); }
.ad-footnote { display:block; color:#a18c63; font-size:8px; margin-top:8px; }

/* ── 覆盖层（标题 / 日间歇 / 结算）─────────────────── */
.overlay { position:fixed; inset:0; z-index:50; background:#0c120fdd; display:grid; place-items:center; padding:22px; overflow:auto; }
.overlay-card { background:var(--surface); border:2px solid #b6b3a4; box-shadow:6px 6px 0 #00000040; width:100%; }
.title-card { max-width:520px; padding:30px 34px 26px; text-align:center; }
.title-kicker { font:10px var(--mono); letter-spacing:2px; color:#8b8072; }
.title-name { display:block; justify-content:center; font:900 60px/1 var(--song); letter-spacing:2px; color:#b51f25; margin:14px 0 6px; text-shadow:2px 2px 0 #efe6cd; }
.title-sub { margin:0 0 20px; font:14px var(--song); color:#7d7360; letter-spacing:4px; }
.title-rules { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#ddd6c4; border:1px solid #ddd6c4; margin-bottom:18px; }
.title-rules>div { background:#f6f2e6; padding:11px 4px; }
.title-rules span { display:block; font-size:9px; color:#948975; margin-bottom:4px; }
.title-rules b { font:700 15px var(--song); color:#3d3a30; }
.title-note { font-size:11px; color:#8a8172; line-height:1.8; margin:0 0 20px; }
.primary-btn { display:block; width:100%; height:44px; border:1px solid #97171d; border-top-color:#e4716a; box-shadow:inset 0 1px #ed7b71,0 3px #821b1e; background:linear-gradient(#d33336,#b71822); color:#fff2c8; font:700 17px var(--song); letter-spacing:3px; }
.title-foot { margin:14px 0 0; font-size:9px; color:#a89c86; }
.daybreak-card { max-width:660px; }
.overlay-head { display:flex; align-items:center; justify-content:space-between; padding:9px 16px; background:linear-gradient(90deg,#6d1b21,#b6322b); color:#ffe8a5; font:12px var(--song); }
.overlay-head b { font:10px var(--mono); color:#ffd9a8; }
.db-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:#e0dac9; border-bottom:1px solid #e0dac9; }
.db-stats>div { background:#f7f3e7; padding:12px 14px; }
.db-stats span { display:block; font-size:9px; color:#948975; margin-bottom:4px; }
.db-stats b { font:700 18px var(--mono); color:#3d3a30; }
.db-trades { padding:12px 16px; max-height:186px; overflow:auto; }
.db-no-trade { margin:0; font-size:11px; color:#a19680; }
.db-trade-head,.db-trade-row { display:grid; grid-template-columns:52px minmax(0,1fr) 70px 72px 92px; gap:8px; font-size:11px; padding:4px 0; }
.db-trade-head { font-size:9px; color:#948975; border-bottom:1px solid #e0dac9; }
.db-trade-row { border-bottom:1px dashed #ece7d8; font-family:var(--song); }
.db-trade-row .num { text-align:right; font-family:var(--mono); }
.db-night { border-top:1px solid #e0dac9; padding:14px 16px 16px; background:#f6f2e6; }
.db-night-q { margin:0 0 11px; font:13px var(--song); color:#6f6654; }
.night-options { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.night-btn { border:1px solid #bdb4a1; background:#fffdf5; padding:11px 12px; text-align:left; box-shadow:inset 0 -2px #ece7d8; }
.night-btn b { display:block; font:700 15px var(--song); color:#3d3a30; margin-bottom:3px; }
.night-btn span { font-size:10px; color:#948975; }
.night-btn-alt { border-color:#c7a05a; background:#fdf3d8; }
.night-btn-alt b { color:#9a6412; }
.db-intel { padding:14px 16px; background:#17231f; color:#d8dcc4; }
.intel-head { display:flex; align-items:center; gap:9px; margin-bottom:7px; }
.intel-head b { font:700 12px var(--song); color:#f0cd72; }
.intel-text { margin:0 0 7px; font:13px/1.7 var(--song); color:#e9ecd8; }
.intel-note { margin:0; font-size:9px; color:#8e9884; }
.settle-card { max-width:740px; }
.settle-head { padding:20px 26px 16px; text-align:center; background:repeating-linear-gradient(135deg,#f9e6a9 0 4px,#f7e2a0 4px 5px); border-bottom:1px solid #d3b65a; }
.settle-head>span { font:10px var(--mono); letter-spacing:2px; color:#8d6323; }
.settle-head h1 { display:block; font:900 42px/1.2 var(--song); color:#b51f25; margin:9px 0 6px; letter-spacing:3px; text-shadow:1px 1px 0 #fff6d8; }
.settle-head p { margin:0; font-size:11px; color:#8a6a2f; }
.settle-net { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#e0dac9; border-bottom:1px solid #e0dac9; }
.settle-net>div { background:#f7f3e7; padding:13px 16px; text-align:center; }
.settle-net span { display:block; font-size:9px; color:#948975; margin-bottom:5px; }
.settle-net b { font:700 21px var(--mono); color:#3d3a30; }
.settle-behavior { display:flex; align-items:baseline; gap:10px; padding:12px 26px; border-bottom:1px dashed #ddd6c4; }
.settle-behavior span { font-size:9px; color:#948975; flex:none; }
.settle-behavior b { font:700 17px var(--song); color:#a41f24; }
.settle-behavior em { font:10px normal var(--sans); color:#8c8370; }
.settle-conclusions { margin:0; padding:14px 26px 14px 44px; border-bottom:1px dashed #ddd6c4; }
.settle-conclusions li { font:12px/1.9 var(--song); color:#4a4639; }
.settle-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:#ece7d8; }
.settle-grid>div { background:#faf7ee; padding:10px 14px; }
.settle-grid span { display:block; font-size:9px; color:#948975; margin-bottom:4px; }
.settle-grid b { font:700 14px var(--mono); color:#3d3a30; }
.settle-achievements { padding:12px 26px 0; }
.ach-head { font-size:9px; color:#948975; margin-bottom:7px; }
.ach-item { display:flex; align-items:baseline; gap:9px; padding:4px 0; border-bottom:1px dashed #ece7d8; }
.ach-item b { font:700 12px var(--song); color:#9a6412; flex:none; }
.ach-item span { font-size:10px; color:#8c8370; }
.settle-card .primary-btn { margin:18px 26px 22px; width:calc(100% - 52px); }

/* ── 动画 ───────────────────────────────────────────── */
@keyframes ticker-scroll { to { transform:translateX(-50%); } }
@keyframes benefit-flash { 0%,35%,100% { background:#c62725; color:#fff4b1; } 52%,78% { background:#f7d45c; color:#a31a1e; } }
@keyframes live-pulse { 50% { opacity:.4; } }
@keyframes quote-flash { 0% { background:#f2cd72; } 100% { background:transparent; } }
@keyframes ad-enter { from { transform:translateY(30px); opacity:0; } to { transform:translateY(0); opacity:1; } }
@keyframes teacher-highlight { 30% { box-shadow:0 0 0 4px #bf2427; } }

/* ── 响应式 ─────────────────────────────────────────── */
@media (max-width:1450px) { .trading-grid { grid-template-columns:244px minmax(0,1fr) 264px; } }
@media (max-width:1240px) {
  .page-shell,.ribbon-inner { padding-left:18px; padding-right:18px; }
  .masthead { grid-template-columns:1fr 380px; gap:18px; }
  .trading-grid { grid-template-columns:226px minmax(0,1fr) 252px; }
  .positions-grid { grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); }
  .stock-facts { display:none; }
  .message-row { grid-template-columns:36px 52px minmax(0,1fr) 116px; }
}
@media (max-width:1000px) {
  .masthead { grid-template-columns:1fr; }
  .trading-grid { grid-template-columns:minmax(0,1fr) 262px; }
  .watchlist-panel { grid-column:1; grid-row:2; }
  .chart-panel { grid-column:1; grid-row:1; }
  .order-panel { grid-column:2; grid-row:1 / span 2; }
  .positions-panel { grid-column:1 / -1; grid-row:3; }
  .discussion-panel { grid-column:1 / -1; grid-row:4; }
  .stock-list { display:grid; grid-template-columns:1fr 1fr; }
  .stock-row:nth-child(odd) { border-right:1px solid #e5e0d1; }
  .watchlist-header { display:none; }
  .positions-grid { grid-template-columns:1fr; }
  .orders-col { border-left:0; border-top:1px solid #e2ddcd; }
}
@media (max-width:760px) {
  .market-ribbon { height:30px; } .ribbon-inner { gap:16px; font-size:10px; }
  .ribbon-tag { display:none; }
  .page-shell { padding:0 12px; }
  .masthead { padding:14px 0; }
  h1 { font-size:50px; }
  .nav-badge { display:none; }
  .nav-controls { gap:4px; } .nav-controls button { padding:3px 7px; font-size:10px; }
  .good-news { min-height:44px; gap:8px; padding-right:6px; }
  .news-flash { font-size:13px; padding:0 9px; }
  .good-news>strong { font-size:13px; } .good-news>strong span { display:block; font-size:11px; }
  .banner-aside { display:none; }
  .account-strip { gap:14px; flex-wrap:wrap; padding:10px; }
  .account-motto,.account-stat.cash { display:none; }
  .trading-grid { grid-template-columns:1fr; }
  .chart-panel,.watchlist-panel,.order-panel,.positions-panel,.discussion-panel { grid-column:1; grid-row:auto; }
  .chart-wrap { min-height:260px; }
  .discussion-layout { grid-template-columns:1fr; }
  .sentiment { border-left:0; border-top:1px solid #d5cdbb; }
  .message-row { grid-template-columns:34px 50px minmax(0,1fr); gap:7px; }
  .message-side { grid-column:3; text-align:left; }
  .msg-pct,.pick-btn { display:inline-block; margin-right:8px; }
  .db-stats,.settle-net { grid-template-columns:1fr 1fr; }
  .settle-grid { grid-template-columns:1fr 1fr; }
  .night-options { grid-template-columns:1fr; }
  .overlay { padding:10px; }
  .title-name { font-size:44px; }
  .db-trade-head,.db-trade-row { grid-template-columns:42px minmax(0,1fr) 58px 62px; }
  .db-trade-head span:last-child,.db-trade-row span:last-child { display:none; }
  .fake-ad { width:238px; right:10px; bottom:42px; }
  .ad-headline { font-size:21px; }
  .page-footer { flex-direction:column; gap:3px; }
  .news-ticker>strong { padding:0 10px; font-size:10px; letter-spacing:0; }
  .ticker-end { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  .news-flash,.live-dot,.fake-ad:not([hidden]),.teacher-highlight,.stock-row.quote-flash { animation:none; }
  .ticker-track { animation-duration:150s; }
  .book-row .depth,.sentiment-bar i,.toast { transition:none; }
}
