/* =====================================================================
   OnlyFunds · 三页共用基础样式
   (admin.html / dashboard.html / standard.html 都 link 这个文件)

   只放真正共享的东西：设计 token / 通用 reset / 登录覆盖 / 按钮 / 工具类
   各页特有的布局保留在页面内联 <style> 里。
===================================================================== */

:root{
  --bg:#f8f5ee; --panel:#fffdfa; --ink:#1a222c; --ink-2:#4b505a;
  --muted:#7d776c; --faint:#b3ad9f; --line:#e7e2d8; --line-2:#bfb6a8;
  /* 2026-07-02 tokens 升级 (对齐 design-anchor-aman-discreet-luxury):
     旧 Pictet 蓝 #1f3a52 → Aman 青墨 #2a3a2e; 旧金 #a98c54 → Aman 温灰金 #8a7960
     旧背景 #f6f4ef → Aman 月白 #f8f5ee */
  --accent:#2a3a2e; --accent-2:#1a2820; --accent-soft:#ecefe8;
  --gold:#8a7960; --gold-soft:#f0ebde; --gold-2:#6d5a3f;   /* --gold-2: 深金, 用于 amber warning 强调标签 */
  /* 圆角 token (Aman 私行: 两档锐角 + pill, 不要 14 种圆角) */
  --r-sm:2px; --r-md:2px; --r-lg:4px; --r-pill:999px;
  --shadow:0 1px 2px rgba(26,34,44,.05),0 10px 30px -12px rgba(26,34,44,.12);
  /* 字体 token (Aman editorial: Cormorant serif + Inter sans, 不是宋体) */
  --serif:'Cormorant Garamond','Tenor Sans','Georgia','Times New Roman',serif;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;
  --mono:'IBM Plex Mono','SF Mono',ui-monospace,Menlo,Consolas,monospace;
  --num:'Inter',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;   /* tabular nums */
  /* Aman 节奏: 缓动曲线 + 时长 token (替代各页重复定义) */
  --ease-aman:cubic-bezier(.4,0,.2,1);
  --dur-fast:300ms; --dur-base:600ms; --dur-slow:900ms;
  --pos:#1f8f5f; --neg:#c5303a;

  /* ── 历史别名 (2026-08-13) ────────────────────────────────────────
     admin.html 和 dashboard.html 里长期在用一批**从来没有定义过**的变量:
       --card / --bg-1 / --bg-card / --paper / --r-card / --soft / --mut
     无效的 var() 不会报错, 只是那条声明整个作废 —— 背景变透明、圆角变默认。
     后台二级导航条"文字压文字"就是这么来的 (background:var(--card) 失效)。
     这类问题没有任何报错, 只能靠肉眼发现, 而且两个界面里到处都是, 于是
     "两边观感不一致"的来源之一其实是**一边的样式根本没生效**。
     在这里一次性接上, 两个页面同时修好; 新代码请直接用上面的正名。 */
  --card:var(--panel);        /* 卡面 */
  --bg-card:var(--panel);
  --paper:var(--panel);
  --bg-1:var(--bg);           /* 比卡面略深一档的底色 (用于卡里的小格子) */
  --r-card:var(--r-lg);       /* 卡片圆角 = 4px */
  --soft:var(--gold-soft);
  --mut:var(--muted);
}

/* 三级标题 · "eyebrow" 小标签 (2026-08-13)
   两个界面里都在用同一个视觉: 10-10.5px、大字距、全大写、灰。
   但两边都是**写在 style 属性里**的散装声明, 改一次要满文件找。
   收成一个类, 以后 admin 与 dashboard 引同一个。 */
.eyebrow{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);
         font-weight:600;font-family:var(--sans)}

/* 2026-07-02 三页 nav 统一 (对齐 Aman editorial, P1-i):
   - Cormorant serif 14px 500 weight (私行编辑级, 非 workbench Inter)
   - opacity 0.7 → 1.0 hover 淡入 (Aman 节奏)
   - active 用 accent 青墨 1.5px 下划线
   各页只覆盖 height / padding (顶栏尺寸差异) */
.nav a{
  display:flex;align-items:center;padding:0 18px;
  color:var(--ink);opacity:.7;cursor:pointer;text-decoration:none;
  font-family:var(--serif);font-size:14px;font-weight:500;letter-spacing:.01em;
  border-bottom:1.5px solid transparent;margin-bottom:-1px;
  transition:opacity var(--dur-fast) var(--ease-aman),border-color var(--dur-fast) var(--ease-aman)
}
.nav a:hover{opacity:1}
.nav a.active{opacity:1;color:var(--ink);border-bottom-color:var(--accent)}
[data-theme="dark"]{
  --bg:#0c1422; --panel:#141f31; --ink:#e7ecf4; --ink-2:#aeb8c9;
  --muted:#93a0b8; --faint:#5f6b81; --line:#26344a;
  --accent:#5b86c4; --accent-2:#6f97cf; --accent-soft:#1c2b44; --gold:#d0ad60;
  --shadow:0 1px 2px rgba(0,0,0,.35),0 8px 24px rgba(0,0,0,.45);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);
  background:var(--bg);
  color:var(--ink);
  font-size:14px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--accent);text-decoration:none;transition:color .12s}
a:hover{color:var(--accent-2)}
code{font-family:var(--mono);font-size:.92em;background:var(--accent-soft);padding:1px 6px;border-radius:var(--r-card);color:var(--ink)}
hr{border:none;border-top:1px solid var(--line);margin:18px 0}

/* === 按钮 === */
.btn{
  display:inline-block;
  padding:9px 18px;
  border-radius:var(--r-md);
  font-family:var(--sans);
  font-size:13.5px;
  font-weight:600;
  border:1px solid transparent;
  cursor:pointer;
  background:var(--accent);
  color:#f6f4ef;
  transition:transform .12s ease,box-shadow .12s ease,background .12s ease;
}
.btn:hover{background:var(--accent-2);transform:translateY(-1px);box-shadow:var(--shadow)}
.btn.ghost{background:transparent;color:var(--accent);border-color:var(--accent)}
.btn.ghost:hover{background:var(--accent-soft);color:var(--accent-2);transform:none}
.btn.full{display:block;width:100%;text-align:center}
.btn.lg{padding:13px 26px;font-size:15px}
.btn.sm{padding:6px 12px;font-size:12.5px}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* === 通用工具类 === */
.mut{color:var(--muted)}
.faint{color:var(--faint)}
.pos{color:var(--pos);font-weight:600}
.neg{color:var(--neg);font-weight:600}
.num{font-variant-numeric:tabular-nums;text-align:right}
.serif{font-family:var(--serif)}
.pill{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11.5px;border:1px solid var(--line);background:var(--panel);color:var(--ink-2)}
.pill.gold{color:#fff;background:var(--gold);border-color:var(--gold);font-weight:700;letter-spacing:.16em;text-transform:uppercase;font-size:10px}

/* === 状态指示灯 === */
.status{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:middle}
.status.ok{background:var(--pos)}
.status.warn{background:var(--gold)}
.status.bad{background:var(--neg)}
.status.unknown{background:var(--faint)}

/* === Spinner === */
.spin{display:inline-block;width:14px;height:14px;border:2px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;animation:of-spin .8s linear infinite;vertical-align:middle;margin-right:6px}
@keyframes of-spin{to{transform:rotate(360deg)}}

/* === 卡片 / 面板 === */
.panel{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:22px 24px;
  margin-bottom:18px;
  box-shadow:var(--shadow);
}
.panel h3{font-family:var(--serif);font-size:16px;font-weight:600;color:var(--ink);margin-bottom:8px}
.panel p{color:var(--ink-2);line-height:1.7;font-size:13.5px;margin-bottom:8px}

/* === KPI 卡片 === */
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 18px}
.kpi .lbl{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.kpi .val{font-size:24px;font-weight:700;color:var(--ink);margin-top:6px;font-variant-numeric:tabular-nums}
.kpi .sub{font-size:11px;color:var(--muted);margin-top:3px}

/* === 表格 === */
table{width:100%;border-collapse:collapse;font-size:13px;color:var(--ink-2)}
th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:9px 12px;border-bottom:1px solid var(--line);font-weight:700;background:transparent}
td{padding:10px 12px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;color:var(--ink-2)}
tr:hover td{background:rgba(31,58,82,.03)}

/* === 待办 / 提示框 === */
.todo{
  background:var(--accent-soft);
  border:1px dashed var(--accent);
  border-radius:var(--r-md);
  padding:18px 22px;
  color:var(--accent);
  font-size:13px;
  line-height:1.7;
}
.todo b{color:var(--accent-2)}
.todo code{background:rgba(31,58,82,.08)}

/* === 登录覆盖（三页共用） === */
#loginOverlay{
  display:none;
  position:fixed;
  inset:0;
  z-index:9999;
  background:var(--bg);
  align-items:center;
  justify-content:center;
}
#loginForm{
  width:400px;
  max-width:92vw;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:2px;
  box-shadow:0 1px 2px rgba(26,34,44,.04),0 24px 60px -20px rgba(26,34,44,.10);
  padding:56px 44px 40px;
}
/* 2026-07-02 Aman hero: Cormorant 48px light + hairline rule (同 register.html) */
#loginForm .ttl{
  font-family:var(--serif);
  font-size:48px;
  font-weight:300;
  color:var(--ink);
  text-align:center;
  letter-spacing:-.024em;
  line-height:1;
  margin:0 0 12px;
}
#loginForm .ttl::after{
  content:"";display:block;width:36px;height:1px;background:var(--gold);margin:16px auto 0;
}
#loginForm .ttl .pill.gold{font-size:10px;vertical-align:middle;margin-left:6px}
#loginForm .sub{
  text-align:center;
  color:var(--muted);
  font-size:11.5px;
  letter-spacing:.14em;
  font-style:italic;
  font-family:var(--serif);
  margin:14px 0 30px;
}
/* 2026-07-02 Aman underline-only inputs (删框边, 只留底线) */
#loginForm label{display:block;font-size:10px;color:var(--muted);margin-bottom:6px;letter-spacing:.22em;text-transform:uppercase}
#loginForm input{
  width:100%;
  padding:8px 0;
  border:0;
  border-bottom:1px solid var(--line);
  border-radius:0;
  background:transparent;
  color:var(--ink);
  font-size:14px;
  margin-bottom:20px;
  font-family:var(--sans);
  transition:border-color .3s var(--ease-aman);
}
#loginForm input:focus{outline:none;border-bottom-color:var(--accent);box-shadow:none}
#loginErr{color:var(--neg);font-size:11.5px;min-height:16px;margin-bottom:14px;letter-spacing:.02em}
#loginBtn{
  width:100%;
  padding:12px;
  border:1px solid var(--ink);
  border-radius:2px;
  background:var(--ink);
  color:var(--panel);
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  font-family:var(--sans);
  cursor:pointer;
  transition:background .3s var(--ease-aman),color .3s var(--ease-aman);
}
#loginBtn:hover{background:var(--panel);color:var(--ink)}
#loginBtn:hover{background:var(--accent-2)}
#loginBtn[disabled]{opacity:.6;cursor:not-allowed}

/* === 通用页面标题 === */
.page-title{font-family:var(--serif);font-size:28px;font-weight:600;color:var(--ink);margin-bottom:6px;line-height:1.2}
.page-lead{color:var(--ink-2);font-size:14px;margin-bottom:24px;line-height:1.7;max-width:760px}
.section-title{font-family:var(--serif);font-size:18px;font-weight:600;color:var(--ink);margin:24px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--line)}


/* ===== Aman editorial modal (替原生 alert/confirm/prompt, by /static/modal.js) ===== */
.aman-modal-overlay{position:fixed;inset:0;z-index:10001;background:rgba(20,25,31,.32);
                    display:flex;align-items:center;justify-content:center;padding:24px;
                    opacity:0;transition:opacity .18s cubic-bezier(.4,0,.2,1);pointer-events:none;
                    font-family:Inter,-apple-system,system-ui,sans-serif}
.aman-modal-overlay.open{opacity:1;pointer-events:auto}
.aman-modal{position:relative;width:440px;max-width:calc(100vw - 48px);
            background:#f8f5ee;border:1px solid #d9d2c2;border-radius:var(--r-card);
            box-shadow:0 12px 48px rgba(0,0,0,.08);padding:44px 40px;
            opacity:0;transform:translateY(-8px);
            transition:opacity .22s cubic-bezier(.4,0,.2,1),transform .22s cubic-bezier(.4,0,.2,1)}
.aman-modal-overlay.open .aman-modal{opacity:1;transform:translateY(0)}
.aman-modal-close{position:absolute;top:16px;right:16px;width:24px;height:24px;border:none;
                  background:transparent;color:rgba(26,26,26,.56);cursor:pointer;opacity:.6;
                  display:flex;align-items:center;justify-content:center;padding:0;
                  transition:opacity .3s cubic-bezier(.4,0,.2,1)}
.aman-modal-close:hover{opacity:1}
.aman-modal-title{font-family:'Cormorant Garamond',Georgia,serif;font-size:28px;font-weight:300;
                  color:#1a1a1a;letter-spacing:-.018em;line-height:1.2;margin:0 0 14px}
.aman-modal-body{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-size:14.5px;
                 color:rgba(26,26,26,.56);line-height:1.7;margin:0 0 24px}
.aman-modal-input{width:100%;box-sizing:border-box;padding:8px 0 10px;border:none;
                  border-bottom:1px solid #d9d2c2;background:transparent;color:#1a1a1a;
                  font-family:Inter,sans-serif;font-size:14px;outline:none;margin-bottom:20px;
                  transition:border-color .28s cubic-bezier(.4,0,.2,1)}
.aman-modal-input:focus{border-bottom:2px solid #2a3a2e;padding-bottom:9px}
.aman-modal-textarea{resize:vertical;min-height:80px;padding:10px 0;border-bottom:1px solid #d9d2c2}
.aman-modal-actions{display:flex;justify-content:flex-end;gap:14px;align-items:center;margin-top:8px}
.aman-modal-btn{padding:11px 26px;min-height:40px;border:1px solid #1a1a1a;background:transparent;
                color:#1a1a1a;font-family:Inter,sans-serif;font-size:11px;font-weight:600;
                letter-spacing:.18em;text-transform:uppercase;border-radius:0;cursor:pointer;
                transition:background .22s cubic-bezier(.4,0,.2,1),color .22s cubic-bezier(.4,0,.2,1),border-color .22s cubic-bezier(.4,0,.2,1)}
.aman-modal-btn:hover{background:#1a1a1a;color:#f8f5ee}
.aman-modal-btn.aman-danger{border-color:#a3322a;color:#a3322a}
.aman-modal-btn.aman-danger:hover{background:#a3322a;color:#f8f5ee}
.aman-modal-btn-text{padding:8px 0;border:none;background:transparent;color:rgba(26,26,26,.56);
                     font-family:Inter,sans-serif;font-size:11px;letter-spacing:.14em;
                     text-transform:uppercase;cursor:pointer;
                     transition:color .3s cubic-bezier(.4,0,.2,1)}
.aman-modal-btn-text:hover{color:#1a1a1a}
@media (max-width:540px){.aman-modal{padding:32px 24px;width:100%}.aman-modal-title{font-size:24px}}
@media (prefers-reduced-motion:reduce){
  .aman-modal-overlay,.aman-modal,.aman-modal-input,.aman-modal-btn,.aman-modal-btn-text{transition-duration:.01s;animation-duration:.01s}
}

/* =====================================================================
   打印样式 (2026-07-02 audit B.2)
   - 老板 Ctrl+P 打印客户详情/报告时: 隐藏 nav/topbar/齿轮/广告条/mask/drawer
   - 白底黑字, 强制字体 serif (Cormorant) + 数字 tabular
   - A4 页边距 18mm 16mm
   - 图表 avoid page-break
===================================================================== */
@page{size:A4;margin:18mm 16mm}
@media print{
  /* 全局: 白底 + 印刷字体 */
  html,body{background:#fff!important;color:#000!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body{font-size:11pt;line-height:1.55;font-family:'Cormorant Garamond',Georgia,'Times New Roman',serif}

  /* 隐藏: nav / topbar / newsbar / subnav / 齿轮 / mask / drawer / cover / login / footer legal */
  nav, .topbar, .topsearch, .topinfo, .newsbar, .subnav, .gear, #mask, .mask,
  #cover, .cover, .cv-legal, .aman-modal-overlay, .aman-modal,
  #drawer, .drawer, .actions, .btn, button,
  .toolbar, .no-print, footer, .cta {display:none!important}

  /* main content 撑满页面 */
  main, .main, #main {margin:0!important;padding:0!important;max-width:none!important;box-shadow:none!important}

  /* 表格: 强化 hairline + 避免行断页 */
  table {border-collapse:collapse;width:100%;page-break-inside:auto}
  tr {page-break-inside:avoid;page-break-after:auto}
  th, td {padding:6pt 8pt;border-bottom:0.5pt solid #888;text-align:left;font-size:10pt}
  th {font-size:8pt;letter-spacing:.14em;text-transform:uppercase;color:#666;font-weight:500;font-family:Inter,sans-serif}
  .num, td.num {text-align:right;font-variant-numeric:tabular-nums;font-family:Inter,sans-serif}

  /* 标题 */
  h1 {font-size:26pt;font-weight:300;letter-spacing:-.005em;margin:0 0 8pt}
  h2 {font-size:18pt;font-weight:400;margin:14pt 0 6pt}
  h3 {font-size:11pt;font-weight:500;text-transform:uppercase;letter-spacing:.14em;font-family:Inter,sans-serif;color:#444;margin:10pt 0 4pt}

  /* 数字色 (pos/neg) → 印刷用灰阶而非红绿 (灰度打印无色差) */
  .pos {color:#2a4d33!important;font-weight:500}
  .neg {color:#7a2828!important;font-weight:500}
  .mut, .muted {color:#666!important}

  /* SVG 图表: 保持尺寸, 避免拆页 */
  svg, .chart, .kv, .panel {page-break-inside:avoid}
  .panel {border:0.5pt solid #ccc;padding:8pt;margin:6pt 0;background:#fff!important;box-shadow:none!important}

  /* 链接 URL 不打印在旁边 (默认 UA 会追加 (http://...) 太吵) */
  a[href]:after {content:""}

  /* 页脚水印: 品牌 + 打印日期 */
  body:after {content:"OnlyFunds";position:fixed;bottom:8mm;right:16mm;font-size:7pt;letter-spacing:.24em;text-transform:uppercase;color:#999;font-family:Inter,sans-serif}
}
