
  :root {
    --bg:#f7f8fa; --surface:#fff; --border:#e2e5eb; --text:#111827; --muted:#6b7280;
    --red:#c8102e; --red-soft:#fff5f5; --radius:12px;
    --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  }
  * { box-sizing:border-box; margin:0; padding:0; }
  body { background:var(--bg); font-family:var(--sans); color:var(--text); line-height:1.55; }
  .top { background:var(--surface); border-bottom:1px solid var(--border); padding:12px 20px;
    display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
    position:sticky; top:0; z-index:10; }
  .top a { font-size:13px; font-weight:600; color:var(--text); text-decoration:none; padding:8px 12px; border-radius:8px; }
  .top a:hover { background:var(--bg); }
  .top .brand { color:var(--red); font-weight:800; }
  .layout { max-width:1100px; margin:0 auto; padding:24px 20px 80px; display:grid; grid-template-columns:230px 1fr; gap:28px; }
  @media (max-width:840px) { .layout { grid-template-columns:1fr; } .toc { position:static !important; max-height:none; } }
  .toc { position:sticky; top:70px; align-self:start; background:var(--surface); border:1px solid var(--border);
    border-radius:var(--radius); padding:16px; max-height:calc(100vh - 90px); overflow:auto; }
  .toc h3 { font-size:11px; text-transform:uppercase; letter-spacing:1.2px; color:var(--red); margin-bottom:10px; }
  .toc a { display:block; font-size:12.5px; color:var(--text); text-decoration:none; padding:5px 0; border-bottom:1px solid #f3f4f6; }
  .toc a:hover { color:var(--red); }
  .doc { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:32px 36px; }
  .doc header { text-align:center; margin-bottom:20px; padding-bottom:18px; border-bottom:2px solid var(--red); }
  .doc header .eyebrow { font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--red); font-weight:700; }
  .doc header h1 { font-size:24px; font-weight:800; margin:8px 0 4px; }
  .doc header .sub { color:var(--muted); font-size:14px; }
  .toc-box { background:#f9fafb; border:1px solid var(--border); border-radius:10px; padding:16px 18px; margin:0 0 24px; }
  .toc-box h2 { font-size:15px; margin:0 0 10px; color:var(--red); border:0; padding:0; }
  .toc-box ol { margin:0; padding-left:1.25rem; }
  .toc-box li { margin-bottom:6px; font-size:13.5px; }
  .toc-box a { color:var(--text); font-weight:600; text-decoration:none; }
  .toc-box a:hover { color:var(--red); text-decoration:underline; }
  h2 { font-size:17px; font-weight:800; margin:28px 0 10px; color:var(--red); scroll-margin-top:80px; padding-top:8px; border-top:1px solid var(--border); }
  h2.first { border-top:none; padding-top:0; }
  h3 { font-size:14.5px; font-weight:700; margin:16px 0 8px; }
  p, li { font-size:14.5px; margin-bottom:10px; }
  ul { padding-left:1.25rem; margin-bottom:12px; }
  .call { background:var(--red-soft); border-left:4px solid var(--red); padding:12px 14px; border-radius:0 8px 8px 0; margin:14px 0; font-weight:600; font-size:14px; }
  .note { font-size:13px; color:var(--muted); }
  .sig { border:1px dashed var(--border); border-radius:8px; padding:16px; margin-top:24px; background:#fafafa; }
  .related { background:#eff6ff; border:1px solid #bfdbfe; border-radius:10px; padding:12px 14px; margin:16px 0; font-size:13.5px; }
  .related a { color:#1d4ed8; font-weight:600; }
  @media print {
  .filco-sidebar, .filco-topbar { display:none !important; } .top, .toc { display:none !important; } .layout { display:block; } .doc { border:none; padding:0; } }

  .search-bar {
    display:flex; gap:8px; align-items:center; flex-wrap:wrap;
    margin:0 0 18px; padding:12px 14px; background:#f9fafb;
    border:1px solid var(--border); border-radius:10px;
  }
  .search-bar input {
    flex:1; min-width:180px; padding:10px 12px; border:1px solid var(--border);
    border-radius:8px; font-size:14px; font-family:inherit;
  }
  .search-bar input:focus { outline:2px solid #fecaca; border-color:var(--red); }
  .search-bar button {
    font-size:13px; font-weight:600; padding:10px 14px; border-radius:8px;
    border:1px solid var(--border); background:#fff; cursor:pointer;
  }
  .search-bar button.primary { background:var(--red); color:#fff; border-color:var(--red); }
  .search-meta { font-size:12.5px; color:var(--muted); width:100%; }
  mark.doc-hit { background:#fef08a; color:inherit; padding:0 2px; border-radius:2px; }
  .toc a.hit { color:var(--red); font-weight:700; }
  .section-dim { opacity:0.35; }


.call { background:#fff5f5; border-left:4px solid #c8102e; padding:12px 14px; border-radius:0 8px 8px 0; margin:12px 0 20px; }
.warn { background:#fef2f2; border:1px solid #fecaca; border-radius:10px; padding:10px 12px; margin:10px 0; color:#991b1b; }
.ok { background:#f0fdf4; border:1px solid #bbf7d0; border-radius:10px; padding:10px 12px; margin:10px 0; color:#166534; }
.doc h2 { font-size:18px; color:#c8102e; margin:28px 0 10px; padding-top:8px; border-top:1px solid #e2e5eb; }
.doc ul { margin:0 0 14px 1.2rem; }
.doc li { margin-bottom:6px; }
.doc p { margin:0 0 10px; }

.doc table { width:100%; border-collapse:collapse; margin:12px 0 20px; font-size:13px; }
.doc th, .doc td { border:1px solid #e2e5eb; padding:8px 10px; text-align:left; vertical-align:top; }
.doc th { background:#c8102e; color:#fff; font-weight:700; }
.doc tr:nth-child(even) td { background:#f9fafb; }
