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

/* ── Page header ── */
.fr-page-header {
  background: var(--fr-white);
  border-top: 4px solid transparent;
  border-image: linear-gradient(to right, #1e7a8c, #d4a84b) 1;
  padding: 2.4rem 2rem 2rem;
  position: relative;
}
.fr-page-header-icon {
  position: absolute; top: 1.4rem; right: 2rem;
  width: 70px; height: auto; opacity: .9;
}
.fr-page-parent-label {
  font-size: 11px; font-weight: 700; letter-spacing: .15em;
  text-transform: uppercase; color: var(--fr-teal); margin-bottom: .5rem;
}
.fr-page-header h1 {
  font-size: clamp(1.8rem, 4vw, 2.6rem); font-weight: 700;
  color: var(--fr-navy); line-height: 1.2; margin-bottom: .5rem;
}
.fr-page-header-sub {
  font-size: 1.1rem; font-style: italic; color: #3e4450;
  font-weight: 400; margin: 0; max-width: 680px;
}
.fr-page-meta {
  display: flex; gap: .6rem; flex-wrap: wrap; margin-top: 1.2rem;
}
.fr-meta-pill {
  font-size: 11px; font-weight: 600; padding: .25rem .8rem;
  border-radius: 2rem; border: 1px solid var(--fr-gray-200);
  color: var(--fr-gray-600); background: var(--fr-gray-100);
}
.fr-meta-risk {
  background: var(--fr-light-teal);
  border-color: #9fd4de; color: var(--fr-teal);
}

/* ── Overview section ── */
.fr-overview-section {
  background: var(--fr-gray-100);
  border-top: 1px solid var(--fr-gray-200);
  border-bottom: 1px solid var(--fr-gray-200);
  padding: 2rem;
}
.fr-overview-section p {
  font-size: 1rem; line-height: 1.8; color: var(--fr-gray-800);
  max-width: 860px; margin: 0 auto 1rem;
}
.fr-overview-section p:last-child { margin-bottom: 0; }

/* ── Criteria section ── */
.fr-criteria-section { padding: 2.5rem 2rem; }
.fr-criteria-block { max-width: 900px; margin: 0 auto 2.5rem; }
.fr-criteria-block:last-child { margin-bottom: 0; }

.fr-criteria-block-header {
  display: flex; align-items: flex-start; gap: 1rem;
  padding: 1rem 1.4rem;
  border: 1px solid var(--fr-gray-200); border-bottom: none;
  border-radius: 10px 10px 0 0; background: var(--fr-white);
}
.fr-must-block-header   { border-top: 3px solid var(--fr-must-dark); }
.fr-should-block-header { border-top: 3px solid var(--fr-blue); }

.fr-criteria-block-label {
  font-size: 13px; font-weight: 800; letter-spacing: .12em;
  text-transform: uppercase; white-space: nowrap; padding-top: .1rem;
}
.fr-must-label   { color: var(--fr-must-red); }
.fr-should-label { color: var(--fr-blue); }

.fr-criteria-block-desc {
  font-size: .9rem; color: var(--fr-text-light); line-height: 1.6;
}

/* ── Criteria table ── */
.fr-criteria-table {
  width: 100%; border-collapse: collapse;
  border: 1px solid var(--fr-gray-200);
  border-radius: 0 0 10px 10px; overflow: hidden;
  background: var(--fr-white);
}
.fr-criteria-table thead th {
  padding: .65rem 1.2rem; text-align: left;
  font-size: 12px; font-weight: 700; letter-spacing: .06em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--fr-gray-200);
}
.fr-th-project-must   { background: var(--fr-must-bg); color: var(--fr-must-red); width: 50%; }
.fr-th-team-must      { background: var(--fr-must-bg); color: var(--fr-must-red); width: 50%; border-left: 1px solid #f5c6c0; }
.fr-th-project-should { background: var(--fr-light-blue); color: var(--fr-blue); width: 50%; }
.fr-th-team-should    { background: var(--fr-light-teal); color: var(--fr-teal); width: 50%; border-left: 1px solid #9fd4de; }

.fr-th-inner {
  display: flex; align-items: center; gap: .5rem;
}

.fr-criteria-table tbody td {
  padding: 1.1rem 1.2rem; vertical-align: top; width: 50%;
}
.fr-criteria-table tbody td + td {
  border-left: 1px solid var(--fr-gray-200);
}

/* ── Criteria list ── */
.fr-criteria-list { list-style: none; padding: 0; margin: 0; }
.fr-criteria-list li {
  font-size: .9rem; color: var(--fr-text-light); line-height: 1.55;
  padding: .28rem 0 .28rem 1.1rem; position: relative;
}
.fr-criteria-list li::before {
  content: ''; position: absolute; left: 0; top: .62rem;
  width: 5px; height: 5px; border-radius: 50%;
}
.fr-must-col li::before           { background: var(--fr-must-dark); opacity: .65; }
.fr-should-project-col li::before { background: var(--fr-blue); opacity: .4; }
.fr-should-team-col li::before    { background: var(--fr-teal); opacity: .4; }

.fr-ctx-note {
  display: block; font-size: .78rem; color: var(--fr-gray-400);
  font-style: italic; margin-top: .1rem;
}

/* ── Failure box ── */
.fr-failure-section { padding: 0 2rem 2.5rem; }
.fr-failure-box {
  max-width: 900px; margin: 0 auto;
  background: var(--fr-light-warm);
  border-left: 4px solid var(--fr-warm);
  border-radius: 0 8px 8px 0; padding: 1rem 1.4rem;
}
.fr-failure-label {
  font-size: 11px; font-weight: 800; letter-spacing: .1em;
  text-transform: uppercase; color: var(--fr-warm); margin-bottom: .4rem;
}
.fr-failure-box p {
  font-size: .95rem; color: var(--fr-gray-800); line-height: 1.65;
}

/* ── Bottom nav ── */
.fr-bottom-nav {
  margin-top: 2rem; border-top: 1px solid var(--fr-gray-200);
  padding: .8rem 2rem; background: var(--fr-white);
}
.fr-bottom-nav-inner {
  max-width: 900px; margin: 0 auto;
  display: flex; flex-wrap: wrap; align-items: center; gap: .2rem;
}
.fr-bottom-nav-link {
  font-size: 13px; font-weight: 500; color: var(--fr-blue);
  text-decoration: none; padding: .2rem .3rem; transition: opacity .2s;
}
.fr-bottom-nav-link:hover { opacity: .7; }
.fr-active {
  font-weight: 800; color: var(--fr-navy); pointer-events: none;
}
.fr-bottom-nav-sep {
  font-size: 13px; color: var(--fr-gray-400); padding: 0 .2rem;
}

/* ── Mobile ── */
@media (max-width: 600px) {
  .fr-criteria-table thead th,
  .fr-criteria-table tbody td { display: block; width: 100%; }
  .fr-criteria-table thead th + th { border-left: none; border-top: 1px solid var(--fr-gray-200); }
  .fr-criteria-table tbody td + td { border-left: none; border-top: 1px solid var(--fr-gray-200); }
  .fr-page-header-icon { width: 52px; top: 1rem; right: 1rem; }
}
