:root{
  --accent:#0d5c9e;
  --accent-dark:#0a4a80;
  --accent-tint:#e8f1fa;
  --bg-workspace:#f3f2f1;
  --bg-panel:#ffffff;
  --border:#d6d3d1;
  --border-strong:#b8b5b3;
  --text:#201f1e;
  --text-secondary:#605e5c;
  --text-tertiary:#8a8886;
  --green:#107c41;
  --amber:#c19c00;
  --red:#a4262c;
  --font: 'Segoe UI', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Arial, sans-serif;
  --caution-bg:#fdecea;
  --caution-text:#8a1f24;
  --gap-bg:#fdf3e2;
  --gap-text:#7a6200;
  --practice-bg:#eef7f1;
  --practice-text:#0b5c30;
  --cell-border:#e6e4e2;
  --row-alt:#fafaf9;
  --grid-line:#ececea;
  --mark-bg:#fff3b0;
  --input-bg:#ffffff;
  --scroll-thumb:#c8c6c4;
  --scroll-thumb-hover:#a19f9d;
  --app-bar-bg:#0a4a80;
  --button-bg:#0d5c9e;
  --button-bg-hover:#0a4a80;
  --button-bg-pressed:#083b66;
  /* Fluent tokens: radius, elevation, motion and spacing */
  --radius-sm:2px;
  --radius-md:4px;
  --shadow-4:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.14);
  --shadow-8:0 0 2px rgba(0,0,0,.12),0 4px 8px rgba(0,0,0,.14);
  --shadow-16:0 0 2px rgba(0,0,0,.12),0 8px 16px rgba(0,0,0,.14);
  --shadow-28:0 0 8px rgba(0,0,0,.12),0 14px 28px rgba(0,0,0,.14);
  --dur-fast:100ms;
  --dur-normal:200ms;
  --ease:cubic-bezier(.33,0,.67,1);
  --ease-decel:cubic-bezier(.1,.9,.2,1);
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
  --bg-pressed:#edebe9;
  --focus-stroke:#201f1e;
  color-scheme:light;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{font-family:var(--font);background:var(--bg-workspace);color:var(--text);font-size:13px;line-height:1.5;}
a{color:var(--accent);text-decoration:none;}
a:hover{text-decoration:underline;}

.app-bar{background:var(--app-bar-bg);color:#fff;display:flex;align-items:center;height:44px;padding:0 12px;gap:10px;font-size:13px;position:sticky;top:0;z-index:70;}
.app-bar .grid-icon{width:16px;height:16px;display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr 1fr;gap:2px;cursor:pointer;}
.app-bar .grid-icon span{background:#fff;border-radius:1px;}
.app-bar a.site-title-link{color:#fff;text-decoration:none;display:flex;align-items:center;gap:10px;}
.app-bar .site-title{font-weight:600;letter-spacing:.2px;}
.app-bar .site-sub{opacity:.75;font-size:12px;margin-left:2px;}
.app-bar .spacer{flex:1;}
.app-bar .searchbox{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);border-radius:2px;padding:5px 10px;color:#fff;font-size:12px;width:220px;}
.app-bar .searchbox::placeholder{color:rgba(255,255,255,.65);}
.app-bar .icon-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:2px;cursor:pointer;font-size:14px;}
.app-bar .icon-btn:hover{background:rgba(255,255,255,.12);}
.avatar{width:26px;height:26px;border-radius:50%;background:#ffb900;color:#201f1e;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:11px;flex-shrink:0;}

.shell{display:flex;min-height:calc(100vh - 44px);align-items:stretch;}

.nav-pane{width:250px;flex-shrink:0;background:var(--bg-panel);border-right:1px solid var(--border);padding:10px 0;position:relative;}
.nav-pane-inner{position:static;max-height:none;overflow:visible;}

/* Desktop: the pane itself is the scroll container, pinned under the app bar,
   so it scrolls independently of the article. */
@media (min-width: 901px){
  .nav-pane{
    position:sticky;
    top:44px;
    align-self:flex-start;
    height:calc(100vh - 44px);
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
    scrollbar-width:thin;
    scrollbar-color:var(--scroll-thumb) transparent;
  }
  .nav-pane::-webkit-scrollbar{width:10px;}
  .nav-pane::-webkit-scrollbar-track{background:transparent;}
  .nav-pane::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:5px;border:2px solid var(--bg-panel);}
  .nav-pane::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover);}
}
.nav-section-label{font-size:11px;color:var(--text-tertiary);padding:8px 16px 4px;font-weight:600;}

/* Header container to hold label and Collapse button on the same line */
.nav-section-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:8px 12px 4px 16px;
}
.nav-section-header .nav-section-label{
  padding:0;
}

/* Compact Collapse all button */
.collapse-all-btn{
  background:transparent;
  border:1px solid var(--border);
  border-radius:2px;
  font-family:var(--font);
  font-size:11px;
  color:var(--accent);
  padding:1px 6px;
  cursor:pointer;
  line-height:1.4;
  flex-shrink:0;
  white-space:nowrap;
  transition:all .15s ease;
}
.collapse-all-btn:hover{
  background-color:var(--bg-workspace);
  border-color:var(--accent);
}

.nav-item{display:flex;align-items:center;gap:10px;padding:7px 16px;color:var(--text);cursor:pointer;border-left:3px solid transparent;font-size:13px;}
.nav-item:hover{background:var(--bg-workspace);text-decoration:none;}
.nav-item.active{background:var(--accent-tint);border-left:3px solid var(--accent);color:var(--accent-dark);font-weight:600;}
.nav-item .dot{width:6px;height:6px;border-radius:50%;background:var(--text-tertiary);flex-shrink:0;}
.nav-item.active .dot{background:var(--accent);}
.nav-divider{height:1px;background:var(--border);margin:10px 16px;}

/* Word-style table of contents / navigation pane on post pages */
.post-toc{padding:2px 0;}

.toc-h1-row{display:flex;align-items:stretch;}
.toc-h1-row .toc-chevron{
  display:flex;align-items:center;justify-content:center;
  width:26px;flex-shrink:0;
  cursor:pointer;
  color:var(--text-secondary);
  font-size:10px;
  transition:transform .12s;
}
.toc-h1-row .toc-chevron:hover{color:var(--text);}
.toc-h1-row.collapsed .toc-chevron{transform:rotate(-90deg);}
.toc-h1-row .toc-item.toc-level-1{flex:1;padding-left:0;}

.toc-children{display:block;}
.toc-children.collapsed{display:none;}

.toc-item{
  display:block;
  padding:6px 16px;
  font-size:12.5px;
  color:var(--text-secondary);
  text-decoration:none;
  border-left:3px solid transparent;
  line-height:1.4;
}
.toc-item:hover{background:var(--bg-workspace);color:var(--text);text-decoration:none;}
.toc-item.active{
  background:var(--accent-tint);
  border-left:3px solid var(--accent);
  color:var(--accent-dark);
  font-weight:600;
}
.toc-item.toc-level-1{font-weight:600;color:var(--text);}
.toc-item.toc-level-1.active{color:var(--accent-dark);}
.toc-item.toc-level-2{padding-left:30px;font-weight:400;}
.toc-item.toc-level-3{padding-left:44px;font-size:12px;color:var(--text-tertiary);}

/* Module tree (expand/collapse) */
.module-tree{padding:2px 0;}
.module-row{
  display:flex;align-items:center;gap:6px;
  padding:7px 16px;
  cursor:pointer;
  font-size:13px;
  color:var(--text);
  user-select:none;
}
.module-row:hover{background:var(--bg-workspace);}
.module-row.empty{color:var(--text-tertiary);cursor:default;}
.module-row.empty:hover{background:transparent;}
.module-row .tree-chevron{
  font-size:10px;color:var(--text-secondary);
  width:10px;flex-shrink:0;
  transition:transform .12s;
  display:inline-block;
}
.module-row.expanded .tree-chevron{transform:rotate(90deg);}
.module-row .module-name{flex:1;}
.submodule-list{display:none;}
.submodule-list.expanded{display:block;}
.submodule-item{
  display:block;
  padding:6px 16px 6px 38px;
  font-size:12.5px;
  color:var(--text-secondary);
  cursor:pointer;
  border-left:3px solid transparent;
}
.submodule-item:hover{background:var(--bg-workspace);color:var(--text);text-decoration:none;}
.submodule-item.active{
  background:var(--accent-tint);
  border-left:3px solid var(--accent);
  color:var(--accent-dark);
  font-weight:600;
}
.empty-state{
  padding:28px 20px;
  text-align:center;
  color:var(--text-secondary);
  font-size:13px;
}
.empty-state .empty-title{font-weight:600;color:var(--text);margin-bottom:4px;}

.main{flex:1;min-width:0;padding:18px 24px 40px;}
.main.narrow{max-width:900px;}

.breadcrumb{font-size:12px;color:var(--text-secondary);margin-bottom:10px;}
.breadcrumb a{color:var(--text-secondary);}
.breadcrumb .sep{margin:0 6px;color:var(--text-tertiary);}

.page-title{font-size:20px;font-weight:600;margin:0 0 2px;color:var(--text);}
.page-subtitle{font-size:13px;color:var(--text-secondary);margin:0 0 16px;}

.command-bar{display:flex;align-items:stretch;background:var(--bg-panel);border:1px solid var(--border);border-bottom:none;padding:4px;gap:2px;flex-wrap:wrap;}
.cmd-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 12px;cursor:pointer;border-radius:2px;color:var(--text);min-width:56px;}
.cmd-btn:hover{background:var(--bg-workspace);}
.cmd-btn .cmd-icon{font-size:15px;line-height:1;}
.cmd-btn .cmd-label{font-size:11px;white-space:nowrap;}
.cmd-sep{width:1px;background:var(--border);margin:4px 4px;}
.cmd-bar-right{margin-left:auto;display:flex;align-items:center;gap:8px;padding-right:6px;flex-wrap:wrap;}
.filter-chip{display:flex;align-items:center;gap:6px;font-size:12px;background:var(--bg-workspace);border:1px solid var(--border);border-radius:2px;padding:5px 10px;cursor:pointer;color:var(--text-secondary);position:relative;}
.filter-chip select{border:none;background:transparent;font-size:12px;color:var(--text-secondary);cursor:pointer;appearance:none;padding-right:14px;}

.tile-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0 20px;}
.tile{background:var(--bg-panel);border:1px solid var(--border);border-left:3px solid var(--accent);padding:14px 16px;}
.tile.tile-alt{border-left-color:var(--green);}
.tile.tile-amber{border-left-color:var(--amber);}
.tile.tile-neutral{border-left-color:var(--text-tertiary);}
.tile-value{font-size:26px;font-weight:600;color:var(--text);line-height:1.1;}
.tile-label{font-size:12px;color:var(--text-secondary);margin-top:4px;}
.tile-meta{font-size:11px;color:var(--text-tertiary);margin-top:6px;}

.grid-panel{background:var(--bg-panel);border:1px solid var(--border);overflow-x:auto;}
table.data-grid{width:100%;border-collapse:collapse;font-size:13px;}
.data-grid thead th{text-align:left;font-weight:600;font-size:12px;color:var(--text-secondary);background:var(--bg-workspace);padding:8px 14px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);white-space:nowrap;}
.data-grid thead th:last-child{border-right:none;}
.data-grid tbody td{padding:10px 14px;border-bottom:1px solid var(--border);border-right:1px solid var(--grid-line);vertical-align:top;}
.data-grid tbody td:last-child{border-right:none;}
.data-grid tbody tr:hover{background:var(--accent-tint);cursor:pointer;}
.post-title-cell a{font-weight:600;color:var(--text);}
.data-grid tbody tr:hover .post-title-cell a{color:var(--accent-dark);}
.post-excerpt{display:block;font-size:12px;color:var(--text-secondary);font-weight:400;margin-top:2px;max-width:480px;}
.badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:10px;background:var(--accent-tint);color:var(--accent-dark);font-weight:600;white-space:nowrap;}
.status-dot{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--green);}
.status-dot::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green);}
.col-date{color:var(--text-secondary);white-space:nowrap;}

.grid-footer{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;font-size:12px;color:var(--text-secondary);border-top:1px solid var(--border);}

.fasttabs{background:var(--bg-panel);border:1px solid var(--border);margin-top:16px;}
.fasttabs.attached{border-top:none;margin-top:0;}
.fasttab{border-bottom:1px solid var(--border);}
.fasttab:last-child{border-bottom:none;}
.fasttab-header{display:flex;align-items:center;gap:8px;padding:10px 14px;cursor:pointer;background:var(--bg-workspace);font-weight:600;font-size:13px;user-select:none;}
.fasttab-header .chevron{font-size:10px;color:var(--text-secondary);transition:transform .15s;display:inline-block;}
.fasttab-header.collapsed .chevron{transform:rotate(-90deg);}
.fasttab-body{padding:14px 16px 18px;font-size:13.5px;color:var(--text);line-height:1.7;}
.fasttab-body.hidden{display:none;}
.fasttab-body p{margin:0 0 12px;}
.fasttab-body h2{font-size:17px;font-weight:650;margin:30px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--border);color:var(--text);letter-spacing:-.01em;}
.fasttab-body h2:first-child{margin-top:0;}
.fasttab-body h3{font-size:14.5px;font-weight:600;margin:22px 0 6px;color:var(--text);}
.fasttab-body h3:first-child{margin-top:0;}.fasttab-body ul{margin:0 0 12px;padding-left:20px;}
.fasttab-body li{margin-bottom:4px;}
.fasttab-body img{max-width:100%;height:auto;display:block;margin:12px 0;border:1px solid var(--border);}

.post-header{background:var(--bg-panel);border:1px solid var(--border);border-top:none;padding:20px 22px 16px;}
.post-title{font-size:22px;font-weight:600;margin:0 0 8px;line-height:1.3;}
.post-meta{display:flex;align-items:center;gap:14px;font-size:12px;color:var(--text-secondary);flex-wrap:wrap;}

.form-panel{background:var(--bg-panel);border:1px solid var(--border);border-top:none;padding:20px 22px;}
.form-row{margin-bottom:14px;}
.form-row label{display:block;font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:4px;}
.form-row input,.form-row textarea{width:100%;max-width:420px;padding:7px 10px;border:1px solid var(--border-strong);border-radius:2px;font-family:var(--font);font-size:13px;background:var(--input-bg);color:var(--text);}
.form-row textarea{min-height:110px;resize:vertical;}
.form-submit{background:var(--button-bg);color:#fff;border:none;padding:8px 18px;font-size:13px;font-weight:600;border-radius:2px;cursor:pointer;}
.form-submit:hover{background:var(--button-bg-hover);}

.hidden{display:none !important;}

/* Hamburger button — injected by script.js, hidden on desktop */
.nav-toggle{display:none;}
.nav-scrim{display:none;}

/* Horizontal scroll container for wide post tables (added by script.js) */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 16px;}
.table-scroll > table{margin-bottom:0;}

/* Long URLs, MT940 tag strings and ASCII diagrams must not widen the page */
.fasttab-body{overflow-wrap:break-word;}
.fasttab-body td,.fasttab-body th{overflow-wrap:anywhere;}

@media (max-width: 900px){
  .app-bar .searchbox{width:120px;flex-shrink:1;min-width:0;}

  .nav-toggle{
    display:flex;flex-direction:column;justify-content:center;gap:3px;
    width:30px;height:30px;padding:0 5px;margin-right:2px;
    background:transparent;border:none;border-radius:2px;
    cursor:pointer;flex-shrink:0;
  }
  .nav-toggle span{display:block;height:2px;background:#fff;border-radius:1px;}
  .nav-toggle:hover{background:rgba(255,255,255,.12);}

  /* Navigation pane becomes an off-canvas drawer instead of disappearing */
  .nav-pane{
    display:block;
    position:fixed;top:44px;left:0;bottom:0;z-index:60;
    width:min(280px,82vw);
    transform:translateX(-100%);
    transition:transform .18s ease;
    box-shadow:2px 0 8px rgba(0,0,0,.18);
    overflow-y:auto;
  }
  body.nav-open .nav-pane{transform:none;}
  .nav-pane-inner{position:static;max-height:none;overflow:visible;}

  .nav-scrim{
    position:fixed;top:44px;left:0;right:0;bottom:0;
    background:rgba(0,0,0,.35);z-index:55;
  }
  body.nav-open .nav-scrim{display:block;}
  body.nav-open{overflow:hidden;}

  /* Wide post tables scroll inside their wrapper instead of stretching the page */
  .table-scroll table{width:auto;min-width:100%;}
  .fasttab-body ol{padding-left:20px;}

  .tile-row{grid-template-columns:repeat(2,1fr);}
  .post-excerpt{max-width:none;}
  .main{padding:14px;}
}
@media (max-width: 600px){
  .tile-row{grid-template-columns:1fr 1fr;}
  .grid-footer{flex-direction:column;align-items:flex-start;gap:6px;}
  .app-bar .site-sub{display:none;}
  .app-bar .icon-btn{display:none;}
  .post-title{font-size:19px;}
}

/* ============================================================
   Post content tables
   ============================================================ */
.fasttab-body table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
  margin:0 0 16px;
}
.fasttab-body thead th{
  text-align:left;
  font-weight:600;
  font-size:12px;
  color:var(--text-secondary);
  background:var(--bg-workspace);
  padding:8px 12px;
  border:1px solid var(--border);
  vertical-align:top;
}
.fasttab-body tbody td{
  padding:8px 12px;
  border:1px solid var(--cell-border);
  vertical-align:top;
}
.fasttab-body tbody tr:nth-child(even){background:var(--row-alt);}
.fasttab-body table p{margin:0 0 6px;}
.fasttab-body table p:last-child{margin-bottom:0;}

/* ============================================================
   Callout panels (NOTE / IMPORTANT / CAUTION / KNOWN GAP /
   GOOD PRACTICE / FOR MANAGEMENT)
   ============================================================ */
.callout{
  border-left:3px solid var(--text-tertiary);
  background:var(--bg-workspace);
  border-radius:0;
  padding:10px 14px;
  margin:0 0 14px;
}
.callout-label{
  font-size:11px;
  font-weight:600;
  letter-spacing:.4px;
  margin-bottom:3px;
  color:var(--text-secondary);
}
.callout-body{font-size:13px;line-height:1.6;}
.callout-body p{margin:0 0 8px;}
.callout-body p:last-child{margin-bottom:0;}
.callout-body table{margin-bottom:0;}

.callout-note{border-left-color:var(--accent);background:var(--accent-tint);}
.callout-note .callout-label{color:var(--accent-dark);}
.callout-important{border-left-color:var(--accent);background:var(--accent-tint);}
.callout-important .callout-label{color:var(--accent-dark);}
.callout-caution{border-left-color:var(--red);background:var(--caution-bg);}
.callout-caution .callout-label{color:var(--caution-text);}
.callout-gap{border-left-color:var(--amber);background:var(--gap-bg);}
.callout-gap .callout-label{color:var(--gap-text);}
.callout-practice{border-left-color:var(--green);background:var(--practice-bg);}
.callout-practice .callout-label{color:var(--practice-text);}
.callout-management{border-left-color:var(--green);background:var(--practice-bg);}
.callout-management .callout-label{color:var(--practice-text);}

/* ============================================================
   Print — Appendix D checklists and reconciliation evidence
   ============================================================ */

/* ============================================================
   Floating back-to-top button with scroll-progress ring
   ============================================================ */
.to-top{
  position:fixed;
  right:20px;
  bottom:20px;
  width:44px;
  height:44px;
  padding:0;
  border:none;
  border-radius:50%;
  background:var(--bg-panel);
  box-shadow:0 2px 10px rgba(0,0,0,.22);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s ease, box-shadow .18s ease;
  z-index:80;
}
.to-top.visible{opacity:1;visibility:visible;transform:none;}
.to-top:hover{box-shadow:0 4px 14px rgba(0,0,0,.3);}
.to-top:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.to-top-ring{position:absolute;inset:0;width:44px;height:44px;transform:rotate(-90deg);}
.to-top-track{fill:none;stroke:var(--border);stroke-width:3;}
.to-top-fill{
  fill:none;
  stroke:var(--accent);
  stroke-width:3;
  stroke-linecap:round;
  transition:stroke-dashoffset .1s linear;
}
.to-top-arrow{
  position:relative;
  font-size:16px;
  line-height:1;
  color:var(--accent);
  font-weight:600;
}
.to-top:hover .to-top-arrow{color:var(--accent-dark);}
@media (max-width: 600px){
  .to-top{right:14px;bottom:14px;width:40px;height:40px;}
  .to-top-ring{width:40px;height:40px;}
}
@media (prefers-reduced-motion: reduce){
  .to-top,.to-top-fill{transition:none;}
}

/* Print blog button sits in the command bar */
.cmd-btn.is-busy{opacity:.6;pointer-events:none;}

/* Print-only furniture is never shown on screen */
.print-only{display:none;}
.print-frame{width:100%;border-collapse:collapse;}
.print-frame > thead > tr > td,
.print-frame > tfoot > tr > td,
.print-frame > tbody > tr > td{border:none;padding:0;}

@media (max-width: 480px){
  .tile-row{grid-template-columns:1fr;}
}
@media print{
  @page{margin:20mm 14mm 18mm;}

  .app-bar,.nav-pane,.nav-toggle,.nav-scrim,.command-bar,.breadcrumb,.grid-footer,.to-top{display:none !important;}
  body{background:#fff;font-size:10.5pt;color:#000;}
  .shell{display:block;}
  .main,.main.narrow{max-width:none;padding:0;}
  .post-header{display:none;}

  .fasttabs,.fasttab{border:none;}
  .fasttab-header{
    background:none;padding:12px 0 4px;font-size:13pt;font-weight:600;
    border-bottom:1.5px solid var(--accent);color:var(--accent-dark);
    break-after:avoid;page-break-after:avoid;
  }
  .fasttab-header .chevron{display:none;}
  .fasttab-body{display:block !important;padding:0;}
  .fasttab-body img{max-width:100%;page-break-inside:avoid;}
  .table-scroll{overflow:visible;}
  .fasttab-body table,.callout{page-break-inside:avoid;}
  .fasttab-body h2,.fasttab-body h3{page-break-after:avoid;}
  a{color:#000;text-decoration:none;}

  /* ---- printed furniture ---- */
  .print-only{display:block;}

  /* The frame table repeats its thead and tfoot on every page and reserves
     space for them, so the article can never run underneath. */
  .print-frame{width:100%;border-collapse:collapse;}
  .print-frame > thead > tr > td,
  .print-frame > tfoot > tr > td,
  .print-frame > tbody > tr > td{border:none;padding:0;background:none;}
  .print-frame > thead{display:table-header-group;}
  .print-frame > tfoot{display:table-footer-group;}

  .print-runner{
    display:flex;justify-content:space-between;gap:12px;
    font-size:7.5pt;color:#605e5c;
  }
  .print-runner-header{border-bottom:.5pt solid #d6d3d1;padding-bottom:2mm;margin-bottom:5mm;}
  .print-runner-footer{border-top:.5pt solid #d6d3d1;padding-top:2mm;margin-top:5mm;}
  .print-runner-left{font-weight:600;color:var(--accent-dark);}
  .print-runner-right{text-align:right;}

  /* ---- cover page ---- */
  .print-cover{
    display:flex;flex-direction:column;justify-content:space-between;
    text-align:center;min-height:218mm;
    break-after:page;page-break-after:always;
  }
  .print-cover-top{padding-top:4mm;}
  .print-brand{font-size:19pt;font-weight:700;color:var(--accent-dark);letter-spacing:.3px;}
  .print-brand-sub{font-size:9.5pt;color:#605e5c;margin-top:2mm;}
  .print-cover-mid{padding:0 6mm;}
  .print-cover-module{
    display:inline-block;font-size:8.5pt;font-weight:600;letter-spacing:.8px;
    text-transform:uppercase;color:var(--accent-dark);
    border:1pt solid var(--accent);border-radius:2pt;padding:1.5mm 4mm;margin-bottom:8mm;
  }
  .print-cover-title{font-size:27pt;line-height:1.2;font-weight:700;color:#201f1e;margin:0;}
  .print-cover-desc{
    font-size:11pt;line-height:1.6;color:#605e5c;
    max-width:130mm;margin:7mm auto 0;font-style:italic;
  }
  .print-cover-rule{width:28mm;height:2.5pt;background:var(--accent);margin:9mm auto;}
  .print-cover-facts{
    display:flex;justify-content:center;flex-wrap:wrap;gap:4mm 10mm;
    font-size:9.5pt;color:#201f1e;
  }
  .print-cover-facts div{min-width:28mm;}
  .print-cover-facts span{
    display:block;font-size:7.5pt;letter-spacing:.7px;text-transform:uppercase;
    color:#a19f9d;margin-bottom:1mm;
  }
  .print-cover-bottom{padding-bottom:4mm;}
  .print-author-card{
    border-top:.5pt solid #d6d3d1;border-bottom:.5pt solid #d6d3d1;
    padding:5mm 8mm;margin-bottom:5mm;
  }
  .print-author-name{font-size:11pt;font-weight:700;color:#201f1e;}
  .print-author-role{font-size:9pt;color:var(--accent-dark);margin-top:1mm;}
  .print-author-bio{
    font-size:8.5pt;line-height:1.55;color:#605e5c;
    max-width:120mm;margin:3mm auto 0;
  }
  .print-source{font-size:8.5pt;color:#605e5c;}
  .print-source strong{color:var(--accent-dark);font-weight:600;}

  /* ---- contents page ---- */
  .print-toc{break-after:page;page-break-after:always;}
  .print-toc-head h2{
    font-size:17pt;font-weight:700;color:var(--accent-dark);
    margin:0 0 2mm;padding-bottom:2mm;border-bottom:1.5pt solid var(--accent);
  }
  .print-toc-head p{font-size:8.5pt;color:#605e5c;margin:0 0 6mm;font-style:italic;}
  .print-toc-list{display:block;}
  .print-toc-list a{
    display:block;text-decoration:none;color:#201f1e;
    padding:1.4mm 0;border-bottom:.3pt dotted #d6d3d1;
    break-inside:avoid;page-break-inside:avoid;
  }
  .print-toc-1{font-size:10.5pt;font-weight:700;color:var(--accent-dark) !important;margin-top:3mm;}
  .print-toc-2{font-size:9.5pt;padding-left:7mm !important;}
  .print-toc-3{font-size:9pt;padding-left:14mm !important;color:#605e5c !important;}
}

/* Callouts that live as a full-width row inside a data table */
.fasttab-body tbody td.callout-cell{
  border-left:3px solid var(--text-tertiary);
  background:var(--bg-workspace);
}
.fasttab-body tbody tr:nth-child(even) td.callout-cell{background:var(--bg-workspace);}
.fasttab-body td.callout-cell > p:first-child > strong{
  font-size:11px;
  letter-spacing:.4px;
  color:var(--text-secondary);
}
td.callout-cell.callout-note,
td.callout-cell.callout-important{border-left-color:var(--accent);}
.fasttab-body tbody td.callout-cell.callout-note,
.fasttab-body tbody td.callout-cell.callout-important,
.fasttab-body tbody tr:nth-child(even) td.callout-cell.callout-note,
.fasttab-body tbody tr:nth-child(even) td.callout-cell.callout-important{background:var(--accent-tint);}
.fasttab-body td.callout-cell.callout-note > p:first-child > strong,
.fasttab-body td.callout-cell.callout-important > p:first-child > strong{color:var(--accent-dark);}

td.callout-cell.callout-caution{border-left-color:var(--red);}
.fasttab-body tbody td.callout-cell.callout-caution,
.fasttab-body tbody tr:nth-child(even) td.callout-cell.callout-caution{background:var(--caution-bg);}
.fasttab-body td.callout-cell.callout-caution > p:first-child > strong{color:var(--caution-text);}

td.callout-cell.callout-gap{border-left-color:var(--amber);}
.fasttab-body tbody td.callout-cell.callout-gap,
.fasttab-body tbody tr:nth-child(even) td.callout-cell.callout-gap{background:var(--gap-bg);}
.fasttab-body td.callout-cell.callout-gap > p:first-child > strong{color:var(--gap-text);}

td.callout-cell.callout-practice,
td.callout-cell.callout-management{border-left-color:var(--green);}
.fasttab-body tbody td.callout-cell.callout-practice,
.fasttab-body tbody td.callout-cell.callout-management,
.fasttab-body tbody tr:nth-child(even) td.callout-cell.callout-practice,
.fasttab-body tbody tr:nth-child(even) td.callout-cell.callout-management{background:var(--practice-bg);}
.fasttab-body td.callout-cell.callout-practice > p:first-child > strong,
.fasttab-body td.callout-cell.callout-management > p:first-child > strong{color:var(--practice-text);}

/* ============================================================
   Related / previous / next links at the foot of a post
   ============================================================ */
.post-footer-nav{margin:20px 0 0;}
.post-related-head{
  font-size:15px;font-weight:600;color:var(--text);
  margin:0 0 10px;padding-bottom:6px;border-bottom:1px solid var(--border);
}
.post-related-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;
}
.post-prevnext{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;
}
.post-nav-card{
  display:block;text-decoration:none;
  background:var(--bg-panel);border:1px solid var(--border);
  border-left:3px solid var(--accent);
  padding:10px 12px;transition:border-color .15s ease, box-shadow .15s ease;
}
.post-nav-card:hover{border-color:var(--accent);box-shadow:0 1px 4px rgba(0,0,0,.08);}
.post-nav-label{
  display:block;font-size:10px;font-weight:600;letter-spacing:.5px;
  text-transform:uppercase;color:var(--text-tertiary);margin-bottom:3px;
}
.post-nav-title{display:block;font-size:13px;font-weight:600;color:var(--accent);line-height:1.35;}
.post-nav-card:hover .post-nav-title{text-decoration:underline;}
.post-nav-meta{display:block;font-size:11px;color:var(--text-secondary);margin-top:4px;}
@media (max-width: 600px){
  .post-prevnext{grid-template-columns:1fr;}
}
@media print{
  .post-footer-nav{display:none !important;}
}
/* ===== Screenshot lightbox =====
   Append to the end of style.css. */
.fasttab-body img.zoomable{cursor:zoom-in;transition:border-color .15s;}
.fasttab-body img.zoomable:hover{border-color:var(--text-tertiary);}
.fasttab-body img.zoomable:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}

.lightbox{
  position:fixed;inset:0;z-index:1000;
  display:none;align-items:center;justify-content:center;
  background:rgba(23,22,21,.86);
  padding:24px;cursor:zoom-out;
}
.lightbox.open{display:flex;}
.lightbox img{
  max-width:100%;max-height:100%;
  width:auto;height:auto;
  object-fit:contain;
  background:#fff;
  box-shadow:0 12px 40px rgba(0,0,0,.45);
  cursor:default;
}
.lightbox-close{
  position:absolute;top:14px;right:18px;
  width:36px;height:36px;
  border:0;border-radius:4px;
  background:rgba(255,255,255,.12);color:#fff;
  font-size:22px;line-height:1;
  cursor:pointer;
}
.lightbox-close:hover{background:rgba(255,255,255,.22);}
.lightbox-close:focus-visible{outline:2px solid #fff;outline-offset:2px;}

@media (max-width:600px){
  .lightbox{padding:10px;}
  .lightbox-close{top:8px;right:10px;}
}

@media print{
  .lightbox{display:none !important;}
}


/* ===== Authors =====
   Shared by the About page blocks and the "About author" popup on posts. */
.author-block{padding:4px 0 2px;}
.author-block + .author-block{
  margin-top:22px;padding-top:22px;
  border-top:1px solid var(--border);
}
.author-head{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.author-avatar{
  width:40px;height:40px;flex-shrink:0;
  border-radius:50%;
  background:var(--button-bg);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:600;letter-spacing:.5px;
}
.author-ident{min-width:0;}
.author-name{margin:0;font-size:15px;font-weight:600;color:var(--text);}
.author-role{font-size:12px;color:var(--text-secondary);margin-top:2px;}
.author-bio > *:first-child{margin-top:0;}
.author-bio > *:last-child{margin-bottom:0;}

/* Brief highlight when the About page is opened at a specific author */
.author-block-flash{animation:authorFlash 1.6s ease-out 1;}
@keyframes authorFlash{
  0%{background:var(--accent-tint);}
  100%{background:transparent;}
}

/* ---- Popup on post pages ---- */
.author-modal{
  position:fixed;inset:0;z-index:1000;
  display:none;align-items:center;justify-content:center;
  background:rgba(23,22,21,.86);
  padding:24px;
}
.author-modal.open{display:flex;}
.author-modal-panel{
  position:relative;
  background:var(--bg-panel,#fff);
  border-radius:4px;
  box-shadow:0 12px 40px rgba(0,0,0,.45);
  width:100%;max-width:560px;
  max-height:100%;overflow-y:auto;
  padding:24px 28px 22px;
  font-size:13.5px;line-height:1.6;color:var(--text);
}
.author-modal-close{
  position:absolute;top:10px;right:12px;
  width:30px;height:30px;
  border:0;border-radius:4px;
  background:transparent;color:var(--text-secondary);
  font-size:21px;line-height:1;cursor:pointer;
}
.author-modal-close:hover{background:var(--bg-workspace);color:var(--text);}
.author-modal-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.author-modal-link{
  display:inline-block;margin-top:16px;
  font-size:12.5px;font-weight:600;
  color:var(--accent-dark);text-decoration:none;
}
.author-modal-link:hover{text-decoration:underline;}

@media (max-width:600px){
  .author-modal{padding:10px;}
  .author-modal-panel{padding:20px 18px 18px;}
}

@media print{
  .author-modal{display:none !important;}
  #aboutAuthorBtn{display:none !important;}
}

/* ===== Private comment box on post pages (injected by script.js) ===== */
.post-comment{margin-top:22px;}
.post-comment .comment-note{margin:0 0 16px;font-size:12.5px;color:var(--text-secondary);max-width:560px;}
.post-comment .form-row{margin-bottom:14px;}
.post-comment .comment-status{margin:12px 0 0;font-size:12px;color:var(--text-secondary);min-height:16px;}
@media print{
  .post-comment{display:none !important;}
}

/* Icons shared by the rail, the pane items and the group headers */
.nav-icon{flex-shrink:0;}
.nav-item .nav-icon{color:var(--text-secondary);}
.nav-item.active .nav-icon{color:var(--accent);}
.nav-group-header .nav-icon{width:14px;height:14px;color:var(--text-tertiary);}

/* ===== Collapsible navigation groups (Workspaces / D365 Modules) ===== */
.nav-group-header{
  display:flex;align-items:center;gap:10px;
  padding:8px 16px;
  font-size:13px;font-weight:400;color:var(--text);
  cursor:pointer;user-select:none;
}
.nav-group-header:hover{background:var(--bg-workspace);}
.nav-group-header .nav-group-name{flex:1;}
.nav-group-header .tree-chevron{
  font-size:10px;color:var(--text-secondary);
  transition:transform .15s;display:inline-block;
}
.nav-group-header.expanded .tree-chevron{transform:rotate(90deg);}
.nav-group-header:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;}
.module-tree.collapsed{display:none;}

/* A workspace holds its posts directly, so it sits at the top level */
.submodule-item.workspace-item{padding-left:22px;font-size:13px;color:var(--text);}

/* ===== Desktop: icon rail and pinned pane ===== */
.nav-rail{display:none;}
.nav-pin{display:none;}

@media (min-width: 901px){
  /* No hamburger in the app bar on desktop — the rail and the pane carry
     their own, the way Finance and Operations does it. */
  .nav-toggle{display:none;}

  .nav-pane-head{
    display:flex;align-items:center;justify-content:space-between;
    padding:4px 8px 2px 4px;
  }
  .nav-pane-toggle{
    display:flex;align-items:center;justify-content:center;
    width:36px;height:36px;padding:0;
    border:none;background:transparent;border-radius:2px;
    color:var(--text);cursor:pointer;
  }
  .nav-pane-toggle:hover{background:var(--bg-workspace);}
  .nav-pane-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;}

  .nav-pin{
    display:flex;align-items:center;justify-content:center;
    width:24px;height:24px;margin:0;
    background:transparent;border:none;border-radius:2px;
    color:var(--text-tertiary);cursor:pointer;
  }
  .nav-pin:hover{background:var(--bg-workspace);color:var(--text-secondary);}
  body.nav-collapsed .nav-pin{transform:rotate(45deg);}

  /* Collapsed pane: a narrow icon rail, as in Finance and Operations */
  body.nav-collapsed .nav-rail{
    display:flex;flex-direction:column;align-items:center;gap:2px;
    width:44px;flex-shrink:0;padding:6px 0;
    background:var(--bg-panel);border-right:1px solid var(--border);
  }
  .nav-rail-btn{
    display:flex;align-items:center;justify-content:center;
    width:36px;height:36px;padding:0;
    border:none;background:transparent;border-radius:2px;
    color:var(--text);cursor:pointer;text-decoration:none;
  }
  .nav-rail-btn svg{display:block;}
  .nav-rail-btn:hover{background:var(--bg-workspace);text-decoration:none;}
  .nav-rail-btn:active{background:var(--accent-tint);color:var(--accent-dark);}
  .nav-rail-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;}

  body.nav-collapsed .nav-pane{display:none;}
  body.nav-collapsed.nav-flyout .nav-pane{
    display:block;
    position:fixed;top:44px;left:0;bottom:0;z-index:66;
    width:250px;overflow-y:auto;
    box-shadow:2px 0 10px rgba(0,0,0,.15);
  }
}

@media print{
  .nav-rail,.nav-pin,.nav-group-header{display:none !important;}
}

/* ===== Site-wide search results (injected by script.js) ===== */
.search-results{
  display:none;
  position:fixed;top:48px;right:12px;z-index:80;
  width:min(440px, calc(100vw - 24px));max-height:70vh;overflow-y:auto;
  background:var(--bg-panel);border:1px solid var(--border-strong);
  box-shadow:0 6px 18px rgba(0,0,0,.18);border-radius:2px;
}
.search-results.open{display:block;}
.search-hit{
  display:block;padding:10px 14px;border-bottom:1px solid var(--border);
  color:var(--text);text-decoration:none;
}
.search-hit:last-child{border-bottom:none;}
.search-hit:hover{background:var(--accent-tint);text-decoration:none;}
.search-hit-title{display:block;font-weight:600;font-size:13px;color:var(--accent-dark);}
.search-hit-meta{display:flex;align-items:center;gap:8px;margin:4px 0 2px;flex-wrap:wrap;}
.search-hit-section{font-size:11.5px;color:var(--text-tertiary);}
.search-hit-snippet{display:block;font-size:12px;color:var(--text-secondary);line-height:1.5;}
.search-hit-snippet mark{background:var(--mark-bg);color:inherit;padding:0 1px;}
.search-empty{padding:14px;font-size:12.5px;color:var(--text-secondary);}

/* ===== Recent posts group in the navigation pane ===== */
.nav-recent .submodule-item{
  display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.nav-recent.collapsed{display:none;}

@media print{
  .search-results{display:none !important;}
}

/* ===== Share blog menu (next to Print blog) ===== */
.share-menu{
  display:none;position:fixed;z-index:85;min-width:180px;padding:4px 0;
  background:var(--bg-panel);border:1px solid var(--border-strong);
  box-shadow:0 6px 18px rgba(0,0,0,.18);border-radius:2px;
}
.share-menu.open{display:block;}
.share-item{
  display:flex;align-items:center;gap:10px;width:100%;padding:7px 14px;
  background:none;border:none;font:inherit;font-size:13px;color:var(--text);
  text-align:left;cursor:pointer;
}
.share-item:hover,.share-item:focus-visible{background:var(--accent-tint);outline:none;}
.share-item:focus-visible{box-shadow:inset 2px 0 0 var(--accent);}
/* Share icons: each SVG in images/share/ is used as a mask, so it is drawn
   in the colour set below and follows light/dark theme automatically */
.share-mark{width:16px;height:16px;flex:none;background:var(--text-tertiary);
  -webkit-mask:var(--share-icon) center/contain no-repeat;mask:var(--share-icon) center/contain no-repeat;}
.share-mark-linkedin{background:#0a66c2;--share-icon:url("images/share/linkedin.svg");}
.share-mark-x{background:#201f1e;--share-icon:url("images/share/x.svg");}
.share-mark-facebook{background:#1877f2;--share-icon:url("images/share/facebook.svg");}
.share-mark-whatsapp{background:#25d366;--share-icon:url("images/share/whatsapp.svg");}
.share-mark-email{background:var(--accent);--share-icon:url("images/share/email.svg");}
.share-mark-copy{background:var(--accent);--share-icon:url("images/share/copy.svg");}
.share-mark-native{background:var(--accent);--share-icon:url("images/share/more.svg");}
.share-status{font-size:12px;color:var(--green);padding:0 14px;}
.share-status:not(:empty){padding:6px 14px 4px;border-top:1px solid var(--border);margin-top:4px;}
#sharePostBtn[aria-expanded="true"]{background:var(--bg-workspace);}
@media print{
  .share-menu{display:none !important;}
}

/* ===== Dark mode =====
   Follows the reader's system setting until they pick one with the toggle in
   the app bar; that choice is stored and set on <html data-theme> before the
   page paints. Screenshots are left untouched so they match D365. */
:root[data-theme="dark"]{
  --accent:#3a96dd;
  --accent-dark:#9ccaf2;
  --accent-tint:#1c3550;
  --bg-workspace:#1b1a19;
  --bg-panel:#252423;
  --border:#3b3a39;
  --border-strong:#605e5c;
  --text:#f3f2f1;
  --text-secondary:#c8c6c4;
  --text-tertiary:#a19f9d;
  --green:#5fb35f;
  --amber:#d6b43c;
  --red:#e3777c;
  --caution-bg:#3b2224;
  --caution-text:#f1a6a9;
  --gap-bg:#3a3120;
  --gap-text:#e8cf7a;
  --practice-bg:#1e3326;
  --practice-text:#8fd4a4;
  --cell-border:#3b3a39;
  --row-alt:#2b2a29;
  --grid-line:#323130;
  --mark-bg:#5c4d12;
  --input-bg:#1b1a19;
  --scroll-thumb:#605e5c;
  --scroll-thumb-hover:#8a8886;
  --app-bar-bg:#0e2e4d;
  --button-bg:#0f6cbd;
  --button-bg-hover:#115ea3;
  --button-bg-pressed:#0c3b5e;
  --shadow-4:0 0 2px rgba(0,0,0,.24),0 2px 4px rgba(0,0,0,.28);
  --shadow-8:0 0 2px rgba(0,0,0,.24),0 4px 8px rgba(0,0,0,.28);
  --shadow-16:0 0 2px rgba(0,0,0,.24),0 8px 16px rgba(0,0,0,.28);
  --shadow-28:0 0 8px rgba(0,0,0,.24),0 14px 28px rgba(0,0,0,.28);
  --bg-pressed:#323130;
  --focus-stroke:#ffffff;
  color-scheme:dark;
}
:root[data-theme="dark"] .fasttab-body img{background:#fff;}
:root[data-theme="dark"] .share-mark-x{background:#f3f2f1;}

.theme-toggle{
  width:30px;height:30px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  background:none;border:none;border-radius:2px;color:#fff;cursor:pointer;font-size:15px;line-height:1;padding:0;
}
.theme-toggle:hover{background:rgba(255,255,255,.12);}
.theme-toggle:focus-visible{outline:2px solid #fff;outline-offset:-2px;}

/* Paper is always light, whatever the screen theme */
@media print{
  :root[data-theme="dark"]{
    --accent:#0d5c9e;--accent-dark:#0a4a80;--accent-tint:#e8f1fa;
    --bg-workspace:#f3f2f1;--bg-panel:#ffffff;--border:#d6d3d1;--border-strong:#b8b5b3;
    --text:#201f1e;--text-secondary:#605e5c;--text-tertiary:#8a8886;
    --green:#107c41;--amber:#c19c00;--red:#a4262c;
    --caution-bg:#fdecea;--caution-text:#8a1f24;--gap-bg:#fdf3e2;--gap-text:#7a6200;
    --practice-bg:#eef7f1;--practice-text:#0b5c30;--cell-border:#e6e4e2;--row-alt:#fafaf9;
    --grid-line:#ececea;--mark-bg:#fff3b0;--input-bg:#ffffff;
    color-scheme:light;
  }
  .theme-toggle{display:none !important;}
}

/* ===== Author credentials and contact links ===== */
.author-links{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 14px;font-size:12.5px;}
.author-links a{color:var(--accent);}
.author-links a:hover{text-decoration:underline;}
.author-creds{margin:0 0 14px;padding:12px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.author-creds-head{font-size:12px;font-weight:600;color:var(--text-secondary);margin:0 0 8px;}
.author-cred{display:flex;gap:10px;align-items:flex-start;}
.author-cred + .author-cred{margin-top:10px;}
.author-cred-mark{
  flex:none;width:30px;height:30px;border-radius:50%;background:var(--accent-tint);color:var(--accent-dark);
  display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;
}
.author-cred-name{font-weight:600;font-size:13px;color:var(--text);line-height:1.35;}
.author-cred-meta{font-size:12px;color:var(--text-secondary);margin-top:2px;}
.author-cred-meta a{color:var(--accent);}

/* ===== Likes ===== */
.like-btn .like-icon{color:var(--text-secondary);}
.like-btn.is-liked .like-icon,.like-pill.is-liked .like-icon{color:var(--red);}
.post-like-bar{
  display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;
  margin:20px 0 0;padding:14px 16px;background:var(--bg-panel);border:1px solid var(--border);
}
.post-like-bar[hidden],.like-btn[hidden],.tile-extra[hidden]{display:none !important;}
.post-like-prompt{font-size:13px;color:var(--text-secondary);}
.like-pill{
  display:inline-flex;align-items:center;gap:7px;padding:6px 14px;border-radius:16px;
  background:var(--bg-panel);border:1px solid var(--border-strong);color:var(--text);
  font:inherit;font-size:13px;cursor:pointer;
}
.like-pill:hover{background:var(--bg-workspace);}
.like-pill:focus-visible{outline:2px solid var(--accent);outline-offset:1px;}
.like-pill.is-liked{border-color:var(--red);}
.like-pill .like-icon{font-size:15px;line-height:1;}
@media print{ .post-like-bar,.like-btn{display:none !important;} }

/* Most read / Most liked tiles on the home page. With both showing, the six
   tiles sit in two rows of three; with one, all five share a single row. */
.tile.tile-purple{border-left-color:#8764b8;}
:root[data-theme="dark"] .tile.tile-purple{border-left-color:#a98bd9;}
.tile.tile-rose{border-left-color:#c4314b;}
:root[data-theme="dark"] .tile.tile-rose{border-left-color:#e67a8e;}
@media (min-width:901px){
  .tile-row.has-two-extra{grid-template-columns:repeat(3,1fr);}
}
@media (min-width:1200px){
  .tile-row.has-one-extra{grid-template-columns:repeat(5,1fr);}
}

/* ===== Public comments ===== */
.post-comment .comment-list{margin:0 0 20px;}
.post-comment .comment-empty{font-size:13px;color:var(--text-secondary);margin:0;}
.comment{padding:12px 0;border-bottom:1px solid var(--border);}
.comment:first-child{padding-top:0;}
.comment-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px;}
.comment-avatar{
  width:26px;height:26px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;
  background:var(--accent-tint);color:var(--accent-dark);font-size:12px;font-weight:700;
}
.comment.is-author > .comment-head .comment-avatar{background:var(--button-bg);color:#fff;}
.comment-name{font-weight:600;font-size:13px;color:var(--text);}
.comment-badge{
  font-size:10.5px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;
  padding:1px 6px;border-radius:2px;background:var(--accent-tint);color:var(--accent-dark);
}
.comment-date{font-size:12px;color:var(--text-tertiary);}
.comment-body{font-size:13.5px;line-height:1.6;color:var(--text);padding-left:34px;overflow-wrap:anywhere;}
.comment-replies{margin:10px 0 0 34px;padding-left:14px;border-left:2px solid var(--border);}
.comment-reply{padding:8px 0;border-bottom:none;}
.comment-form-title{font-size:14px;font-weight:600;margin:4px 0 12px;color:var(--text);}
.comment-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;max-width:720px;}
.post-comment form .form-row{max-width:720px;}
.post-comment .optional{font-weight:400;color:var(--text-tertiary);}
.post-comment textarea{min-height:110px;}
.comment-count{font-size:11px;color:var(--text-tertiary);text-align:right;margin-top:3px;}
.comment-turnstile{margin:0 0 12px;min-height:0;}
.post-comment .comment-status.is-error{color:var(--red);}
.post-comment .comment-status.is-success{color:var(--green);}
.post-comment .comment-note{margin:10px 0 0;}
.post-comment .comment-note a{color:var(--accent);}
@media (max-width:600px){
  .comment-fields{grid-template-columns:1fr;}
  .comment-body{padding-left:0;}
  .comment-replies{margin-left:8px;}
}
.post-comment .form-row textarea{max-width:720px;}
.post-comment .comment-fields .form-row input{max-width:100%;}

/* AayushDynamics brand, centred in the app bar on every page */
.app-bar .site-brand{position:absolute;left:50%;transform:translateX(-50%);color:#fff;font-size:15px;font-weight:600;letter-spacing:.5px;white-space:nowrap;pointer-events:none;}
@media (max-width:900px){ .app-bar .site-brand{display:none;} }
@media print{
  .print-brand-mark{font-size:10pt;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:#605e5c;margin-bottom:2mm;}
}

/* ============================================================
   Fluent refinements
   One radius for controls, Fluent elevation for anything that
   floats, a 4px spacing grid and plain grey hover fills.
   ============================================================ */
:where(a, button, input, textarea, select, [role="button"], [role="tab"], [role="checkbox"], [role="link"], [tabindex]):focus-visible{
  outline:2px solid var(--focus-stroke);
  outline-offset:-2px;
}

.nav-item{padding:var(--space-2) var(--space-4);}
.module-row{padding:var(--space-2) var(--space-4);}
.breadcrumb{margin-bottom:var(--space-2);}
.page-subtitle{margin-bottom:var(--space-4);}
.tile{padding:var(--space-4);}
.tile-value{font-size:28px;}
.data-grid thead th{padding:var(--space-2) var(--space-3);}
.data-grid tbody td{padding:var(--space-2) var(--space-3);}
.grid-footer{padding:var(--space-2) var(--space-3);}
.fasttab-header{padding:var(--space-2) var(--space-4);min-height:40px;}
.fasttab-body{padding:var(--space-4) var(--space-4) var(--space-5);}
.badge{border-radius:var(--radius-sm);}
.like-pill{border-radius:var(--radius-sm);}
.author-modal-panel{border-radius:var(--radius-md);box-shadow:var(--shadow-28);}
.search-results,.share-menu{box-shadow:var(--shadow-16);}
.to-top{box-shadow:var(--shadow-8);}
.to-top:hover{box-shadow:var(--shadow-16);}
.post-nav-card{transition:border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease);}
.post-nav-card:hover{box-shadow:none;background:var(--bg-workspace);}
.collapse-all-btn{transition:background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);}
.fasttab-header .chevron,.nav-group-header .tree-chevron,.toc-h1-row .toc-chevron{transition:transform var(--dur-normal) var(--ease);}
.form-submit:active{background:var(--button-bg-pressed);}
@media (max-width: 900px){
  .nav-pane{box-shadow:var(--shadow-16);transition:transform var(--dur-normal) var(--ease-decel);}
}
@media (min-width: 901px){
  body.nav-collapsed.nav-flyout .nav-pane{box-shadow:var(--shadow-16);}
}

/* Command buttons: icon beside the label, as in the D365 action pane */
.cmd-btn{
  flex-direction:row;gap:var(--space-2);
  height:32px;min-width:0;padding:0 var(--space-2);
  border:none;background:none;font:inherit;font-size:13px;color:var(--text);
  text-decoration:none;border-radius:var(--radius-sm);
}
.cmd-btn:hover{background:var(--bg-workspace);text-decoration:none;}
.cmd-btn:active{background:var(--bg-pressed);}
.cmd-btn[hidden]{display:none !important;}
.cmd-btn .cmd-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:14px;color:var(--accent);}
.cmd-btn .cmd-label{font-size:13px;}
.cmd-btn.like-btn .like-icon{color:var(--text-secondary);}
.cmd-btn.like-btn.is-liked .like-icon{color:var(--red);}

/* ============================================================
   Page progress: dots running along the top, as D365 shows
   while a form loads (search index, likes)
   ============================================================ */
.page-progress{
  position:fixed;top:44px;left:0;right:0;height:3px;z-index:90;
  pointer-events:none;overflow:hidden;
  opacity:0;transition:opacity var(--dur-normal) var(--ease);
}
.page-progress.active{opacity:1;}
.page-progress i{
  position:absolute;top:0;left:0;width:3px;height:3px;border-radius:50%;
  background:var(--accent);opacity:0;
}
.page-progress.active i{animation:pageProgressDot 2.6s cubic-bezier(.3,.85,.7,.15) infinite;}
.page-progress.active i:nth-child(2){animation-delay:.15s;}
.page-progress.active i:nth-child(3){animation-delay:.3s;}
.page-progress.active i:nth-child(4){animation-delay:.45s;}
.page-progress.active i:nth-child(5){animation-delay:.6s;}
@keyframes pageProgressDot{
  0%{transform:translateX(0);opacity:0;}
  6%{opacity:1;}
  86%{opacity:1;}
  100%{transform:translateX(100vw);opacity:0;}
}
@media (prefers-reduced-motion: reduce){
  .page-progress.active{background:var(--accent);opacity:.6;}
  .page-progress.active i{animation:none;}
}
@media print{ .page-progress{display:none !important;} }

/* ============================================================
   Home workspace: sections (Summary, Workspaces, Blog posts, Links)
   ============================================================ */
.ws-section{margin:0 0 var(--space-6);}
.ws-section[hidden]{display:none;}
.ws-section-title{font-size:14px;font-weight:600;line-height:20px;margin:0 0 var(--space-2);color:var(--text);}
.ws-section > .tile-row{margin:0;}

.ws-tile-row{display:grid;grid-template-columns:repeat(auto-fill, minmax(184px, 232px));gap:var(--space-3);}
.ws-tile{
  display:flex;flex-direction:column;min-height:120px;
  padding:var(--space-3) var(--space-4);
  background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-sm);
  color:var(--text);text-decoration:none;
  transition:background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}
.ws-tile:hover{background:var(--bg-workspace);border-color:var(--border-strong);text-decoration:none;}
.ws-tile:active{background:var(--bg-pressed);}
.ws-tile-icon{color:var(--accent);margin-bottom:auto;display:flex;}
.ws-tile-icon .nav-icon{width:24px;height:24px;stroke-width:1.1;}
.ws-tile-name{font-size:14px;font-weight:600;line-height:1.3;margin-top:var(--space-4);}
.ws-tile-count{font-size:12px;color:var(--text-secondary);margin-top:2px;}
.ws-tile-meta{font-size:11px;color:var(--text-tertiary);}

.ws-body{display:grid;grid-template-columns:minmax(0,1fr);gap:0 var(--space-6);align-items:start;}
@media (min-width: 1200px){
  .ws-body{grid-template-columns:minmax(0,1fr) 240px;}
}
.ws-links-panel{background:var(--bg-panel);border:1px solid var(--border);padding:var(--space-3) var(--space-4) var(--space-4);}
.ws-links-group{font-size:12px;font-weight:600;color:var(--text-secondary);margin:var(--space-4) 0 var(--space-1);}
.ws-links-group:first-child{margin-top:0;}
.ws-links-panel a{display:block;padding:var(--space-1) 0;font-size:13px;line-height:1.4;}

/* Workspace view: the home page showing one workspace's posts */
body.in-workspace .page-title{font-size:20px;}

/* Grid: Author column shows the author, on one line */
.data-grid .col-author{white-space:nowrap;}
.item-count{color:var(--text-tertiary);}

/* ============================================================
   Grid row selector: the circle at the start of each row
   ============================================================ */
.data-grid .col-select{width:36px;padding-left:var(--space-3);padding-right:0;border-right:none;}
.data-grid tbody td.col-select{padding-top:10px;}
.row-selector{
  position:relative;display:block;width:16px;height:16px;border-radius:50%;
  border:1px solid transparent;cursor:pointer;
  transition:border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease);
}
.data-grid tr:hover .row-selector,
.data-grid thead:hover .row-selector,
.row-selector:focus-visible{border-color:var(--text-secondary);}
.data-grid .row-selector[aria-checked="true"],
.data-grid .row-selector[aria-checked="mixed"]{background:var(--accent);border-color:var(--accent);}
.row-selector[aria-checked="true"]::after{
  content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;
  border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(45deg);
}
.row-selector[aria-checked="mixed"]::after{
  content:"";position:absolute;left:4px;top:7px;width:6px;height:1.5px;background:#fff;
}
.data-grid tbody tr.selected{background:var(--accent-tint);}
.data-grid tr.grid-empty:hover{background:transparent;cursor:default;}
@media (hover: none){ .row-selector{border-color:var(--border-strong);} }

/* ============================================================
   Navigation pane: modules as a flat list with a flyout
   ============================================================ */
.module-row{border-left:3px solid transparent;}
.module-row:not(.empty):focus-visible{outline-offset:-2px;}
.module-row.active{background:var(--bg-workspace);border-left-color:var(--accent);font-weight:600;}

.module-flyout{
  position:fixed;top:44px;bottom:0;width:300px;z-index:67;
  display:flex;flex-direction:column;
  background:var(--bg-panel);border-right:1px solid var(--border);box-shadow:var(--shadow-16);
  opacity:0;transform:translateX(-8px);
  transition:opacity var(--dur-normal) var(--ease-decel), transform var(--dur-normal) var(--ease-decel);
}
.module-flyout.open{opacity:1;transform:none;}
.module-flyout[hidden]{display:none;}
.mf-head{display:none;}
.mf-actions{display:flex;gap:var(--space-1);padding:var(--space-2) var(--space-2) var(--space-1);border-bottom:1px solid var(--border);}
.mf-action{
  display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 var(--space-2);
  border:none;background:none;border-radius:var(--radius-sm);
  font:inherit;font-size:13px;color:var(--text);cursor:pointer;
}
.mf-action .nav-icon{color:var(--accent);}
.mf-action:hover{background:var(--bg-workspace);}
.mf-action:active{background:var(--bg-pressed);}
.mf-body{flex:1;overflow-y:auto;padding:var(--space-1) 0 var(--space-4);scrollbar-width:thin;}
.mf-group-head{
  display:flex;align-items:center;gap:var(--space-2);width:100%;
  padding:var(--space-2) var(--space-4);
  border:none;background:none;text-align:left;cursor:pointer;
  font:inherit;font-size:13px;font-weight:600;color:var(--text);
}
.mf-group-head:hover{background:var(--bg-workspace);}
.mf-chevron{display:flex;color:var(--text-secondary);}
.mf-chevron .nav-icon{width:12px;height:12px;transition:transform var(--dur-normal) var(--ease);}
.mf-group.open .mf-chevron .nav-icon{transform:rotate(90deg);}
.mf-links{display:none;padding:0 0 var(--space-1);}
.mf-group.open .mf-links{display:block;}
.mf-link{display:block;padding:6px var(--space-4) 6px 36px;font-size:13px;line-height:1.4;color:var(--text);}
.mf-link:hover{background:var(--bg-workspace);color:var(--accent-dark);text-decoration:none;}

@media (max-width: 900px){
  .nav-pane.mf-open{overflow:hidden;}
  .module-flyout{position:absolute;left:0;right:0;width:auto;z-index:5;box-shadow:none;border-right:none;transform:none;}
  .mf-head{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-1);}
  .mf-back{
    display:flex;align-items:center;justify-content:center;width:32px;height:32px;
    border:none;background:none;border-radius:var(--radius-sm);color:var(--text);cursor:pointer;
  }
  .mf-back:hover{background:var(--bg-workspace);}
  .mf-title{font-size:14px;font-weight:600;}
}
@media print{ .module-flyout{display:none !important;} }

/* ============================================================
   Post pages: Action Pane
   Tabs across the top; the chosen tab's groups in a strip below.
   ============================================================ */
.command-bar.action-pane{display:block;padding:0;gap:0;border-bottom:1px solid var(--border);}
.ap-top{display:flex;align-items:stretch;min-height:40px;padding:0 var(--space-1);}
.ap-back{
  display:flex;align-items:center;justify-content:center;
  width:40px;height:40px;padding:0;margin-right:var(--space-1);
  color:var(--text);border-radius:var(--radius-sm);
}
.ap-back .nav-icon{color:var(--text);}
.ap-tabs{display:flex;align-items:stretch;gap:var(--space-1);overflow-x:auto;scrollbar-width:none;}
.ap-tab{
  position:relative;padding:0 var(--space-3);
  border:none;background:none;cursor:pointer;white-space:nowrap;
  font:inherit;font-size:13px;color:var(--text);
}
.ap-tab:hover{background:var(--bg-workspace);}
.ap-tab.active{font-weight:600;color:var(--accent-dark);}
.ap-tab.active::after{
  content:"";position:absolute;left:var(--space-3);right:var(--space-3);bottom:0;height:2px;
  background:var(--accent);border-radius:1px;
}
.action-pane.ap-collapsed .ap-tab.active::after{opacity:.4;}
.ap-strip{border-top:1px solid var(--border);padding:var(--space-2) var(--space-1);}
.ap-strip[hidden]{display:none;}
.ap-panel{display:flex;flex-wrap:wrap;align-items:flex-start;row-gap:var(--space-2);}
.ap-panel[hidden]{display:none;}
.ap-group{padding:0 var(--space-3) 0 var(--space-1);border-right:1px solid var(--border);margin-right:var(--space-2);}
.ap-group:last-child{border-right:none;margin-right:0;}
/* A group whose only button is waiting on data (Like, Previous/Next) stays hidden */
.ap-group:not(:has(.cmd-btn:not([hidden]))){display:none;}
.ap-group-label{font-size:12px;font-weight:600;color:var(--text-secondary);padding:0 var(--space-2) 2px;line-height:16px;}
.ap-group-items{display:flex;flex-wrap:wrap;gap:2px;}

/* ============================================================
   Post pages: D365 details header
   Caption, record title and read-only header fields
   ============================================================ */
.post-header.details-header{padding:var(--space-4) var(--space-5);}
.record-caption{display:flex;align-items:center;gap:var(--space-2);font-size:12px;color:var(--text-secondary);margin-bottom:2px;}
.record-caption .rc-sep{color:var(--text-tertiary);}
.details-header .post-title{font-size:20px;line-height:28px;margin:0 0 var(--space-3);}
.post-meta.post-meta-source{display:none !important;}
.header-fields{
  display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-6);
  padding-top:var(--space-3);border-top:1px solid var(--grid-line);
}
.hf{display:flex;flex-direction:column;gap:2px;min-width:0;max-width:240px;}
.hf-label{font-size:12px;line-height:16px;color:var(--text-secondary);}
.hf-value{font-size:13px;line-height:20px;font-weight:600;color:var(--text);overflow-wrap:anywhere;}
.hf-value a{color:var(--accent);}
.hf-link{padding:0;border:none;background:none;font:inherit;color:var(--accent);cursor:pointer;text-align:left;}
.hf-link:hover{text-decoration:underline;}
.hf-value .status-dot{font-size:13px;}

@media (max-width: 600px){
  .post-header.details-header{padding:var(--space-3) var(--space-4);}
  .details-header .post-title{font-size:18px;line-height:24px;}
  .header-fields{gap:var(--space-2) var(--space-4);}
  .hf{max-width:none;flex:1 1 40%;}
  .ap-group{border-right:none;margin-right:0;}
}
