/* lianyanshe 统一设计系统
   基于 DESIGN.md：焦糖棕 / 羊皮纸杂志风
   所有子站共享此样式表，保持同一网站视觉语言。 */

/* ─────────────── 变量 / Tokens ─────────────── */
:root{
  /* light */
  --bg-primary:#f5efe1;
  --bg-secondary:#ede5d3;
  --bg-tertiary:#faf6ec;
  --bg-card:#fdfaf2;
  --bg-hover:#ede5d3;
  --border:#d6c9aa;
  --border-light:#e5d8b8;
  --text-primary:#2a2419;
  --text-secondary:#5e4f37;
  --text-muted:#8a7958;
  --accent:#b8763a;
  --accent-2:#8b5a2b;
  --accent-soft:#e6c896;
  --accent-hi:#d4a857;
  --accent-call:#5a8c5a;
  --accent-put:#b85959;
  --accent-info:#4a7c8c;
  --grid:rgba(139,90,43,0.06);
  --shadow-sm:0 1px 3px rgba(139,90,43,0.08);
  --shadow-md:0 2px 12px rgba(139,90,43,0.10);
  --shadow-lg:0 8px 32px rgba(139,90,43,0.15);
  --grad-warm:linear-gradient(135deg,#b8763a 0%,#d4a857 100%);
  --grad-line:linear-gradient(90deg,#b8763a,#d4a857);
  --radius-xs:3px;
  --radius-sm:4px;
  --radius-md:6px;
  --radius-lg:8px;
  --radius-xl:10px;
  --radius-2xl:12px;
  --radius-3xl:14px;
  --radius-4xl:16px;
  --radius-full:100px;
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",Georgia,"Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Segoe UI","Helvetica Neue",sans-serif;
  --mono:ui-monospace,"SF Mono","Monaco","Menlo",monospace;
}

/* 字体：优先系统中文，Noto 异步到达后自动切换 */
@font-face{
  font-family:"Noto Serif SC";
  font-style:normal;font-weight:500 700;
  font-display:swap;
  src:local("Noto Serif SC"),local("Source Han Serif SC");
}

@media (prefers-color-scheme:dark){
  html:not([data-theme]){
    --bg-primary:#1a1610;
    --bg-secondary:#221c14;
    --bg-tertiary:#2a2218;
    --bg-card:#1f1a12;
    --bg-hover:#2d2519;
    --border:#3d3325;
    --border-light:#4a3e2d;
    --text-primary:#f0e6d2;
    --text-secondary:#c9b894;
    --text-muted:#8a7958;
    --accent:#d4a857;
    --accent-2:#e6c896;
    --accent-soft:#3d2f1c;
    --accent-hi:#f0c878;
    --accent-call:#7ab87a;
    --accent-put:#d47878;
    --accent-info:#6aaabc;
    --grid:rgba(212,168,87,0.05);
    --shadow-sm:0 1px 3px rgba(0,0,0,0.3);
    --shadow-md:0 2px 12px rgba(0,0,0,0.4);
    --shadow-lg:0 8px 32px rgba(0,0,0,0.5);
    --grad-warm:linear-gradient(135deg,#d4a857 0%,#f0c878 100%);
    --grad-line:linear-gradient(90deg,#d4a857,#f0c878);
  }
}

html[data-theme="dark"]{
  --bg-primary:#1a1610;
  --bg-secondary:#221c14;
  --bg-tertiary:#2a2218;
  --bg-card:#1f1a12;
  --bg-hover:#2d2519;
  --border:#3d3325;
  --border-light:#4a3e2d;
  --text-primary:#f0e6d2;
  --text-secondary:#c9b894;
  --text-muted:#8a7958;
  --accent:#d4a857;
  --accent-2:#e6c896;
  --accent-soft:#3d2f1c;
  --accent-hi:#f0c878;
  --accent-call:#7ab87a;
  --accent-put:#d47878;
  --accent-info:#6aaabc;
  --grid:rgba(212,168,87,0.05);
  --shadow-sm:0 1px 3px rgba(0,0,0,0.3);
  --shadow-md:0 2px 12px rgba(0,0,0,0.4);
  --shadow-lg:0 8px 32px rgba(0,0,0,0.5);
  --grad-warm:linear-gradient(135deg,#d4a857 0%,#f0c878 100%);
  --grad-line:linear-gradient(90deg,#d4a857,#f0c878);
}

/* ─────────────── Reset & Base ─────────────── */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;padding:0;
  font-family:var(--sans);font-size:15px;line-height:1.7;
  color:var(--text-primary);
  background:var(--bg-primary);
  background-image:
    linear-gradient(var(--grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:48px 48px;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
  transition:background-color .35s ease,color .35s ease;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
button{font-family:inherit;cursor:pointer}

/* ─────────────── Typography ─────────────── */
.ls-serif{font-family:var(--serif)}
.ls-sans{font-family:var(--sans)}
.ls-mono{font-family:var(--mono)}

.ls-hero{
  font-family:var(--serif);font-weight:700;
  font-size:clamp(48px,8vw,96px);line-height:1.02;letter-spacing:-1.5px;
  margin:0 0 18px;color:var(--text-primary);
}
.ls-page-title{
  font-family:var(--serif);font-weight:700;
  font-size:clamp(32px,5vw,48px);line-height:1.15;letter-spacing:-0.5px;
  color:var(--text-primary);
}
.ls-section-title{
  font-family:var(--serif);font-weight:700;
  font-size:clamp(22px,3vw,30px);letter-spacing:.5px;
  color:var(--text-primary);margin:0;
}
.ls-card-title{
  font-family:var(--serif);font-weight:700;font-size:23px;line-height:1.25;letter-spacing:.3px;
  color:var(--text-primary);margin:0 0 10px;
}
.ls-h2{
  font-family:var(--serif);font-weight:700;font-size:26px;line-height:1.3;
  color:var(--text-primary);margin:0 0 12px;
}
.ls-h3{
  font-family:var(--serif);font-weight:600;font-size:18px;line-height:1.35;
  color:var(--text-primary);margin:0 0 10px;
}
.ls-body{
  font-family:var(--sans);font-size:15px;line-height:1.7;color:var(--text-secondary);
}
.ls-muted{color:var(--text-muted)}
.ls-secondary{color:var(--text-secondary)}
.ls-accent{color:var(--accent)}

.ls-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--serif);font-size:12px;letter-spacing:3px;text-transform:uppercase;
  color:var(--accent-2);font-weight:600;margin-bottom:22px;
}
.ls-eyebrow::before{content:"";width:28px;height:1px;background:var(--grad-line)}

/* ─────────────── Layout ─────────────── */
.ls-container{max-width:1080px;margin:0 auto;padding:0 clamp(20px,5vw,56px)}
.ls-section{padding-bottom:clamp(56px,8vw,96px)}
.ls-section-head{
  display:flex;align-items:flex-end;justify-content:space-between;
  margin-bottom:28px;padding-bottom:16px;border-bottom:1px solid var(--border-light);
  flex-wrap:wrap;gap:12px;
}
.ls-count{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted)}

/* ─────────────── Grid ─────────────── */
.ls-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media (max-width:960px){.ls-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.ls-grid{grid-template-columns:1fr}}

/* ─────────────── Topbar / Header ─────────────── */
.ls-topbar{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:10px clamp(20px,5vw,56px);
  background:color-mix(in srgb,var(--bg-primary) 88%,transparent);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  border-bottom:1px solid var(--border-light);
}
.ls-brand{
  display:flex;align-items:center;gap:10px;
  font-family:var(--serif);font-weight:700;font-size:20px;letter-spacing:.5px;
  color:var(--text-primary);
}
.ls-brand img{height:38px;width:auto;border-radius:6px}
.ls-brand .dot{width:11px;height:11px;border-radius:var(--radius-xs);background:var(--grad-warm);box-shadow:var(--shadow-sm)}
.ls-brand .sep{color:var(--accent);font-weight:500;margin:0 4px}
.ls-brand .sub{font-family:var(--sans);font-weight:400;font-size:12px;color:var(--text-muted);letter-spacing:1.5px;text-transform:uppercase;margin-left:4px}

/* ─────────────── Theme toggle ─────────────── */
.ls-theme-toggle{
  display:flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:50%;
  border:1px solid var(--border);background:var(--bg-card);
  cursor:pointer;color:var(--accent-2);
  box-shadow:var(--shadow-sm);
  transition:transform .25s ease,background .25s ease,border-color .25s ease;
}
.ls-theme-toggle:hover{transform:rotate(15deg);background:var(--bg-hover);border-color:var(--accent)}
.ls-theme-toggle svg{width:18px;height:18px}
html[data-theme="light"] .ls-ico-moon,
html:not([data-theme]) .ls-ico-moon{display:none}
html[data-theme="dark"] .ls-ico-sun{display:none}
@media (prefers-color-scheme:light){
  html:not([data-theme]) .ls-ico-sun{display:none}
}

/* ─────────────── Cards ─────────────── */
.ls-card{
  position:relative;display:flex;flex-direction:column;
  padding:26px 24px 22px;min-height:230px;
  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);
  box-shadow:var(--shadow-sm);
  transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s ease,border-color .3s ease;
  overflow:hidden;
}
.ls-card::before{
  content:"";position:absolute;left:0;top:0;height:4px;width:100%;
  background:var(--c,var(--accent));opacity:.9;
}
.ls-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--c,var(--accent))}
.ls-card .kicker{
  font-size:11px;letter-spacing:2.5px;text-transform:uppercase;
  color:var(--c,var(--accent));font-weight:700;margin-bottom:14px;
}
.ls-card h3{
  font-family:var(--serif);font-weight:700;font-size:23px;line-height:1.25;letter-spacing:.3px;
  margin:0 0 10px;color:var(--text-primary);
}
.ls-card .desc{color:var(--text-secondary);font-size:14px;margin:0 0 18px;flex:1}
.ls-card .foot{
  display:flex;align-items:center;justify-content:space-between;
  padding-top:14px;border-top:1px solid var(--border-light);
  font-size:12px;color:var(--text-muted);letter-spacing:1px;
}
.ls-card .go{
  color:var(--c,var(--accent));font-weight:600;display:inline-flex;align-items:center;gap:6px;
  transition:gap .25s ease;
}
.ls-card:hover .go{gap:11px}
.ls-card .go svg{width:13px;height:13px}
.ls-card.wide{grid-column:1 / -1;min-height:auto}
@media (min-width:961px){.ls-card.wide{grid-column:span 2}}

/* 主题色辅助类（用于卡片 / 标签） */
.ls-c-turtle{--c:#2f7d6b}
.ls-c-wyckoff{--c:#3b4a8a}
.ls-c-report{--c:#3a3027}
.ls-c-quant{--c:#c08a3e}
.ls-c-options{--c:#b8763a}
.ls-c-rent{--c:#f7931a}
.ls-c-cryptous{--c:#3b82f6}
.ls-c-usoptions{--c:#9c4b4b}
.ls-c-wisdom{--c:#b8763a}
.ls-c-encyclopedia{--c:#6b5b8c}

/* ─────────────── Buttons ─────────────── */
.ls-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 28px;border-radius:var(--radius-full);font-size:14px;font-weight:500;
  border:1px solid transparent;transition:all .2s ease;text-align:center;
}
.ls-btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.ls-btn-primary:hover{background:var(--accent-2);border-color:var(--accent-2);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.ls-btn-outline{background:transparent;color:var(--text-primary);border-color:var(--border)}
.ls-btn-outline:hover{border-color:var(--accent);color:var(--accent)}
.ls-btn-ghost{
  background:var(--bg-card);color:var(--text-secondary);border-color:var(--border);
  border-radius:var(--radius-md);padding:5px 10px;font-family:var(--serif);font-size:12px;
}
.ls-btn-ghost:hover{border-color:var(--accent);color:var(--text-primary)}

/* ─────────────── Prose / Article content ─────────────── */
.ls-prose{color:var(--text-secondary);line-height:1.85}
.ls-prose h1,.ls-prose h2,.ls-prose h3,.ls-prose h4{font-family:var(--serif);color:var(--text-primary)}
.ls-prose h1{font-size:1.875rem;font-weight:700;margin:0 0 1.5rem}
.ls-prose h2{font-size:1.5rem;font-weight:700;margin-top:2.25rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}
.ls-prose h3{font-size:1.125rem;font-weight:600;margin-top:1.5rem;margin-bottom:.75rem}
.ls-prose h4{font-size:1rem;font-weight:600;margin-top:1.25rem;margin-bottom:.5rem}
.ls-prose p,.ls-prose li{line-height:1.85}
.ls-prose p{margin:.9rem 0}
.ls-prose strong{color:var(--text-primary);font-weight:600}
.ls-prose em{color:var(--accent)}
.ls-prose ul,.ls-prose ol{padding-left:1.5rem;margin:.9rem 0}
.ls-prose ul{list-style:disc}
.ls-prose ol{list-style:decimal}
.ls-prose li{margin:.35rem 0}
.ls-prose hr{border:none;height:1px;background:linear-gradient(to right,transparent,var(--border-strong, var(--border)),transparent);margin:2.5rem 0}
.ls-prose blockquote{
  border-left:4px solid var(--accent);
  background:linear-gradient(90deg,rgba(184,118,58,0.06) 0%,rgba(184,118,58,0.02) 100%);
  border-radius:0 var(--radius-lg) var(--radius-lg) 0;
  padding:16px 22px;margin:1rem 0;color:var(--text-secondary);font-style:italic;
}
.ls-prose code{
  font-family:var(--mono);background:var(--bg-secondary);padding:.1rem .35rem;border-radius:var(--radius-sm);font-size:.9em;color:var(--accent);
}
.ls-prose pre{
  background:var(--bg-tertiary);border:1px solid var(--border);padding:1rem 1.25rem;border-radius:var(--radius-lg);
  overflow-x:auto;font-family:var(--mono);font-size:.85em;line-height:1.7;color:var(--text-primary);white-space:pre;
}
.ls-prose a{color:var(--accent);text-decoration:underline;text-decoration-color:rgba(184,118,58,0.3)}
.ls-prose a:hover{text-decoration-color:var(--accent)}
.ls-prose table{width:100%;border-collapse:collapse;font-size:.92em;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.ls-prose th{padding:.65rem 1rem;background:var(--bg-tertiary);color:var(--accent);font-weight:700;font-family:var(--serif);border-bottom:2px solid var(--accent);white-space:nowrap}
.ls-prose td{padding:.65rem 1rem;color:var(--text-secondary);border-bottom:1px solid var(--border-light)}
.ls-prose tbody tr:nth-child(even){background:rgba(184,118,58,0.025)}
.ls-prose tbody tr:last-child td{border-bottom:none}

/* ─────────────── Highlight boxes ─────────────── */
.ls-highlight{
  background:var(--bg-tertiary);border:1px solid var(--border-light);
  border-left:4px solid var(--accent);border-radius:0 var(--radius-xl) var(--radius-xl) 0;
  padding:14px 18px;font-size:13.5px;color:var(--text-secondary);margin:1rem 0;
}
.ls-highlight-info{border-left-color:var(--accent-info)}
.ls-highlight-success{border-left-color:var(--accent-call)}
.ls-highlight-warning{border-left-color:var(--accent-put)}

/* ─────────────── Data table component ─────────────── */
.ls-table-wrap{margin:1.5rem 0;overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--border)}
.ls-table{width:100%;border-collapse:collapse;font-size:.92em;background:var(--bg-card)}
.ls-table th{padding:.65rem 1rem;background:linear-gradient(180deg,var(--bg-tertiary) 0%,rgba(184,118,58,0.04) 100%);color:var(--accent);font-weight:700;font-family:var(--serif);border-bottom:2px solid var(--accent);white-space:nowrap}
.ls-table td{padding:.65rem 1rem;color:var(--text-secondary);border-bottom:1px solid var(--border-light)}
.ls-table tbody tr:nth-child(even){background:rgba(184,118,58,0.025)}
.ls-table tbody tr:hover{background:rgba(184,118,58,0.06)}
.ls-table tbody tr:last-child td{border-bottom:none}

/* ─────────────── Badges / Tags ─────────────── */
.ls-badge{
  display:inline-flex;align-items:center;
  background:var(--accent-soft);color:var(--accent-2);
  border-radius:var(--radius-xs);padding:3px 8px;font-size:10px;font-weight:600;letter-spacing:.5px;
}
.ls-badge-pill{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--bg-card);color:var(--text-secondary);border:1px solid var(--border-light);
  border-radius:var(--radius-full);padding:6px 14px;font-size:12px;
}

/* ─────────────── Footer ─────────────── */
.ls-footer{
  max-width:1080px;margin:0 auto;
  padding:32px clamp(20px,5vw,56px) 48px;
  border-top:1px solid var(--border-light);
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;
  font-size:12px;letter-spacing:1px;color:var(--text-muted);
}
.ls-footer .fl{display:flex;align-items:center;gap:10px}
.ls-footer .fl .dot{width:8px;height:8px;border-radius:50%;background:var(--grad-warm)}
.ls-footer a.muted{color:var(--text-secondary);border-bottom:1px dotted var(--border)}
.ls-footer a.muted:hover{color:var(--accent);border-color:var(--accent)}

/* ─────────────── Utility ─────────────── */
.ls-hidden{display:none !important}
.ls-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ─────────────── Reduced motion ─────────────── */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}
