/* ============================================================
   風極の次世代 · 样式表
   风格：Apple 式简洁商务 —— 浅色 / 扁平 / 轻盈 / 毛玻璃透视，
         点缀科技蓝紫渐变。涨跌沿用中国口径（红涨绿跌）。
   迭代：v1.0 (2026-09-22) 深空科技风初版
         v2.0 (2026-09-22) Apple 浅色商务风改版
         v3.0 (2026-09-22) 融合 Apple/BCG/Bain/Fidelity/郁见投资：
              眉题标签 + 大标题 + 大数字统计 + 编辑级排版；
              新增第八界面「无所得道」（题眼 hero / 心法原典 /
              规律库 / 七册方法库）
   v4.0 (2026-09-22) 文豪五点要求：①产物全量不节选 ②多元策略归因归位
              ③债券/股票策略平台由「框架内滚动」改为整页无缝自适应
              ④绩效归因接真实产品 ⑤自动识别设备：桌面宽阔 / 手机舒适
   v7.0 (2026-10-25) 文豪指令「深度优化和美化」：全站质感精修——
              毛玻璃提不透度保可读、品牌图标统一、报告淡入、
              表格斑马纹、胶囊条吸顶、减少动态效果支持。
              详见文末「v7.0 深度美化」「v7.1 浑然一体深化」区块
              （覆盖式追加，旧规则保留）。
   v7.2 (2026-10-26) 文豪指令「市场观察、无所得道深度优化」：
              期次条白瓷化 + 简报卡片化；场景速查卡片网格化 +
              心法卡/通则徽章精修。详见文末「v7.2 双页深化」区块。
   ============================================================ */
:root{
  --bg:#f5f5f7; --bg-elev:#ffffff;
  --panel:rgba(255,255,255,.78); --panel-solid:#ffffff;
  --line:rgba(0,0,0,.07); --line2:rgba(0,0,0,.13);
  --txt:#1d1d1f; --muted:#6e6e73; --dim:#86868b; --faint:#aeaeb2;
  --blue:#0071e3; --indigo:#5e5ce6; --violet:#af52de; --teal:#32ade6;
  --grad:linear-gradient(92deg,#0071e3 0%,#5e5ce6 55%,#af52de 100%);
  --up:#e03131;          /* 涨 → 红（中国口径） */
  --down:#0ca678;        /* 跌 → 绿 */
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,"Cascadia Mono",Consolas,monospace;
  --sans:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text",
         "PingFang SC","Hiragino Sans GB","Microsoft YaHei","Segoe UI",system-ui,sans-serif;
  --shadow-sm:0 1px 3px rgba(0,0,0,.05),0 4px 14px rgba(0,0,0,.04);
  --shadow-md:0 4px 12px rgba(0,0,0,.06),0 16px 40px rgba(0,0,0,.07);
  --shadow-lg:0 8px 24px rgba(0,0,0,.08),0 32px 80px rgba(0,0,0,.10);
  --r-sm:10px; --r-md:14px; --r-lg:20px;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%}
body{
  background:var(--bg); color:var(--txt); font-family:var(--sans);
  font-size:14px; line-height:1.6; overflow-x:hidden;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
::selection{background:rgba(0,113,227,.18)}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:rgba(0,0,0,.16);border-radius:5px;border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.28);border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-track{background:transparent}
a{color:var(--blue);text-decoration:none}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}

/* ============ 背景：宇宙星空（多层次视差 + 运动 + 流星） ============ */
#cosmos{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;
  background:radial-gradient(ellipse 120% 90% at 50% -10%,#16213f 0%,#0b1120 45%,#05070f 100%)}
#cosmos #stars{position:absolute;inset:0;width:100%;height:100%;display:block}
/* 星云光晕：层次感 */
.nebula{position:absolute;border-radius:50%;filter:blur(120px);opacity:.5;
  will-change:transform;mix-blend-mode:screen}
.nebula.n1{width:64vw;height:64vw;left:-16vw;top:-24vw;
  background:radial-gradient(circle,rgba(64,88,180,.55) 0%,transparent 68%);
  animation:drift1 38s ease-in-out infinite alternate}
.nebula.n2{width:52vw;height:52vw;right:-14vw;top:-6vw;
  background:radial-gradient(circle,rgba(120,60,180,.45) 0%,transparent 68%);
  animation:drift2 46s ease-in-out infinite alternate}
.nebula.n3{width:50vw;height:50vw;left:24vw;bottom:-26vw;
  background:radial-gradient(circle,rgba(40,120,160,.4) 0%,transparent 70%);
  animation:drift3 54s ease-in-out infinite alternate}
@keyframes drift1{from{transform:translate(0,0) scale(1)}to{transform:translate(7vw,5vh) scale(1.14)}}
@keyframes drift2{from{transform:translate(0,0) scale(1.08)}to{transform:translate(-6vw,7vh) scale(.94)}}
@keyframes drift3{from{transform:translate(0,0) scale(1)}to{transform:translate(-7vw,-5vh) scale(1.12)}}

/* ============ 登录页 ============ */
#login-view{
  position:relative;z-index:3;min-height:100vh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;padding:48px 20px;
}
.brand{text-align:center;margin-bottom:44px;user-select:none;position:relative;z-index:2}
.brand .mark{
  width:56px;height:56px;margin:0 auto 24px;border-radius:16px;
  background:linear-gradient(135deg,#3d7bff 0%,#7a5cff 60%,#b45cff 100%);
  box-shadow:0 12px 40px rgba(90,110,255,.45),inset 0 1px 0 rgba(255,255,255,.5);
  display:flex;align-items:center;justify-content:center;
  animation:markIn 1s cubic-bezier(.2,.7,.2,1) both;
}
.brand .mark svg{width:28px;height:28px}
@keyframes markIn{from{opacity:0;transform:translateY(14px) scale(.85)}to{opacity:1;transform:none}}
.brand h1{
  font-size:clamp(42px,7.5vw,76px);font-weight:700;letter-spacing:.08em;
  text-indent:.08em;line-height:1.14;color:#fff;
  text-shadow:0 0 40px rgba(120,150,255,.55),0 2px 6px rgba(0,0,0,.5);
  animation:heroIn 1.1s .08s cubic-bezier(.2,.7,.2,1) both;
}
@keyframes heroIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.brand .en{
  margin-top:16px;font-size:12px;letter-spacing:.38em;text-indent:.38em;
  color:rgba(180,200,255,.72);text-transform:uppercase;font-weight:500;
  animation:heroIn 1.1s .2s cubic-bezier(.2,.7,.2,1) both;
}
.brand .tagline{
  margin-top:20px;font-size:14px;color:rgba(200,212,240,.7);letter-spacing:.08em;
  animation:heroIn 1.1s .3s cubic-bezier(.2,.7,.2,1) both;
}

.login-card{
  width:100%;max-width:380px;padding:34px 32px 26px;position:relative;z-index:2;
  background:rgba(18,26,48,.55);
  border:1px solid rgba(140,165,230,.22);border-radius:var(--r-lg);
  backdrop-filter:blur(26px) saturate(1.4);-webkit-backdrop-filter:blur(26px) saturate(1.4);
  box-shadow:0 24px 80px rgba(0,0,0,.55);
  animation:cardIn 1s .38s cubic-bezier(.2,.7,.2,1) both;
}
@keyframes cardIn{from{opacity:0;transform:translateY(26px) scale(.98)}to{opacity:1;transform:none}}
.login-card h2{font-size:17px;font-weight:600;color:#fff;text-align:center;margin-bottom:22px;letter-spacing:.04em}
.field{margin-bottom:14px;position:relative}
.field label{display:block;font-size:12px;color:rgba(190,205,235,.75);margin-bottom:6px;letter-spacing:.02em;font-weight:500}
.field input{
  width:100%;padding:12px 14px;background:rgba(8,13,26,.6);color:#fff;
  border:1px solid rgba(140,165,230,.3);border-radius:var(--r-sm);font-size:14px;
  font-family:var(--mono);outline:none;transition:border-color .18s,box-shadow .18s,background .18s;
}
.field input::placeholder{color:rgba(160,178,210,.5);font-family:var(--sans)}
.field input:focus{border-color:#5b8cff;background:rgba(10,16,32,.75);
  box-shadow:0 0 0 4px rgba(91,140,255,.18)}
.btn{
  width:100%;margin-top:10px;padding:12px;border:none;border-radius:var(--r-sm);cursor:pointer;
  font-family:var(--sans);font-size:15px;font-weight:600;letter-spacing:.08em;color:#fff;
  background:linear-gradient(135deg,#3d7bff,#7a5cff);
  box-shadow:0 8px 24px rgba(90,110,255,.4);
  transition:background .18s,transform .18s,box-shadow .18s;
}
.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 32px rgba(90,110,255,.5)}
.btn:active:not(:disabled){transform:translateY(0)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.err{
  margin-top:14px;padding:9px 12px;border-radius:var(--r-sm);font-size:12.5px;text-align:center;
  background:rgba(224,49,49,.16);border:1px solid rgba(224,49,49,.4);color:#ff9a9a;display:none;
}
.err.show{display:block;animation:shake .38s}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.login-foot{margin-top:18px;text-align:center;font-size:11px;color:rgba(160,178,210,.55);letter-spacing:.03em;line-height:1.8}

/* ============ 应用主体 ============ */
#app{display:none;position:relative;z-index:3;min-height:100vh}
#app.on{display:block}
.topbar{
  position:sticky;top:0;z-index:40;height:56px;display:flex;align-items:center;gap:22px;
  padding:0 24px;background:rgba(255,255,255,.72);
  backdrop-filter:blur(22px) saturate(1.8);-webkit-backdrop-filter:blur(22px) saturate(1.8);
  border-bottom:1px solid var(--line);
}
.logo{font-size:15px;font-weight:700;letter-spacing:.1em;white-space:nowrap;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.tabs{display:flex;gap:2px;flex:1;overflow-x:auto;scrollbar-width:none;
  background:rgba(0,0,0,.045);border-radius:11px;padding:3px;width:fit-content;max-width:100%}
.tabs::-webkit-scrollbar{display:none}
.tab{
  padding:6px 14px;border-radius:8px;font-size:13px;color:var(--muted);cursor:pointer;
  white-space:nowrap;transition:.18s;font-weight:500;
}
.tab:hover{color:var(--txt)}
.tab.on{color:var(--txt);background:#fff;font-weight:600;
  box-shadow:0 1px 3px rgba(0,0,0,.10),0 3px 10px rgba(0,0,0,.05)}
.topbar .right{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--dim);white-space:nowrap}
.topbar .right .dot{width:7px;height:7px;border-radius:50%;background:#30d158;
  box-shadow:0 0 0 3px rgba(48,209,88,.18)}
.logout{cursor:pointer;color:var(--dim);padding:4px 8px;border-radius:6px;transition:.16s}
.logout:hover{color:#c92a2a;background:rgba(224,49,49,.08)}

/* v4.0：桌面取更宽阔的版心；债券/股票/绩效归因三页用 .wide 铺满 */
.page{max-width:min(1680px,96vw);margin:0 auto;padding:34px 28px 76px;
  animation:pageIn .45s cubic-bezier(.2,.7,.2,1)}
.page.wide{max-width:min(2200px,99vw);padding-left:20px;padding-right:20px}
@keyframes pageIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;
  margin-bottom:26px}
.eyebrow{font-size:11px;font-weight:600;letter-spacing:.22em;color:var(--blue);
  text-transform:uppercase;margin-bottom:8px;display:flex;align-items:center;gap:9px}
.eyebrow::before{content:"";width:18px;height:2px;background:var(--grad);border-radius:1px}
.page-head h2{font-size:32px;font-weight:700;letter-spacing:-.015em;line-height:1.2}
.page-head .sub{font-size:13.5px;color:var(--muted);margin-top:7px;letter-spacing:.01em}
.stamp{font-family:var(--mono);font-size:11px;color:var(--dim);text-align:right;line-height:1.75}
.stamp b{color:var(--indigo);font-weight:600}

/* 卡片 / 网格 */
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(2,1fr)} .g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)} .g6{grid-template-columns:repeat(6,1fr)}
@media(max-width:1400px){.g6{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1000px){.g2,.g3,.g4,.g6{grid-template-columns:1fr}}
.card{
  background:var(--panel-solid);border:1px solid var(--line);border-radius:var(--r-md);
  padding:16px 18px;box-shadow:var(--shadow-sm);
  transition:transform .22s,box-shadow .22s;position:relative;overflow:hidden;
}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.card .k{font-size:12px;color:var(--muted);letter-spacing:.02em;display:flex;
  justify-content:space-between;align-items:center;gap:8px;font-weight:500}
.card .v{font-family:var(--mono);font-size:26px;font-weight:700;margin-top:8px;letter-spacing:-.02em;color:var(--txt)}
.card .v.big{font-size:38px;letter-spacing:-.03em;background:var(--grad);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.card.stat{text-align:left;padding:20px 22px}
.card.stat .k{margin-top:6px;font-size:12.5px}
.card .u{font-size:12px;color:var(--dim);margin-left:5px;font-weight:400;font-family:var(--sans)}
.card .chg{font-family:var(--mono);font-size:12.5px;margin-top:6px;font-weight:500}
.up{color:var(--up)} .down{color:var(--down)} .flat{color:var(--muted)}
.card .src{font-size:10.5px;color:var(--faint);margin-top:9px;font-family:var(--mono);
  border-top:1px dashed var(--line);padding-top:7px}

.panel{
  background:var(--panel-solid);border:1px solid var(--line);border-radius:var(--r-md);
  padding:20px 22px;margin-bottom:16px;box-shadow:var(--shadow-sm);
}
.panel h3{font-size:15px;font-weight:600;letter-spacing:.01em;margin-bottom:4px;
  display:flex;align-items:center;gap:9px}
.panel h3::before{content:"";width:4px;height:14px;border-radius:2px;background:var(--grad)}
.panel .note{font-size:12px;color:var(--muted);margin-bottom:14px;line-height:1.75}
.chart{width:100%;height:320px}
.chart.lg{height:430px} .chart.sm{height:250px}

table{width:100%;border-collapse:collapse;font-size:12.8px}
th{text-align:right;padding:9px 11px;color:var(--muted);font-weight:600;font-size:11.5px;
  border-bottom:1px solid var(--line2);white-space:nowrap;letter-spacing:.03em}
th:first-child,td:first-child{text-align:left}
td{text-align:right;padding:9px 11px;border-bottom:1px solid var(--line);
  font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--txt)}
tbody tr:hover{background:rgba(0,113,227,.035)}
.tag{display:inline-block;padding:2px 9px;border-radius:20px;font-size:10.5px;font-weight:500;
  border:1px solid var(--line2);color:var(--muted);font-family:var(--sans);background:#fff}
.tag.c{color:var(--blue);border-color:rgba(0,113,227,.28);background:rgba(0,113,227,.07)}
.tag.g{color:#b54708;border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.09)}
.tag.r{color:#c92a2a;border-color:rgba(224,49,49,.28);background:rgba(224,49,49,.07)}
.tag.p{color:var(--indigo);border-color:rgba(94,92,230,.30);background:rgba(94,92,230,.08)}

.empty{padding:48px;text-align:center;color:var(--dim);font-size:13px;line-height:2}
.empty b{color:#b54708;font-weight:600}

/* 数据纵览：仿看板布局 */
.ov-wrap{display:grid;grid-template-columns:240px 1fr;gap:16px;align-items:start}
@media(max-width:1100px){.ov-wrap{grid-template-columns:1fr}}
.ov-side{background:var(--panel-solid);border:1px solid var(--line);border-radius:var(--r-md);
  padding:14px;box-shadow:var(--shadow-sm);
  position:sticky;top:72px;max-height:calc(100vh - 96px);overflow-y:auto}
.ov-zone{font-size:13px;font-weight:700;color:var(--txt);margin:16px 0 4px;letter-spacing:.02em;
  display:flex;align-items:center;gap:8px}
.ov-zone:first-child{margin-top:0}
.ov-zone::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--grad)}
.ov-cat{font-size:11px;color:var(--dim);margin:10px 0 3px 14px;letter-spacing:.04em;font-weight:500}
.ov-page{padding:6px 10px 6px 22px;border-radius:8px;cursor:pointer;font-size:12.5px;
  color:var(--muted);transition:.15s;display:flex;justify-content:space-between;gap:8px;align-items:center}
.ov-page:hover{background:rgba(0,113,227,.06);color:var(--txt)}
.ov-page.on{background:rgba(0,113,227,.10);color:var(--blue);font-weight:600;
  box-shadow:inset 2.5px 0 0 var(--blue)}
.ov-page .t{font-family:var(--mono);font-size:10px;color:var(--faint)}
.ov-crumb{font-size:12px;color:var(--muted);margin-bottom:12px;font-family:var(--mono)}
.ov-crumb b{color:var(--blue);font-weight:600}

/* 投决会议 */
.doc-layout{display:grid;grid-template-columns:290px 1fr;gap:16px;align-items:start}
@media(max-width:1100px){.doc-layout{grid-template-columns:1fr}}
.doc-list{background:var(--panel-solid);border:1px solid var(--line);border-radius:var(--r-md);
  padding:12px;box-shadow:var(--shadow-sm);
  max-height:calc(100vh - 150px);overflow-y:auto;position:sticky;top:72px}
.doc-item{padding:10px 12px;border-radius:10px;cursor:pointer;margin-bottom:4px;transition:.15s;
  border:1px solid transparent}
.doc-item:hover{background:rgba(0,113,227,.05)}
.doc-item.on{background:rgba(0,113,227,.09);border-color:rgba(0,113,227,.22)}
.doc-item .d{font-family:var(--mono);font-size:11px;color:var(--indigo)}
.doc-item .t{font-size:12.5px;margin-top:3px;line-height:1.55;color:var(--txt)}
.doc-item .m{font-size:10.5px;color:var(--faint);margin-top:4px;display:flex;gap:8px}
.md-body{background:var(--panel-solid);border:1px solid var(--line);border-radius:var(--r-md);
  padding:30px 34px;box-shadow:var(--shadow-sm);
  min-height:520px;font-size:13.5px;line-height:1.9;max-height:calc(100vh - 110px);overflow-y:auto}
.md-body h1{font-size:21px;margin:4px 0 16px;padding-bottom:12px;border-bottom:1px solid var(--line2);
  color:var(--txt);letter-spacing:.01em}
.md-body h2{font-size:16.5px;margin:26px 0 10px;color:var(--blue);letter-spacing:.01em}
.md-body h3{font-size:14.5px;margin:18px 0 8px;color:var(--indigo)}
.md-body p{margin:9px 0;color:#3a3a3c}
.md-body ul,.md-body ol{margin:9px 0 9px 22px;color:#3a3a3c}
.md-body li{margin:5px 0}
.md-body table{width:100%;border-collapse:collapse;margin:14px 0;font-size:12.3px}
.md-body th,.md-body td{border:1px solid var(--line2);padding:7px 10px;text-align:left;font-family:var(--sans)}
.md-body th{background:rgba(0,113,227,.06);color:var(--blue)}
.md-body blockquote{margin:12px 0;padding:10px 16px;border-left:3px solid var(--indigo);
  background:rgba(94,92,230,.06);color:#48484a;border-radius:0 8px 8px 0}
.md-body code{font-family:var(--mono);background:rgba(0,113,227,.08);color:var(--blue);
  padding:1.5px 6px;border-radius:5px;font-size:12px}
.md-body hr{border:none;border-top:1px solid var(--line);margin:18px 0}
.md-body strong{color:var(--txt)}

/* 内嵌整页（v4.0：高度由 JS 自适应，页面只有一个滚动条，无内部滚动） */
.embed-box{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;
  background:#f5f6f8;box-shadow:var(--shadow-sm)}
.embed-box iframe{width:100%;height:900px;border:0;display:block;overflow:hidden}
/* v6.1 深度融合（多元策略 / 绩效归因）：报告直接长在页面上，
   无边框、无底板、无圆角阴影——报告自身 header 即页面视觉头部，
   透明背景透星空，与站点浑然一体 */
.embed-bare{border:0;background:transparent;border-radius:0;box-shadow:none;overflow:visible}
.embed-bare iframe{width:100%;height:900px;border:0;display:block;overflow:hidden}
/* v6.2 市场观察期次切换条：轻量毛玻璃胶囊，融合感优于下拉框 */
.brief-bar{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 14px;scrollbar-width:thin}
.brief-chip{flex:0 0 auto;border:1px solid var(--line);background:rgba(255,255,255,.55);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-radius:999px;
  padding:5px 14px;font-size:12px;color:var(--muted);cursor:pointer;font-family:var(--sans);
  transition:all .18s ease}
.brief-chip:hover{color:var(--txt);border-color:var(--blue)}
.brief-chip.on{background:var(--blue);color:#fff;border-color:var(--blue);font-weight:600}
/* 宽表格横向滚动容器 */
.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

.loading{padding:60px;text-align:center;color:var(--dim);letter-spacing:.14em;font-size:12.5px}
.loading::after{content:"";display:block;width:30px;height:30px;margin:18px auto 0;
  border:2.5px solid rgba(0,113,227,.15);border-top-color:var(--blue);border-radius:50%;
  animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
footer.foot{text-align:center;padding:28px;color:var(--faint);font-size:11px;letter-spacing:.06em;
  border-top:1px solid var(--line);margin-top:34px}

/* ============ 无所得道（v3.0） ============ */
/* 题眼 Hero：BCG 式大引言 */
.xd-hero{
  position:relative;margin-bottom:18px;padding:44px 48px 36px;border-radius:var(--r-lg);
  background:linear-gradient(135deg,#0b1e3a 0%,#1b2f5e 48%,#3b2a6e 100%);
  color:#fff;overflow:hidden;box-shadow:var(--shadow-md);
}
.xd-hero::after{content:"";position:absolute;right:-120px;top:-120px;width:380px;height:380px;
  border-radius:50%;background:radial-gradient(circle,rgba(50,173,230,.35),transparent 70%)}
.xd-hero .eyebrow{color:#9ec5ff}
.xd-hero .eyebrow::before{background:linear-gradient(90deg,#64d2ff,#bf5af2)}
.xd-hero-title{font-size:clamp(24px,3.2vw,36px);font-weight:700;letter-spacing:.01em;
  line-height:1.3;max-width:820px;margin-bottom:16px}
.xd-hero-body{font-size:14.5px;line-height:1.95;color:rgba(255,255,255,.82);max-width:860px}
.xd-hero-body .xd-p{margin:6px 0}
.xd-hero-meta{margin-top:20px;font-size:11.5px;color:rgba(255,255,255,.5);letter-spacing:.05em;
  font-family:var(--mono)}
/* 心法原典 */
.xd-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.chip{padding:5px 13px;border-radius:20px;font-size:12px;color:var(--muted);cursor:pointer;
  border:1px solid var(--line2);background:#fff;transition:.16s;user-select:none}
.chip:hover{color:var(--txt);border-color:rgba(0,113,227,.4)}
.chip.on{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}
.xd-card{cursor:pointer}
.xd-no{font-family:var(--mono);font-weight:700;color:var(--indigo);font-size:13px}
.xd-title{font-size:14.5px;font-weight:700;margin:8px 0 8px;line-height:1.5;color:var(--txt)}
.xd-body{font-size:12.5px;color:var(--muted);line-height:1.9;
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.xd-card.open .xd-body{display:block}
.xd-body .xd-p{margin:5px 0}
.xd-body .xd-li{margin:3px 0 3px 10px;color:#48484a}
.xd-meta{margin-top:10px;padding-top:8px;border-top:1px dashed var(--line);
  font-family:var(--mono);font-size:10.5px;color:var(--faint)}
/* 规律库 */
.tz-bar{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}
.tz-bar input{flex:1;min-width:240px;padding:10px 14px;border:1px solid var(--line2);
  border-radius:var(--r-sm);font-size:13px;font-family:var(--sans);outline:none;
  background:#fff;transition:.18s;color:var(--txt)}
.tz-bar input:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(0,113,227,.12)}
.tz-bar select{padding:10px 12px;border:1px solid var(--line2);border-radius:var(--r-sm);
  font-size:12.5px;background:#fff;color:var(--txt);outline:none;font-family:var(--sans)}
.tz-count{font-family:var(--mono);font-size:11.5px;color:var(--dim);white-space:nowrap}
.tz-list{max-height:560px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r-sm);
  background:#fbfbfd}
.tz-item{display:flex;gap:14px;padding:13px 16px;border-bottom:1px solid var(--line);transition:.14s}
.tz-item:last-child{border-bottom:none}
.tz-item:hover{background:rgba(0,113,227,.035)}
.tz-id{flex:none;width:34px;height:26px;border-radius:7px;background:rgba(94,92,230,.09);
  color:var(--indigo);font-family:var(--mono);font-size:12px;font-weight:700;
  display:flex;align-items:center;justify-content:center;margin-top:1px}
.tz-t{font-size:13px;font-weight:600;color:var(--txt);line-height:1.6}
.tz-c{margin-left:9px;font-size:10.5px;font-weight:400;color:var(--faint);font-family:var(--mono)}
.tz-x{font-size:12.5px;color:var(--muted);line-height:1.85;margin-top:3px}
/* 七册 */
.bk{cursor:pointer}
.bk-name{font-size:17px;font-weight:700;margin-top:9px;color:var(--txt);letter-spacing:.02em}
.bk-desc{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.7}
.bk-toc{display:none;margin-top:12px;padding-top:10px;border-top:1px dashed var(--line);
  max-height:300px;overflow-y:auto}
.bk.open .bk-toc{display:block}
.bk-ch{font-size:11.5px;font-weight:700;color:var(--indigo);margin:9px 0 3px}
.bk-it{font-size:11.5px;color:var(--muted);padding:2px 0 2px 10px;line-height:1.65}
.bk-more{margin-top:12px;font-size:11.5px;color:var(--blue);font-weight:500}

/* ============================================================
   v4.0 响应式：自动识别阅读设备
   桌面（≥1600px）→ 宽阔版心、图表加高；
   平板（≤1180px）→ 栅格降列、侧栏取消吸顶；
   手机（≤820px）→ 单列、导航横向滚动、触控尺寸、表格横向滚动；
   窄屏（≤480px）→ 字号与内边距进一步压缩，输入框 16px 防 iOS 聚焦缩放。
   ============================================================ */
@media (min-width:1600px){
  .page{max-width:min(1840px,95vw)}
  .page.wide{max-width:min(2320px,98.5vw)}
  .chart{height:370px} .chart.lg{height:500px} .chart.sm{height:280px}
  .grid{gap:16px}
}

@media (max-width:1180px){
  .g6{grid-template-columns:repeat(3,1fr)}
  .g4{grid-template-columns:repeat(2,1fr)}
  .ov-side{position:static;max-height:none}
  .doc-list{position:static;max-height:none}
  .md-body{max-height:none}
}

@media (max-width:820px){
  body{font-size:14.5px;-webkit-text-size-adjust:100%}
  .topbar{height:auto;flex-wrap:wrap;gap:9px;padding:9px 14px}
  .logo{font-size:14px}
  .tabs{order:3;flex:1 1 100%;width:100%;max-width:100%;padding:3px;
    overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tab{padding:8px 14px;font-size:13.5px}          /* 触控友好 */
  .topbar .right{margin-left:auto;font-size:11.5px;gap:8px}
  .page{padding:20px 14px 56px}
  .page.wide{padding-left:12px;padding-right:12px}
  .page-head{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:18px}
  .page-head h2{font-size:24px}
  .page-head .sub{font-size:12.5px}
  .stamp{text-align:left}
  .grid{gap:11px}
  .g2,.g3,.g4,.g6{grid-template-columns:1fr}
  .card{padding:14px 15px}
  .card .v{font-size:23px}
  .card .v.big{font-size:32px}
  .panel{padding:15px 15px;margin-bottom:13px;overflow-x:auto}
  .panel h3{font-size:14.5px}
  .panel .note{font-size:11.8px}
  .chart{height:250px} .chart.lg{height:320px} .chart.sm{height:210px}
  table{font-size:12px}
  th,td{padding:7px 8px}
  .ov-wrap,.doc-layout{grid-template-columns:1fr;gap:13px}
  .ov-side{position:static;max-height:none;padding:10px}
  .doc-list{position:static;max-height:320px}
  .md-body{padding:18px 16px;max-height:none;font-size:14px;line-height:1.95;min-height:0}
  .md-body h1{font-size:18px} .md-body h2{font-size:15.5px}
  .tz-bar input{min-width:0;flex:1 1 100%}
  .tz-bar select{flex:1 1 auto}
  .tz-list{max-height:none}
  .tz-x{font-size:12.5px}
  .xd-hero{padding:26px 20px 22px}
  .xd-hero-body{font-size:14px;line-height:1.9}
  .xd-chips{gap:7px}
  .chip{padding:6px 12px;font-size:12.5px}
  .bk-toc{max-height:none}
  .embed-box{border-radius:12px}
  footer.foot{padding:20px 14px;font-size:10.5px}
}

@media (max-width:480px){
  #login-view{padding:32px 16px}
  .brand h1{font-size:38px}
  .brand .en{font-size:11px;letter-spacing:.24em}
  .brand .tagline{font-size:12.5px}
  .login-card{padding:26px 20px 20px;max-width:100%}
  .field input{padding:14px 13px;font-size:16px}   /* ≥16px 防 iOS 自动缩放 */
  .btn{padding:14px;font-size:16px}
  .page{padding:16px 12px 48px}
  .page-head h2{font-size:21px}
  .eyebrow{font-size:10px;letter-spacing:.18em}
  .chart{height:220px} .chart.lg{height:280px} .chart.sm{height:190px}
  .tz-bar{flex-direction:column;align-items:stretch}
  .tab{padding:7px 12px;font-size:13px}
  .card .v{font-size:21px}
  .card .v.big{font-size:29px}
  table{font-size:11.5px}
  th,td{padding:6px 7px}
  .xd-hero-title{font-size:20px}
}

/* ============================================================
   云服务界面：鉴权面板 + 灵感随记 + 数据库组（v5.0 云端接入）
   ============================================================ */
.cl-root{max-width:960px;margin:0 auto}
.cl-wrap{max-width:420px;margin:8px auto 0}

/* 内容区按钮 inline 化（覆盖登录表单 .btn 的 width:100%） */
.cl-root .btn{width:auto;margin-top:0;display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;font-size:13.5px;letter-spacing:.02em}
.btn.ghost{background:transparent;color:var(--txt);border:1px solid var(--line2);box-shadow:none}
.btn.ghost:hover:not(:disabled){background:var(--bg-elev);box-shadow:none;transform:none;border-color:var(--blue);color:var(--blue)}
.btn.sm{padding:5px 12px;font-size:12px;letter-spacing:.02em}

/* 登录状态条 */
.cl-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel)}
.cl-who{font-family:var(--mono);font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 鉴权面板 */
.cl-auth{background:var(--panel-solid);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;box-shadow:var(--shadow-md)}
.cl-auth-head{margin-bottom:18px}
.cl-auth-title{font-size:20px;font-weight:700;letter-spacing:-.01em;color:var(--txt)}
.cl-auth-sub{font-size:12.5px;color:var(--muted);margin-top:6px;line-height:1.65}
.cl-auth-tabs{display:flex;gap:6px;margin-bottom:18px;background:var(--bg);padding:4px;border-radius:var(--r-sm)}
.cl-tab{flex:1;padding:8px 0;border:none;background:transparent;border-radius:8px;cursor:pointer;font-family:var(--sans);font-size:13px;color:var(--muted);font-weight:500;transition:background .15s,color .15s}
.cl-tab.on{background:var(--panel-solid);color:var(--txt);box-shadow:var(--shadow-sm);font-weight:600}
.cl-form .cl-field{margin-bottom:12px}
.cl-field label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px;font-weight:500}
.cl-field input{width:100%;padding:11px 13px;border:1px solid var(--line2);border-radius:var(--r-sm);font-family:var(--sans);font-size:14px;color:var(--txt);background:var(--bg-elev);outline:none;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}
.cl-field input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,113,227,.12)}
.cl-row{display:flex;gap:8px}
.cl-row input{flex:1;min-width:0}
.cl-wrap .cl-row .btn{width:auto;margin:0;padding:11px 14px;flex:none;white-space:nowrap}
.cl-hint{font-size:11.5px;color:var(--dim);margin-top:10px;line-height:1.6}
.cl-links{margin-top:12px;text-align:center}
.cl-forgot{font-size:12.5px;color:var(--blue);cursor:pointer}
.cl-forgot:hover{text-decoration:underline}
.cl-err{margin-top:14px;padding:9px 12px;border-radius:var(--r-sm);font-size:12.5px;text-align:center;background:rgba(224,49,49,.12);border:1px solid rgba(224,49,49,.35);color:#c92a2a;display:none;line-height:1.5}
.cl-err.show{display:block}

/* 灵感随记 */
.note-editor{background:var(--panel-solid);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;margin-bottom:20px;box-shadow:var(--shadow-sm)}
.note-editor input[type=text],.note-editor textarea{width:100%;padding:11px 13px;border:1px solid var(--line2);border-radius:var(--r-sm);font-family:var(--sans);font-size:14px;color:var(--txt);background:var(--bg-elev);outline:none;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}
.note-editor textarea{resize:vertical;min-height:120px;line-height:1.7}
.note-editor input[type=text]{margin-bottom:10px}
.note-editor input[type=text]:focus,.note-editor textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,113,227,.12)}
.ne-actions{display:flex;gap:10px;margin-top:12px}
.note-list{display:flex;flex-direction:column;gap:12px}
.note-item{background:var(--panel-solid);border:1px solid var(--line);border-radius:var(--r-md);padding:16px 18px;box-shadow:var(--shadow-sm)}
.ni-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ni-title{font-size:15px;font-weight:600;color:var(--txt)}
.ni-time{font-family:var(--mono);font-size:11px;color:var(--dim);flex:none}
.ni-body{font-size:13px;color:var(--muted);margin-top:8px;line-height:1.75;white-space:pre-wrap;word-break:break-word}
.ni-actions{display:flex;gap:8px;margin-top:12px}

/* 数据库组 */
.file-upload{background:var(--panel-solid);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;margin-bottom:20px;box-shadow:var(--shadow-sm)}
.fu-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.fu-row label.btn{cursor:pointer}
.fu-row input[type=text]{flex:1;min-width:180px;padding:11px 13px;border:1px solid var(--line2);border-radius:var(--r-sm);font-family:var(--sans);font-size:14px;color:var(--txt);background:var(--bg-elev);outline:none;box-sizing:border-box}
.fu-row input[type=text]:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,113,227,.12)}
.fu-status{font-size:12.5px;color:var(--muted);margin-top:12px;line-height:1.6}
.file-list{background:var(--panel-solid);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm)}
.file-table{width:100%;border-collapse:collapse;font-size:13px}
.file-table th{font-size:11.5px;color:var(--dim);font-weight:600;text-align:left;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--bg)}
.file-table td{padding:12px 16px;border-bottom:1px solid var(--line);color:var(--txt)}
.file-table tr:last-child td{border-bottom:none}
.ft-name{font-family:var(--mono);font-size:12.5px;word-break:break-all}
.ft-ops{text-align:right;white-space:nowrap}
.ft-ops .btn{margin:0 0 0 8px}

/* 窄屏：数据库组上传行纵向排列 */
@media (max-width:560px){
  .fu-row{flex-direction:column;align-items:stretch}
  .fu-row input[type=text]{min-width:0}
  .fu-row label.btn,.fu-row .btn#fu-go{width:100%;justify-content:center}
  .cl-bar{flex-direction:column;align-items:flex-start}
}

/* ============================================================
   v5.5 深空适配 + 苹果毛玻璃透视（2026-09-23）
   背景为宇宙星空（深色），正文采用半透明白色毛玻璃：
   透出星空光晕但保持正文清晰可读。裸露在星空上的标题/说明改浅色。
   ============================================================ */

/* —— 标题区：裸露在星空上，改浅色 —— */
.page-head h2{color:#f4f7ff;text-shadow:0 1px 10px rgba(0,0,0,.4)}
.page-head .sub{color:rgba(226,232,255,.74)}
.stamp{color:rgba(210,220,245,.68)}
.stamp b{color:#a9c2ff}
.eyebrow{color:#8ab4ff}
.eyebrow::before{background:linear-gradient(90deg,#5b8cff,#b45cff)}

/* —— 内容区：苹果毛玻璃透视（半透明白 + 背景模糊，透出星空）—— */
.card,.panel,.ov-side,.doc-list,.md-body,.cl-auth,.cl-bar,
.note-editor,.note-item,.file-upload,.file-list{
  background:rgba(255,255,255,.68);
  backdrop-filter:blur(26px) saturate(1.55);
  -webkit-backdrop-filter:blur(26px) saturate(1.55);
  border-color:rgba(255,255,255,.5);
}
.card{box-shadow:0 4px 18px rgba(0,0,0,.16),0 12px 38px rgba(0,0,0,.10)}
.panel{box-shadow:0 4px 18px rgba(0,0,0,.16),0 12px 38px rgba(0,0,0,.10)}

/* 顶栏：更透的毛玻璃 */
.topbar{background:rgba(255,255,255,.58);border-bottom-color:rgba(255,255,255,.35)}
.tab.on{background:rgba(255,255,255,.9)}

/* 输入框 / 搜索框 / 列表底：浅色毛玻璃 */
.tz-bar input,.tz-bar select,.cl-field input,.note-editor input[type=text],
.note-editor textarea,.fu-row input[type=text]{background:rgba(255,255,255,.72)}
.tz-list{background:rgba(255,255,255,.5)}
.chip{background:rgba(255,255,255,.7)}
.tag{background:rgba(255,255,255,.72)}

/* —— 裸露在星空上的提示/脚注：改浅色 —— */
.empty{color:rgba(226,232,255,.74)}
.empty b{color:#ffb86b}
.loading{color:rgba(210,220,245,.72)}
footer.foot{color:rgba(200,212,240,.55);border-top-color:rgba(255,255,255,.16)}

  /* 内嵌看板容器：给个半透明底，避免 iframe 加载前露星空 */
.embed-box{background:rgba(255,255,255,.55)}

/* ============================================================
   v5.5 研报风格正文（深度整合：主文档 / 简报 / 看板按网页视觉排版）
   ============================================================ */
.md-body h1{
  font-size:23px;font-weight:800;letter-spacing:-.01em;color:var(--txt);
  padding:14px 20px;margin:6px 0 18px;border:none;border-radius:12px;
  background:linear-gradient(120deg,rgba(0,113,227,.10),rgba(94,92,230,.08) 60%,rgba(175,82,222,.07));
  border-left:4px solid var(--grad, #0071e3);
}
.md-body h2{
  font-size:17px;font-weight:700;margin:30px 0 12px;color:var(--blue);
  padding-left:12px;border-left:3px solid var(--blue);letter-spacing:.01em;
}
.md-body h3{font-size:14.5px;font-weight:650;margin:20px 0 9px;color:var(--indigo)}
.md-body p{margin:10px 0;color:#3a3a3c;line-height:1.9}
.md-body table{margin:16px 0;font-size:12.4px;border-radius:10px;overflow:hidden;box-shadow:var(--shadow-sm)}
.md-body th{background:linear-gradient(135deg,#0b1e3a,#1b2f5e);color:#fff;font-weight:600}
.md-body td{border-color:var(--line)}
.md-body tbody tr:nth-child(even){background:rgba(0,113,227,.035)}
.md-body tbody tr:hover{background:rgba(0,113,227,.07)}
.md-body blockquote{
  margin:14px 0;padding:12px 18px;border-left:3px solid var(--indigo);
  background:linear-gradient(120deg,rgba(94,92,230,.08),rgba(94,92,230,.03));
  color:#48484a;border-radius:0 10px 10px 0;
}
.md-body strong{color:var(--txt)}

/* ============================================================
   v5.5 新增界面样式：连续笔记流 / 七册两级目录 / 数据纵览卡片
   ============================================================ */

/* 灵感随记：一页连续笔记 */
.note-page{background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.5);
  border-radius:var(--r-lg);padding:26px 30px;margin-bottom:18px;min-height:300px;
  backdrop-filter:blur(26px);-webkit-backdrop-filter:blur(26px);box-shadow:var(--shadow-sm)}
.note-line{padding:14px 0;border-bottom:1px dashed rgba(0,0,0,.08)}
.note-line:last-child{border-bottom:none}
.nl-meta{font-family:var(--mono);font-size:11px;color:var(--dim);display:flex;
  justify-content:space-between;align-items:center;margin-bottom:6px}
.nl-ops a{cursor:pointer;color:var(--blue);margin-left:12px;font-size:11px}
.nl-ops a:hover{text-decoration:underline}
.nl-ops a.ni-del{color:#c92a2a}
.nl-body{font-size:13.5px;color:#3a3a3c;line-height:1.85;word-break:break-word}
.nl-body p{margin:6px 0}
.note-input-bar{display:flex;gap:10px;align-items:flex-end;position:sticky;bottom:12px;
  background:rgba(255,255,255,.78);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  padding:14px;border-radius:var(--r-md);border:1px solid rgba(255,255,255,.5);box-shadow:var(--shadow-md)}
.note-input-bar textarea{flex:1;min-height:64px;padding:11px 13px;border:1px solid var(--line2);
  border-radius:var(--r-sm);font-family:var(--sans);font-size:14px;color:var(--txt);
  background:var(--bg-elev);outline:none;resize:vertical;line-height:1.7}
.note-input-bar textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,113,227,.12)}
.note-input-bar .btn{flex:none;align-self:stretch;width:auto;margin:0}

/* 七册两级目录 */
.bk-dir{display:flex;flex-direction:column;gap:6px}
.bk-node{border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:rgba(255,255,255,.5)}
.bk-node-head{display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:12px 16px;cursor:pointer;transition:.15s;font-size:13.5px;font-weight:600;color:var(--txt)}
.bk-node-head:hover{background:rgba(0,113,227,.06)}
.bk-node-name{flex:1}
.bk-node-arrow{color:var(--dim);font-size:12px;flex:none}
.bk-node-body{background:rgba(255,255,255,.4)}

/* 数据纵览：主题域/指标卡片 */
.db-zone,.db-ind{cursor:pointer}
.db-zone .v{font-size:30px}
.db-ind .k span{font-size:12.5px;font-weight:600;line-height:1.5;display:-webkit-box;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.db-ind{min-height:74px}
.ov-file{opacity:.6}

/* ============================================================
   v7.0 深度美化（2026-10-25）
   原则：不动数据链路与页面结构，只做质感精修。
   ① 毛玻璃 .68→.88：暗星云不再把卡片压得发灰，长文对比度达标；
   ② 顶栏品牌图标与登录页统一；③ 报告 iframe 淡入（JS 配合）；
   ④ 表格斑马纹与行间呼吸感；⑤ 简报胶囊条吸顶；
   ⑥ 焦点可见性与 prefers-reduced-motion。
   ============================================================ */

/* —— 顶栏：更从容的高度 + 品牌图标 —— */
.topbar{height:60px;gap:20px;padding:0 26px}
.logo{display:flex;align-items:center;gap:9px;font-size:15px}
.logo-mark{width:25px;height:25px;flex:none;border-radius:7px;display:flex;
  align-items:center;justify-content:center;
  background:linear-gradient(135deg,#3d7bff 0%,#7a5cff 60%,#b45cff 100%);
  box-shadow:0 3px 10px rgba(90,110,255,.38),inset 0 1px 0 rgba(255,255,255,.45)}
.logo-mark svg{width:14px;height:14px}
.tab{padding:7px 15px;transition:color .18s,background .18s,transform .12s}
.tab:hover{background:rgba(255,255,255,.55)}
.tab:active{transform:scale(.96)}
.tab.on{background:rgba(255,255,255,.95);
  box-shadow:0 1px 3px rgba(0,0,0,.10),0 4px 12px rgba(0,0,0,.06)}

/* —— 毛玻璃质感：提高不透度，保留 blur 透视但文字清爽 —— */
.card,.panel,.ov-side,.doc-list,.md-body,.cl-auth,
.note-editor,.note-item,.file-upload,.file-list{
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(24px) saturate(1.5);
  -webkit-backdrop-filter:blur(24px) saturate(1.5);
  border-color:rgba(255,255,255,.62);
}
.note-page{background:rgba(255,255,255,.86)}
.cl-bar{background:rgba(255,255,255,.8)}
.card,.panel{box-shadow:0 1px 2px rgba(16,24,40,.05),0 10px 30px rgba(16,24,40,.10)}
.card:hover{transform:translateY(-2px);border-color:rgba(0,113,227,.35);
  box-shadow:0 2px 4px rgba(16,24,40,.05),0 16px 40px rgba(16,24,40,.13)}
.panel{border-radius:16px}
.card{border-radius:16px}
.md-body{border-radius:16px;line-height:1.95}
.tz-list{background:rgba(255,255,255,.72)}

/* —— 表格：斑马纹 + 行 hover 更柔和 —— */
table tbody tr:nth-child(even){background:rgba(0,0,0,.018)}
tbody tr:hover{background:rgba(0,113,227,.045)}
th{font-size:11px;letter-spacing:.05em}

/* —— 报告嵌入：iframe 淡入（opacity 由 JS 控制），避免生硬闪现 —— */
.embed-bare iframe,.embed-box iframe{transition:opacity .45s ease}
.embed-box{background:rgba(255,255,255,.75)}

/* —— 市场观察：期次胶囊条吸顶，滚动长简报也能随时切期 —— */
.brief-bar{position:sticky;top:60px;z-index:30;margin:0 -10px 4px;
  padding:10px 10px 12px;border-radius:0 0 16px 16px;
  background:rgba(9,14,28,.42);
  backdrop-filter:blur(20px) saturate(1.3);-webkit-backdrop-filter:blur(20px) saturate(1.3)}
.brief-chip{background:rgba(255,255,255,.82);border-color:rgba(255,255,255,.4);
  font-size:12px;padding:6px 15px;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.brief-chip:hover{background:#fff;transform:translateY(-1px)}
.brief-chip.on{background:var(--blue);border-color:var(--blue);
  box-shadow:0 3px 12px rgba(0,113,227,.35)}

/* —— 页脚：渐变细分隔线 —— */
footer.foot{border-top:none;position:relative;padding-top:30px}
footer.foot::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:min(560px,72vw);height:1px;
  background:linear-gradient(90deg,transparent,rgba(140,165,230,.4),transparent)}

/* —— 可访问性：焦点环 + 减少动态效果 —— */
.tab:focus-visible,.brief-chip:focus-visible,.chip:focus-visible,
.logout:focus-visible,.btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
  .nebula{animation:none}
}

/* —— 移动端适配 v7.0 新增部分 —— */
@media (max-width:820px){
  .topbar{height:auto;padding:10px 14px}
  .brief-bar{position:static;margin:0 -6px 4px;padding:8px 6px 10px}
  .brief-chip{padding:7px 14px;font-size:12.5px}
  .card,.panel,.md-body{border-radius:14px}
}

/* ============================================================
   v7.1 浑然一体深化（2026-10-26）
   在 v7.0 质感基础上做「整站一体化」：路由切换过渡、顶栏滚动态、
   统一加载脉冲、页头品牌化、滚动条与选区品牌色、卡片入场节奏。
   依旧覆盖式追加，不动数据链路与嵌入报告背景铁律。
   ============================================================ */

/* —— 路由切换：整页淡入上浮，栏目切换不再生硬 —— */
.page.view-in{animation:viewIn .38s cubic-bezier(.22,.61,.36,1) backwards}
@keyframes viewIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* —— 卡片/面板入场节奏（跟随视图过渡，错峰 40ms，最多前 8 个） —— */
.view-in .panel,.view-in .card,.view-in .md-body,.view-in .embed-bare{
  animation:cardIn .5s cubic-bezier(.22,.61,.36,1) backwards}
.view-in .panel:nth-of-type(2),.view-in .card:nth-of-type(2){animation-delay:.04s}
.view-in .panel:nth-of-type(3),.view-in .card:nth-of-type(3){animation-delay:.08s}
.view-in .panel:nth-of-type(4),.view-in .card:nth-of-type(4){animation-delay:.12s}
.view-in .panel:nth-of-type(5),.view-in .card:nth-of-type(5){animation-delay:.16s}
.view-in .panel:nth-of-type(n+6),.view-in .card:nth-of-type(n+6){animation-delay:.2s}
@keyframes cardIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* —— 顶栏滚动态：压缩 + 加深模糊 + 品牌细分隔线 —— */
.topbar{transition:height .25s ease,background .25s ease,box-shadow .25s ease}
.topbar.scrolled{height:52px;background:rgba(244,246,251,.78);
  box-shadow:0 1px 0 rgba(120,140,200,.18),0 8px 28px rgba(10,20,50,.10)}
.topbar.scrolled .logo-mark{width:22px;height:22px}

/* —— 加载态：三点品牌脉冲，替代干文字 —— */
.loading{display:flex;gap:8px;align-items:center;justify-content:center;
  min-height:180px;color:transparent;font-size:0}
.loading span{width:9px;height:9px;border-radius:50%;
  background:linear-gradient(135deg,#3d7bff,#7a5cff);
  animation:pulse 1.1s ease-in-out infinite;opacity:.85}
.loading span:nth-child(2){animation-delay:.15s}
.loading span:nth-child(3){animation-delay:.3s}
@keyframes pulse{0%,100%{transform:scale(.7);opacity:.4}50%{transform:scale(1.15);opacity:1}}

/* —— 页头品牌化（有 page-head 的自建页；页头悬浮于深色星空之上，用亮色系） —— */
.page-head h2{background:linear-gradient(120deg,#ffffff 25%,#c9dcff 70%,#9db8ff 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  letter-spacing:.01em}
.page-head .sub{color:rgba(226,236,252,.88)}
.page-head .eyebrow{letter-spacing:.22em;font-weight:600;color:#8fb4ff}
.page-head .stamp{background:rgba(255,255,255,.9);border:1px solid rgba(255,255,255,.6);
  border-radius:12px;padding:9px 14px;box-shadow:0 2px 10px rgba(16,24,40,.06);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  color:#5a6480}
.page-head .stamp b{color:#2f4bd7}

/* —— 滚动条与选区：品牌化细节 —— */
html{scroll-behavior:smooth}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(80,110,190,.32);border-radius:6px;
  border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:rgba(80,110,190,.5);
  border:2px solid transparent;background-clip:content-box}
::selection{background:rgba(61,123,255,.22)}

/* —— 嵌入报告与页面节奏的缝合：两侧留白与页面版心呼吸一致 —— */
.embed-bare{margin:2px 0 8px}
.page.wide .embed-bare{margin-top:6px}

/* 无所得道 v6.3（2026-10-26）：场景速查 + 通则篇分组 */
.tz-pian{padding:14px 16px 4px;font-weight:700;font-size:13px;color:var(--blue,#0071e3)}
.sc-row{cursor:pointer}
.sc-ico{background:rgba(0,113,227,.12)!important;color:var(--blue,#0071e3)!important;width:auto!important;padding:0 9px}

/* ============================================================
   v7.2 双页深化（2026-10-26）
   文豪指令「市场观察、无所得道深度优化」：
   ① 市场观察：期次条改白瓷毛玻璃胶囊条（期数说明 + 最新徽章），
      简报 iframe 卡片化（圆角 + 悬浮阴影，浮于星空之上）；
   ② 无所得道：场景速查由长列表改卡片网格（点击高亮联动通则），
      心法卡顶部品牌渐变条，通则编号渐变徽章，篇分组吸顶，
      统计卡右上光晕。
   依旧覆盖式追加，不动数据链路与嵌入报告背景铁律。
   ============================================================ */

/* —— 市场观察：白瓷期次条（覆盖 v7.0 深色条） —— */
.brief-bar{display:flex;align-items:center;gap:14px;position:sticky;top:70px;z-index:30;
  margin:0 0 14px;padding:10px 14px;border-radius:16px;
  background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.6);
  backdrop-filter:blur(22px) saturate(1.5);-webkit-backdrop-filter:blur(22px) saturate(1.5);
  box-shadow:0 8px 28px rgba(8,18,44,.22)}
.brief-cap{flex:none;font-size:11.5px;letter-spacing:.06em;color:#5a6b8c;font-weight:600;
  padding-right:12px;border-right:1px solid rgba(0,0,0,.08);white-space:nowrap}
.brief-chips{display:flex;gap:8px;overflow-x:auto;padding:11px 2px 2px;margin-top:-11px;scrollbar-width:thin;flex:1}
.brief-chip{flex:0 0 auto;border:1px solid rgba(20,50,110,.14);background:rgba(244,247,252,.9);
  color:#3c4a63;border-radius:999px;padding:6px 15px;font-size:12px;cursor:pointer;
  font-family:var(--mono);transition:.16s;position:relative}
.brief-chip:hover{background:#fff;color:var(--blue);border-color:rgba(0,113,227,.45);transform:translateY(-1px)}
.brief-chip.on{background:linear-gradient(135deg,#0071e3,#4a4ad0);color:#fff;border-color:transparent;
  font-weight:600;box-shadow:0 4px 14px rgba(0,90,220,.35)}
.brief-chip.latest::after{content:"最新";position:absolute;top:-8px;right:-5px;
  background:linear-gradient(135deg,#ff6b4a,#e0318f);color:#fff;font-size:9px;font-weight:700;
  padding:2px 6px;border-radius:8px;letter-spacing:.06em;box-shadow:0 2px 6px rgba(224,49,99,.4);
  font-family:var(--sans)}

/* —— 简报卡片化：圆角 + 悬浮阴影 —— */
.brief-embed iframe{border-radius:18px;box-shadow:0 26px 70px rgba(4,10,28,.5)}

/* —— 无所得道：场景速查卡片网格 —— */
.sc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:12px;margin-top:14px}
.sc-card{cursor:pointer;border:1px solid var(--line);border-radius:14px;padding:14px 16px 12px;
  background:rgba(255,255,255,.66);transition:.18s;position:relative;overflow:hidden}
.sc-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(180deg,#0071e3,#5e5ce6);opacity:0;transition:.18s}
.sc-card:hover{transform:translateY(-2px);border-color:rgba(0,113,227,.4);
  box-shadow:0 8px 22px rgba(16,30,60,.10);background:#fff}
.sc-card:hover::before,.sc-card.on::before{opacity:1}
.sc-card.on{border-color:var(--blue);background:#fff;box-shadow:0 8px 24px rgba(0,90,220,.16)}
.sc-t{font-size:13.5px;font-weight:700;color:var(--txt);line-height:1.5}
.sc-tz{display:inline-block;margin:7px 0 6px;padding:2.5px 10px;border-radius:999px;
  background:rgba(0,113,227,.09);color:var(--blue);font-family:var(--mono);
  font-size:10.5px;font-weight:700;letter-spacing:.02em}
.sc-bk{font-size:11.5px;color:var(--muted);line-height:1.75}
.sc-bk b{color:#48536b;font-weight:600;margin-right:3px}
.sc-aux{margin-left:8px}

/* —— 心法卡：顶部品牌渐变条 + 编号徽章 —— */
.xd-card{position:relative;overflow:hidden;padding-top:20px}
.xd-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,#0071e3,#5e5ce6,#af52de);opacity:.5;transition:.2s}
.xd-card:hover::before,.xd-card.open::before{opacity:1}
.xd-card.open{border-color:rgba(94,92,230,.45);box-shadow:0 12px 32px rgba(60,60,160,.14)}
.xd-no{display:inline-block;padding:2px 9px;border-radius:8px;background:rgba(94,92,230,.10);font-size:11.5px}

/* —— 通则编号渐变徽章 + 篇分组吸顶 —— */
.tz-id{width:auto;min-width:36px;padding:0 9px;height:26px;border-radius:8px;
  background:linear-gradient(135deg,rgba(0,113,227,.13),rgba(94,92,230,.13));color:#2f4bd7}
.tz-pian{position:sticky;top:0;z-index:2;background:rgba(251,251,253,.95);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line)}
.sc-ico{display:none}   /* 旧「景」徽章退场（场景已卡片化） */

/* —— 统计卡：右上渐变光晕 —— */
.xd-stat{position:relative;overflow:hidden}
.xd-stat::after{content:"";position:absolute;right:-42px;top:-42px;width:132px;height:132px;
  border-radius:50%;background:radial-gradient(circle,rgba(94,92,230,.13),transparent 70%)}

@media (max-width:820px){
  .brief-bar{position:static;flex-direction:column;align-items:stretch;gap:8px}
  .brief-cap{border-right:none;border-bottom:1px solid rgba(0,0,0,.07);padding:0 2px 8px}
  .sc-grid{grid-template-columns:1fr}
  .brief-embed iframe{border-radius:14px}
}

/* ============================================================
   v7.3 市场观察单期化（2026-10-26）
   文豪指令「不需要往期，只展示最新一期」：期次胶囊条退场。
   v7.3.1 文豪指令「像其他页面一样浑然一体」：meta 胶囊也退场——
   页面不加任何站点侧贴片，简报 hero 即页面头部（同多元/归因范式）。
   旧 .brief-bar/.brief-chips/.brief-chip/.brief-meta 规则保留不再渲染。
   ============================================================ */
.brief-meta{display:none}

/* v7.4 投决会议纪要插图（2026-10-26）：SVG 摘要卡等图片卡片化呈现 */
.md-body img{max-width:100%;border-radius:12px;margin:10px 0;
  box-shadow:0 6px 22px rgba(12,24,52,.10);border:1px solid var(--line);
  background:#fff;box-sizing:border-box}
