/* ============================================================
   ROSUN UI · 盈透风金标准(2026-09-27 定) — Rosun Management 全系统共用底板
   白底 + 灰底分组 + 细线;主色 ROSUN 红;4px 圆角;不用投影、渐变;信息密;数字等宽。
   以后改风格只改这一份。各板块只写自己的版面,颜色/圆角/字号一律取这里的变量。
   ============================================================ */
:root{
  --r-red:#CC0011; --r-red-hover:#A8000E; --r-red-soft:#FBECED;
  --r-link:#1A5FB4;
  --r-ink:#1C1E21; --r-ink-2:#4A4F57; --r-muted:#7A808A; --r-faint:#A6ABB3;
  --r-bg:#FFFFFF; --r-bg-2:#F2F3F5; --r-bg-3:#F8F9FA;
  --r-line:#DCDFE4; --r-line-soft:#E9EBEE;
  --r-up:#D0021B; --r-down:#0B8A3E;                 /* 涨跌色(A 股口径:红涨绿跌),只用于行情和买卖方向 */
  --r-ok:#0B7A3E; --r-ok-soft:#E8F3EC;
  --r-warn:#8A5A00; --r-warn-soft:#FBF1DC;
  --r-err:#B3261E; --r-err-soft:#FBEDEC;
  --r-radius:4px; --r-radius-card:6px; --r-radius-sheet:10px;
  --r-fs-xl:22px; --r-fs-lg:18px; --r-fs-md:14px; --r-fs-sm:12px;
  --r-font:"PingFang SC","Microsoft YaHei","PingFang TC","Microsoft JhengHei",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --r-mono:"SF Mono","Roboto Mono",Consolas,"Liberation Mono",Menlo,monospace;
}

*{box-sizing:border-box}
html,body{margin:0;font-family:var(--r-font);font-size:var(--r-fs-md);line-height:1.5;color:var(--r-ink);
  background:var(--r-bg-2);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}
h1,h2,h3,h4{margin:0;color:var(--r-ink);font-weight:600}
h1{font-size:var(--r-fs-xl)} h2{font-size:var(--r-fs-lg)} h3{font-size:16px} h4{font-size:var(--r-fs-md)}
p{margin:0}
a{color:var(--r-link);text-decoration:none;cursor:pointer}
a:hover{text-decoration:underline}
code{font-family:var(--r-mono);font-size:var(--r-fs-sm);background:var(--r-bg-2);border:1px solid var(--r-line-soft);border-radius:2px;padding:1px 5px}
::selection{background:var(--r-red-soft);color:var(--r-ink)}
::placeholder{color:var(--r-faint)}

*{scrollbar-width:thin;scrollbar-color:#C4C8CF transparent}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-thumb{background:#C4C8CF;border-radius:8px;border:2px solid transparent;background-clip:content-box}
*::-webkit-scrollbar-thumb:hover{background:#A6ABB3;background-clip:content-box}

/* —— 文字 —— */
.muted{color:var(--r-muted)} .small{font-size:var(--r-fs-sm)}
.r-num{font-family:var(--r-mono);font-variant-numeric:tabular-nums}
.r-up{color:var(--r-up)} .r-down{color:var(--r-down)}
.err{color:var(--r-err);font-size:var(--r-fs-sm);min-height:18px}

/* —— 图标(线性,单色,跟随文字颜色) —— */
.r-ico{width:16px;height:16px;flex:none;display:inline-block;vertical-align:-3px;
  fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* —— 按钮:主按钮 ROSUN 红;其余白底细边 —— */
.r-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 14px;
  font-family:var(--r-font);font-size:var(--r-fs-md);font-weight:500;line-height:1;white-space:nowrap;
  color:var(--r-ink);background:var(--r-bg);border:1px solid var(--r-line);border-radius:var(--r-radius);cursor:pointer;
  transition:background .12s,border-color .12s,color .12s}
.r-btn:hover{border-color:#B9BEC6;background:var(--r-bg-3)}
.r-btn:focus-visible{outline:2px solid var(--r-red);outline-offset:1px}
.r-btn:disabled{opacity:.5;cursor:not-allowed}
.r-btn.primary{color:#fff;background:var(--r-red);border-color:var(--r-red);font-weight:600}
.r-btn.primary:hover{background:var(--r-red-hover);border-color:var(--r-red-hover)}
.r-btn.text{border-color:transparent;background:transparent;color:var(--r-ink-2);padding:0 8px}
.r-btn.text:hover{background:var(--r-bg-2);color:var(--r-ink)}
.r-btn.danger{color:var(--r-err)}
.r-btn.sm{height:26px;padding:0 10px;font-size:var(--r-fs-sm)}
.r-btn.lg{height:44px;font-size:15px}
.r-btn.block{display:flex;width:100%}

/* —— 输入 —— */
.r-input{width:100%;height:36px;padding:0 12px;font-family:var(--r-font);font-size:var(--r-fs-md);color:var(--r-ink);
  background:var(--r-bg);border:1px solid var(--r-line);border-radius:var(--r-radius);outline:none;transition:border-color .12s}
.r-input:hover{border-color:#B9BEC6}
.r-input:focus{border-color:var(--r-red)}
.r-input.lg{height:44px;font-size:15px}

/* —— 分组面板:白底细线,不用投影 —— */
.r-panel{background:var(--r-bg);border:1px solid var(--r-line);border-radius:var(--r-radius-card)}
.r-panel-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--r-line);font-weight:600}
.r-panel-bd{padding:14px}

/* —— 状态标签 —— */
.r-tag{display:inline-block;font-size:var(--r-fs-sm);line-height:18px;padding:0 7px;border-radius:2px;background:var(--r-bg-2);color:var(--r-ink-2);white-space:nowrap}
.r-tag.ok{background:var(--r-ok-soft);color:var(--r-ok)}
.r-tag.warn{background:var(--r-warn-soft);color:var(--r-warn)}
.r-tag.err{background:var(--r-err-soft);color:var(--r-err)}

/* —— 提示条 —— */
.r-note{display:flex;align-items:flex-start;gap:8px;padding:9px 12px;font-size:13px;border:1px solid var(--r-line);border-left:3px solid var(--r-muted);border-radius:var(--r-radius);background:var(--r-bg)}
.r-note.warn{border-left-color:#C98A00;background:var(--r-warn-soft);color:#5E3E00}
.r-note.err{border-left-color:var(--r-err);background:var(--r-err-soft);color:#7A1A14}

/* —— 表格:细线,表头灰底,数字右对齐等宽 —— */
.r-table{width:100%;border-collapse:collapse;font-size:13px;background:var(--r-bg)}
.r-table th{text-align:left;font-weight:600;color:var(--r-ink-2);background:var(--r-bg-2);padding:7px 10px;border-bottom:1px solid var(--r-line);white-space:nowrap}
.r-table td{padding:7px 10px;border-bottom:1px solid var(--r-line-soft);color:var(--r-ink)}
.r-table tbody tr:hover td{background:var(--r-bg-3)}
.r-table .num{text-align:right;font-family:var(--r-mono);font-variant-numeric:tabular-nums}

/* —— 弹层 —— */
.r-mask{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(28,30,33,.45)}
.r-dialog{width:100%;max-width:380px;max-height:calc(100vh - 32px);overflow:auto;background:var(--r-bg);border:1px solid var(--r-line);border-radius:var(--r-radius-card);
  padding:20px;display:flex;flex-direction:column;gap:12px}
.r-dialog h3{font-size:16px}
.r-dialog-ft{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}

/* 触屏:输入框 ≥16px,防 iOS 聚焦时整页放大 */
@media (pointer:coarse){ .r-input{font-size:16px} .r-btn{min-height:36px} .r-btn.sm{min-height:30px} }
