/* 仪表盘皮肤 —— 日内终端和主站的仪表盘型页面(新闻等)**共用这一份**。
 *
 * 为什么要抽出来(2026-08-08 用户提):在这之前是两边各抄一半 —— dash.html 里手抄了
 * 主站的站点头部(那段注释自己写着「改主站头部时这段要跟着改,否则两边会漂」),
 * 而新闻页又用 Tailwind 照着 dash.html 的数值抄了一遍面板。抄两次就是漂两次,
 * 而且每加一个页面还要再抄一遍。现在改这一个文件,两边一起变。
 *
 * ⚠️ 所有规则都收在 .dash-skin 作用域里。原文里有 header{} / table{} / th,td{}
 * 这种**元素选择器**,不加作用域直接给主站用会把整站的表格和按钮一起改掉。
 * 用法:
 *   日内   backend/intraday/dash.html   <body class="dash-skin">
 *   主站   仪表盘型页面的最外层容器加 className="dash-skin"
 * 两边都通过 URL /intraday/dash-skin.css 引这一份(生产是同源单体)。
 */

.dash-skin, .dash-skin * { box-sizing: border-box; }

.dash-skin{--bg:#0b0e11;--ink:#cdd6e0;--muted:#7d8a99;--line:#1c2530;--good:#22c55e;--bad:#ef4444;
  /* 字体也属于皮肤。日内是 body{font:12px/1.4 ui-monospace...},抽皮肤时漏了它,
     结果主站那边字形字号全不一样(用户 2026-08-08:"横幅里面的字体样式和日内的都不一样")。
     数字等宽是刚需 —— 时钟、价格、条数跳动时不能左右晃。 */
  font:12px/1.4 ui-monospace,Menlo,Consolas,monospace;color:var(--ink);}
.dash-skin header{height:36px;display:flex;align-items:center;gap:10px;padding:0 12px;border-bottom:1px solid var(--line);background:var(--bg);}
.dash-skin header b{letter-spacing:.05em;}
.dash-skin header .sp{flex:1;}
.dash-skin header button{background:#16202b;border:1px solid #2a3543;border-radius:6px;color:var(--ink);font-size:11px;padding:5px 10px;cursor:pointer;}
.dash-skin header button:hover{filter:brightness(1.25);}
.dash-skin header button.tgl{color:var(--muted);}
.dash-skin header button.tgl.on{color:var(--ink);border-color:#3b82f6;background:#152232;}
.dash-skin header .muted{color:var(--muted);font-size:11px;}
.dash-skin .grid-stack{background:#06080a;}   /* 高度由 gridstack 按行数自己撑,页面整体滚动 */
.dash-skin .grid-stack::-webkit-scrollbar{display:none;}
.dash-skin .grid-stack-item-content{background:var(--bg);border:1px solid var(--line);border-radius:6px;overflow:hidden;display:flex;flex-direction:column;scrollbar-width:none;}
.dash-skin .grid-stack-item-content::-webkit-scrollbar{display:none;}   /* gridstack forces overflow-y:auto here; keep scroll, hide the bar */
.dash-skin .whead{flex:0 0 auto;height:22px;display:flex;align-items:center;gap:8px;padding:0 8px;font-size:11px;color:var(--muted);cursor:move;border-bottom:1px solid var(--line);background:#0e141b;}
.dash-skin .whead .t{color:var(--ink);font-weight:600;}
.dash-skin .whead .ohlc{flex:1;color:var(--muted);overflow:hidden;white-space:nowrap;}
.dash-skin .whead .x,.dash-skin .whead .e,.dash-skin .whead .cb{cursor:pointer;color:var(--muted);padding:0 4px;position:relative;z-index:30;display:inline-flex;align-items:center;}
.dash-skin .whead .cb svg{display:block;}
.dash-skin .whead .x:hover{color:var(--bad);}.dash-skin .whead .e:hover{color:var(--ink);}
.dash-skin .whead .pct{font-weight:600;}
.dash-skin .wnum{position:absolute;left:4px;bottom:4px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:rgba(22,32,43,.85);border:1px solid #2a3543;color:var(--muted);font-size:10px;line-height:15px;text-align:center;cursor:pointer;z-index:40;}
.dash-skin .wnum:hover{color:var(--ink);border-color:#3b82f6;}
.dash-skin table{width:100%;border-collapse:collapse;font-size:10px;}
.dash-skin th,.dash-skin td{padding:2px 4px;text-align:right;white-space:nowrap;}
.dash-skin th:first-child,.dash-skin td:first-child{text-align:left;}
.dash-skin th{color:var(--muted);cursor:pointer;position:sticky;top:0;background:var(--bg);}
/* 逐列左对齐(文字列:策略/代码/信号/状态…)。表格默认右对齐是给数字用的,
   只有第一列自动靠左 —— 多文字列的表(量化持仓/买卖记录)需要这个。 */
.dash-skin th.l,.dash-skin td.l{text-align:left;}
/* 表格里的涨绿跌红不跟 .good/.warnc 的 11px 走 —— 表格是 10px,混着会一格大一格小 */
.dash-skin td.good,.dash-skin td.badc,.dash-skin td .good,.dash-skin td .warnc{font-size:inherit;}
.dash-skin tbody tr{cursor:pointer;}.dash-skin tbody tr:hover{background:#161f2b;}
/* .sel 要写在 :hover **之后** —— 两者特异度相同,后写的赢。原来顺序反了,
   鼠标停在选中行上时 #1b2735 被 hover 的 #161f2b 盖掉,反而变暗、像没选中。 */
.dash-skin tbody tr.sel,.dash-skin tbody tr.sel:hover{background:#1b2735;}
/* ⚠️ lightweight-charts 内部也是 <table><tr><td> 装每个分格的 —— 上面这条「表格行
   手型 + hover 变色」会**漏进图表里**:鼠标划过主图那一格,整格背景变亮,量那格没变,
   看着就是"一张图两个背景色",光标还变成手(用户 2026-08-10/11 反复提)。
   图表里的行一律恢复默认。

   ⚠️ 这里是 **inherit 不是 default**(2026-08-21 改):cursor 是可继承属性,写成
   default 会把 tr→td→div→canvas 整条链钉死,于是 R:R 量尺设在 .chartbox 上的
   grab(进场线)/ns-resize(目标·止损线)/ew-resize(左边缘)**一个都传不下来** ——
   划到哪儿都是普通箭头(用户 2026-08-21:"以前是会变成手的" / "都是箭头")。
   inherit 同样能压掉表格那条 pointer(往上继承到 .chartbox,平时就是默认光标),
   又不挡住量尺临时设的光标。 */
.dash-skin .tv-lightweight-charts tr{cursor:inherit;}
.dash-skin .tv-lightweight-charts tr:hover{background:transparent;}

/* 「和量化那张自动持仓表一样」的紧凑表格(用户 2026-08-11:
   "把基本面和选股的收藏和筛选表单改成和股票里面的自动持仓的表格那样的统一样式")。
   那些表是主站老组件,单元格上挂满了 Tailwind 的字号/内距 —— 逐个删几百处不现实
   也容易删漏。给表加一个 .qtbl,在这里统一压回皮肤口径:10px、2×4 内距、
   表头灰字贴顶。颜色和对齐仍旧由组件自己决定(涨绿跌红那些不动)。 */
.dash-skin .qtbl{font-size:10px;}
.dash-skin .qtbl th,.dash-skin .qtbl td{padding:2px 4px!important;font-size:10px!important;line-height:1.55;}
.dash-skin .qtbl thead th{color:var(--muted);background:var(--bg);position:sticky;top:0;z-index:5;}
.dash-skin .qtbl thead{background:var(--bg);}
/* 第一列常常是 sticky 的代码列,底色要跟着表格走,别露出下面滚过去的内容。
   ⚠️ 但 hover 时它必须**跟着整行一起变**,否则那一列静止不动,看着就是
   "多了一条背景色带"(用户 2026-08-11:"多了背景色吧,持仓里面好像没有")。 */
.dash-skin .qtbl td.sticky,.dash-skin .qtbl th.sticky{background:var(--bg)!important;}
.dash-skin .qtbl tbody tr:hover td.sticky{background:#161f2b!important;}
/* ⚠️ 这些表外面还包着一层主站的 Card(bg-surface = 更亮的 #151a23),而 sticky 第一列
   刷的是 --bg(#0b0e11) —— 两个色一对比,左边就是一条明显发暗的带子
   (用户 2026-08-11:"那不是还有吗,和左边的背景不一样")。
   量化那张自动持仓没有卡片、直接坐在面板上,所以从来没这问题。
   这里把卡片本身透明掉,整张表直接坐在面板的 --bg 上,第一列自然就融进去了。 */
.dash-skin .qtbl-card{background:transparent!important;border:none!important;border-radius:0!important;}

/* 「当前 ★ 代码 跟踪 · 公司名 …… [搜索]」这一行:窄屏放不下时,**公司名整条挪到
   第二行**,搜索框留在第一行最右边(用户 2026-08-12:"移动版把搜索放到当前的行的
   最右边")。order 排到最后 + flex-basis:100% 就是"我自己占一整行"。
   桌面不动:一行装得下三样东西,公司名仍夹在中间。 */
@media (max-width:639px), (max-height:500px) and (pointer:coarse){
  .dash-skin .curmeta{flex-basis:100%;order:9;}
}

/* 鼠标点完**不留焦点环**。深色底上浏览器默认画一圈,点过的那颗 pill 就一直亮着,
   比真正的选中态还显眼 —— 选股页和跟踪页并排看就像两套样式(用户 2026-08-12:
   "这 2 个头部 pill 的样式不一样吧")。键盘 Tab 过来仍然看得见,可访问性不丢。 */
.dash-skin .dbtn:focus{outline:none;}
.dash-skin .dbtn:focus-visible{outline:2px solid #3b82f6;outline-offset:1px;}

/* 弹窗按钮。和 header button 同一套配色,只是不在 header 里,单独给个类。 */
.dash-skin .dbtn{background:#16202b;border:1px solid #2a3543;border-radius:6px;color:var(--ink);
                 font-size:11px;padding:6px 10px;cursor:pointer;font-family:inherit;}
.dash-skin .dbtn:hover{filter:brightness(1.25);}
.dash-skin .dbtn.ghost{color:var(--muted);}
/* 页签(股票/期权那种)。日内原来写在自己的 <style> 里,主站也要用,挪进共享皮肤。 */
.dash-skin .pagetabs{display:flex;gap:2px;background:#0e141b;border:1px solid #1c2530;border-radius:6px;padding:2px;}
.dash-skin .ptab{background:none;border:none;border-radius:4px;color:var(--muted);font-size:11px;
                 padding:3px 10px;cursor:pointer;font-family:inherit;}
.dash-skin .ptab.active{background:#16202b;color:var(--ink);}
.dash-skin .good{color:var(--good);}
.dash-skin .warnc{color:#f59e0b;font-size:11px;}
.dash-skin .good{font-size:11px;}
.dash-skin .badc{color:var(--bad);}
.dash-skin .muted{color:var(--muted);}
/* 逐条列表的行(量化「明日计划」那种一行一条)。行间一条极浅的分隔线,
   多条堆在一起时能一眼数清是几笔;最后一行不画,免得像截断了。 */
.dash-skin .prow{padding:3px 0;border-bottom:1px solid var(--line);}
.dash-skin .prow:last-child{border-bottom:none;}
/* 文字里的可点代码(点开走势图)。不用 <a>:没有 href,行为是开弹窗不是跳转。 */
.dash-skin .lnk{background:none;border:none;padding:0;font:inherit;color:#3b82f6;cursor:pointer;}
.dash-skin .lnk:hover{text-decoration:underline;}
/* 独立使用的工具行(主站的仪表盘页):上面没有站点头部那条分隔线兜着,只剩一条下边框
   会显得没有边界。补一条上边框 —— 日内那条 header 上方本来就有 .site-hd 的下边框,
   所以不放进 header 的基础规则里,免得那边变成双线。 */
.dash-skin header.standalone{border-top:1px solid var(--line);}

/* ── 复用主站组件时的字体归一 ──────────────────────────────────────────
   跟踪/选股这些页面的面板正文**直接复用主站原有组件**(策略卡、诊断七块、
   价值卡、筛选器),它们自带无衬线字体和 Tailwind 的字号,摆进仪表盘就和日内
   那套等宽 12px 不是一路(用户 2026-08-08:"字体和之前日内的都不统一了")。
   这里只在 .wbody 里把字体族和常用字号拉回皮肤口径 —— 不动颜色/间距,
   免得把人家组件的排版拆了。 */
.dash-skin .wbody{font-family:ui-monospace,Menlo,Consolas,monospace;}
.dash-skin .wbody .text-lg{font-size:15px;}
.dash-skin .wbody .text-base{font-size:13px;}
.dash-skin .wbody .text-sm{font-size:12px;line-height:1.45;}
.dash-skin .wbody .text-xs{font-size:11px;}
.dash-skin .wbody .text-\[11px\]{font-size:11px;}
.dash-skin .wbody .text-\[10px\]{font-size:10px;}
/* 面板比整页窄,主站那套按钮 padding/间距容易把一行工具条挤到换行
   (用户 2026-08-08:"策略选股,尽量把截图弄成一行")。只收紧小胶囊按钮和它们的间距。 */
.dash-skin .wbody button.text-xs{padding:1px 6px;}
.dash-skin .wbody .gap-1\.5{gap:4px;}
.dash-skin .wbody .gap-3{gap:8px;}
/* .tight = 工具条特别挤的面板(筛选器):再压一档,图标缩小、字号降到 10px,
   目标是那排池子/视图按钮**不换行**(用户 2026-08-08:"尽量弄成一行")。 */
.dash-skin .wbody .tight button.text-xs{padding:1px 5px;font-size:10px;}
.dash-skin .wbody .tight button.text-xs svg{width:11px;height:11px;}
.dash-skin .wbody .tight .gap-1\.5{gap:3px;}

/* 扫描器那套:页签(下划线式)和策略胶囊。值与 dash.html 里那份**逐字相同** ——
   新版日内页照旧版的样子来(用户 2026-08-09:"样式也和之前的不一样")。
   旧页退休后把它自己那份删掉,这里就是唯一一份。 */
.dash-skin .tabbar{display:flex;border-bottom:1px solid var(--line);flex:0 0 auto;}
.dash-skin .tabbar .tab{flex:1;background:none;border:none;color:var(--muted);padding:5px 4px;
  font-size:11px;cursor:pointer;border-bottom:2px solid transparent;}
.dash-skin .tabbar .tab.active{color:var(--ink);border-bottom-color:#3b82f6;}
.dash-skin .chip{font-size:10px;padding:2px 6px;border:1px solid #2a3543;border-radius:10px;
  color:var(--muted);cursor:pointer;background:#11171e;white-space:nowrap;}
.dash-skin .chip:hover{color:var(--ink);border-color:#3b82f6;}
.dash-skin .chip.active{color:var(--ink);border-color:#3b82f6;background:#152232;}
/* 看跌形态的 pill 用**浅红**:和看涨那组一眼分得开(用户 2026-08-11:
   "看空的 pill 用浅红色吧")。选中态同样走红,不跟着蓝。 */
.dash-skin .chip-down{color:#f0a0a0;border-color:#5a3540;}
.dash-skin .chip-down:hover{color:#ffc9c9;border-color:#8b4a56;}
.dash-skin .chip-down.active{color:#ffd2d2;border-color:#c2566a;background:#2a1417;}
.dash-skin .chip:disabled{opacity:.4;cursor:default;}

/* 标题栏里的形态开关。值与 dash.html 那份逐字相同(用户 2026-08-09:"改成和旧版一样")。
   没命中的形态**直接不显示**(2026-07-31 定),所以这里只管命中的那几个怎么画。 */
.dash-skin .whead .pat{flex:0 0 auto;display:flex;gap:3px;cursor:default;position:relative;z-index:30;}
/* 2026-09-07 改成和扫描器的 .chip 一样的长相(用户:「大图右上角的 chip 改成和
   扫描器一样的 ui 样式加个框」)—— 描边 + 胶囊圆角,取值逐字照 .chip,
   免得两处审美再漂开。只保留 .pat 自己的 line-height:15px(标题栏行高比扫描器紧)。 */
.dash-skin .whead .pat b{cursor:pointer;font-weight:400;font-size:10px;padding:2px 6px;
  border:1px solid #2a3543;border-radius:10px;background:#11171e;color:var(--muted);
  line-height:15px;user-select:none;font-family:inherit;white-space:nowrap;}
.dash-skin .whead .pat b:hover{color:var(--ink);border-color:#3b82f6;}
/* 选中态跟 .chip.active 对齐:亮字 + 蓝描边 + 深蓝底。
   2026-09-07 之前是「只换底色(#17301f 绿)、文字仍是灰」——加了描边之后
   光换底色和未选中那颗只差一点点、不够醒目,所以三样一起换。
   (更早还有个坑:旧版写 color:var(--up),而 --up 在这页没定义、压根没生效,
    用户 2026-08-09 截图里开着的「震荡」是灰字深底。现在用 --ink,是定义了的。) */
.dash-skin .whead .pat b.on{color:var(--ink);border-color:#3b82f6;background:#152232;}

/* 弹窗(a 加股 / s 开股图 这些)。值与 dash.html 的 .modal/.mbox 逐字相同 ——
   新版照旧版来(用户 2026-08-09:"用旧版的框的样式,位置也要改成以前一样")。 */
/* ⚠️ 默认 display:none,靠 .show 打开 —— 和旧页 dash.html 里的写法**逐字一致**。
   这条规则是共享的:旧页 <body class="dash-skin">,而 `.dash-skin .modal` 的优先级
   高过旧页自己的 `.modal`。之前这里写死了 display:flex,等于把旧页所有本该藏着的
   弹窗一起打开(用户 2026-08-09:"怎么把旧版日内给改了")。新版的 IntraModal 只在
   要显示时才渲染,所以它自己带上 .show。 */
.dash-skin .modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;
  align-items:center;justify-content:center;z-index:1000;}
.dash-skin .modal.show{display:flex;}
/* text-align:left 是**必须写死**的:主站的走势图弹窗挂在表格的 <td class="text-right">
   底下(fixed 定位但 DOM 还在那儿),text-align 会一路继承进来,整个下单框的字都靠右
   (用户 2026-08-11 截图)。同理别的对齐属性也别指望外面。 */
.dash-skin .mbox{background:#0e141b;border:1px solid #243040;border-radius:10px;padding:16px 18px;
  width:300px;box-shadow:0 12px 34px rgba(0,0,0,.6);text-align:left;white-space:normal;}
.dash-skin .mbox .mt{font-size:12px;color:var(--muted);margin-bottom:10px;}
.dash-skin .mbox label{display:block;font-size:11px;color:var(--muted);margin:8px 0 3px;}
.dash-skin .mbox input{width:100%;background:#0b0e11;border:1px solid #2a3543;border-radius:6px;
  color:var(--ink);padding:7px 9px;font:13px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.05em;}
.dash-skin .mbtns{display:flex;gap:8px;margin-top:14px;}
/* 周期框那一行:币比股票多一档(4小时),七个按钮挤在一起时「4小时」「日线」会被
   折成两行(用户 2026-08-24 截图)。让文字不折行、按钮按内容宽,窄屏再整行换行。 */
.dash-skin .mbtns.tfrow{flex-wrap:wrap;gap:6px;}
.dash-skin .mbox .tfrow button{flex:1 1 auto;min-width:56px;padding:7px 8px;white-space:nowrap;}
.dash-skin .mbox button{flex:1;padding:7px 0;border-radius:6px;border:1px solid #2a3543;
  background:#16202b;color:var(--ink);font-size:12px;cursor:pointer;}
.dash-skin .mbox button.primary{border-color:#345b8a;background:#152232;}

/* 快速买卖那两颗(买入 / 卖出)。原本是裸按钮 —— 没边框、没底色,和面板糊在一起,
   看着不像能点(用户 2026-08-29:「把买入和卖出2个按钮加个边框吧」)。
   配色直接照弹窗那套(.mbox button),全站保持一致:买入是 primary 的蓝边,卖出是灰边。 */
.dash-skin .tradebtns button{padding:6px 0;border-radius:6px;border:1px solid #2a3543;
  background:#16202b;color:var(--ink);font-size:12px;cursor:pointer;}
.dash-skin .tradebtns button.primary{border-color:#345b8a;background:#152232;}
.dash-skin .tradebtns button:hover:not(:disabled){filter:brightness(1.25);}
/* 灰掉时**保留边框** —— 只淡化,别让它整个消失(不然又变回"看不出这儿有个按钮") */
.dash-skin .tradebtns button:disabled{opacity:.45;cursor:default;}
.dash-skin .mbox button.ghost{background:#16202b;color:var(--muted);}
.dash-skin .mbox button:focus,.dash-skin .mbox input:focus{outline:none;border-color:#3b6ea5;
  box-shadow:0 0 0 2px rgba(59,110,165,.35);}
/* ⚠️ 触屏上输入框**必须 ≥16px**:iOS Safari 在 input 聚焦时,只要字号小于 16px 就
   自动放大整个视口,而且关掉弹窗后**不会缩回去** —— 表现就是"点了取消,页面变大了"
   (用户 2026-08-12)。下单框还带 autoFocus,所以一打开就放大,躲都躲不掉。
   按指针类型而不是宽度:iPad 也是触屏,窄窗口的桌面浏览器反而没这毛病。
   桌面维持 13px —— 那是等宽数字对齐用的字号,不该为手机改掉。 */
@media (pointer:coarse){
  .dash-skin .mbox input{font-size:16px;}
}
/* 联想列表:贴在输入框下面,不撑开框本身 */
.dash-skin .mbox .hits{margin-top:6px;max-height:200px;overflow-y:auto;border:1px solid #2a3543;border-radius:6px;}
.dash-skin .mbox .hits button{display:block;width:100%;text-align:left;border:none;border-radius:0;
  background:none;padding:5px 8px;font-size:11px;}
.dash-skin .mbox .hits button:hover{background:#16202b;}

/* 推送面板:每行一个「形态 × 周期」的勾选。复选框要覆盖上面 .mbox input 的 width:100% */
.dash-skin .mbox .pushrow{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink);
  margin:0;padding:5px 0;cursor:pointer;}
.dash-skin .mbox .pushrow input[type=checkbox]{width:auto;flex:none;margin:0;cursor:pointer;accent-color:#3b6ea5;}
.dash-skin .mbox .pushrow .sp{flex:1;}
.dash-skin .pushgrid .pgname{font-size:11px;color:var(--muted);margin:8px 0 2px;}
.dash-skin .mbox .mmsg{font-size:11px;color:var(--muted);}
.dash-skin .mbox .mmsg.on{color:var(--good);} .dash-skin .mbox .mmsg.off{color:#f59e0b;}

/* ── 移动端 ─────────────────────────────────────────────────────────────
   窄屏时工具行只留键位符号:[+] [r] 后面的中文说明收起来,整条能横向滚。
   这几条原本写在 dash.html 自己的媒体查询里 —— 主站的仪表盘页也要,所以挪进来共用
   (用户 2026-08-08:"横幅里面也和日内一样,右边用符号就可以了")。
     · b       页面名(手机上标题栏已经写着了,重复)
     · .t      [+]/[r] 后面的中文说明,只留键位字母
     · .sp     弹性占位,在可横向滚的一条里没有意义 */
@media (max-width:639px), (max-height:500px) and (pointer:coarse){
  .dash-skin header{overflow-x:auto;overflow-y:hidden;}
  .dash-skin header > *{flex-shrink:0;}
  .dash-skin header b,.dash-skin header .t{display:none;}
  /* .sp 留着 —— 手机上 [+]/[r] 也要贴右边(用户 2026-08-08:"所有的移动页面,
     加号和 r 都是靠右的")。它是弹性占位:横幅内容没撑满时把按钮顶到右边缘,
     撑满(横向可滚)时自己缩成 0,不占地方。 */
  .dash-skin header .sp{flex:1 1 0;min-width:0;}
  /* .kbd = 纯键位提示([a]加股 [s]开股图…):手机没键盘,整条都不用出现 */
  .dash-skin header .kbd{display:none;}
  /* 面板里的输入框窄屏各占一整行(用户 2026-08-08:"移动的搜索框改成占一行吧")——
     靠右时它会被挤到行尾,剩半行空着,还得眯着眼点。 */
  .dash-skin .wbody input{width:100%!important;margin-left:0!important;}
  .dash-skin .wbody form{width:100%;}
  /* .mobhide = 窄屏下多余的那份。典型:过滤器面板里的标的按钮 —— 手机上顶部的
     面板选择条已经是同一份标的列表,面板里再铺一遍就是点进去又看到自己
     (用户 2026-08-08:"点击跟踪中怎么下面又出现跟踪中")。 */
  .dash-skin .mobhide{display:none!important;}
  /* 去掉外框,和 [a][s][d][c] 那些纯文字键位看齐 */
  .dash-skin header button{background:none;border:none;border-radius:0;padding:5px 2px;color:var(--muted);}
  .dash-skin header button:hover{filter:none;}
}

/* 控制条(标的选择器/过滤器)在窄屏常驻于选择条上方;桌面它就是个普通面板,这里不出现 */
.dash-skin .mobtop{display:none;}
/* 面板选择条。桌面不出现(桌面就用网格本身);窄屏一次只看一个面板 ——
   手机上 12 栏每栏才三十来像素,同时铺开谁都读不了。点一个就放大它。
   规则从 dash.html 挪过来共用(用户 2026-08-08:主站这几页也要顶上的组件选择器)。 */
.dash-skin .panelbar{display:none;}
@media (max-width:639px), (max-height:500px) and (pointer:coarse){
  /* 换行铺开、全部可见:单行横滑的话后面几个要滑才看得到,滑出去的等于不存在 */
  .dash-skin .panelbar{display:flex;gap:6px;flex:0 0 auto;padding:6px 8px;flex-wrap:wrap;
    border-bottom:1px solid var(--line);background:var(--bg);}
  .dash-skin .panelbar button{flex-shrink:0;padding:5px 10px;font-size:11px;border-radius:6px;
    background:#16202b;border:1px solid #2a3543;color:var(--muted);
    font-family:inherit;cursor:pointer;}
  .dash-skin .panelbar button.on{background:#152232;border-color:#3b82f6;color:var(--ink);}
  /* 控制条:常驻顶部;它对应的那个面板和选择条按钮就不用再出现一遍了 */
  .dash-skin .mobtop{display:block;border-bottom:1px solid var(--line);background:var(--bg);}
  .dash-skin .panelbar button[data-hoist="1"]{display:none;}
  .dash-skin .grid-stack-item[data-hoist="1"]{display:none!important;}
}
@media (max-width:639px), (max-height:500px) and (pointer:coarse){
  /* 聚焦模式:手机上一次只看一个面板,其余不占位 —— 否则背后还挂着挤成一团的网格,
     滚动条和空白都会露出来。选中的那个原地铺满,**留在正常流里**(别 fixed:
     曾经浮上去把站点头部整个盖掉,用户 2026-07-29「头部呢」)。 */
  .dash-skin.focus > .grid-stack > .grid-stack-item:not(.sel){display:none!important;}
  .dash-skin.focus > .grid-stack > .grid-stack-item.sel{
    position:relative!important;left:0!important;top:0!important;
    width:100%!important;height:auto!important;min-height:70vh;transform:none!important;}
  /* 选中的那个面板**跟着内容一路长**,不要在面板内部自己滚(用户 2026-08-08:
     "价值投资,移动端没有把下面都撑开啊")。手机上一次只看一个,页面整体滚就够了;
     内层还留一个滚动容器的话,展开个股深度分析只能在一小格里蹭。 */
  .dash-skin.focus > .grid-stack > .grid-stack-item.sel > .grid-stack-item-content{
    /* gridstack 把内容层设成 absolute 铺满外框;absolute 的孩子不撑父高,
       外框的 height:auto 就永远算成 0(表现:正文长到 1754px,面板还是 70vh 那么高)。
       改回 relative,外框才跟着内容长。 */
    position:relative!important;height:auto!important;overflow:visible!important;}
  /* ⚠️ 只管面板**自己那层** .wbody(直系子孙链),别用后代选择器 ——
     走势图弹窗虽然是 position:fixed,DOM 上却挂在表格单元格里、也就是在这个
     .sel 面板**内部**,而它里面也有一个 .wbody(装整屏 K 线的那个)。
     后代选择器会连它一起改成 flex:0 0 auto!important,于是那个 .wbody 高度
     塌成内容高(实测 422x2)→ 图 0 高 → 整块纯黑、连数轴都没有。
     2026-08-11 手机上查了大半天就是这条:桌面和模拟器都复现不了,因为深度链接
     (?chart=)渲染的那个 PriceCell 在面板外面,压根没进这条选择器。 */
  .dash-skin.focus > .grid-stack > .grid-stack-item.sel > .grid-stack-item-content > .wbody{
    overflow:visible!important;flex:0 0 auto!important;}
  /* 网格自身的高度是按行数算的,窄屏让它跟着实际内容走 */
  .dash-skin.focus > .grid-stack{height:auto!important;}
}

/* ── 只给主站那边的仪表盘 ────────────────────────────────────────────────
   按钮默认**不继承**字体。这几条 font-family:inherit 是新版要的(容器是等宽体,
   按钮不跟着就出戏),但旧页 dash.html 从来没给 .chip/.tab/.mbox button 写过字体 ——
   放进共享规则等于顺手把旧页的按钮也换成等宽体。旧页是 <body class="dash-skin">,
   新版外壳是 <div class="dash-skin">,用 :not(body) 把两边分开
   (用户 2026-08-09:"怎么把旧版日内给改了")。 */
.dash-skin:not(body) .tabbar .tab,
.dash-skin:not(body) .chip,
.dash-skin:not(body) .mbox button{font-family:inherit;}

/* ── 期权链 ────────────────────────────────────────────────────────────
   逐字搬自 dash.html 的 .oc* 那一段(用户 2026-08-09:"期权链和旧版差很多,对着改")。
   放在 :not(body) 里 —— 旧页自己那份还在,共享规则一旦有一点点不同就会盖掉它。 */
.dash-skin:not(body) .ocbar{display:flex;gap:8px;align-items:center;padding:4px 6px;border-bottom:1px solid #1c2530;flex-wrap:wrap;}
.dash-skin:not(body) .ocbar .ocexp{background:#0b0e11;border:1px solid #2a3543;color:var(--ink);border-radius:5px;padding:3px 6px;font:12px ui-monospace,monospace;}
.dash-skin:not(body) .ocbar .ocspot{font-size:11px;}
.dash-skin:not(body) .ocbar .ocquick{display:inline-flex;gap:4px;}
.dash-skin:not(body) .ocbar .ocq{background:#0b0e11;border:1px solid #2a3543;color:var(--muted);border-radius:5px;padding:2px 8px;font-size:11px;cursor:pointer;font-family:inherit;}
.dash-skin:not(body) .ocbar .ocq:hover{color:var(--ink);border-color:#3b6ea5;}
/* **竖向**不滚(只画装得下的那几行,见 IntraOptChain 的 fitRows),
   但**横向要能滑** —— 19 列在手机上一屏根本放不下
   (用户 2026-08-09:"期权链在手机上无法左右移动")。上一版把 overflow 整个关掉,
   把横向也一起关了。 */
.dash-skin:not(body) .ocwrap{overflow-x:auto;overflow-y:hidden;flex:1;min-height:0;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;}
.dash-skin:not(body) .ocwrap::-webkit-scrollbar{display:none;}
.dash-skin:not(body) .ocwrap::-webkit-scrollbar{display:none;}
/* min-width 而不是 width:19 列宁可撑开横向滚,也不要挤成一团 */
.dash-skin:not(body) .octbl{min-width:100%;border-collapse:collapse;font:11px ui-monospace,monospace;}
.dash-skin:not(body) .octbl th,.dash-skin:not(body) .octbl td{padding:2px 5px;text-align:right;white-space:nowrap;}
.dash-skin:not(body) .octbl thead th{position:sticky;top:0;background:#0e141b;color:var(--muted);font-weight:400;z-index:1;}
.dash-skin:not(body) .octbl thead tr:first-child th.occall{color:#22c55e;text-align:center;}
.dash-skin:not(body) .octbl thead tr:first-child th.ocput{color:#ef4444;text-align:center;}
.dash-skin:not(body) .octbl td.ocstrike,.dash-skin:not(body) .octbl th.ocstrike{text-align:center;color:var(--ink);font-weight:600;background:#0e141b;position:sticky;left:0;z-index:2;}
.dash-skin:not(body) .octbl thead th.ocstrike{z-index:3;}
.dash-skin:not(body) .octbl td.ocitm{background:rgba(255,255,255,0.045);}
.dash-skin:not(body) .octbl td.oclast{color:var(--ink);}
.dash-skin:not(body) .octbl tr.ocdiv td{background:#12181f;border-top:1px dashed #3b6ea5;border-bottom:1px dashed #3b6ea5;padding:3px 8px;text-align:left;position:static;}
.dash-skin:not(body) .octbl tr.ocdiv .ocdivt{color:#8fb3d9;font-weight:600;}
.dash-skin:not(body) .octbl tbody tr:hover td{background:rgba(255,255,255,0.06);}
.dash-skin:not(body) .calcwarn{font-size:10px;color:#f59e0b;border:1px solid rgba(245,158,11,.35);
  border-radius:3px;padding:1px 5px;cursor:help;white-space:nowrap;}

/* ── 期权计算器 ──────────────────────────────────────────────────────────
   逐字搬自 dash.html 的 .calc* 那一段。同样放 :not(body),不碰旧页。 */
.dash-skin:not(body) .octbl td.ocstrike{position:relative;padding-right:16px;}
/* 钉在单元格右边:跟在数字后面的话,行权价位数不同图标就会左右横跳 */
.dash-skin:not(body) .octbl .occalc{position:absolute;right:0;top:50%;transform:translateY(-50%);
  cursor:pointer;opacity:0;line-height:0;color:var(--muted);}
.dash-skin:not(body) .octbl tr:hover .occalc{opacity:.7;}
.dash-skin:not(body) .octbl .occalc:hover{opacity:1;color:var(--ink);}
.dash-skin:not(body) .mbox.calcbox{width:min(920px,94vw);max-height:92vh;overflow:auto;}
/* 底部按钮吸底,面板展开时也够得着 */
.dash-skin:not(body) .mbox.calcbox .mbtns{position:sticky;bottom:0;background:#0e141b;padding-top:8px;margin-top:0;}
.dash-skin:not(body) .calcgrid{display:grid;grid-template-columns:210px 1fr;gap:12px;align-items:start;}
/* touch-action:none —— 在图上滑手指是要读十字光标的值,不是要翻页 */
.dash-skin:not(body) #calcChart{height:240px;background:#0b0e11;border:1px solid #1e2733;border-radius:6px;
  position:relative;touch-action:none;}
/* 腿表比弹窗宽时自己横向滚,不把整个弹窗撑出滚动条 */
.dash-skin:not(body) .calclegsw{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.dash-skin:not(body) .calclegend{position:absolute;top:4px;right:8px;font-size:10px;display:flex;gap:10px;}
/* 十字光标的三个读数。pointer-events:none 免得它们自己挡住 mousemove */
.dash-skin:not(body) .calcrd{position:absolute;pointer-events:none;background:rgba(13,17,22,.92);
  border:1px solid #2a3644;border-radius:4px;padding:2px 6px;
  font:10px ui-monospace,monospace;color:#e6edf3;white-space:nowrap;display:none;}
.dash-skin:not(body) .calcrdx{transform:translateX(-50%);}
.dash-skin:not(body) .calcrdv{padding:1px 5px;}
.dash-skin:not(body) .calctbl{width:100%;border-collapse:collapse;font:11px ui-monospace,monospace;}
.dash-skin:not(body) .calctbl th{color:var(--muted);font-weight:400;text-align:right;padding:2px 5px;border-bottom:1px solid #243040;}
.dash-skin:not(body) .calctbl td{text-align:right;padding:2px 5px;border-bottom:1px solid #161d26;}
.dash-skin:not(body) .calctbl td:first-child,.dash-skin:not(body) .calctbl th:first-child{text-align:left;}
/* 盈亏表的行可划过联动右图,给个 hover 反馈让人知道它是活的 */
.dash-skin:not(body) .calctbl tr[data-s]:hover td{background:#161d26;cursor:crosshair;}
.dash-skin:not(body) .calcctl{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:8px;align-items:center;margin:10px 0 6px;font-size:11px;color:var(--muted);}
.dash-skin:not(body) .calcctl input[type=range]{width:100%;}
.dash-skin:not(body) .calcgreeks{display:flex;flex-wrap:wrap;gap:14px;font-size:11px;color:var(--muted);padding:6px 0;border-top:1px solid #243040;border-bottom:1px solid #243040;margin-bottom:6px;}
.dash-skin:not(body) .calcgreeks b{color:var(--ink);}
/* 定死列宽:切「买↔卖」「Call↔Put」字宽不同,自动列宽会让整张表一跳一跳 */
.dash-skin:not(body) .calclegs{table-layout:fixed;width:auto;}
.dash-skin:not(body) .calclegs th:nth-child(1),.dash-skin:not(body) .calclegs td:nth-child(1){width:30px;}
.dash-skin:not(body) .calclegs th:nth-child(2),.dash-skin:not(body) .calclegs td:nth-child(2){width:56px;}
.dash-skin:not(body) .calclegs th:nth-child(3),.dash-skin:not(body) .calclegs td:nth-child(3){width:64px;}
.dash-skin:not(body) .calclegs th:nth-child(4),.dash-skin:not(body) .calclegs td:nth-child(4){width:132px;}
.dash-skin:not(body) .calclegs th:nth-child(5),.dash-skin:not(body) .calclegs td:nth-child(5){width:96px;}
.dash-skin:not(body) .calclegs th:nth-child(6),.dash-skin:not(body) .calclegs td:nth-child(6){width:70px;}
.dash-skin:not(body) .calclegs th:nth-child(7),.dash-skin:not(body) .calclegs td:nth-child(7){width:112px;}
.dash-skin:not(body) .calclegs th:nth-child(8),.dash-skin:not(body) .calclegs td:nth-child(8){width:112px;}
.dash-skin:not(body) .calctbl#calcTable{table-layout:fixed;}
.dash-skin:not(body) .calctbl#calcTable th:nth-child(1),.dash-skin:not(body) .calctbl#calcTable td:nth-child(1){width:34%;}
.dash-skin:not(body) .calclegs td:first-child{padding:0;}
.dash-skin:not(body) .calclegs .calcdel{cursor:pointer;color:var(--bad);display:inline-flex;align-items:center;
  justify-content:center;width:22px;height:20px;border-radius:4px;font-size:13px;line-height:1;}
.dash-skin:not(body) .calclegs .calcdel:hover{background:rgba(239,68,68,.18);}
/* 表头跟着内容左对齐:4~8 列的内容都是从左边起排的 */
.dash-skin:not(body) .calclegs th:nth-child(n+4){text-align:left;padding-left:11px;}
.dash-skin:not(body) .calclegs .ctog{cursor:pointer;text-decoration:underline dotted;text-underline-offset:2px;}
.dash-skin:not(body) .calclegs .ctog:hover{color:var(--ink);}
.dash-skin:not(body) .calclegs .cqty,.dash-skin:not(body) .calclegs .cpx,.dash-skin:not(body) .calclegs .civ,
.dash-skin:not(body) .calclegs .cexp,.dash-skin:not(body) .calclegs .cstk{
  padding:3px 5px;font:11px ui-monospace,monospace;text-align:left;
  background:#0b0e11;border:1px solid #2a3543;border-radius:3px;color:var(--ink);
  text-transform:none;letter-spacing:0;}
.dash-skin:not(body) .calclegs .cqty{width:4.6em;}
.dash-skin:not(body) .calclegs .cpx{width:7.6em;} .dash-skin:not(body) .calclegs .civ{width:7.6em;}
.dash-skin:not(body) .calclegs .cexp{width:100%;} .dash-skin:not(body) .calclegs .cstk{width:100%;}
.dash-skin:not(body) .calclegs td:nth-child(6),.dash-skin:not(body) .calclegs td:nth-child(7),
.dash-skin:not(body) .calclegs td:nth-child(8){text-align:right;}
.dash-skin:not(body) .calclegs td{padding:3px 5px;}
/* 手改过的值标绿,一眼看出哪些不是推算来的 */
.dash-skin:not(body) .calclegs .cman,.dash-skin:not(body) .calcpick .cman{color:var(--good);border-color:rgba(34,197,94,.5);}
.dash-skin:not(body) .calcpick{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0;align-items:center;}
.dash-skin:not(body) .calcpick select,.dash-skin:not(body) .calcpick input{padding:4px 6px;font-size:11px;text-transform:none;letter-spacing:0;
  background:#0b0e11;border:1px solid #2a3543;border-radius:3px;color:var(--ink);font-family:inherit;}
.dash-skin:not(body) .calcpick .pAct{width:4.2em;} .dash-skin:not(body) .calcpick .pKind{width:5.2em;}
.dash-skin:not(body) .calcpick .pExp{width:8.6em;} .dash-skin:not(body) .calcpick .pStrike{width:6em;}
.dash-skin:not(body) .calcpick .pQty{width:3.6em;}
.dash-skin:not(body) .calcpick .pInfo{display:inline-flex;align-items:center;gap:4px;min-width:15em;white-space:nowrap;}
.dash-skin:not(body) .calcpick .pPx,.dash-skin:not(body) .calcpick .pIv{width:7.6em;text-align:left;}
.dash-skin:not(body) .calcpick .pBtns{display:inline-flex;gap:6px;}
.dash-skin:not(body) .calcpick .pBtns button{padding:4px 10px;border-radius:5px;border:1px solid #2a3543;
  background:#16202b;color:var(--ink);font-size:11px;cursor:pointer;font-family:inherit;}
.dash-skin:not(body) .calcpick .pBtns button.ghost{color:var(--muted);}
/* 数字框 + 自画的 ▴▾。桌面藏起来(浏览器自己画原生 spinner),手机才显示 —— 逐字照旧版 */
.dash-skin:not(body) .cstep{display:flex;align-items:center;gap:2px;}
.dash-skin:not(body) .calclegs .cstep{width:100%;}
.dash-skin:not(body) .cstep input{min-width:0;flex:1 1 auto;}
.dash-skin:not(body) .cstep .cspin{display:none;}

/* 手机版计算器 —— **逐字照旧版那一段**(用户 2026-08-09:"之前不是用上下箭头吗,
   我没要你换啊,只是说把输入框弄窄的")。桌面是「左表 210px + 右图」并排,手机改成
   图在上、表在下;腿表**折行**排(不是横向滚),每条腿一行,数字框给死宽度,箭头出场。 */
@media (max-width:639px), (max-height:500px) and (pointer:coarse){
  .dash-skin:not(body) .mbox.calcbox{width:96vw;padding:12px;
    /* 底下留一条:iOS 的工具条会压住最后一行按钮(用户 2026-08-09 截图) */
    padding-bottom:calc(14px + env(safe-area-inset-bottom, 0px));}
  .dash-skin:not(body) .mbox.calcbox .mbtns{flex-wrap:wrap;gap:6px;}
  .dash-skin:not(body) .calcgrid{grid-template-columns:1fr;gap:8px;}
  .dash-skin:not(body) .calcgrid #calcChart{order:-1;}
  .dash-skin:not(body) #calcChart{height:190px;}
  .dash-skin:not(body) .calclegend{font-size:9px;gap:6px;}

  .dash-skin:not(body) .calclegsw{overflow-x:visible;}
  .dash-skin:not(body) .calclegs{display:block;width:auto;font-size:11px;}
  .dash-skin:not(body) .calclegs tbody{display:block;}
  .dash-skin:not(body) .calclegs tr:first-child{display:none;}            /* 表头 */
  .dash-skin:not(body) .calclegs tr{display:flex;flex-wrap:wrap;gap:5px;align-items:center;
    padding:6px 2px;border-bottom:1px solid #1e2733;}
  .dash-skin:not(body) .calclegs td{display:inline-flex;align-items:center;padding:0;border:0;}
  /* ⚠️ 桌面那套列宽(td:nth-child(2) 56px…)在 inline-flex 下会变成死宽度,
     「买」和「Call」之间凭空空一大截。逐列清掉 —— 要用 :nth-child(n) 才压得过它们。 */
  .dash-skin:not(body) .calclegs td:nth-child(n){width:auto;}
  .dash-skin:not(body) .calclegs .cstep{width:auto;}
  /* 正股腿的到期/行权/IV 是「—」占位:表格态要它撑列,折行态纯属噪音 */
  .dash-skin:not(body) .calclegs td.cdash{display:none;}
  .dash-skin:not(body) .calclegs td:nth-child(7)::before{content:"价";color:var(--muted);margin-right:4px;}
  .dash-skin:not(body) .calclegs td:nth-child(8)::before{content:"IV";color:var(--muted);margin-right:4px;}
  .dash-skin:not(body) .calclegs td:nth-child(8)::after{content:"%";color:var(--muted);margin-left:3px;}
  /* 折行后 td 不再是表格列,select 的 width:100% 没了参照,给死宽度并与选腿面板取同一组值 */
  .dash-skin:not(body) .calclegs .cexp{width:8.6em;}
  .dash-skin:not(body) .calclegs .cstk{width:6em;}
  .dash-skin:not(body) .calclegs .calcdel{width:24px;height:24px;font-size:14px;}   /* 触屏目标要够大 */
  .dash-skin:not(body) .calclegs input,
  .dash-skin:not(body) .calclegs select{padding:4px 5px;}
  /* 自画的上下箭头出场:竖排两个,贴在输入框右侧、数字左对齐让出来的那块空当 */
  .dash-skin:not(body) .cstep .cspin{display:flex;flex-direction:column;justify-content:center;gap:2px;
    width:18px;flex:0 0 auto;}
  .dash-skin:not(body) .cstep .cbtn{display:flex;align-items:center;justify-content:center;height:13px;
    border:1px solid #2a3543;border-radius:3px;background:#0b0e11;color:var(--muted);
    font-size:9px;line-height:1;cursor:pointer;user-select:none;}
  .dash-skin:not(body) .cstep .cbtn:active{background:#1a2430;color:var(--ink);}
  /* 输入框必须给**显式**宽度:不给的话固有宽约 20 字符 ≈ 148px,三个数字框各占一行 */
  .dash-skin:not(body) .calclegs .cqty{width:38px;flex:0 0 auto;}
  .dash-skin:not(body) .calclegs .cpx{width:58px;flex:0 0 auto;}
  .dash-skin:not(body) .calclegs .civ{width:58px;flex:0 0 auto;}
  /* 选腿面板同理:窄一点,挤成一两行 */
  .dash-skin:not(body) .calcpick{gap:5px;}
  .dash-skin:not(body) .calcpick select,
  .dash-skin:not(body) .calcpick input{padding:4px 5px;font-size:11px;}
  .dash-skin:not(body) .calcpick .pAct{width:4em;}
  .dash-skin:not(body) .calcpick .pKind{width:4.8em;}
  .dash-skin:not(body) .calcpick .pExp{width:8.6em;}
  .dash-skin:not(body) .calcpick .pStrike{width:6em;}
  .dash-skin:not(body) .calcpick .pQty{width:38px;flex:0 0 auto;}
  .dash-skin:not(body) .calcpick .pInfo{min-width:0;gap:4px;}
  .dash-skin:not(body) .calcpick .pPx,
  .dash-skin:not(body) .calcpick .pIv{width:58px;flex:0 0 auto;}
}


/* 周期框:数字键提示 + 标出当前周期(逐字照 dash.html) */
.dash-skin .mbox button .kn{color:var(--muted);font-size:10px;margin-right:4px;}
.dash-skin .mbox button.cur{border-color:#345b8a;background:#152232;}

/* 手机上的图表标题栏。三个必修项(2026-08-11 实测 375px 宽):
   · .t 不写 nowrap 会在 46px 的盒子里**折成三行**,溢出 22px 的标题栏、糊在
     K 线左上角(用户:"左上角有问题");
   · .pat 原来是 flex:0 0 auto,一排形态按钮撑到 319px,把 × 顶到 x=407 —— 
     **屏幕外**,手机上没有 Esc,弹窗就关不掉了;
   · .ohlc 是跟随光标的读数,触屏根本没有 hover,白占一行。 */
@media (max-width:639px), (max-height:500px) and (pointer:coarse){
  .dash-skin:not(body) .whead{gap:6px;}
  .dash-skin:not(body) .whead .t{white-space:nowrap;flex:0 0 auto;}
  /* ⚠️ .ohlc 曾经在窄屏 display:none —— 理由是"触屏没有 hover,这行读数白占地方"。
     但窄屏是**聚焦模式**:屏幕上只有一张图,它按大图渲染,读数本来就该写在顶上,
     浮框只会挡住 K 线(用户 2026-08-12:"不要显示浮框,数据显示在顶部")。
     所以只在**没有读数时**塌成 0 宽(空的 flex:1 不占视觉),有读数就显示。 */
  .dash-skin:not(body) .whead .ohlc:empty{display:none;}
  /* 手机上 .ohlc 藏了,原本靠它(flex:1)把后面这排顶到右边 —— 少了它就得自己顶。
     margin-left:auto 而不是 justify-content:flex-end:后者在内容溢出时会把**前几颗
     推到滚动区外面滑不回来**(flex-end + overflow 的老毛病)。
     flex:0 1 auto = 放得下就贴右、放不下才缩,缩了还能横滑(用户 2026-08-11:
     "顶上那些筹码什么的后面的都靠右")。 */
  .dash-skin:not(body) .whead .pat{flex:0 1 auto;margin-left:auto;min-width:0;
    overflow-x:auto;overflow-y:hidden;scrollbar-width:none;}
  /* 按钮本身**不许被压**:压了就在两三个字里折行(实测「筹码」折成上下两行、
     标题栏被撑到 35px)。要的是整排横滑,不是每颗都缩水。 */
  .dash-skin:not(body) .whead .pat b{flex:0 0 auto;white-space:nowrap;}
  /* 快捷键那几颗([c]周期 / [m]均线 / [b]买入)手机上只留符号,文字收起来 ——
     和日内横幅上的 [e]盘后 同一套做法(那儿也是把「盘后」包在 .t 里、窄屏 display:none)。
     手机本来就没键盘,这三个是当按钮点的,符号足够认(用户 2026-08-11)。 */
  .dash-skin:not(body) .whead .pat b .t{display:none;}
  .dash-skin:not(body) .whead .pat::-webkit-scrollbar{display:none;}
  /* 右侧那组(形态按钮 → 齿轮 → 关闭)要**整体**贴右,所以 margin-left:auto 只能
     加在其中**第一个**上。加两个的话 flex 会把剩余空间平分,前面那颗就停在中间 ——
     原来 .pat 和 .x 各有一个,于是「R:R ⚙」卡在正中、× 单独贴右
     (用户 2026-08-12:"这个齿轮和rr要靠右")。
     谁算"第一个"要看这个面板有没有形态按钮:有 .pat 就是它(上面那条),
     没有(扫描器/持仓…)就轮到齿轮。 */
  .dash-skin:not(body) .whead .e{margin-left:auto;}
  .dash-skin:not(body) .whead .pat ~ .e{margin-left:0;}
  .dash-skin:not(body) .whead .x{flex:0 0 auto;margin-left:0;}
}

/* 放大时右边那条盘口(旧版 .sidequote:fixed 贴右、220px、左边一条分隔线)。
   这里在 flex 行里,所以只要宽度和边框,不用 fixed。 */
.dash-skin:not(body) .sidequote{width:var(--sideqw,220px);flex:0 0 auto;overflow:hidden;
  background:var(--bg);border:1px solid var(--line);border-radius:6px;
  display:flex;flex-direction:column;}
.dash-skin:not(body) .sidequote .wbody{flex:1;min-height:0;overflow:auto;position:relative;}
@media (max-height:500px) and (pointer:coarse){
  .dash-skin:not(body) .sidequote{width:180px;}   /* 横屏手机窄一点,给图多留地方 */
}

/* IV / HV 面板的四层版式(逐字照 dash.html 的 .volroot/.volhead/.volchart/.volnote) */
/* ⚠️ 这里**不能**照旧版写 position:absolute;inset:0 —— 自动贴合是量正文子元素的高度,
   绝对定位的子元素高度恒等于容器高度,于是"量完就长、长完再量",面板一直往上涨
   (用户 2026-08-09:"期权那个 IV 组件,怎么高度在慢慢拉长")。在新外壳里它就是个普通的 flex 列。 */
.dash-skin:not(body) .volroot{display:flex;flex-direction:column;height:100%;min-height:0;}
.dash-skin:not(body) .volhead{display:flex;flex-wrap:wrap;gap:10px;padding:5px 10px;font-size:11px;align-items:center;}
.dash-skin:not(body) .volchart{flex:1;min-height:0;}
.dash-skin:not(body) .volnote{padding:3px 10px 6px;font-size:10px;color:var(--muted);line-height:1.4;}


/* 期权链工具条:手机上把「推算报价」挤回同一行(用户 2026-08-09:"上面推算报价尽量放到一行") */
@media (max-width:639px){
  .dash-skin:not(body) .ocbar{gap:5px;padding:4px;}
  .dash-skin:not(body) .ocbar .ocexp{padding:2px 4px;font-size:11px;}
  .dash-skin:not(body) .ocbar .ocq{padding:2px 5px;font-size:10px;}
  .dash-skin:not(body) .ocbar .ocspot{font-size:10px;}
  .dash-skin:not(body) .calcwarn{font-size:9px;padding:0 4px;}
}

/* 手机聚焦模式下面板高度由内容决定,而这两块内部是 height:100% —— 会塌成 0。给个下限。 */
@media (max-width:639px), (max-height:500px) and (pointer:coarse){
  .dash-skin:not(body) .volroot{height:auto;}
  .dash-skin:not(body) .volchart{min-height:240px;}
  .dash-skin:not(body) .ocwrap{min-height:60vh;}
  /* K 线也一样:聚焦模式下父高由内容定,flex:1 撑不起来,只剩兜底的 140px
     (用户 2026-08-09:"股票的小图显示的也不完整啊")。!important 是为了盖掉
     组件上那个 minHeight:140 的行内样式。 */
  .dash-skin:not(body) .chartbox{min-height:56vh!important;}
}

/* 自定义扫描的条件行(旧版 .critrows/.critrow) */
.dash-skin:not(body) .critrows{display:flex;flex-direction:column;gap:6px;margin-top:10px;}
.dash-skin:not(body) .critrow{display:flex;gap:6px;align-items:center;}
.dash-skin:not(body) .critrow select,.dash-skin:not(body) .critrow input{
  background:#0b0e11;border:1px solid #2a3543;border-radius:5px;color:var(--ink);
  padding:4px 6px;font:11px ui-monospace,monospace;}
.dash-skin:not(body) .critrow .cfield{flex:1 1 auto;min-width:0;}
.dash-skin:not(body) .critrow .cop{width:4.2em;flex:0 0 auto;}
.dash-skin:not(body) .critrow .cval{width:6em;flex:0 0 auto;}
.dash-skin:not(body) .critrow .cdel{flex:0 0 auto;width:24px;padding:0;border:1px solid #2a3543;
  border-radius:5px;background:#16202b;color:var(--bad);cursor:pointer;font-family:inherit;}
.dash-skin:not(body) .critrow .cdel:hover{background:rgba(239,68,68,.18);}

/* 走势图弹窗:图在左、笔记在右(和日内大图右侧挂盘口同一个分法) */
.chartrow{display:flex;gap:8px;align-items:stretch;}
.chartrow .chartmain{flex:1;min-width:0;}
.chartrow .chartside{flex:0 0 300px;}
.chartrow .chartside .sidequote{width:100%;height:100%;}
@media (max-width:900px){
  .chartrow{flex-direction:column;}
  .chartrow .chartside{flex:0 0 auto;}
}

/* ── lightweight-charts 内部是拿 <table> 排版的,别让本站的表格样式漏进去 ──
   上面 `.dash-skin th,td{padding:2px 4px}`(还有 .qtbl 那条 !important)会给
   图表的每一行都加 4px:主图 + 分隔条 + 副图 + 横轴 = 十几像素,整张表就比图本身
   高出一截,横轴那条被 overflow:hidden 切掉半截日期。
   走势图弹窗是渲染在**价格单元格 <td> 里面**的,所以这些规则一定会命中。
   (用户 2026-08-11:"底下被挡住了"、"一切换其他显示就有问题") */
.dash-skin .tv-lightweight-charts td,
.dash-skin .tv-lightweight-charts th{
  padding:0!important;border:0!important;line-height:normal!important;
  font-size:inherit!important;white-space:normal!important;text-align:left!important;
  background:transparent!important;position:static!important;
}

/* ── 走势图量图底下的横向工具条(frontend/src/components/ChartTools.tsx)──────
   量化大图和日内大图**共用同一个组件**,长相只有这一份(用户 2026-08-23:
   "在这个走势图量图的底下加个条幅的横向的菜单…不需要2个页面都写一遍吧")。
   按钮视觉逐字沿用标题栏那排 .whead .pat b —— 只换位置不换样子。
   贴在时间轴下沿,所以是上边框不是下边框。

   ⚠️ padding-left 26 不是随手写的:面板左下角那颗序号 .wnum 是
   absolute left:4/bottom:4/z-index:40,条幅贴底正好被它压住第一颗按钮
   (实测第一颗的头一个字被盖掉)。让开它 16px 宽 + 4px 偏移 + 余量。 */
.dash-skin .ctools{flex:0 0 auto;display:flex;align-items:center;flex-wrap:wrap;gap:3px;
  padding:3px 8px 3px 26px;background:#0e141b;border-top:1px solid var(--line);cursor:default;
  position:relative;z-index:30;font-size:11px;color:var(--muted);}
.dash-skin .ctools b{cursor:pointer;font-weight:400;font-size:10px;padding:0 4px;border-radius:2px;
  background:#1c2530;color:var(--muted);line-height:15px;user-select:none;border:none;font-family:inherit;}
.dash-skin .ctools b:hover{color:var(--ink);}
/* 选中态和横幅上的 [e]盘后 **同一个长相**:蓝边 + 深蓝底 + 亮字
   (用户 2026-08-28:「以后那些按钮被选中做个和盘后被选中一样的效果吧」)。
   边框走 inset box-shadow 不走 border —— .ctools b 本来 border:none,
   真加一圈 border 会把整排按钮撑开、位置全挪。 */
.dash-skin .ctools b.on{color:var(--ink);background:#152232;box-shadow:inset 0 0 0 1px #3b82f6;}
/* 分组竖线:左边是 [c][m][k][b] 那组快捷键,右边是指标名 */
.dash-skin .ctools .sep{width:1px;height:11px;background:var(--line);margin:0 4px;display:inline-block;}
