/* Software-Engineering-Principles-and-Design-Patterns · 站内样式
 * 基础样式复用 docs/shared/style/satellite-base.css（三子站共用）。
 * 本文件仅保留原则条目 / 模式原理图等专属规则。
 */
@import url("../../docs/shared/style/satellite-base.css");

:root{
  --pd-box:#ccd0da; --pd-stroke:#9ca0b3; --pd-text:#4c4f69; --pd-line:#bcc0cc; --pd-cap:#7c7f93;
}
html[data-theme="dark"]{
  --pd-box:#313244; --pd-stroke:#a6adc8; --pd-text:#cdd6f4; --pd-line:#585b70; --pd-cap:#a6adc8;
}
@media (prefers-color-scheme: dark){
  html:not([data-theme="light"]){
    --pd-box:#313244; --pd-stroke:#a6adc8; --pd-text:#cdd6f4; --pd-line:#585b70; --pd-cap:#a6adc8;
  }
}

/* ---------- 原则条目 ---------- */
.p-item{margin:30px 0 0;padding-top:22px;border-top:1px dashed var(--line)}
.p-item:first-of-type{border-top:none;padding-top:0}
.p-item h3{margin:0 0 4px;font-size:18px;display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}
.p-item h3 .no{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:750}
.p-item h3 .en{color:var(--dim);font-size:13px;font-weight:500}
.p-item .core{color:var(--muted);margin:2px 0 12px}
.p-item .kv{margin:10px 0 0}
.p-item .kv>b{color:var(--strong);display:block;font-size:13.5px;letter-spacing:.02em;margin-bottom:2px}
.p-item .kv ul{margin:4px 0 0}
.p-item .refs{margin-top:12px;font-size:12.5px;color:var(--dim)}
.p-item .refs a{color:var(--muted)}
.p-item .refs a:hover{color:var(--accent)}

.svg-arrow{fill:var(--svg-line)}

/* ---------- 模式原理图 ---------- */
.pd{margin:16px 0;border:1px solid var(--line);border-radius:12px;padding:14px 14px 10px;background:var(--bg-card)}
.pd svg{width:100%;height:auto;display:block}
.pd-cap{color:var(--pd-cap);font-size:12.5px;margin-top:8px;line-height:1.5}
.pd-box{fill:var(--pd-box);stroke:var(--pd-stroke);stroke-width:1.4}
.pd-cls{fill:var(--pd-text);font-family:var(--font-sans);font-size:12.5px;font-weight:700}
.pd-iface{fill:var(--pd-text);font-family:var(--font-sans);font-size:12.5px;font-weight:700;font-style:italic}
.pd-line{fill:none;stroke:var(--pd-line);stroke-width:1.4}
.pd-dash{fill:none;stroke:var(--pd-line);stroke-width:1.4;stroke-dasharray:5 4}
.pd-tri{fill:var(--pd-box);stroke:var(--pd-stroke);stroke-width:1.3}
.pd-arrow{fill:var(--pd-line);stroke:none}
.pd-end{fill:none;stroke:var(--pd-line);stroke-width:1.4}
.pd-note{fill:var(--pd-cap);font-family:var(--font-sans);font-size:11px}

@media (max-width:640px){
  .p-item h3{font-size:16.5px}
}
