/* 环海舵舱 基础样式：设计令牌 + 通用 reset（各页共享，避免逐页重复）。
   浅色极简主题：轻微冷灰底 + 纯白卡片，去边框、极轻弥散阴影、克制图表色。 */
:root {
  --bg:#f0f2f5; --panel:#FFFFFF; --border:#e1e5ed; --text:#182536;
  --dim:#526176; --cyan:#315efb; --up:#10B981; --down:#EF4444; --gold:#F59E0B;
  --orange:#F97316; --purple:#8B5CF6;
  --shell-dark:#242c38; --rail-dark:#151a22; --rail-width:170px; --rail-compact-width:64px;
  --ui-font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
}
* { margin:0; padding:0; box-sizing:border-box; }
html, body { background:var(--bg); color:var(--text); }
.hidden { display:none !important; }
/* 通用卡片 */
.panel, .kpi, .card {
  background:var(--panel); border-radius:10px;
  box-shadow:0 4px 20px 0 rgba(0,0,0,0.02);
}
/* 通用表格：去竖线，横线极淡，大行高 + 整行 hover */
table { border-collapse:collapse; }
th, td { border:none; border-bottom:1px solid #F3F4F6; }
tr:hover td { background:#F9FAFB; }
th { background:#FFFFFF; color:#6B7280; font-weight:600; }
/* 筛选控件：日常仅文本+小箭头，hover 才现轻边框 */
select, input[type="text"], input[type="date"], input[type="password"], input[type="search"] {
  background:transparent; border:1px solid transparent; border-radius:6px;
  color:var(--text); padding:6px 10px; font-size:13px; transition:border-color .15s;
}
select:hover, input:hover, select:focus, input:focus { border-color:#E5E7EB; outline:none; }
/* 状态徽章 */
.badge { display:inline-block; padding:2px 9px; border-radius:6px; font-size:12px; font-weight:600; }
.badge.ok { background:rgba(16,185,129,.12); color:#059669; }
.badge.warn { background:rgba(245,158,11,.12); color:#D97706; }
.badge.bad { background:rgba(239,68,68,.12); color:#DC2626; }
.badge.new { background:rgba(59,130,246,.12); color:#2563EB; }
.badge.no { background:rgba(107,114,128,.12); color:#6B7280; }
/* 主按钮 */
button.primary, .filters button, .edit-actions button {
  background:var(--cyan); color:#FFFFFF; border:none; border-radius:6px;
  padding:6px 14px; cursor:pointer; font-size:13px; font-weight:600;
}
/* 无障碍基础：键盘焦点可见 + 跳过链接 + 主要按钮/导航触控目标 */
:focus-visible { outline:2px solid var(--cyan); outline-offset:2px; }
.skip-link { position:fixed; top:-100px; left:16px; z-index:10000; background:var(--cyan); color:#FFFFFF; padding:10px 16px; border-radius:6px; font-size:14px; font-weight:600; text-decoration:none; transition:top .15s; }
.skip-link:focus { top:16px; }
button.primary, .filters button, .edit-actions button { min-height:40px; }
/* 视觉隐藏（仅供屏幕阅读器）：全局可复用的 label/状态播报 */
.visually-hidden { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
/* 页面状态：loading/empty/error/ready 共享基座（ready 时不占空间） */
.ui-state { font-size:13px; color:var(--dim); line-height:1.6; }
.ui-state .state-retry { background:var(--cyan); color:#FFFFFF; border:none; border-radius:6px; padding:7px 14px; font-size:13px; font-weight:600; cursor:pointer; margin-left:10px; min-height:40px; }
button.ghost { background:transparent; border:1px solid #E5E7EB; color:var(--text); }
.day-toggle { font-size:12px; padding:3px 10px; border-radius:6px; border:1px solid transparent; background:transparent; color:var(--dim); cursor:pointer; transition:all .2s; }
.day-toggle:hover { border-color:#E5E7EB; color:var(--text); }
.day-toggle.on { background:rgba(59,130,246,.12); border-color:var(--cyan); color:var(--cyan); }
/* KPI 数字 */
.kpi .value { font-size:32px; font-weight:700; color:#111827; font-family:"Inter","Helvetica Neue",-apple-system,sans-serif; font-variant-numeric:tabular-nums; }
.kpi .label { font-size:12px; color:#6B7280; margin-bottom:6px; }

/* 高影响写操作反馈：持久、非阻塞、可关闭/重试，44px 触控 */
.action-feedback { position:fixed; left:50%; transform:translateX(-50%); bottom:16px; max-width:min(92vw,520px); display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:8px; font-size:13px; line-height:1.5; z-index:9500; box-shadow:0 6px 16px rgba(0,0,0,.18); }
.action-feedback.success { background:#ECFDF5; border:1px solid #D1FAE5; color:#065F46; }
.action-feedback.error { background:#FEF2F2; border:1px solid #FECACA; color:#991B1B; }
.action-feedback .af-text { flex:1; min-width:0; word-break:break-word; }
.action-feedback button { min-width:44px; min-height:44px; border-radius:6px; border:1px solid transparent; cursor:pointer; font-size:13px; font-weight:600; }
.action-feedback .af-retry { background:var(--cyan); color:#fff; padding:0 12px; }
.action-feedback .af-close { background:transparent; color:inherit; font-size:18px; line-height:1; }

/* 061 · 本地官方图标按钮（Bootstrap Icons MIT）——放大/收起/侧栏折叠共用 */
.icon-btn {
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; padding:0; box-sizing:border-box;
  background:#FFFFFF; border:1px solid #E5E7EB; border-radius:6px;
  color:#374151; cursor:pointer; flex:none;
}
.icon-btn:hover { border-color:#D1D5DB; background:#F9FAFB; color:#111827; }
.icon-btn:focus-visible { outline:2px solid var(--cyan); outline-offset:2px; }
.icon-btn:active { background:#F3F4F6; }
.icon-btn img, .icon-btn .icon {
  width:16px; height:16px; display:block; pointer-events:none;
}
/* 沉浸容器（转P下钻 / 销售趋势 共用） */
.immersive { position:fixed; inset:0; width:100dvw; height:100dvh; z-index:9000; background:#FFFFFF; overflow:auto; }
body.immersive-lock { overflow:hidden; }

/* 061 · 版本号低强调 chip + 说明文档次级按钮（全局头部） */
.version-chip {
  display:inline-flex; align-items:center; gap:4px; font-size:12px; color:#6B7280;
  background:#F3F4F6; border:1px solid #E5E7EB; border-radius:6px; padding:2px 8px;
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.version-chip .vc-dot { width:6px; height:6px; border-radius:50%; background:var(--cyan); }
a.docs-btn, .docs-btn {
  display:inline-flex; align-items:center; gap:4px;
  background:transparent; border:1px solid #E5E7EB; color:var(--text);
  padding:6px 12px; border-radius:6px; font-size:13px; text-decoration:none; cursor:pointer;
}
a.docs-btn:hover, .docs-btn:hover { border-color:var(--cyan); color:var(--cyan); }
a.docs-btn:focus-visible, .docs-btn:focus-visible { outline:2px solid var(--cyan); outline-offset:2px; }
.docs-btn img { width:14px; height:14px; display:inline-block; pointer-events:none; }

/* 061 · 全局唯一「版本+说明文档」入口组 */
.app-meta-group { display:inline-flex; align-items:center; gap:8px; }
.app-meta-group .version-chip-wrap { display:inline-flex; }

/* ============================================================
   082 · 全站极简视觉体系（最小必要覆盖块）
   原则：浅灰白底 + 深石墨文字 + 单一克制蓝强调；细线边界；
        按钮/筛选统一 6px 圆角；去标题渐变/发光、彩色装饰、厚重阴影与胶囊堆砌；
        保留红绿语义状态与键盘焦点可见。
   约束：仅覆盖视觉属性，不动布局/层级/滚动语义/交互；用 body 作用域提升优先级，
        不引入 !important，不覆盖各页已收敛的窄屏断点。
   ============================================================ */

/* --- 标题：去渐变，强调色收敛为单一蓝 --- */
body .header { background:none; }
body .header .title em { color:var(--cyan); }

/* --- 销售达成：压缩行间留白；进度时间标记改为克制细标（原橙色悬浮阴影） --- */
body .prog { padding-top:16px; margin-bottom:8px; padding-bottom:6px; }
body .prog .head { margin-bottom:6px; }
body .prog .bar { margin-bottom:5px; }
body .prog .tlabel { top:-18px; background:none; color:#6B7280; padding:0; box-shadow:none; border-radius:0; font-size:10px; line-height:1; font-weight:600; }
body .annual .bar-wrap { padding-top:20px; }
body .annual .tlabel { top:-20px; background:none; color:#6B7280; padding:0; box-shadow:none; border-radius:0; font-size:10px; line-height:1; font-weight:600; }
body .abar { margin-bottom:8px; }
body .time-line, body .timeprog { border:1px solid var(--border); border-radius:6px; }
body .time-line .tl-fill { background:var(--cyan); }
body .time-line b { color:#111827; }
body .rank { color:#111827; }
body .prog .head .settled b { color:#111827; }

/* --- 按钮/筛选/徽章：统一 6px 圆角，去胶囊堆砌 --- */
body .tab, body .skufilter button, body .skufilter select,
body .trendfilters button, body #trendDrill .sortbar button,
body .dtab, body .preset-btn, body .cmp-gran, body .scope-chip,
body .lvl-pill, body .badge, body .badge.lvl, body .prog .head .badge,
body .day-toggle, body .filters select, body .filters input,
body .range-picker, body .body-toggle, body #backToParentBtn,
body .opt-tag, body .field, body .scope-checks, body #seasonSkuChecks,
body .login-card input, body .login-card button,
body .login-box input, body .login-box button,
body .annual-exclusion-btn, body .wrap button, body .layout button,
body .layout .sidebar .nav-item, body .layout .nav-section summary,
body textarea { border-radius:6px; }
body .wrap .ttab { border-radius:0; }

/* --- 选中/主操作态统一为克制蓝（原黑底胶囊改为蓝底白字，文字色沿用原白） --- */
body .dtab.active { background:var(--cyan); border-color:var(--cyan); }
body .day-toggle.active { background:var(--cyan); border-color:var(--cyan); }
body .filters button.preset-btn.active,
body .filters button.preset-btn[aria-pressed="true"] { background:var(--cyan); border-color:var(--cyan); }
body .filters button.cmp-gran.active,
body .filters button.cmp-gran[aria-pressed="true"] { background:var(--cyan); border-color:var(--cyan); }
body .dim-btn.on { background:var(--cyan); }
body .trendfilters button.query { background:var(--cyan); border-color:var(--cyan); }
body .batch-btn, body .act-btn, body .import-btn { background:var(--cyan); }
body .batch-btn:hover, body .act-btn:hover, body .import-btn:hover { background:#2563EB; }
body .layout .sidebar .nav-item.active { background:var(--cyan); color:#FFFFFF; }

/* --- 厚重阴影收敛为轻量投影；弹窗/登录/模态卡片圆角统一（层级与滚动语义不动） --- */
body .hint .hint-tip, body .kpi .tip { box-shadow:0 6px 20px rgba(0,0,0,.12); }
body .colset-pop { box-shadow:0 6px 20px rgba(0,0,0,.08); }
body .flatpickr-calendar { box-shadow:0 6px 20px rgba(0,0,0,.12); }
body .target-transfer-card { box-shadow:0 8px 24px rgba(0,0,0,.10); border-radius:10px; }
body .detail-card, body .emp-modal-card { border-radius:10px; }
body .login-card, body .login-box .panel { border-radius:10px; }
body #skuTable table th[data-col="op"],
body #skuTable table td[data-col="op"] { box-shadow:-1px 0 0 var(--border); }

/* --- admin：彩色装饰线收敛为统一细线；分数条去渐变（保留绿色语义） --- */
body .screen-card, body .screen-card:nth-child(2) { border-top:1px solid var(--border); }
body .score-bar i { background:#10B981; }
