/* legal.css — CADUCEX 法律页样式（与 index.html 同一套设计令牌） */
:root{
  --blue:#2F6BFF; --blue-d:#1B4FD8; --blue-l:#EAF2FF; --soft:#F4F8FF;
  --ink:#0E1726; --ink2:#54648A; --ink3:#8A99B8;
  --line:#E3EAF7; --card:#FFFFFF;
  --good:#12A150; --warn:#E8890C; --danger:#D93A3A;
  --sh-sm:0 8px 24px -12px rgba(20,50,120,.22);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);overflow-x:hidden;
  font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC","Source Han Sans SC","Noto Sans SC",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  line-height:1.75;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1140px;margin:0 auto;padding:0 22px}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.82);backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid rgba(227,234,247,.9)}
.nav .wrap{display:flex;align-items:center;gap:18px;height:64px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.14em;font-size:15px;color:var(--ink);flex:0 0 auto}
.brand:hover{text-decoration:none}
.brand .dot{width:20px;height:20px;border-radius:7px;background:linear-gradient(140deg,var(--blue),#6E9BFF);
  box-shadow:0 6px 14px -6px rgba(47,107,255,.9);position:relative}
.brand .dot:after{content:"";position:absolute;inset:6px;border-radius:3px;background:#fff}
.nav nav{display:flex;gap:20px;margin-left:auto;font-size:14.5px;font-weight:500;color:var(--ink2);flex:0 0 auto}
.nav nav a{color:var(--ink2);white-space:nowrap}
.nav nav a:hover{color:var(--blue);text-decoration:none}
.nav nav a.on{color:var(--blue);font-weight:700}

/* ---------- 语言切换器（法律页；与宣传页同一个 localStorage 键 cx_lang） ---------- */
.langsw{display:flex;align-items:center;gap:2px;flex:0 0 auto;background:var(--soft);
  border:1px solid var(--line);border-radius:999px;padding:2px}
.langsw a{font-size:12.5px;font-weight:700;color:var(--ink3);padding:4px 10px;border-radius:999px;
  line-height:1.25;white-space:nowrap}
.langsw a:hover{color:var(--blue);text-decoration:none}
.langsw a.on{background:#fff;color:var(--blue);box-shadow:0 2px 8px -4px rgba(20,50,120,.45)}

/* ---------- hero ---------- */
.lhero{background:radial-gradient(1000px 460px at 90% -20%,#E4EEFF 0%,rgba(244,248,255,0) 62%),
  linear-gradient(180deg,#FAFCFF 0%,#FFFFFF 84%);border-bottom:1px solid var(--line);
  padding:clamp(36px,4.6vw,60px) 0 clamp(26px,3vw,40px)}
.lhero h1{margin:16px 0 12px;font-size:clamp(27px,3.8vw,44px);font-weight:850;letter-spacing:-.02em;line-height:1.18}
.lhero .eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;letter-spacing:.06em;
  color:var(--blue);background:var(--blue-l);border-radius:999px;padding:7px 14px}
.lhero .eyebrow i{width:6px;height:6px;border-radius:50%;background:var(--blue);display:block}
.lhero p{margin:0;color:var(--ink2);font-size:clamp(15px,1.5vw,17px);max-width:760px}

/* ---------- meta strip ---------- */
.meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.meta span{font-size:13px;font-weight:600;color:var(--ink2);background:#fff;border:1px solid var(--line);
  border-radius:999px;padding:7px 13px;box-shadow:0 4px 12px -10px rgba(20,50,120,.4)}
.meta b{color:var(--blue)}

/* ---------- doc ---------- */
.doc{max-width:880px;margin:0 auto;padding:clamp(34px,4vw,58px) 22px 10px}
.toc{background:var(--soft);border:1px solid var(--line);border-radius:16px;padding:18px 22px;margin-bottom:34px}
.toc > b{display:block;font-size:13px;letter-spacing:.08em;color:var(--ink3);margin-bottom:10px}
.toc ol{margin:0;padding-left:20px;columns:2;column-gap:34px}
.toc li{font-size:14px;margin-bottom:4px;break-inside:avoid}
@media (max-width:640px){.toc ol{columns:1}}
.doc h2{font-size:clamp(19px,2.1vw,23px);font-weight:800;letter-spacing:-.01em;line-height:1.35;
  margin:44px 0 14px;padding-top:16px;border-top:1px solid var(--line);scroll-margin-top:80px}
.doc h2 .no{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;
  font-size:14px;font-weight:800;color:#fff;background:var(--blue);border-radius:9px;margin-right:11px;
  vertical-align:2px;padding:0 7px}
.doc h3{font-size:16px;font-weight:750;margin:24px 0 8px}
.doc p{margin:0 0 13px;color:#1B2739;font-size:15.5px}
.doc ul,.doc ol{margin:0 0 14px;padding-left:22px;color:#1B2739;font-size:15.5px}
.doc li{margin-bottom:7px}
.doc b,.doc strong{color:var(--ink);font-weight:750}
.doc code{background:var(--blue-l);color:var(--blue-d);border-radius:6px;padding:1px 6px;font-size:14px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.doc table{width:100%;border-collapse:collapse;margin:6px 0 18px;font-size:14.5px}
.doc th,.doc td{border:1px solid var(--line);padding:9px 12px;text-align:left;vertical-align:top}
.doc th{background:var(--soft);font-weight:700;color:var(--ink2);white-space:nowrap}
.doc td.n{white-space:nowrap}

/* callouts —— 标题永远写在 callout 的第一个子元素里，用 :first-child 精确命中；
   这样 callout 正文里用作强调的内联 <b> 不会被误设成块级 */
.callout{border-radius:14px;padding:15px 18px;margin:0 0 18px;font-size:15px;border:1px solid}
.callout > b:first-child{display:block;margin-bottom:5px}
.callout.warn{background:#FFF8EC;border-color:#F6DFB6;color:#8A5A06}
.callout.warn > b:first-child{color:#A9670A}
.callout.rule{background:#FFF5F5;border-color:#F5D2D2;color:#8E2C2C}
.callout.rule > b:first-child{color:#B03030}
.callout.good{background:#F1FBF5;border-color:#C7EDD8;color:#0F7A3D}
.callout.good > b:first-child{color:#0F7A3D}
.callout.info{background:var(--soft);border-color:var(--line);color:var(--ink2)}
.callout.info > b:first-child{color:var(--ink)}

/* fill-in placeholder（现役法律页已无占位符；样式保留备将来使用） */
.fill{background:#FFF3D6;border-bottom:1px dashed var(--warn);border-radius:6px;padding:1px 7px;
  font-weight:700;color:#8A5A06;white-space:nowrap}

/* footer */
footer{background:#0B1428;color:#93A4C2;padding:48px 0 30px;margin-top:56px}
footer .top{display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;align-items:flex-start}
footer .b{color:#fff;font-size:15px;font-weight:800;letter-spacing:.14em}
footer .slog{color:#8FA2C4;font-size:13.5px;margin-top:9px;max-width:340px}
footer .cols{display:flex;gap:52px;flex-wrap:wrap}
footer .col b{color:#fff;font-size:13px;display:block;margin-bottom:12px;letter-spacing:.04em}
footer .col a,footer .col span{display:block;font-size:13.5px;margin-bottom:9px;color:#93A4C2}
footer .col a:hover{color:#fff;text-decoration:none}
footer .bot{border-top:1px solid rgba(255,255,255,.1);margin-top:30px;padding-top:18px;display:flex;
  flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:12.5px;color:#6C7C9C}
footer .bot span:last-child{max-width:560px}
@media (max-width:640px){
  footer .cols{gap:30px}
  .nav nav{gap:14px;font-size:13.5px}
  .doc table{font-size:13.5px}
  .doc th,.doc td{padding:7px 9px}
}
/* 窄屏：品牌 + 语言切换器一行，导航链接折到第二行 —— 不靠 flex 压缩（英文更长的教训） */
@media (max-width:620px){
  .nav .wrap{flex-wrap:wrap;height:auto;padding:9px 0;gap:8px 12px}
  .langsw{margin-left:auto}
  .nav nav{order:3;width:100%;margin-left:0;justify-content:flex-start;gap:13px;font-size:13px}
  .nav nav a{white-space:nowrap}
}

/* ---------- 许可全文折叠块（第四张法律页用） ---------- */
details.licbox{border:1px solid var(--line);border-radius:14px;background:#FBFDFF;padding:0 16px;margin:0 0 16px}
details.licbox>summary{cursor:pointer;font-weight:700;font-size:14.5px;padding:13px 0;color:var(--blue);list-style:none}
details.licbox>summary::-webkit-details-marker{display:none}
details.licbox>summary:before{content:"+ ";font-weight:800}
details.licbox[open]>summary:before{content:"\2212 "}
details.licbox pre{white-space:pre-wrap;word-break:break-word;font-size:12.5px;line-height:1.62;background:#fff;
  border:1px solid var(--line);border-radius:10px;padding:14px;max-height:520px;overflow:auto;margin:0 0 16px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#26324A}
@media (max-width:640px){details.licbox pre{font-size:11.5px;padding:11px}}

/* 长串（如 github.com/... 仓库路径、许可文本里的 URL）在窄屏必须能断行，否则表格横向溢出 */
.doc code{overflow-wrap:anywhere}
.doc td,.doc th{overflow-wrap:anywhere}
