.lfr-layout-structure-item-container {padding: 0;} .lfr-layout-structure-item-row {overflow: hidden;} .portlet-borderless .portlet-content {padding: 0;}:root {
  --navy:       #1a2744;
  --blue:       #2d5fa3;
  --teal:       #1e7a8c;
  --warm:       #c8703a;
  --gold:       #d4a84b;
  --light-blue: #e8f0f8;
  --light-teal: #e6f4f6;
  --light-warm: #faf0e8;
  --gray-100:   #f7f8fa;
  --gray-200:   #edeef2;
  --gray-400:   #9aa0b0;
  --gray-600:   #5a6070;
  --gray-800:   #2e3340;
  --white:      #ffffff;
  --text:       #2e3340;
  --text-light: #5a6070;

  /* VERITAS severity tiers — red → amber → blue → teal */
  --fatal-bg:      #fdf0ee;
  --fatal-border:  #c0392b;
  --fatal-label:   #922b21;
  --fatal-num-bg:  #c0392b;

  --severe-bg:     #fef6ec;
  --severe-border: #d4793a;
  --severe-label:  #a0522d;
  --severe-num-bg: #d4793a;

  --clarify-bg:    #eef4fb;
  --clarify-border:#2d5fa3;
  --clarify-label: #1a3a6b;
  --clarify-num-bg:#2d5fa3;

  --signal-bg:     #e8f6f8;
  --signal-border: #1e7a8c;
  --signal-label:  #145a6a;
  --signal-num-bg: #1e7a8c;
}

* { box-sizing: border-box; margin: 0; padding: 0; font-family: "Segoe UI", Arial, sans-serif; }
html { scroll-behavior: smooth; }

section { scroll-margin-top: 80px; padding: 0.75rem 0; }
section + section { border-top: 1px solid var(--gray-200); }

#fragment-root, .container, .container-wide, nav, .hero, .part-header, section, div { color: var(--text); }

/* ── Navigation ── */
nav {
  position: sticky; top: 0; background: var(--navy); z-index: 100;
  padding: 0 2rem; display: flex; align-items: center; overflow-x: auto;
}
nav a {
  color: rgba(255,255,255,.7); text-decoration: none; font-size: 13px;
  font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
  padding: 1rem 1.1rem; white-space: nowrap; transition: opacity .2s ease;
}
nav a:hover, a:hover { opacity: .7; }
.nav-brand { color: #fff; font-size: 15px; font-weight: 700; padding-right: 2rem; margin-right: .5rem; }

/* ── Hero ── */
.hero {
  background: linear-gradient(135deg, #1a2744, #2d3d6b, #1a4a5a);
  color: #fff; padding: 5rem 2rem 4rem; text-align: center;
}
.hero-label {
  font-size: 12px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 1.2rem;
}
.hero h1 {
  font-size: clamp(2rem, 5vw, 3.2rem); font-weight: 700; line-height: 1.2;
  margin-bottom: 1rem; max-width: 800px; margin-left: auto; margin-right: auto;
}
.hero-sub { font-size: 1.15rem; color: rgba(255,255,255,.75); max-width: 600px; margin: 0 auto 2rem; font-weight: 300; }
.hero-badges { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
.hero-badge {
  background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2);
  color: rgba(255,255,255,.85); padding: .4rem 1rem; border-radius: 2rem;
  font-size: 13px; font-weight: 600; letter-spacing: .04em;
}
.hero-attribution { margin-top: 1.5rem; font-size: .9rem; color: rgba(255,255,255,.6); letter-spacing: .04em; }
.hero-attribution a { color: rgba(255,255,255,.6); text-decoration: underline; }
.hero-attribution a:hover { color: rgba(255,255,255,.9); opacity: 1; }

/* ── Layout ── */
.container { max-width: 760px; margin: 0 auto; padding: 0 2rem; }
.container-wide { max-width: 1060px; margin: 0 auto; padding: 0 2rem; }

.part-header {
  background: var(--gray-100); border-top: 4px solid var(--blue);
  padding: 2.2rem 2rem 2rem; margin-top: 2.5rem; margin-bottom: .5rem;
}
.part-header + .container { margin-top: 0; padding-top: 1rem; }
.part-label {
  font-size: 11px; font-weight: 700; letter-spacing: .15em;
  text-transform: uppercase; color: var(--blue); margin-bottom: .6rem;
}
.part-header h2 {
  font-size: clamp(1.6rem, 3vw, 2.2rem); color: var(--navy);
  font-weight: 700; line-height: 1.2; margin-bottom: 1rem;
}
.part-intro { font-size: 1.15rem; color: #3e4450; font-weight: 400; font-style: italic; }

/* ── Severity tier page headers ── */
.tier-page-header {
  padding: 2.2rem 2rem 2rem; margin-bottom: .5rem;
  border-left: 6px solid transparent;
}
.tier-page-header h2 {
  font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 700;
  line-height: 1.2; margin-bottom: .5rem; color: var(--navy);
}
.tier-page-parent-label {
  font-size: 11px; font-weight: 700; letter-spacing: .15em;
  text-transform: uppercase; margin-bottom: .6rem;
}
.tier-page-intro { font-size: 1.15rem; font-weight: 400; font-style: italic; color: #3e4450; max-width: 700px; margin: 0; }

.fatal-header    { background: var(--fatal-bg);   border-left-color: var(--fatal-border); }
.fatal-header    .tier-page-parent-label { color: var(--fatal-label); }
.severe-header   { background: var(--severe-bg);  border-left-color: var(--severe-border); }
.severe-header   .tier-page-parent-label { color: var(--severe-label); }
.clarify-header  { background: var(--clarify-bg); border-left-color: var(--clarify-border); }
.clarify-header  .tier-page-parent-label { color: var(--clarify-label); }
.signal-header   { background: var(--signal-bg);  border-left-color: var(--signal-border); }
.signal-header   .tier-page-parent-label { color: var(--signal-label); }

/* ── Severity layer dividers ── */
.severity-divider {
  margin: 2rem 0 1rem; padding: .9rem 1.2rem; border-radius: 0 8px 8px 0;
}
.severity-divider.fatal   { background: var(--fatal-bg);   box-shadow: inset 6px 0 0 var(--fatal-border); }
.severity-divider.fatal   .severity-label { color: var(--fatal-label); }
.severity-divider.severe  { background: var(--severe-bg);  box-shadow: inset 6px 0 0 var(--severe-border); }
.severity-divider.severe  .severity-label { color: var(--severe-label); }
.severity-divider.clarify { background: var(--clarify-bg); box-shadow: inset 6px 0 0 var(--clarify-border); }
.severity-divider.clarify .severity-label { color: var(--clarify-label); }
.severity-divider.signal  { background: var(--signal-bg);  box-shadow: inset 6px 0 0 var(--signal-border); }
.severity-divider.signal  .severity-label { color: var(--signal-label); }

.severity-label { font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; margin-bottom: .25rem; }
.severity-title { font-size: 1rem; font-weight: 700; color: var(--navy); margin-bottom: .2rem; }
.severity-text  { font-size: .95rem; color: var(--gray-600); line-height: 1.5; }

/* ── Typography ── */
h3 { font-size: 1.4rem; color: var(--navy); font-weight: 600; margin-bottom: 1rem; margin-top: 2rem; }
h3:first-child { margin-top: 0; }
h4 { font-size: 1rem; font-weight: 700; color: var(--navy); margin-bottom: .5rem; margin-top: 1.5rem; letter-spacing: .02em; }
p { margin-bottom: 1rem; line-height: 1.75; }
p:last-child { margin-bottom: 0; }
ul, ol { margin: .8rem 0 1rem 1.5rem; }
li { margin-bottom: .4rem; line-height: 1.6; }
strong { font-weight: 600; color: var(--gray-800); }
a { transition: opacity .2s ease; }

/* ── Callout boxes ── */
.quick-read {
  background: #e9eff5; border-left: 4px solid #2f5b8a;
  padding: 1.4rem 1.6rem; border-radius: 8px; margin-top: 0;
}
.quick-read-label {
  font-size: 13px; font-weight: 800; letter-spacing: .10em;
  text-transform: uppercase; color: var(--blue); margin-bottom: .6rem;
}
.quick-read p { margin: 0; font-size: .95rem; line-height: 1.5; color: #2d3748; }

.note {
  background: var(--light-teal); border-left: 3px solid var(--teal);
  border-radius: 0 6px 6px 0; padding: 1rem 1.4rem; margin: 1.2rem 0; font-size: .95rem;
}
.example {
  background: var(--light-warm); border: 1px solid #e8c8a0;
  border-radius: 8px; padding: 1.4rem 1.8rem; margin: 1.5rem 0;
}
.example-label {
  font-size: 13px; font-weight: 800; letter-spacing: .10em;
  text-transform: uppercase; color: var(--warm); margin-bottom: .6rem;
}

/* ── Rule block ── */
.rule-block {
  border-bottom: 1px solid var(--gray-200);
  padding: 1.8rem 0;
}
.rule-block:last-child { border-bottom: none; }

.rule-header { display: flex; align-items: flex-start; gap: 1.2rem; margin-bottom: 1rem; }

.rule-num {
  color: #fff; font-weight: 700; font-size: .9rem;
  min-width: 36px; height: 36px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.fatal-num   { background: var(--fatal-num-bg); }
.severe-num  { background: var(--severe-num-bg); }
.clarify-num { background: var(--clarify-num-bg); }
.signal-num  { background: var(--signal-num-bg); }

.rule-title-group { flex: 1; }
.rule-title-group h3 { margin: 0 0 .2rem; font-size: 1.2rem; }
.rule-severity {
  font-size: 11px; font-weight: 800; letter-spacing: .12em;
  text-transform: uppercase;
}
.fatal-severity   { color: var(--fatal-label); }
.severe-severity  { color: var(--severe-label); }
.clarify-severity { color: var(--clarify-label); }
.signal-severity  { color: var(--signal-label); }

/* ── Steps ── */
.steps { margin: 1.5rem 0; }
.step { display: flex; gap: 1.2rem; margin-bottom: 1.2rem; align-items: flex-start; }
.step-num {
  background: var(--blue); color: #fff; font-weight: 700; font-size: .85rem;
  min-width: 32px; height: 32px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: .15rem;
}
.step-content h4 { margin-top: 0; }
.step-content p { font-size: .95rem; margin-bottom: 0; }

/* ── Part navigation cards ── */
.part-nav-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem;
}
.part-nav-card {
  display: block; background: var(--gray-100); border: 1px solid var(--gray-200);
  border-radius: 10px; padding: 1.2rem; text-decoration: none; color: var(--text);
  transition: background .2s ease, border-color .2s ease;
}
.part-nav-card:hover { background: #fff; border-color: var(--blue); opacity: 1; }
.part-nav-label {
  font-size: 11px; font-weight: 800; letter-spacing: .12em;
  text-transform: uppercase; color: var(--blue); margin-bottom: .4rem;
}
.part-nav-title { font-size: 1rem; font-weight: 700; color: var(--navy); margin-bottom: .4rem; line-height: 1.3; }
.part-nav-desc { font-size: .875rem; color: var(--gray-600); line-height: 1.5; }

/* Severity-tinted nav cards */
.part-nav-card.fatal-card   { border-left: 4px solid var(--fatal-border);   background: var(--fatal-bg); }
.part-nav-card.fatal-card   .part-nav-label { color: var(--fatal-label); }
.part-nav-card.fatal-card:hover   { background: #fff; }

.part-nav-card.severe-card  { border-left: 4px solid var(--severe-border);  background: var(--severe-bg); }
.part-nav-card.severe-card  .part-nav-label { color: var(--severe-label); }
.part-nav-card.severe-card:hover  { background: #fff; }

.part-nav-card.clarify-card { border-left: 4px solid var(--clarify-border); background: var(--clarify-bg); }
.part-nav-card.clarify-card .part-nav-label { color: var(--clarify-label); }
.part-nav-card.clarify-card:hover { background: #fff; }

.part-nav-card.signal-card  { border-left: 4px solid var(--signal-border);  background: var(--signal-bg); }
.part-nav-card.signal-card  .part-nav-label { color: var(--signal-label); }
.part-nav-card.signal-card:hover  { background: #fff; }

/* ── Quick reference table ── */
.reference-table {
  width: 100%; border-collapse: collapse; table-layout: fixed;
  margin: 1.2rem 0 2rem; font-size: .95rem;
}
.reference-table col.col-num      { width: 8%; }
.reference-table col.col-name     { width: 28%; }
.reference-table col.col-severity { width: 22%; }
.reference-table col.col-summary  { width: 42%; }
.reference-table th {
  background: var(--navy); color: #fff; padding: .8rem .95rem;
  text-align: left; font-size: 12px; font-weight: 700;
  letter-spacing: .06em; text-transform: uppercase; vertical-align: top;
}
.reference-table th:first-child { border-top-left-radius: 6px; border-bottom-left-radius: 6px; }
.reference-table th:last-child  { border-top-right-radius: 6px; border-bottom-right-radius: 6px; }
.reference-table td {
  padding: .85rem .95rem; border-bottom: 1px solid var(--gray-200);
  vertical-align: top; line-height: 1.55;
}
.reference-table tr:nth-child(even) td { background: var(--gray-100); }
.reference-table td:first-child { font-weight: 700; color: var(--navy); }

.severity-badge {
  display: inline-block; font-size: 10px; font-weight: 800;
  letter-spacing: .08em; text-transform: uppercase;
  padding: .2rem .6rem; border-radius: 3px;
}
.badge-fatal   { background: var(--fatal-bg);   color: var(--fatal-label);   border: 1px solid var(--fatal-border); }
.badge-severe  { background: var(--severe-bg);  color: var(--severe-label);  border: 1px solid var(--severe-border); }
.badge-clarify { background: var(--clarify-bg); color: var(--clarify-label); border: 1px solid var(--clarify-border); }
.badge-signal  { background: var(--signal-bg);  color: var(--signal-label);  border: 1px solid var(--signal-border); }

/* ── Bottom navigation ── */
.bottom-nav { margin-top: 3rem; border-top: 1px solid var(--gray-200); padding: 0.8rem 0; }
.bottom-nav-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0; justify-content: flex-start; }
.bottom-nav-link {
  font-size: 13px; font-weight: 500; color: var(--blue);
  text-decoration: none; padding: 0.2rem 0.3rem; transition: opacity .2s ease;
}
.bottom-nav-link:hover { opacity: .7; }
.bottom-nav-link.active { font-weight: 800; color: var(--navy); pointer-events: none; }
.bottom-nav-sep { font-size: 13px; color: var(--gray-400); padding: 0 0.3rem; }

/* ── Responsive ── */
@media (max-width: 760px) {
  .reference-table, .reference-table thead, .reference-table tbody,
  .reference-table tr, .reference-table th, .reference-table td { display: block; width: 100%; }
  .reference-table col { width: auto !important; }
  .reference-table thead { display: none; }
  .reference-table tr { border: 1px solid var(--gray-200); border-radius: 10px; overflow: hidden; margin-bottom: .9rem; background: #fff; }
  .reference-table td { border-bottom: 1px solid var(--gray-200); padding: .75rem .9rem; }
  .reference-table td:last-child { border-bottom: none; }
  .part-nav-grid { grid-template-columns: 1fr; }
  .bottom-nav-inner { gap: 0.3rem 0; }
  .bottom-nav-link { font-size: 12px; }
}
