
  :root {
    --navy:#0a2240; --navy-2:#103257; --blue:#1474c4; --blue-dark:#0f5aa9;
    --blue-soft:#e8f1fa; --accent:#18a0a6; --ink:#1c2733; --ink-soft:#4a5a6a;
    --line:#dde4ec; --line-soft:#eef2f7; --bg:#ffffff; --bg-rail:#f6f8fb;
    --warn-bg:#fff7e6; --warn-bd:#f0c36d; --danger-bg:#fdecec; --danger-bd:#e8a3a3;
    --ok-bg:#e9f7ef; --ok-bd:#9bd4b3;
    --sans:"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
    --mono:"SFMono-Regular",Consolas,Menlo,monospace;
    --nav-w:300px; --toc-w:236px; --header-h:56px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--bg);font-size:15px;line-height:1.62;}
  a{color:var(--blue);text-decoration:none;} a:hover{text-decoration:underline;}

  header.topbar{position:sticky;top:0;z-index:50;height:var(--header-h);background:var(--navy);
    color:#fff;display:flex;align-items:center;gap:16px;padding:0 20px;box-shadow:0 1px 0 rgba(0,0,0,.15);}
  .topbar .brand{display:flex;align-items:center;gap:10px;font-weight:700;white-space:nowrap;line-height:1.15;}
  .topbar .brand .logo{width:30px;height:30px;border-radius:50%;background:var(--blue);
    display:grid;place-items:center;font-size:10px;font-weight:800;color:#fff;}
  .topbar .brand small{font-weight:400;opacity:.8;font-size:12px;}
  .topbar nav.utility{margin-left:auto;display:flex;gap:18px;font-size:13px;}
  .topbar nav.utility a{color:#cdd9e6;} .topbar nav.utility a:hover{color:#fff;text-decoration:none;}
  .topbar .search{position:relative;}
  .topbar .search input{width:250px;max-width:36vw;padding:7px 12px 7px 32px;border:1px solid transparent;
    border-radius:6px;background:#fff;color:var(--ink);font-size:13px;}
  .topbar .search::before{content:"\1F50D";position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:12px;opacity:.6;}

  .shell{display:grid;grid-template-columns:var(--nav-w) minmax(0,1fr) var(--toc-w);align-items:start;}

  aside.leftnav{position:sticky;top:var(--header-h);height:calc(100vh - var(--header-h));overflow-y:auto;
    background:var(--bg-rail);border-right:1px solid var(--line);padding:14px 0 60px;}
  .leftnav .nav-title{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--ink-soft);
    font-weight:700;padding:8px 20px;margin-top:6px;}
  .leftnav ul{list-style:none;margin:0;padding:0;}
  .leftnav li{position:relative;}
  .leftnav a,.leftnav .group>.label{display:flex;align-items:center;gap:6px;padding:7px 20px;font-size:13.5px;
    color:var(--ink);cursor:pointer;border-left:3px solid transparent;}
  .leftnav a:hover,.leftnav .group>.label:hover{background:#eaeff5;text-decoration:none;}
  .leftnav a.active{background:var(--blue-soft);color:var(--blue-dark);border-left-color:var(--blue);font-weight:600;}
  .leftnav .caret{display:inline-block;width:12px;font-size:10px;color:var(--ink-soft);transition:transform .15s ease;}
  .leftnav .group.collapsed>ul{display:none;}
  .leftnav .group.collapsed>.label .caret{transform:rotate(-90deg);}
  .leftnav .group>.label{font-weight:600;}
  .leftnav .group ul a{padding-left:38px;font-size:13px;color:var(--ink-soft);font-weight:400;}
  .leftnav .group ul .group>.label{padding-left:38px;font-size:13px;color:var(--ink-soft);font-weight:600;}
  .leftnav .group ul .group ul a{padding-left:56px;}
  /* deeper nesting levels indent progressively */
  .leftnav .group ul .group ul .group>.label{padding-left:56px;}
  .leftnav .group ul .group ul .group ul a{padding-left:74px;}
  .leftnav .group ul .group ul .group ul .group>.label{padding-left:74px;}
  .leftnav .group ul .group ul .group ul .group ul a{padding-left:92px;}
  .leftnav .help-link{margin-top:14px;border-top:1px solid var(--line);padding-top:8px;}
  .leftnav .help-link a{font-weight:600;color:var(--blue);}

  main.content{padding:26px 46px 90px;max-width:900px;min-width:0;}
  .breadcrumb{font-size:12.5px;color:var(--ink-soft);margin-bottom:18px;display:flex;flex-wrap:wrap;gap:6px;}
  .breadcrumb a{color:var(--ink-soft);} .breadcrumb a:hover{color:var(--blue);} .breadcrumb .sep{opacity:.5;}

  .page-head h1{font-size:30px;line-height:1.2;margin:0 0 6px;color:var(--navy);font-weight:700;}
  .page-head .subtitle{font-size:16px;color:var(--ink-soft);margin:0 0 16px;}
  .meta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
    border:1px solid var(--line);border-radius:8px;overflow:hidden;margin:0 0 8px;}
  .meta-grid .cell{background:#fff;padding:9px 13px;}
  .meta-grid .k{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-soft);font-weight:700;}
  .meta-grid .v{font-size:13.5px;color:var(--ink);}
  .last-updated{font-size:12.5px;color:var(--ink-soft);margin:10px 0 26px;display:flex;align-items:center;gap:6px;}
  .last-updated .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);}

  main.content h2{font-size:22px;color:var(--navy);margin:40px 0 12px;padding-bottom:7px;
    border-bottom:2px solid var(--line);scroll-margin-top:70px;}
  main.content h3{font-size:17px;color:var(--navy-2);margin:24px 0 8px;scroll-margin-top:70px;}
  main.content h4{font-size:14px;color:var(--ink);margin:16px 0 6px;text-transform:uppercase;letter-spacing:.4px;font-weight:700;scroll-margin-top:70px;}
  /* workflow sub-section headings (SOP H2 groups like Key Contacts, Facility) read as real sections, not tiny labels */
  main.content h4[id^="bs-sec-"], main.content h4[id^="br-sec-"], main.content h4[id^="as-sec-"]{
    font-size:16px;color:var(--navy-2);text-transform:none;letter-spacing:0;margin:22px 0 8px;
    padding-top:6px;border-top:1px solid var(--line);}
  main.content p{margin:0 0 12px;}
  main.content ul,main.content ol{margin:0 0 14px;padding-left:22px;} main.content li{margin:4px 0;}

  .lead{font-size:15.5px;color:var(--ink-soft);background:var(--line-soft);border-radius:8px;padding:14px 18px;margin:0 0 8px;}

  .callout{border:1px solid var(--line);border-left:4px solid var(--blue);background:var(--blue-soft);
    border-radius:6px;padding:12px 16px;margin:16px 0;font-size:14px;}
  .callout .ctitle{font-weight:700;margin-bottom:3px;display:flex;gap:7px;align-items:center;}
  .callout.tip{border-left-color:var(--accent);background:#e7f6f6;}
  .callout.warn{border-left-color:var(--warn-bd);background:var(--warn-bg);}
  .callout.danger{border-left-color:var(--danger-bd);background:var(--danger-bg);}

  .step{border:1px solid var(--line);border-radius:10px;margin:18px 0;overflow:hidden;background:#fff;scroll-margin-top:70px;}
  .step>.step-head{display:flex;align-items:center;gap:12px;background:var(--navy);color:#fff;padding:11px 16px;}
  .step>.step-head .num{flex:none;width:26px;height:26px;border-radius:50%;background:var(--blue);
    display:grid;place-items:center;font-weight:800;font-size:13px;}
  .step>.step-head .step-title{font-weight:600;font-size:15px;}
  .step .step-body{padding:14px 18px;}
  .step .field-row{margin:10px 0;}
  .step .field-row .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--blue-dark);
    font-weight:700;margin-bottom:2px;}

  table.doc{width:100%;border-collapse:collapse;margin:14px 0;font-size:13.5px;}
  table.doc th{background:var(--navy);color:#fff;text-align:left;padding:9px 12px;font-weight:600;font-size:12.5px;}
  table.doc th .sort{opacity:.55;font-size:10px;margin-left:4px;}
  table.doc td{padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top;}
  table.doc tr:nth-child(even) td{background:var(--line-soft);}
  table.doc.if-then th:first-child,table.doc.if-then td:first-child{width:45%;}

  .shot{border:2px dashed var(--blue);border-radius:10px;
    background:repeating-linear-gradient(45deg,#f4f8fc,#f4f8fc 12px,#eef4fb 12px,#eef4fb 24px);
    padding:34px 20px;text-align:center;margin:16px 0;color:var(--ink-soft);}
  .shot .icon{font-size:30px;} .shot .cap{font-weight:700;color:var(--navy);margin-top:6px;font-size:14px;}
  .shot .hint{font-size:12.5px;}
  .annot{list-style:none;padding:0;margin:12px 0;display:grid;grid-template-columns:1fr 1fr;gap:8px 22px;}
  .annot li{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;}
  .annot .badge{flex:none;width:22px;height:22px;border-radius:50%;background:var(--blue);color:#fff;
    font-weight:800;font-size:12px;display:grid;place-items:center;}

  figure.diagram{margin:18px 0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;}
  figure.diagram img{width:100%;display:block;cursor:zoom-in;}
  figure.diagram svg{cursor:zoom-in;}
  figure.diagram figcaption{font-size:12.5px;color:var(--ink-soft);padding:8px 14px;background:var(--bg-rail);border-top:1px solid var(--line);}
  /* premium business-flow diagram */
  figure.diagram.bizflow{border:1px solid #dbe4ee;border-radius:14px;background:linear-gradient(180deg,#fbfdff 0%,#f3f7fc 100%);box-shadow:0 1px 3px rgba(10,34,64,.06);}
  figure.diagram.bizflow svg{display:block;width:100%;height:auto;padding:20px 22px 8px;box-sizing:border-box;}
  figure.diagram.bizflow figcaption{background:#f3f7fc;border-top:1px solid #e3ebf4;}
  figure.diagram.bizflow .zoom-hint{position:absolute;top:12px;right:14px;font-size:11px;color:#5b6b7d;background:#fff;border:1px solid #dbe4ee;border-radius:20px;padding:3px 10px;display:inline-flex;align-items:center;gap:5px;pointer-events:none;box-shadow:0 1px 2px rgba(10,34,64,.06);}
  figure.diagram.bizflow{position:relative;}

  /* SOP screenshots inside step blocks */
  figure.shotimg{margin:14px 0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;}
  figure.shotimg img{width:100%;display:block;cursor:zoom-in;}
  figure.shotimg figcaption{font-size:12px;color:var(--ink-soft);padding:7px 12px;background:var(--bg-rail);border-top:1px solid var(--line);}
  /* click-to-zoom lightbox */
  .lightbox{position:fixed;inset:0;background:rgba(6,16,30,.9);z-index:200;display:none;
    align-items:center;justify-content:center;padding:24px;cursor:zoom-out;}
  .lightbox.open{display:flex;}
  .lightbox img{max-width:100%;max-height:100%;border-radius:6px;box-shadow:0 10px 40px rgba(0,0,0,.5);}
  .lightbox .lb-stage{max-width:95vw;max-height:90vh;display:flex;align-items:center;justify-content:center;}
  .lightbox .lb-close{position:absolute;top:14px;right:20px;color:#fff;font-size:28px;font-weight:700;
    background:none;border:0;cursor:pointer;line-height:1;}

  .flow{display:flex;flex-direction:column;align-items:center;gap:0;margin:18px 0;}
  .flow .node{background:#fff;border:2px solid var(--blue);color:var(--navy);border-radius:8px;
    padding:8px 18px;font-weight:600;font-size:13.5px;min-width:230px;text-align:center;}
  .flow .node.terminal{background:var(--navy);color:#fff;border-color:var(--navy);}
  .flow .arrow{color:var(--blue);font-size:17px;line-height:1.15;}

  /* case hierarchy */
  .case-tree{margin:18px 0;}
  .case-card{border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:8px;background:#fff;
    padding:12px 16px;margin:0 0 6px;}
  .case-card .tag{font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;font-weight:800;color:var(--blue-dark);}
  .case-card h4{margin:2px 0 4px;text-transform:none;font-size:15px;color:var(--navy);letter-spacing:0;}
  .case-card.child{margin-left:34px;border-left-color:var(--accent);}
  .case-card.grandchild{margin-left:68px;border-left-color:var(--navy-2);}
  .case-down{margin:2px 0 2px 14px;color:var(--blue);font-size:16px;}
  .case-down.c2{margin-left:48px;}

  .pill{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11.5px;font-weight:600;
    border:1px solid var(--line);background:#fff;color:var(--ink-soft);}
  .pill.req{background:var(--danger-bg);border-color:var(--danger-bd);color:#a23;}
  .pill.opt{background:var(--line-soft);}
  .pill.ro{background:#eef;border-color:#ccd;color:#335;}
  .pill.role{background:var(--blue-soft);border-color:var(--blue);color:var(--blue-dark);}
  .pill.auto{background:#eaf7ee;border-color:var(--ok-bd);color:#2a7;}
  .pill.wait{background:var(--warn-bg);border-color:var(--warn-bd);color:#a76b00;}
  td.lvl-na{color:var(--ink-soft);text-align:center;}
  table.matrix{font-size:12.5px;}
  table.matrix th{font-size:11.5px;}
  table.matrix td{vertical-align:middle;}
  table.matrix .pill{white-space:nowrap;}

  .legend{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0;}
  .legend .item{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-soft);
    border:1px solid var(--line);border-radius:20px;padding:3px 11px;background:#fff;}
  .legend .swatch{width:12px;height:12px;border-radius:3px;}

  /* Blueprint enrichment marker */
  .callout.blueprint{border-left-color:#7a5cc4;background:#f1ecfa;}
  .callout.blueprint .ctitle{color:#5a3fa0;}

  /* Cross-reference / related processes block */
  .xref{border:1px solid var(--line);border-radius:10px;background:var(--bg-rail);padding:14px 16px;margin:20px 0;}
  .xref .xtitle{font-size:11px;text-transform:uppercase;letter-spacing:.6px;font-weight:800;color:var(--ink-soft);margin-bottom:8px;}
  .xref .chips{display:flex;flex-wrap:wrap;gap:8px;}
  .xref .chips a{display:inline-flex;align-items:center;gap:6px;font-size:13px;background:#fff;border:1px solid var(--line);
    border-radius:20px;padding:4px 12px;color:var(--blue-dark);}
  .xref .chips a:hover{border-color:var(--blue);text-decoration:none;background:var(--blue-soft);}
  .xref .chips a::before{content:"\2192";color:var(--blue);font-weight:700;}

  /* Learning points / key takeaways panel */
  .learn{border:1px solid var(--ok-bd);background:var(--ok-bg);border-radius:10px;padding:14px 18px;margin:18px 0;}
  .learn .ltitle{font-weight:700;color:#1f7a4d;margin-bottom:6px;display:flex;gap:7px;align-items:center;}
  .learn ul{margin:0;padding-left:20px;} .learn li{margin:4px 0;}

  /* 8-point process spec grid */
  .spec{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);
    border-radius:8px;overflow:hidden;margin:12px 0;}
  .spec .scell{background:#fff;padding:10px 14px;}
  .spec .sk{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--blue-dark);font-weight:700;margin-bottom:3px;}
  @media(max-width:820px){.spec{grid-template-columns:1fr;}}

  .placeholder{color:#b23;font-style:italic;}
  .twocol{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .part-banner{display:flex;align-items:center;gap:10px;background:var(--navy-2);color:#fff;border-radius:8px;
    padding:10px 16px;margin:30px 0 6px;font-weight:600;}
  .part-banner .pnum{background:var(--blue);border-radius:6px;padding:2px 9px;font-size:12px;font-weight:800;}
  .part-banner small{font-weight:400;opacity:.85;font-size:12.5px;margin-left:auto;}
  .divider{height:1px;background:var(--line);margin:34px 0;border:0;}

  aside.toc{position:sticky;top:var(--header-h);height:calc(100vh - var(--header-h));overflow-y:auto;
    padding:26px 18px;border-left:1px solid var(--line);}
  .toc .toc-title{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--ink-soft);
    font-weight:700;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center;}
  .toc ul{list-style:none;margin:0;padding:0;}
  .toc li a{display:block;padding:4px 0 4px 12px;font-size:13px;color:var(--ink-soft);border-left:2px solid var(--line);}
  .toc li a:hover{color:var(--blue);text-decoration:none;}
  .toc li a.active{color:var(--blue-dark);border-left-color:var(--blue);font-weight:600;}
  .toc.collapsed ul{display:none;}

  .menu-toggle{display:none;}
  @media(max-width:1100px){.shell{grid-template-columns:var(--nav-w) minmax(0,1fr);} aside.toc{display:none;}}
  @media(max-width:820px){
    .shell{grid-template-columns:1fr;}
    aside.leftnav{position:fixed;left:0;top:var(--header-h);z-index:40;width:84vw;max-width:330px;
      transform:translateX(-100%);transition:transform .2s ease;box-shadow:2px 0 12px rgba(0,0,0,.15);}
    body.nav-open aside.leftnav{transform:translateX(0);}
    .menu-toggle{display:inline-grid;place-items:center;width:34px;height:34px;background:var(--blue);
      border:0;color:#fff;border-radius:6px;font-size:16px;cursor:pointer;}
    main.content{padding:20px 18px 80px;}
    .meta-grid{grid-template-columns:repeat(2,1fr);}
    .annot,.twocol{grid-template-columns:1fr;}
    .topbar .search input{width:140px;}
    .case-card.child{margin-left:16px;} .case-card.grandchild{margin-left:32px;}
  }
  @media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto;}}
  a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:2px;}

  /* page routing */
  .docpage[hidden]{display:none;}
  .leftnav a.page-active{background:var(--blue-soft);color:var(--blue-dark);border-left-color:var(--blue);font-weight:600;}
  .leftnav .group.page-current>.label{color:var(--blue-dark);}

  /* search highlight + results */
  mark.search-hit{background:#ffe9a8;color:inherit;border-radius:2px;padding:0 1px;}
  mark.search-hit.current{background:#ffb938;outline:2px solid #d98c00;}
  .search-results{position:absolute;top:calc(100% + 6px);left:0;width:440px;max-width:80vw;max-height:60vh;overflow-y:auto;
    background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.18);
    z-index:60;padding:6px;display:none;}
  .search-results.open{display:block;}
  .search-results .sr-empty{padding:14px 12px;color:var(--ink-soft);font-size:13.5px;}
  .search-results .sr-item{display:block;padding:9px 11px;border-radius:6px;cursor:pointer;border:0;background:none;width:100%;text-align:left;}
  .search-results .sr-item:hover,.search-results .sr-item.active{background:var(--blue-soft);}
  .search-results .sr-crumb{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--blue-dark);font-weight:700;margin-bottom:2px;}
  .search-results .sr-title{font-size:13.5px;color:var(--ink);font-weight:600;}
  .search-results .sr-snip{font-size:12.5px;color:var(--ink-soft);margin-top:2px;line-height:1.4;}
  .search-results .sr-snip mark{background:#ffe9a8;border-radius:2px;}
  .search-results .sr-head{font-size:11px;color:var(--ink-soft);padding:6px 11px 4px;border-bottom:1px solid var(--line-soft);margin-bottom:4px;}

  /* ===== v1.3 navigation model ===================================== */
  .leftnav .group>.label{gap:6px;}
  .leftnav .group>.label>a.navlink{
    padding:0;margin:0;border:0;background:none;flex:1 1 auto;
    font-size:inherit;font-weight:inherit;color:inherit;line-height:inherit;
    display:block;text-decoration:none;}
  .leftnav .group>.label>a.navlink:hover{text-decoration:none;}
  .leftnav button.caret{
    -webkit-appearance:none;appearance:none;border:0;background:none;
    padding:0;margin:0;width:14px;height:18px;flex:0 0 14px;
    display:inline-flex;align-items:center;justify-content:center;
    font-size:10px;line-height:1;color:var(--ink-soft);cursor:pointer;
    transition:transform .15s ease;}
  .leftnav button.caret:focus-visible{outline:2px solid var(--blue);outline-offset:1px;border-radius:3px;}
  .leftnav .group.collapsed>.label button.caret{transform:rotate(-90deg);}
  .leftnav .group>.label.active-parent{background:var(--blue-soft);color:var(--blue-dark);font-weight:600;}
  .leftnav a:focus-visible,.leftnav .navlink:focus-visible{outline:2px solid var(--blue);outline-offset:-2px;}

  /* button-reference image cell */
  table.doc td.btnimg{width:160px;text-align:center;vertical-align:middle;background:var(--bg-rail);}
  table.doc td.btnimg img{max-width:140px;height:auto;display:inline-block;
    border:1px solid var(--line);border-radius:4px;background:#fff;}
  .btn-placeholder{display:inline-block;padding:5px 12px;border:1px dashed var(--line);
    border-radius:4px;font-size:11px;color:var(--ink-soft);background:#fff;white-space:nowrap;}
